APP下载

基于NB-IoT的高原日光温室环境监测系统的设计与实现*

2022-05-12严李强

机电工程技术 2022年3期
关键词:服务器端终端设备温室

肖 杨,严李强,宋 赫,田 博

(西藏大学信息科学技术学院,拉萨 850000)

0 引言

西藏拥有宜农耕地680.57万亩,仅占全区土地总面积的0.42%[1]。自西藏地区引入了以日光温室为主的设施农业后,耕种条件得到了极大改善,但目前很多与设施农业相适配的物联网设备在高原地区使用时往往会出现高原不适应性,不能很好地在高原地区使用。以拉萨地区为例,不少农户都曾引入过内地先进设备来改善生产,因设备适应性差,使用寿命短等原因,最终还是选择传统的人工模式进行生产,这种模式对农户的经验依赖性太强,不利于进一步发展。此外,现有的日光温室环境系统主要侧重于监测与作物生长直接相关的因素,而很少关注温室外部环境的影响以及温室安全生产问题;为了进一步改善农户的生产条件,本文结合西藏地区的网络情况和电气特性,提出了一种基于NB-IoT的高原日光温室环境监测系统,通过无线传感器网络和物联网技术,持续稳定地对温室环境进行全时空监测,同时考虑了外部环境非生物因子在内部环境调节过程中可能造成的影响,提高了农户决策的科学性和准确性,减少因突发情况造成的损失,发挥了智慧农业的先进性。

1 系统总体设计

基于NB-IoT的高原日光温室环境监测系统包括硬件系统和软件系统两部分[2],涉及温室内外环境信息的采集、处理、传输以及监测信息的多端显示。总体框架可分为感知层、数据处理层、传输层以及应用层[3]。感知层主要依靠各传感器节点采集环境信息;数据处理层由主控芯片,存储电路构成;传输层使用NB-IoT网络经基站与MQTT服务器端建立连接,再由服务器端通过公网连接应用层;应用层则以微信小程序的形式为用户和硬件系统提供一种可跨空间的交互模式,系统整体框架如图1所示。

图1 系统整体框架

2 硬件系统设计

硬件系统主要由各传感器节点组成的监测模块、用户交互模块、数据处理模块、通信模块构成。受高原地区海拔相对较高、空气压力和密度较低、空气绝对湿度小、空气温度低、温差大以及紫外线强[4]等特殊条件影响,内地生产的很多农业物联网设备到了高原常会出现功率下降、放电电压降低,甚至无法正常工作等问题。系统设计时也着重考虑了硬件设备的高原适应性,即所有的电气设备必须满足国标GB∕T22580—2008(特殊环境条件高原电气设备技术要求低压成套开关设备和控制设备)[5]中的相关要求,且具有较好的耐冻性,确保在高原环境下能够持续稳定地工作。

2.1 监测模块

常见的日光温室环境监测系统中很少涉及对火情等灾害监控,但类似于2019年3月26日,唐山市突发大火,近300座温室大棚被烧毁,直接造成多于5 000万元经济损失的情况每年都在上演[6]。为了避免此类悲剧再次发生,系统中加入了烟雾传感器实时监测温室内部的烟雾情况,一旦出现火灾等情况时能够及时报警提醒农户,避免产生更大的损失。此外,现有的温室监测系统中很少对所处的外部环境进行监测,但近年来农业受洪涝、干旱、大风、冰雹、冰霜冻、低温冷害、雷电灾害等自然灾害影响严重[7],仅仅依靠天气预报进行预警往往存在准确性低或农户未及时关注等情况,因此在本系统中搭建了外部环境监测网络,有利于准确掌握温室所处的小气候条件,作为调控内部环境的参考依据;在现代农业趋利避害和防灾减灾中发挥着重要作用[8]。

传感器采集信息的准确性对整个监测系统至关重要;高原地区高寒、昼夜温差巨大、紫外线强等气候特征也为传感器的性能提出了更高的要求,为确保系统能在极端高原条件下能够持续稳定地采集信息,所选择的传感器技术参数如表1所示。

表1 传感器技术参数

此外,考虑传感器应用场景不同,将系统的监测模块分为了室内监测模块和室外监测模块两部分。室内监测模块由烟雾传感器、土壤和空气温湿度传感器、CO2浓度传感器以及光照光强传感器组成,在温室内部采用分布式布局,保证监测数据全局准确性。室外监测模块由光照传感器、雨雪传感器、风速传感器组成[9],负责监测外部天气灾害。

