植物工厂无线温湿度采集系统的设计与实现

2024-01-08 12:14朱福英陈文印林宏河林陈隆
现代计算机 2023年20期
关键词:温湿度串口联网

朱福英,陈文印,吴 婧,林宏河,林陈隆

(福建信息职业技术学院物联网与人工智能学院,福州 350000)

0 引言

近年来,互联网和物联网技术发展迅猛,相关技术也逐步在农业中得到应用,进一步推动了设施农业的进步[1-2]。设施农业是世界现代化农业的重点发展方向,代表了目前农业的最高水平。设施农业最重要的任务之一是对设施内植物的生长环境进行监测并调控,使设施内的环境始终处于适宜的范围,保证植物健康成长。其中设施内的温度和湿度是最重要的两个参数,尤其是温度对植物的成长有着举足轻重的作用。

有线测控法是设施农业中较为常见的温湿度的监测手段,但该方法存在施工繁琐、维护不便等缺点,成本也相对较高。若项目需要改建,往往需要对大量的传感器进行拆除重新安装,维护升级难度大[3-4]。越来越多的研究人员使用了无线传输替代有线通信,常见的无线通信有ZigBee、lora、4G、5G 等[5-7]。无线传感网络(wireless sensor networks,WSN)的温湿度测量控制系统在各方面都有着广泛的应用前景,例如:农业生产、仓库管理和工业制造等。

本文以目前应用比较广泛的ESP32 模块作为主控模块,利用开源的物联网平台Things-Board 作为云平台,研发了一套可靠、实用的温湿度监测系统。ESP32有多个TTL串口通信,加上485外围电路,能够实现同时采集多个温湿度设备的值。ESP32 还可以实现Wi-Fi 通信,加上http通信功能就能将温湿度实时上报至物联网云平台。ThingsBoard开源物联网平台能够支持多种通信协议,包括http和MQTT 通信协议,还支持规则链和组态。该系统稳定可靠、搭建简单,并且部署灵活、扩展性好,现场施工也相对简单。

1 总体设计

温湿度监控系统可以分为三个部分,第一部分是具有485通信能力的温湿度传感器,主要负责采集环境中的温湿度;第二部分是以ESP32 作为主控模块的物联网采集网关,同时具有Wi-Fi 和485 通信能力;第三部分是应用较为广泛的开源物联网平台ThingsBoard,作为系统的云端模块。系统架构如图1所示。

图1 系统架构图

485的温湿度设备是最常用的物联网设备之一,通过485总线可以很容易扩展温湿度设备数量,系统具有较好的扩展性。设备使用Modbus协议,也可以很容易和其他系统兼容。

加上一些简易的外围电路,ESP32同时具备485 通信和Wi-Fi 通信能力。结合485 和Modbus协议,网关通过轮询的方式,能够采集多个温湿度值,然后将这些值暂时存储在网关中。预先设置好热点的名称和密码,连上Wi-Fi后通过HTTP通信协议将存储的温湿度值上报至云平台。

参考官方文档,搭建好云平台后台,配置好设备通信方式,ThingsBoard 就可以接收数据。接收到数据后,ThingsBoard 会将数据储存到数据库,若要更好地查看数据,可以配置数据面板,利用网页就能查看实时数据和历史数据。

2 ESP32硬件设计

硬件电路包括ESP32 主控模块电路、电源模块电路、指示灯电路、按键电路、继电器模块电路、开关量输入电路、485通信电路、温湿度设备组成,电路结构如图2所示。

图2 硬件系统架构图

(1)ESP32主控模块

主控模块采用乐鑫信息科技的ESP32 系列芯片为基础的模组,该芯片为Wi-Fi加蓝牙的双模双核芯片,主频高达240 MHz,支持串口通信、SPI 通信接口、数模转换、模数转换接口[4]。模组将引脚引至两侧的排针,可以方便连接到外部电路。

(2)电源模块

