郑 雯 , 李承辉 , 王 凯 , 张 博 , 谢徐峰 , 邱子仪 , 滕红丽
(河南农业大学理学院,河南 郑州 450002)
草莓营养价值高、果肉鲜美,在我国有很大的市场需求[1]。优质草莓的生长离不开适宜的生长温度、空气湿度以及充足的水分,而传统人工采集环境参数不仅效率低而且无法保证数据的实时性,会影响草莓的质量[2]。基于此,课题组设计了一款低成本、高效益、操作简单的草莓园区环境感知系统。
该系统利用DHT11温湿度传感器和YL-69土壤湿度传感器实时感知草莓园区环境变化,将采集的数据传输至Arduino开发板,使用按键调节传感器感知环境参数的范围,然后将环境数据和调节参数在LCD上显示。同时使用I2C串口协议将数据传输至ESP8266,再使用无线传输的方式将数据传输至移动终端。系统总体设计方案如图1所示。
图1 系统总体设计图
DHT11传感器又称为数字温湿度传感器,是一款电平信号输出的温湿度复合传感器。它使用专有的元器件监测温湿度,结合模拟信号A/D转换器将模拟信号转换为数字信号,保证传感器能够有极高的环境变化感知灵敏性以及能够长时间使用的高质量[3]。传感器包括一个湿度传感器和一个NTC测温元件,具有稳定性高、数据精度高、抗干扰能力强、性价比高等优点[4]。DHT11采用单总线通信方式,采用单根信号线DATA完成数据的双向传输,VDD输入电压3.3 V~5.5 V,NC空脚,GND接地引脚。
DHT11与Arduino UNO之间的电路连接非常简单,课题组在设计该系统时,将DATA接Arduino的D2引脚。DHT11电路连接图如图2所示。当数据线长度短于20 m时,可以使用5 kΩ上拉电阻,大于20 m时可根据实际情况使用合适的上拉电阻。
图2 DHT11电路连接图
本系统所使用的土壤湿度传感器为电阻式传感器,传感器表面采用特殊的防锈处理,能够很好地提高传感器接触面的导电性、解决传感器表面生锈的困扰[5]。传感器由一个土壤探头和放大电路组成,可以输出模拟量和数字量。通过可变电阻的大小与土壤探头获得的输出电压来比较输出数字量。A/D转换器中的电位器用于调节土壤湿度的阈值,顺时针调节湿度越大,逆时针则越小。
传感器的处理芯片为电压比较器LM393芯片。该芯片精度高,在很大程度上避免了由于温度变化引起电压过载现象,输入电路电压接近接地电压。土壤湿度传感器原理图如图3所示。
图3 土壤湿度传感器原理图
按键开关是一种功能性的电子开关。如图4所示,轻轻点按开关按钮即可使开关接通,松手时开关即断开。
图4 按键图
系统设置有“显示”“切换”“+”“-”等4个按键,用于显示阈值界面详情,切换参数设置,调节草莓园内环境温度、环境湿度、土壤湿度的阈值范围。四个按键分别连接Arduino的9、10、11、12引脚,接10 kΩ上拉电阻,具体以Arduino的D10口与按键(用于加数值)的连接为例,连接图如图5所示。
图5 按键与Arduino的连接图
LCD1602是一款字符型液晶显示器。字符的显示由点阵图实现,每一个点阵由0/1代码来点亮,同时写入控制字地址RAW区地址是由三位十六位数字组成(000H~FFFH),每一位字符都有自己的特定十六位地址控制字[6]。该系统采用2行16列显示模块。
该显示器集成了I2C总线接口模块作为 LCD1602的驱动模块,使得LCD1602的接线变得更为简洁方便,只需两条通信串口线就可以和Arduino通信[7]。LCD1602液晶屏可在控制面板直接供电的情况下,不需要外带驱动设备就能够正常运行,此处LCD1602采用4 bit模式以减少与Arduino的联机。将数据分批传输,连接线路时,仅需要连接D4~D7数据端,而将D0~D3数据端悬空。电路原理图如图6所示。
图6 LCD与Arduino连接图
ESP8266是一款超低功耗的UART-WiFi透传模块,其拥有极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到WiFi无线网络上,进行互联网或局域网通信,实现联网功能[8-9]。
该系统采用的ESP8266串口WiFi模块共有四个有效引脚,如图7所示,其余引脚需悬空。其中,TXD是数据发送引脚,RXD是数据接收引脚,可以分别接在Arduino的TX口和RX口,此时Arduino的RX口作为串口数据接收口复用,TX口作为串口数据发送口复用,分别接在WiFi模块的数据发送口与接收口。
图7 ESP8266引脚
系统硬件架构完成后,系统软件所实现的功能主要由传感器获取、ESP8266WiFi模块、LCD显示器、外围设备控制等几个程序模块组成。程序开始后先进行初始化,完成对Arduino的I/O口、内部寄存器、串行通信的波特率等的初始设置。对于ESP8266WiFi模块,其初始化过程如下:先对WiFi模块复位重启,然后设置成AP工作模式,并启动多连接,最后设置开启服务器模式。WiFi模块的波特率设置为9 600,将其和Arduino串口连接。ESP8266连接网络程序如下:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
const char * ssid = "strawberry";
const char * password = " strawberry 123";
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("please contect to me and then mange wifiAP ");
Serial.println(ssid);
WiFiManager wifiManager;
wifiManager.autoConnect("AutoConnectAP");
接着进行温湿度数据的实时采集、显示和传输,同时进行按键检测,通过扫描按键是否按下,触发相应的事件(LCD阈值调节界面显示、选项切换以及阈值加减四个事件)。若事件被触发,则系统会执行相应的动作。Arduino将接收到的数据与系统特定的阈值进行比较,若超出设定的阈值范围便会控制加热器、除湿风扇、降温风扇以及水泵,对草莓园环境参数进行相应的调节。若在阈值范围内则将数据传输至服务器,使移动终端可以获取及显示草莓园内的实况。系统实时感知和控制草莓园环境部分程序流程图如图8所示。
图8 系统感知与控制部分程序流程图
移动终端的设计采用的是快捷、开发周期短、兼容性强的微信小程序[10]。小程序被打开后会自动连接服务器,接收从服务器发送过来的信息,并将草莓园区环境数据显示在首页。用户也可以通过点击远程控制页面的按钮控制草莓园内相应的设备。微信小程序软件流程图如图9所示。
图9 微信小程序软件流程图
课题组设计了一款智能化草莓园环境感知系统,包括硬件搭建及软件设计,通过对草莓的生产环境进行全方位动态监控,实现了对草莓智能、高效、高质的种植与管理。该系统也存在一些不足,如人机交互体验较为单一,设备布线并不美观等。后期可从系统的实用性以及美观性等方面进行完善,并加大开发力度,将其早日投入大棚的实际应用中。