2.2 用户交互模块

为了提升农户的使用体验,降低农户的学习成本,硬件系统中设计了由按键模块、蜂鸣器以及OLED显示屏组成的用户交互模块。通过按键模块,农户可自主地选择想要的模式,并根据温室内实际情况自主地设置各环境参数的报警阈值;同时根据监测信息的实时情况以不同的形式展示在OLED屏上,若监测到出现异常数据或数据突变等情况时蜂鸣器则发出不同的声音提醒农户。

2.3 数据处理模块

数据处理模块由主控芯片和SD卡存储模块构成。主控制芯片选用意法半导体公司的STM32F103ZET6型芯片;STM32F103系列采用ARM32位的CortexTM-M3 CPU,带64 K存储器、两个12位模数转换器以及众多快速I∕O端口、定时器和通信接口。芯片还提供了休眠、停止和待机3种工作模式,能够针对不同能耗需求进行选择实现系统的低功耗运行,该芯片能够满足传感器数据采集、处理以及传输等功能需求[10]。为保证数据传输的完整性设置了SD卡存储模块,当主控芯片接收监测信息时,先对数据进行简单处理后存入存储模块中,再经通信模块上传至MQTT服务器端进行存储,若传输过程中出现丢包等情况,则从存储模块中再次调出相应的数据字段重新传输。SD卡存储模块采用可拆卸式,允许农户在本地读取数据进行分析,数据存储模块部分电路如图2所示。

图2 数据存储模块部分电路

2.4 通信模块

当前阶段的农业物联网设备大多采用ZigBee、GSM、Bluetooth等无线通信技术,这些技术普遍存在通信受限制、消耗的功率大、终端数量易饱和等问题[10]。同时,受西藏地区特殊的环境条件影响,基础设施的建设相比内地稍微缓慢些,部分地区网络质量也不太稳定。从西藏地区的实际条件出发,系统的通信模块采用BC35-G,它使用NB-IoT网络进行数据传输。NB-IoT构建于蜂窝网络,只消耗大约180 kHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络之上;与3G或4G相比,有着单位带宽内可携带更高能量,覆盖更远的距离,具有覆盖范围广、成本低廉的技术优势,能满足覆盖范围广的农村地区通信需求,还能提供比较全面的室内蜂窝数据连接覆盖[11],符合项目需要。经调查,西藏地区电信网络覆盖面积最为广泛,则选用电信物联网卡进行数据传输,增强系统的适应性,通信模块电路如图3所示。

图3 通信模块电路

3 系统软件设计

3.1 物联网云平台选择与部署

目前市面上主流的物联网平台有移动公司的OneNET开放平台、电信公司的CTWing、百度智能云天工以及阿里云IoT等,平台大都支持CoAP(LWM2M)、MQTT、Modbus、HTTP、HTTPS、TCP、UDP等主流协议[12]。但这些平台在接入终端设备时,需要编写设备Profile文件和解析设备数据的编解码插件,增加了用户在接入平台时的难度;此外,这些平台大都不支持用户根据自身需要存储、分析上传至平台端的数据,很难在其基础上进行个性化开发。基于上述问题,系统采用轻量级的MQTT消息服务器存储、转发、订阅相应的数据。

MQTT是一个基于发布∕订阅(publish∕subscribe)模式的消息传输协议。它具有轻量级、开放、简单,易于实现,通信带宽要求低等特点,能够在不可靠网络下保证远距离传输质量。在通讯时,MQTT协议中包含有3种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可同时为订阅者。每个发布者可以发送不同类型的消息,发送消息的类型叫做主题(Topic),MQTT通信中的消息都属于某一个主题,只有这个主题的订阅者才能收到该主题的消息[13]。系统使用EMQX服务器作为中介建立温室内的终端设备与微信小程序端的连接;服务器端能够将终端发送过来的数据信息利用JSON格式解析还原为所代表的参数类型及实际参数,然后存储至MYSQL数据库中。农户在微信小程序端订阅自己温室对应的主题即可查看温室内环境信息,链接过程如图4所示。

图4 终端设备与用户端链接示意图

系统使用KEIL MDK5集成开发环境进行STM32程序的编写与编译,并通过USB连接电脑和终端设备对系统进行调试与程序烧写;STM32与NB模块之间采用USART通信,而NB模块与EMQX服务器端识用MQTT协议进行连接;在使用MQTT协议连接终端设备与用户端设备时,需要使用AT指令建立终端设备与服务器之间的连接,在使用用户端对终端进行操作过程中也需要用到AT指令。NB通信模块的生产商提供了大量的AT指令,在系统中可以直接进行调用,系统配置中使用的部分AT指令集及其注释如表2所示。

