戴晶华
(内蒙古自治区法治培训中心,内蒙古呼和浩特,010070)
在学习和工作之余,人们通常养花来丰富自己的生活,可以净化空气,给人们带来了舒适的生活环境。通常的花盆需要人工浇水,费时费力,为了克服传统养花的一些缺点,设计一种自动浇花系统为养花者提供更为智能便捷的智能浇花设备。随着5G和物联网技术的深入发展,将会有越来越多的智能设备进入人们的日常生活。
本设计是运用物联网技术对花盆进行改造,实现温度和湿度的远程实时监测。本设计提供了两种浇水模式,即远程手动浇水模式和自动浇水模式。在远程手动浇水模式下,可以随时随地进行远程浇花,避免了由于浇水不及时导致的植株枯萎;在自动模式下,在储水装置水量充足时,自动浇花系统可通过对花盆土壤湿度的实时监测,在花盆的土壤湿度较低时自动启动浇水泵进行浇水,该模式为可养花者提供便捷的服务。
本系统主要由花盆智能控制板、云服务器消息代理、手机APP三部分组成。花盆智能控制板主要负责底层硬件的数据采集以及浇水泵和照明灯的控制,云服务器上的消息代理软件负责控制信息和采集数据的接收和转发,从而实现硬件数据通过互联网传输到手机APP,手机APP进行相关数据参数的数据显示及控制按钮的实现,主要显示的参数有土壤温度数据的显示,当前土壤湿度是否需要浇花的显示,主要实现的控制按钮有浇水泵控制按钮和照明灯控制按钮,系统整体设计框图如图1所示。
图1 系统整体设计框图
花盆智能控制板可以连接温度传感器和湿度传感器,实现土壤温度和土壤湿度数据采集。土壤温度传感器采用DS18B20防水传感器,通过单总线协议实现数据传输。湿度传感器通过连接AD转换模块实现湿度数据的模数转换,可以宽范围控制土壤的湿度,通过电位器调节控制相应的阈值,湿度低于设定值时,DO端口输出高电平,高于设定值时,DO端口输出低电平。花盆智能控制板的CC3200分别通过端口PIN_08和PIN_01输出高低电平实现继电器的闭合与断开,从而实现浇水泵和照明灯的控制,硬件功能框图如图2所示。
图2 硬件功能框图
通过对CC3200进行编程实现对土壤温湿度数据采集,并进行分析和处理,将采集到数据进行远程发送,实现土壤温度和当前湿度是否需要浇水的数据远程发送,CC3200实时接收控制信息,实现浇水泵和照明灯的远程控制。CC3200通过WiFi配置入网,实现上行环境数据和下行控制信号的传输,硬件设备传输的数据格式为JSON格式。
1.1.1 温度传感器
本设计中土壤温度数据的采集使用DS18B20温度传感器实现,首先进行温度传感器初始化,温度传感器反馈初始化是否成功的信息,写入控制数据,并等待温度传感器做出应答,待温度传感器做出应答后,开始接收温度低8位数据,紧接着接收温度高8位数据,当温度数据接收完成后,进行数据的格式转换,将二进制数据转换为十进制数据,并将转换完成的数据储存到temp变量中,此时温度数据采集完成。
1.1.2 湿度传感器
本设计中所采用的湿度传感器适用于土壤的湿度检测,模块中蓝色的电位器是用于土壤湿度的阈值调节,顺时针调节,控制的湿度会越大,逆时针调节,控制的湿度会越小。数字量输出引脚DO与CC3200的PIN_06相连,通过CC3200检测高低电平,由此来检测土壤湿度,并确定是否需要浇水。在检测到的电平中,其中高电平代表需要浇水,低电平表示不需要浇水,编写程序将CC3200的PIN_06引脚配置为读模式,并读取电平。
1.1.3 浇水电路设计
浇水泵由一个365直流抽水马达(12V微型自吸水水泵)实现,该水泵有入水口和出水口,用途十分广泛,在家电,医疗,模型DIY,水族器材等方面都得以应用,主要实现抽水,冷水循环等功能。本设计主要通过继电器实现其控制,首先CC3200将接收到的控制数据进行解析,当变量watering为1时,表示开启浇水泵,此时将CC3200的PIN_01引脚置为1,输出高电平,继电器模块接收到高电平后,继电器吸合,浇水泵开始工作。当变量watering为0时,表示关闭浇水泵,此时将CC3200的引脚置为0,输出低电平,继电器模块接收到低电平后,继电器断开,浇水泵停止工作。
服务器上安装Mosquitto消息代理软件,MQTT协议提供了使用发布/订阅模型执行消息传递的轻量级方法。这使得它适用于物联网信息传递,即低功耗传感器或移动设备,如手机、嵌入式计算机或微控制器。本设计通过MQTT协议实现数据传输,实现了高效准确的数据传输。硬件设备与服务器之间的通信的数据格式为JSON格式,服务器与硬件设备通信的端口号设定为1883,服务器与手机APP通信的端口号为9000。
手机APP基于React Native进行开发。主要实现的功能有土壤温度数据和当前湿度是否需要浇水的实时显示,浇水泵和照明灯的开关控制,以及与服务器之间的实时数据通信。手机APP的界面主要有土壤温度数据显示、土壤湿度是否需要浇水显示、浇水泵状态显示、照明灯状态显示、浇水泵的开关按钮和照明灯的开关按钮,手机APP功能框图如图3所示。
图3 手机APP功能框图
本设计中所采用的芯片是德州仪器公司的CC3200,该器件集成了ARM Cortex-M4。在本设计中,使用了4个通用输入输出(GPIO)引脚,分别是实现温度数据采集的PIN_03引脚;实现土壤湿度浇水反馈的PIN_06引脚;实现浇水泵控制的PIN_08引脚;实现照明灯控制的PIN_01引脚。
CC3200定义发布主题,即/SmartPot/send,主题的数据格式为JSON格式,主题的内容为{"temp":"00.00","moisture":"0","watering":"0","LED":"0"}。当温度传感器采集到土壤的温度数据信息后,对其中的temp数据进行更新;当湿度传感器采集到土壤的湿度数据信息后,对其中的moisture数据进行更新;当浇水水泵开启时,将其中watering的值更新为1,表示水泵为开启状态,当浇水泵关闭时,将其中watering的值更新为0,表示水泵为关闭状态;当照明灯开启时,将其中LED的值更新为1,表示照明灯为开启状态,当照明灯关闭时,将其中LED的值更新为0,表示照明灯为关闭状态,并每隔0.3秒上传一次土壤温湿度数据及硬件的状态数据,这样就达到了数据的实时上传,硬件打包程序框图如图4所示。
图4 硬件打包数据上传程序框图
MQTT(Message Queuing Telemetry Transport)协议是一个基于TCP的发布订阅协议。在云端和传感器、医疗设备、家居及一些小型化设备通信中已得到了广泛使用。新版本的MQTT协议具有更好的错误报告、共享订阅、消息属性、消息过期、会话到期、主题别名等亮点。本设计MQTT协议通过mosquitto消息代理软件进行实现。MQTT协议用来支持将CC3200上的数据用1883端口发送到服务器的broker上。同时MQTT协议用来支持手机APP和硬件之间的通信,当mosquitto broker收到服务端消息后,broker继续将消息通过MQTT协议用9000端口发送给订阅端。
本设计中手机APP与服务器使用的通信协议为基于WebSocket 的MQTT 跨平台推送服务方案。MQTT WebSocket JavaScript API 的功能描述如下:Connect 连接、 DisConnect 断开连接、Subscribe 订购、UnSubscribe 取消订购、Publish 发布。
硬件设备通过MQTT协议上传相关数据到服务器,手机APP通过MQTT协议接收服务器转发的数据,即{"tem p":"00.00","moisture":"0","watering":"0","LED":"0"},首先进行温度数据显示、是否需要浇水显示、浇水泵开关状态显示、照明灯开关状态显示,手机APP的控制按钮有浇水泵开关按钮和照明灯开关按钮,APP提供了两种工作模式,即手动浇水模式和自动浇水模式。
在手动浇水模式下,当用户点击开启浇水泵按钮后,手机app发送开启浇水泵控制指令,即"watering":"1",硬件设备收到开启浇水泵控制指令,启动浇水泵进行浇水,当用户点击关闭浇水按钮后,手机app发送关闭浇水泵控制指令,即"watering":"0",硬件设备收到关闭浇水泵控制指令,关闭浇水泵停止浇水;当用户点击开启照明灯按钮后,手机app发送开启照明灯控制指令,即"LED":"1",硬件设备收到开启照明灯控制指令,启动照明灯,当用户点击关闭照明灯按钮后,手机app发送关闭照明灯控制指令,即"LED":"0",硬件设备收到关闭照明灯控制指令,关闭照明灯。
在自动浇水模式下,当watering值为1时,并且当温度小于25℃时,APP自动发送开启浇水泵控制命令,即"watering":"1",直到硬件上传的数据中watering值变为0,APP自动发送"watering":"0",关闭浇水泵。
本设计中通过paho软件进行硬件设备与服务器间的数据通信调试,首先硬件设备上电,硬件指示灯闪烁几秒后熄灭,表示硬件设备已经成功连接WiFi,按下SW3按键开始土壤温度和湿度是否需要浇水数据上传,在调试软件上输入服务器地址和端口号,并订阅主题,可以看到土壤温度和湿度是否需要浇水数据成功发送到了服务器上,并通过调试软件显示到电脑屏幕上,土壤温度和湿度是否需要浇水数据为设定好的JSON格式数据。
手机APP与服务器之间的通信采用MQTT协议,当启动硬件设备后,可以看到手机APP成功显示了土壤的温度数据、目前湿度是否需要浇水、灯光状态和水泵状态,点击浇水控制按钮,可以看到硬件设备浇水泵开启,并可以看到手机APP上反馈到浇水泵为开启状态,点击关闭浇水泵按钮,可以看到浇水泵关闭;点击照明灯按钮,可以看到照明灯开启,手机APP中显示照明灯开启,点击关闭照明灯按钮,可以看到手机APP显示照明灯关闭。
图5 手机APP界面
本设计提供的智能控制板与花盆采用分离式设计,通过温度和湿度传感器检测实时数据,实现自动浇花的功能,也可以通过手机APP实现浇花的远程手动控制的功能,是物联网技术应用到智能家居的典型应用,可以推广到其他领域,具有一定的实用价值。