APP下载

基于树莓派驱动的物联网灌溉系统的设计与实现

2024-09-04张振亚石玉娄士龙

电脑知识与技术 2024年20期

关键词:树莓派;智能灌溉;物联网

1 研究目的和意义

农作物生产种植是我国重要的经济活动之一。农作物的生长离不开水资源。然而,目前我国水资源存在分布不均、利用不充分的问题。在北方地区,水资源不充足、不均衡的情况尤为明显。另外,由于我国处于温带季风气候区,受季风影响,整体存在夏季雨水多,冬季雨水少的问题。在农田灌溉领域,以漫灌等地面灌溉方式为主,这在一定程度上造成了水资源的浪费。我国人均淡水量水平不足世界人均淡水量的四分之一[1],因此,大力发展较为精准的灌溉技术是至关重要的。据不完全统计,农业用水在运输过程中会出现不同程度的流失,如漫灌、滴灌等方式在田垄间渗透等,约60%的水资源没有直接作用于农作物[2]。因此,能利用现有技术开发设计并实现一款智能灌溉系统,对提高水资源的灌溉利用率具有重要意义。

2 国内外研究现状

随着科技的不断发展,物联网技术日益成熟。通过采用传感器、智能化应用网络、智能终端等技术的协调高效利用,可以实现24小时全方位的监测和管理。采用基于LoRa技术的远距离低功耗无线传感网络形式进行部署,在农业覆盖区域,通过无线传感节点实时采集农作物需水量等信息,并通过LTE网络等将采集信息传送至手机或电脑端,从而进行有效的数据处理,进而调整灌溉策略[3]。此外,对等节点形式的网络拓扑也可以根据需求进行调整,部署灵活[4]。

以单片机等为主控单元的智能节约型灌溉技术不断发展,如采用ZigBee技术和GPRS技术相结合的智慧果园灌溉系统,该系统利用ZigBee技术的低功耗、高可靠性的优势,且可部署节点数多,通过GPRS 技术将农田的信息,如土壤湿度、室温等参数以短信方式告知农田管理者,以便根据农作物生长环境决定灌溉方式[5]。另外,采用GPS和GPRS相结合的低成本灌溉系统也逐步推广,通过GPS定位技术精准采集位置信息,利用GPRS技术远程回传数据,实现基于位置的较为精准的灌溉[6]。经过考察论证,本系统借鉴了雨鸟公司的1Q-Cloud产品开发模型,利用树莓派易于操作控制的优点,结合传感器设备完成数据采集,通过开发实现Web程序和可视化编程,实现远程监测和控制灌溉。

3 关键技术介绍

3.1 树莓派

树莓派4B是一款基于ARM处理器的微型电脑主板,以SD卡为存储单元,主板周围有多个USB接口和一个以太网接口,可用于连接键盘、鼠标等外设和网络。同时,它还具有HDMI高清视频输出接口。树莓派开发板上可部署Linux操作系统,可基于Python程序设计开发实现,支持调用强大的第三方库,如opencv、pigpio等,应用性强,稳定性好[7]。

3.2 3D 打印

3D打印技术是一种快速成型技术,适用于定制化产品的实现。它可以分为直接打印和间接打印两种。直接打印是先绘制出产品图纸后形成三维模型,利用3D打印机直接打印出符合要求的产品。间接打印则是利用3D打印机打印出蜡或者硅溶胶模型后,用失蜡法完成产品的铸造。为了增强接口之间的适配性,本设计中的水管接头、阀门适配器等采用直接打印技术实现。

3.3 MQTT 通信协议

MQTT通信协议是一种消息队列协议,由IBM开发,是一种在硬件性能较差或者网络情况较差的情况下使用的发布/订阅型消息协议。它具有轻量、简单、易于实现的特点。MQTT协议采用TCP/IP协议进行网络链接,保证了数据传输的可靠性,且传输数据量小。该协议支持几乎所有平台,几乎可以将所有物联网产品和外部进行连接,被广泛应用于传感器和制动器。目前,华为、百度、阿里、中国移动等搭建的物联网平台中已对此协议进行了广泛的应用。本设计采用此协议搭建一个基于Web的通信平台,用于完成网络通信。

4 系统设计

系统采用树莓派4B作为主控模块。主控模块与空气温湿度、光照强度、土壤湿度等单元相连接,可动态实时采集农田参数。为实现远程控制,Wi-Fi网络将这些参数通过MQTT通信协议发送给Node-RED物联网编程工具平台。同样,来自平台的控制信息也通过Wi-Fi网络和MQTT通信协议发送给树莓派节点,节点接收到指令后控制电磁阀,驱动水泵完成灌溉操作。为了更好地适配水泵,保证接口不漏水,对于接口阀等部分适配部件采用3D打印技术进行定制化设计打印。

