基于WiFiduino 与Blinker 的智能浇花系统设计
2023-09-27武潇
武潇
(吉林化工学院 信息与控制工程学院,吉林吉林,132000)
0 引言
在社会经济快速发展的背景下,人民生活水平和生活条件都有了显著改善,对住房环境和生活质量都有了更高的要求。在家里或者办公室种植花卉也成了大多数人提高生活品质的选择,既可以丰富生活,还可以美化环境。但是由于缺乏经验,人们常常用自己的经验或者主观地给花盆里补水,当人们出差或者旅行时,家中花卉就会没有人照顾。智能浇花系统不仅可以精准控制浇花的时间,还可以精确控制浇水的量。在忙碌的生活中,人们往往需要一个智能浇花系统,可以在他们离家时智能管理室内的花卉。智能浇花系统不仅解决了花卉的管理问题,也实现了人们追求绿色健康生活方式的理念。
1 系统总体方案设计
本系统集成了主控电路、继电器控制单元、无线网络通信单元、电源转换电路和人机交互单元五部分。通过DHT11 温湿度传感器和YL-69 土壤湿度传感器检测花卉生存环境的温度,湿度和土壤的湿度。传感器收集的数据经过A/D 模数转换输入到WiFiduino 控制系统中,控制系统经过ESP8266 无线通信模块上传到公共云平台和手机APP Blinker,再通过手机APP Blinker 显示给了用户识别,使用户可以通过移动设备实时观察环境数据。
需要智能浇花系统位于WiFi 局域网内,将使用WiFiduino 中的ESP8266 WiFi 模块通过路由器导入云服务器端,发送数据栏数据到云服务器端并保存,同时以云服务器端显示设计应用程序。用户可以由手机APP Blinker 开发的应用程序页面,查看花卉当前生存环境的温度,湿度和土壤的湿度。同时用户可以通过在手机APP Blinker 上设置开关按钮进行远程控制浇花的操作,利用这种方法能实现对花卉生长环境的调整。
2 硬件设计
■2.1 控制系统设计
WiFiduino 是一款以ESP8266 为核心的开发板,WiFiduino 在现有的Arduino 控制器之上提供WiFi 支持,相当于Arduino 和ESP8266 的复合板。
我们可以将无线通信模块和Arduino UNO 组合在一起,实现将Arduino 连接到互联网,然而这样使硬件部分复杂且昂贵,而且还要创建和管理Arduino 和WiFi 部分的通信逻辑。所以在对比各种开发板之后我选择了WiFiduino,它支持WiFi 通信的新型Arduino 兼容开发板。WiFiduino是一个开源硬件和软件平台,用于电子原型设计,其中有WiFiduino 板和 Arduino IDE,以及类似于 Java、C/C++和其他语言的开发环境[1]。WiFiduino 可使用 USB 连接电脑进行供电,也可使用 AC 适配器进行外部供电。WiFiduino上有 6 个模拟输入口和 14 个数字 IO 口,使用者可根据需要接入数字输入输出口或模拟输入输出口。Micro usb 数据线可以给WiFiduino 供电,也可以往WiFiduino 板中下载程序。
■2.2 ESP8266 WiFi 模块
考虑到使用智能浇花系统的场景和中国 WiFi 的普及情况,本文选择 ESP8266 WiFi 模块发送和接收数据信息。不过本系统不需额外外接ESP8266 WiFi 模块,WiFiduino 开发板的核心就是以ESP8266 WiFi 模块。ESP8266 WiFi 模块使用IEEE 802.11 系列无线通信协议,允许Arduino 通过系列端口进行通信。如图3 和图4 所示。
■2.3 温湿度传感器模块
采用集成微芯片的DHT11 作为温湿度传感器,它能将电阻湿度传感器元件和NTC温度传感元件集成到传感器中,能检测传感器内集成的NTC 测温元件和电阻式感湿元件,可以发出数字信号[2]。DHT11 优势有以下几点:
(1)传输数据仅靠单线,需要使用的I/O 口较少。
(2)已经于出厂的时候校准输出数字信号,所以数据信息精度高,易于处理。
(3)功耗低,抗干扰能力强,信号传输远距离。
可检测范围:温度0°C~50°C(误差:±2°C),湿度20%~95%RH(误差:±5%RH),它的检测范围不是很大,但普通情况下已经够用。在选择产品时,备选的还有一个SHT75 温湿度传感器,它的优势是精度高,检测范围大,可检测到温度-40°C~123.8°C(误差:±0.3°C),湿度0~100%相对湿度(误差:±相对湿度1.8%)[3]。它的劣势是操作复杂,价格昂贵。最后,在各方面对比之下,在符合系统功能要求的基础之上,本文选择的温湿度传感器为DHT11 温湿度传感器,如图5 所示。
■2.4 土壤湿度传感器模块
选取YL-69 土壤湿度传感器,它有镀镍表面,增加了导电性,而且在现场与土壤接触时可以防止氧化。YL-69 土壤湿度传感器输出土壤数据有以下两种方法:
首先,对准D0 连接器将高电平和低电平输出,土壤湿度阈值也可以调整。顺时针调整3362 电位器,湿度会越来越大;逆时针调整,湿度会越来越小[4]。端口可以用芯片直接连接到单片机上,开发板评估土壤的湿度方法是根据输出的高低电平。
另外,通过AD 转换,对A0 口模拟接收的采样的方法是ADC,能获取更准确的土壤水分值,本文用到这种设计方法,如图6 所示。
如图6 所示,WiFiduino 板收集土壤湿度传感器 AO 口输出的模拟电压,并且会通过 ADC1 不同的数据通道分别检测不同花盆的土壤湿度。
■2.5 继电器控制模块
传输电路必须设计为通过继电器绕组传导大电流(约50 mA),这样继电器内的线圈才能吸合。该系统的工作原理是使用NPN 型三极管为继电器提供较大电流。图7 为继电器的驱动电路。
3 软件设计
■3.1 系统软件设计
在设计系统时,需要进行硬件设计,同时软件编程也很重要。在本系统中,不仅有单芯片微控制器用作控制器,还有无线通信模块,因此在选择编程软件时要反复斟酌。有许多适用于开发板的软件编程平台,例如Keil 等。智能浇花系统软件编程平台选择了Arduino IDE。
Arduino IDE 不仅具有了基本的编程语言所需要的基本环境,同时还包含了所有的WiFiduino 硬件开发版所需要的编译程序与交互软件。使用者在通过 Arduino IDE 编译程序时首先将其语言转换为 C++程序语言,Arduino IDE 拥有创建WiFiduino 板所需的所有编译器和交互式软件,以及主要编程语言所需的基础环境。当用户使用 Arduino IDE构建应用程序时,最开始使用为C++编程语言,然后使用avr-gcc(avr-gee 是专门为运行在 Gnu-C 编译器上的 AVR处理器设计的开源编码器)检测整个编译语言并从WiFiduino 控制面板运行它,写出一组二进制代码用来操控硬件装置[5]。这页二进制代码通过计算机侧面的USB 接口下载到WiFiduino 内存中,在那里进行处理并最终存储。图8 显示Arduino IDE 编译环境界面。
■3.2 手机APP blinker 开发
手机APP blinker 是用于实现用户和硬件之间人机交互和实现远程控制的必要设备,APP 界面可以显示实时参数、湿度异常报警、灌溉条件评估,手动浇花确认等。手机软件的设计是使用应用程序Blinker 完成的。
手机APP Blinker 有以下功能:(1)显示实时环境数据信息。可以显示温度、湿度和土壤湿度数据信息,使用户可以在手机APP Blinker 界面观察实时环境数据信息。可视化环境参数(2)满足预定的浇花条件时警告。温度、湿度达到预设下限时,在Blinker 界面给一个温湿度异常警告。(3)手动浇花管理。依靠人工经验和实时数据,操作手机APP Blinker 实现手动浇花。(4)定期浇水。可以设置在手机APP Blinker 页面的定时任务中,设置定期浇水。
在移动应用程序开发中,Blinker 允许开发人员自定义应用程序管理界面。Blinker 还为远程物联网提供方便、易于使用的解决方案,此设计具有较好的可扩展性。使用自带开发工具的APP 和互联网,可以设计个性化的手机APP 页面。用户可以在移动应用设备的应用程序页面上远程查看系统信息。
4 实验结果
智能浇花系统,是由WiFiduino 开发板为核心的控制电路,传感器电路和其他硬件电路一起组成的设备。系统根据与设定好的温度和湿度值进行对比,在超过设定值时实现自动浇花。同时可以通过手机APP Blinker 实时观测花卉生长环境参数,其监测界面效果图如图 9 所示。
如图11 所示,系统可以实时监测土壤湿度,当传感器检测到湿度水平降至定义的下限以下时,继电器控制水泵开始工作给花卉浇水。
图1 系统总体设计
图2 WiFiduino 开发板
图3 ESP8266 模块稳压电路
图4 ESP8266 模块硬件电路
图5 DHT11 数字温湿度传感器电路
图6 YL-69 土壤湿度传感器电路
图8 Arduino IDE 编译环境界面
图9 手机APP 子页面
图10 系统软件程序
图11 系统硬件实物连接图
5 小结
智能浇花系统可以根据不同植物的习性特点(如种类、生长期、需水量等)设计不同的浇灌方案,适时适量地浇灌植物,既能满足植物正常生长的需水要求,同时又不至于让土壤湿度过大,提高植物对灌溉水利用率,此外还可以节省人力。
本系统可以实现智能浇灌:当土壤湿度传感器检测到盆栽植物达到临界缺水状态时,智能控制终端收到请求信号后,按需求水量进行补水,实现系统智能浇灌。也可以实现手动浇灌:用户可以通过手机APP 页面实时查看盆栽植物的温湿度,也可以通过手机APP 实现远程手动控制盆栽植物的浇灌。