电源模块采用MIC29302 和HT7533 两款电源芯片组合设计。市电输入后被转为12 V 直流电源,MIC29302 用于12 V 降压至5 V,HT7533将5 V 电压降至3.3 V,两款都是低压差线性稳压电路,可以使用较少的外围元器件就可以达到较好的降压效果。电源电路如图3所示。

图3 电源电路

(3)指示灯和按键

指示灯和按键用于用户交互,通过指示灯可以判断是否电源和模组工作正常,按键可以用于切换模组的工作状态。按键和指示灯电路如图4所示。

图4 按键和指示灯电路

(4)485通信

系统采用SP3485 作为TTL 和485 转换芯片,该芯片满足RS-485 标准,最高速度可以达10 Mbps。最大支持32 个扩展芯片,满足系统应用需求。485电路如图5所示。

图5 485电路

(5)温湿度设备

温湿度设备选用的是具有485通信的数字式温湿度传感器,该设备采用的传感器是SHT20,该传感器有着0~100%的湿度测量范围,3%的精度,温度测量范围是-40℃~125℃,精度为0.5℃。温湿度设备接线如图6所示。

图6 温湿度接线图

3 ThingsBoard平台

3.1 ThingsBoard简介

ThingsBoard 是目前Github 上最流行的开源物联网平台之一,该开源平台能够实现物联网设备的接入并提供综合物联网解决方案,功能众多,分别是海量连接、在线监控和数据存储等[7]。

ThingsBoard 是一个基于物联网和产业特点应运而生的开放平台,不仅适用于各种网络环境及协议类型,还可以为各类传感器和智能硬件提供快速接入与大数据服务等[8]。利用该开源平台可以快速实现物联网项目。ThingsBoard云平台还支持多种协议接入,包括COAP 协议、MQTT 协议以及HTTP 协议[9]。

ThingsBoard 平台可以运行在Linux 环境中,本文所用的Linux 发行版本是Ubuntu 18.04 桌面版,该版本的操作系统比较稳定。

基于ThingsBoard 进行设计的远程物联网平台能够实现植物工厂环境数据的可视化处理以及用户远程操控,完成数据的接收、存储以及指令下发等功能。用户只要通过移动设备或个人电脑登录远程云平台就能够实时监控植物工厂生长环境[6]。

3.2 ThingsBoard环境搭建

在使用ThingsBoard 服务器之前,要先对其进行安装,详细的安装教程可参考ThingsBoard官方网站的教程。

进入Ubuntu 命令操作界面后,输入“sudo service thingsboard start”的指令,会弹出输入密码的指令,输入正确密码之后,若是没有出现报错行为,则表示ThingsBoard服务器启动成功。接下来,查询当前IP 地址。在终端输“ifconfig”,弹出的信息中inet 后面的IP 地址就是平台的IP地址。

获得IP 地址后,打开浏览器,在地址栏输入“IP:8080/login”,就可以进入ThingsBoard 平台的登入界面,如图7所示。

图7 ThingsBoard平台的登入界面

登入账号,进入租户界面,如图8所示。

图8 ThingsBoard平台的租户界面

在ThingsBoard 平台上,需要对设备和仪表板库这两部分模块进行配置,一是方便HTTP的连接,二是将数据进行可视化操作。首先对设备管理模块进行配置,在首界面中首先点击“设备”功能,然后在弹出的界面上点击“添加设备”,最后在弹框中输入设备名称即可成功添加设备。

其次,对看板进行配置。在仪表板库中添加仪表板,添加步骤与添加设备类似。仪表板添加成功后,打开该仪表板,点击右下角的圆形编辑标志,进入编辑模式。进入之后,点击添加新的部件,选择创建新部件。在选择部件包中选择“Charts” 中的“Timeseries Line Chart”,点击该部件,添加温度和湿度两个数据源,再点击完成应用更改。至此,ThingsBoard平台搭建完成。设备上传数据,用户就可以随时查看温度和湿度数据的波动情况,如图9所示。

图9 ThingsBoard平台仪表板界面

4 嵌入式代码设计

嵌入式代码是基于Visual Studio Code 中的PlatformIO 集成开发环境下进行的代码编写,采用模块化编程的设计思想,将各个功能拆分为多个程序模块,再将各个模块衔接在一起,用C/C++语言编程实现。程序流程如图10所示。