本系统硬件部分由树莓派4B作为中央处理单元进行处理和控制。如图1所示,将空气温湿度传感器、土壤湿度传感器和光照强度传感器与树莓派4B的GPIO口相连接,通过继电器模块驱动水泵完成灌溉操作。

为方便远程监控和操作,系统基于MQTT通信协议搭建基于Web的通信平台。平台采用可视化工具Node-RED进行开发。Node-RED 是构建物联网应用程序的一个编程工具,可简化代码块的连接[8]。No⁃deRED基于Python 语言进行开发。通过可视化编程方法,能将预定义的代码块连接起来执行。该工具可以较好地兼容树莓派的GPIO口,可以解析GPIO引脚数据,并根据数据创建动作。也可以根据事件使Node-RED与GPIO引脚交互。本系统基于此工具实现对农田信息的实时监测展示。Node-RED安装部署环境如图2所示,通过执行“sudo npm install –g nodered”指令,在树莓派Linux 系统中安装Node-RED 工具。

为更好地适配系统,利用Creality Ender打印出水管接头、喷嘴适配器、水管塞子、钩子、传感器底座、阀门适配器、电线盖子等物件。

5 系统实现

5.1 树莓派4B 系统的烧录和配置

系统选用Desktop and Recommended Software 版本的镜像文件,采用Win32 Disk Imager 工具进行解压,将解压出的树莓派系统镜像文件写入Micro SD 卡。把Micro SD卡插到对应卡槽中,当树莓派主板上红色电源指示灯亮起,绿色指示灯间歇闪烁时,说明系统已经开始启动。连接外置屏幕,通过显示路由器管理页面找到给树莓派开发板分配的IP地址,保证电脑与其在同一网段,然后用SSH工具远程连接到树莓派进行配置。

5.2 MQTT 服务器实现

系统采用开源的轻量级 mosquitto 开源项目对MQTT 组件进行搭建。通过使用sudo apt-get installlibssl-dev等指令下载需要的依赖包并进行安装,通过 wget http://mosquitto.org/files/source/mosquitto-1.6.9.tar.gz等命令获取下载mosquitto并进行解压。之后,mosquitto会以默认的参数进行启动。通过修改mos⁃quitto.conf配置文件,可以配置修改相应的参数进行定制化使用。通过安装xrdp工具可以实现远程桌面管理,其中调用登录界面如图3所示。

5.3 Node- RED 物联网编程

启动Node-RED服务,检查Node-RED服务的状态。若要在树莓派4B上使用NodeRED,需要先安装Node.js环境[9]。启动NodeRED后,可通过http://local⁃host:1880进入NodeRED编辑页面。

搭建好MQTT服务器后,可以进行Node-RED物联网编程工具的测试[6]。输入ifconfig命令,查看树莓派4B的IP地址,树莓派4B启动Node-RED后,可以使用浏览器,根据IP地址打开Node-RED,成功连接后,表示可以正常使用。

如图4所示,通过左侧面板inject和debug选项进行连线,通过编辑inject node输入数值,并设定是否需要重复发送信息。debug node会将流入此点的对象信息通过debug字段显示出来,用于检视是否符合预期效果。

5.4 硬件连接

将模数转换模块的VCC引脚与树莓派的GPIO1 口连接,GND引脚与GPIO4连接,SDA与SCL分别为I2C通信协议的数据线与时钟线,分别连接到树莓派4B的GPIO3口和GPIO5口;电容型土壤湿度传感器因输出信号为模拟信号,须与模数转换模块的A0口连接才能使用;温湿度传感器的DATA引脚和GPIO7口连接。由于光照传感器需要采用I2C通信协议,需要与树莓派4B 的GPIO3 和GPIO5 引脚扩展口进行连接。

5.5 控制台实现

对SSH远程连接进行相关设置,通过IP 地址和账号密码进行登录,将PC端和树莓派接入同一网络,在PC端安装MobaXterm软件后,与树莓派进行SSH远程连接,编译主程序并运行。在浏览器端打开Node-RED物联网编程工具,根据树莓派的IP地址,即可查看各个传感器采集的实时信息,以数值的形式进行展示。系统操作人员可以根据数值的情况通过控制继电器控制水泵的开闭,从而达到根据条件进行灌溉的情况。

6 结束语

本设计基于树莓派驱动,设计并实现了一款物联网智能灌溉系统,利用树莓派作为主控,通过传感器节点实时采集田间数据,建立植物生长状况数据库,根据变化采用滴灌和控水,也可自行定期设定浇水。通过采用MQTT协议,基于Node-RED平台设计开发实现Web控制系统,可以利用电脑或手机终端实现远程控制。通过智能控制,可使农作物处于有利生长状态,有利于实现智能化、农业。系统可以进一步进行扩充实现,如可经过操作人员进行数值判断从而控制水泵开闭,可以通过设置采集参数阈值,自动控制水泵。