智能雨林缸,顾名思义,是指在鱼缸内养雨林植物,与传统的水族缸不同的是智能雨林缸,具备的功能更多,能够自动调节光照、温湿度等环境因素,让植物生长的更好。
本次通过ESP8266和机智云物联网平台,进行PCB设计,以最低成本自己开发智能控制器,实现智能雨林缸智能监测温湿度,通过手机App远程控制照明、喷水、喷雾、风扇调节,与此同时还设有手机控制功能、自动调节功能,以便更好的照顾雨林植物。
硬件部分:
可以自己购买4路继电器,及防水温度传感器DS18B20探头,ESP12S小系统板。
继电器----GPIO13(加热管)GPIO12(循环电机)GPIO16(喷淋电机)GPIO5(灯光)
配网按键----GPIO14(按下低电平)
温度传感器----GPIO4(传感器需要上拉电阻)
软件部分:
在机智云AIoT开发平台创建“智能雨林缸”产品
登录dev.gizwits.com,创建产品
创建数据功能点。为后MCU代码移植、App控制提供基础。
生成基于ESP8266 SOC方式的代码包,以便后续代码移植
进行APP开发
使用机智云进行APP开发有多种方式,诸如使用机智云开源框架、机智云代码自动生成工具,这两种方式涉及到Java语言或Swift语言,我未选用。
而是采用了机智云赛博坦工具,无代码,只需要进行在线配置就能开发出一款个性化的App。具体而言需要进行如下操作。
通过dev.gizwits.com 切换至机智云的新版开发平台,创建【移动应用】
创建好移动应用后,关联设备到移动应用里面。其他参数根据自己需求进行更改
之后,回到机智云新版开发平台主页,选择自己创建“智能雨林缸”,然后进入如下页面。将【产品开发-模组信息】:配置成乐鑫模组,注意只需要修改模组就行,热点参数无需更改。
接下来,进入【应用页面-控制页面】:进行App页面修改,可以根据自己需求设置好控制模块的大小以及图标。其余参数根据自己的需求修改。注意:每个页面都需要保存。
App控制页面定义完成后,接下来需要进行参数配置,点击【构建应用】,进行应用【应用证书】配置,最后再进行【应用构建】
当应用构建“成功”后,可以下载此App安装到手机上。这样一个个性化的“智能雨林缸”App就开发完成了。
ESP8266接入机智云AIoT开发平台,实现功能控制、联网等
这是进行开发的最重要的步骤之一。为了让“智能雨林缸”的控制器具有联网功能,让App能够实现远程控制,需要对基于ESP8266 SOC方案生成的代码包进行移植,最后要将移植后的代码烧写至ESP8266上。
由于涉及的代码较多,我只进行简要说明,更具体的操作步骤、代码请参考机智云社区。
先将ESP8266 SOC代码包进行解压缩,接下来进行移植
1、采用IDE方式进行开发编译:解压过后即可使用,路径不能有中文。
2、修改编译参数:打开根目录下面的Makefile文件,然后修改23到27行的内容。
3、按键部分无需修改,因为自动生成的代码就是gpio14按键长按短按进行网络配置。但继电器引脚的初始化我们写在按键函数的初始化里面, 初始化为输出模式。
4、在gizwits_product.c和gizwits_product.h增加全局变量。
5、在gizwits_product.c的gizwitsEventProcess函数里面对开关状态进行缓存。
6、处理断电开机之后开关以及各项参数的初始化。主要是利用flash读取获取参数。数据状态存放在flash,后续教程及程序会有存储体现。初始化主要修改userInit函数。
7、在gizwits_product.c新增DS18B20驱动函数、温度传感器的函数。
8、在gizwits_product.c的userHandle函数里面对GPIO输出点,温度采集,flash存储以及逻辑控制进行编写。
9、修改完代码之后ctrl+B进行编译固件编译。
10、利用乐鑫烧录软件将生成的固件烧录到ESP8266里面。
参数参考下图,注意参数不能有错。
下载硬件接线如下表下载模式。
记住通电瞬间就要保持这个状态才是下载模式。
11、程序烧录完成之后,通过按键长按触发airlink配网(或短按触发softap配网),在APP选择对应的配网进行网络配置及绑定设备。绑定后进入设备即可进行采集和控制。
12、实物展示展示
作为水族圈的一员,养过观赏鱼、玩过自然水景,现在自己动手做一个“智能雨林缸”特别有成就感,机智云物联网平台和ESP8266的改造成本又低,真是太棒了。