表2 建立通信使用AT指令及其注释

3.2 微信小程序设计与实现

自2017年12月微信小程序正式上线以来,其凭借便捷性、跨平台性等优势得到了极大地发展;本文基于微信小程序随扫随用、无需下载、易于开发等特点,开发了日光温室环境监测系统作为系统的用户端,包含用户注册、用户信息管理、设备管理、设备数据订阅、查询以及简单控制终端设备等功能。

要在微信小程序端实时查阅温室内环境参数信息需要与MQTT服务器端进行连接,这一过程基于HTTP协议实现。当EMQX服务器端设备处于在线状态时,在微信小程序端即可成功订阅设备所对应的Topic;此时,一旦EMQX服务器端收到监测数据,小程序端就能同步查收到相应内容。此外,微信小程序端除了能够接收到数据外也能发送下行命令,与服务器端具体的通信过程如图5所示。

图5 小程序与服务器端的通信

4 系统调试和结果

4.1 终端设备功能调试

目前终端设备仍处于在开发板测试阶段,并未将设备集成化。设备开启后,串口、传感器、通信模块等进入初始化状态,并不断检查设备的网络状态;各模块初始化完成后则进入数据采集程序,以串口通信方式将传感器采集到的信息显示在OLED屏幕上,系统的采样周期为10 s一次。通过屏幕上的提示信息,能清楚地知道当前终端设备所处的状态,并根据提示信息进行相应的调整。

在实验室内,用微湿的纸巾包裹住土壤湿度传感器模拟传感器插入土壤中的效果,其他传感器未做干预;通过终端上的OLED屏幕,可清楚的看到当前实验室内各环境参数值以及对应的报警阈值,如图6所示。在测试中,实际监测到的空气温度为30.6℃,湿度为43.2%,而设置的空气温度上限为45℃,空气湿度上限为70%,属于阈值内,因而蜂鸣器未发出报警信息。当用手捂住温度传感器后,温度超过上限阈值发出警报提醒,表明预警功能正常。

图6 终端数据监测界面展示

4.2 小程序端

首次进入小程序时按照提示:注册账号→登录→设置用户信息→绑定终端设备(即根据终端上的iemi号订阅相应的主题),在成功绑定设备后即可进入数据查看界面,得到如图7所示的界面。与图6终端显示的监测信息进行对比,可以看出终端设备上的信息能够很好的同步到微信小程序端(由于室内测试时未接入风速传感器和雨雪传感器,因此小程序端相应的数值显示为0)。

图7 小程序监测数据查看界面

待终端设备连续工作一段时间后,即可在微信小程序中点击想要查看的环境参数图标进入对应参数历史数据查看界面。在此界面中可查看一段时间内温室参数的变化情况以及某一时间点的具体值。拉到小程序的底部,点击查看全部数据记录图还可查看全部参数的变化情况,如图8所示,通过观察参数的历史数据,能够直观地了解温室内外环境在一天的不同时段内的实际情况以及变化规律。

图8 参数变化趋势

5 结束语

本文基于NB-IoT网络搭建了一套高原日光温室环境监测系统,实现对温室内外环境参数的全时空监测,为精准化调控温室内环境非生物因子提供判断依据,且具有良好的高原适应性。利用与硬件端相适配的微信小程序能够实现异地查看温室内外环境,确保温室内环境的稳定性;当系统监测到温室内外环境发生异常变化时能够及时的向用户发送报警信息,有效地降低因温室内环境剧烈变化造成的损失,同时保障温室内作业人员的安全。通过查看、分析温室内各环境参数在一天中各时段的变化趋势,亦能够更好地帮助农户总结规律,提高生产。综上所述,使用本系统可有效提高农业生产决策的科学性,促进高原地区农业生产现代化。

猜你喜欢

服务器端终端设备温室
现代温室羊肚菌栽培技术
基于MAC 认证的终端网络准入控制系统方案*
苍松温室 苍松灌溉
苍松温室 苍松灌溉
Linux环境下基于Socket的数据传输软件设计
可以避免一个温室化的地球吗?
行车记录仪通信连接方法、行车记录仪及终端设备
基于Qt的安全即时通讯软件服务器端设计
电力配网自动化中配电自动化终端设备的应用
基于Qt的网络聊天软件服务器端设计