图10 程序流程

本系统的嵌入式软件设计及平台连接主要是通过ESP32 的程序设计进行实现。该程序主要包含了Wi-Fi通信驱动、数据采集和平台连接三个模块。

Wi-Fi 通信程序设计主要负责设置Wi-Fi 连接模式,确认连接的Wi-Fi名称和密码,然后初始化Wi-Fi,与ThingsBoard 处于同一个Wi-Fi 站点下。

数据采集程序设计主要利用Modbus 协议并通过串口下发指令,采集到温湿度数据后将数据打包。

平台连接程序设计主要处理HTTP 协议代码,利用该协议与ThingsBoard 进行连接以及数据传输。

4.1 Wi-Fi通信驱动

Wi-Fi 是使用率最多的无线通信网络之一,而Wi-Fi 的技术研发门槛和产品成本都相对较低,技术开发难度也小,并且许多设备都支持Wi-Fi 连接[10]。因此本系统采用Wi-Fi 作为无线通信网络。

其主要的Wi-Fi功能代码如下:

4.2 数据采集

温湿度数据的采集程序,主要实现对温湿度信息的处理和收集。程序逻辑结构如下:首先对ESP32 的串口进行初始化配置,调整串口参数,与传感器串口通信参数保持一致。初始化完成后,串口发送指令至传感器,将返回的数据保存至数组中,利用中间参数获取温湿度的值。

参考代码如下:

4.3 平台连接

平台连接采用HTTP 协议来实现。HTTP 协议属于应用层协议,通过TCP/IP 协议簇传递数据,可分为客户端和服务端两个部分。客户端主要通过HTTP向服务端请求资源,若是服务端接收到请求,则会响应客户端[11]。

系统使用的是HTTP客户端。该程序设计逻辑如下:首先,声明一个HTTP客户端对象,对其进行初始化。其次,查询设备的访问令牌,以便确认上传数据的路径[12]。接着设置HTTP的请求方式,请求头文本类型和文本数据。最后设置HTTP 客户端断开连接,防止长时间不响应的情况。

参考代码如下:

5 测试

5.1 硬件电路调试

硬件电路焊接后,需要检查是否存在虚焊的情况,排查接线情况,然后通电后查看电路是否有异常,例如有无冒烟和发烫。若上电后没有问题,下载代码运行,查看指示灯是否按照预期闪烁,然后通过路由器检查是否有设备连接,若有说明ESP32 运行正常。硬件设备如图11所示。

图11 硬件实物图

5.2 平台调试

硬件设备没有问题后,就要跟平台进行联合调试,本系统采用模块化编程,在调试的过程中可以对各个模块进行分别测试,提高调试效率。

连接平台后进入面板查看数据,出现温湿度数据后,查看温湿度上报的时间和频率。然后可以用手捂住温湿度设备,让温度和湿度都发生变化,再在平台观察数据变化情况,若温湿度发生变化,则系统运行正常。温湿度上报后,数据面板结果如图12所示。

图12 Thingsboard面板界面

6 结语

本文提出并设计了一套植物工厂无线温湿度采集系统,结合了电子技术和通信技术。温湿度设备采用485传感器来监测植物工厂环境内的温湿度,同时使用了ESP32、MIC29302WU线性稳压器等硬件模块,组成了该系统的硬件电路部分。该电路设计合理、价格低廉,操作较简单。

在软件开发上,使用C/C++语言,简单明了。本系统实现了温湿度数据的采集,并通过无线传输功能将采集到的数据上报到Things-Board 平台,从而解决了植物工厂环境中温湿度参数远程控制监测的问题。该系统操作简单、使用方便,还具有准确性高、高能效的优点。

猜你喜欢
温湿度串口联网
“身联网”等五则
温湿度控制器在回收砂冷却系统中的应用
浅谈AB PLC串口跟RFID传感器的通讯应用
基于DSP的多路温湿度监测系统
抢占物联网
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
可再生能源与物联网