1、数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering206现农村越来越多的务工人员往城市方向发展,导致农村的青年劳动力急剧下降,而我国作为农业大国,如何实现大规模农业种植仍是亟需解决的问题2,伴随着物联网技术的发展,“智慧农业”将作为一种科学的解决途径,其通过物联网技术实现远程监控最终达到精准种植的目的,从而提高农业种植的产量3。本系统使用的操作系统平台是 RT-Thread,其由我国团队自主研发,经过多年的升级,已逐步成为一个功能丰富的操作系统,特别适用于一些资源受限的场合。相对于其它
2、操作系统来说,RT-Thread 为用户提供丰富的组件,如内核层、软件包等等,能够有效降低编程难度,因此,开发者通过 RT-Thread 系统可以轻松地实现物联网项目的搭建。另外,OneNET 平台为用户提供多样的服务,可使物联网设备实现快速上云,管理人员通过 OneNET 平台最终实现对大棚的远程监控,并根据实时采集的传感器数据控制相应的执行器,从而提高农业种植的生产效率并大大降低成本4。1 系统的框架设计系统的功能包含三个:采集大棚内温湿度和光照数据、传感器数据通过 Wi-Fi 模块传输至云平台,云平台下发指令控制输出设备。系统的框架设计如图 1 所示,其中 MCU 采用 STM32 芯片
3、,数据采集层外接输入设备(SHT3X 系列温湿度传感器、BH1750 光照度传感器)及输出设备(风机、补光灯),传输层使用 ESP8266 模块完成数据的传输,而应用层负责数据的存储及展示,同时下发指令至设备端5。2 RTOS资源的规划为更好地满足多任务的调度及提高系统响应效率,在本系统的软件框架中设计 RTOS 层,对 RTOS 资源的规划主要包括以下三个方面:2.1 SENESOR(传感器)驱动框架的使用由于市面上传感器厂商众多,而不同的传感器都需配套对应的驱动程序,因此为统一接口及提高代码的可基于 RT-Thread 的智慧农业大棚监控系统设计谢莹(闽西职业技术学院信息与制造学院 福建省
4、龙岩市 364021)摘要:本文设计一套基于 RT-Thread 的智慧农业大棚监控系统,其应用 RT-Thread 操作系统,设备端采集大棚内的温湿度、光照度,并通过 Wi-Fi 模块及 MQTT 协议实现与 OneNET 平台的数据交互1。测试结果表明,系统通过对 RTOS 资源的合理规划,应用线程及信号量完成数据上 OneNET 云平台的任务,简化编程难度,并提高系统响应速度,满足智慧农业大棚的监控需求,系统最终实现对设备端进行实时远程监控的目的,有效提高农业种植的产量。关键词:Wi-Fi 模块;OneNET;RT-Thread;实时监控基金项目:2021 年度福建省教育厅教育科研项目“
5、基于云平台的智慧农业监测系统设计”(编号:JAT210904)。图 1:系统的框架设计图数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering207复用性,RT-Thread 为开发者提供 SENSOR 设备以降低开发难度,如温湿度、光照、压力、距离等市面上常用的传感器均已对接到 SENSOR 框架中。SENSOR 驱动框架设计如图 2 所示,大体分为两步:完成传感器 ops接口的对接及设备的注册。以读取光照数据为例,先将BH1750 传感器成功对接到 SENSOR 框架,再通过线程的管理
6、获取光照数据。2.2 线程的管理在日常中遇到难解的大任务时,可将大任务根据不同的功能进行划分,最终形成多个简单的小任务,问题便迎刃而解,在 RT-Thread 中线程作为最核心的功能,也是最小的调度单位,对应着一个个小任务,通过线程的方式编写代码可以简化编程难度,使线程之间相互独立,并提高程序响应速度。另外,通过设置任务的优先级可以让重要的任务得到优先处理。在本系统中需要完成的小任务有三个,其中两个是采集传感器温湿度、光照数据的任务,第三个任务是在连接 OneNET 云平台过程中先进行初始化 mqtt 协议的任务,因此根据不同的任务对应创建三个不同的线程:“read_SHT3X_thread”
7、为采集温湿度的线程、“read_light_thread”为采集光照度的线程、“mqtt_init_thread”为初始化 mqtt 协议的线程。以采集光照度为例,通过以下几个步骤即可读取对应的光照数据,如表 1 所示。表 1:对应的光照数据描述对应关键代码/函数创建 rt_sensor_data 结构体struct rt_sensor_data sensor_data查找 SENSOR 设备驱动rt_device_find()打开 SENSOR 设备rt_device_open()读取 SENSOR 设备的数据rt_device_read()2.3 信号量的规划在采集数据的线程被创建成功之后
8、,如何与初始化 mqtt 协议的线程协作完成数据上云的任务?在 RT-Thread 中线程间同步的方式主要三种,分别是信号量、互斥量和事件集。信号量作为轻型的内核对象,系统通过获取(take)及释放(release)信号量的方式保证任务/线程正常有序地运行。RTOS 层的主要工作流程图如图 3 所示,“read_SHT3X_thread”与“read_light_thread”线程是以永久等待的方式获取信号量,当“等不到”时则一直等待,并且该线程处于挂起状态,同时系统执行其它线程,而“等到了”则会唤醒该线程,紧接着运行该线程的后续代码。在主函数中设置信号量“mqtt_sem”的初始值为1,在“
9、mqtt_init_thread”线程初始化成功之后释放信图 2:SENSOR 驱动框架设计图 3:RTOS 层的主要工作流程图数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Engineering208号量,信号量的值加 1,而“read_SHT3X_thread”与“read_light_thread”线程在分别获取这 2 个信号量之后则上传数据至云端,因此,系统通过不断释放及获取信号量的方式完成“mqtt_init_thread”、“read_SHT3X_thread”、“read_light_th
10、read”这三个线程间的通信,最终将温湿度及光照数据上传至 OnetNET 云平台。“mqtt_init_thread”线程释放信号量的关键代码如下:1.static void mqtt_init_thread_entry(void*parameter)2.3.while(1)4./*初始化 MQTT 协议*/5.if(!onenet_mqtt_init()6./*初始化成功之后,释放一个信号量*/7.rt_sem_release(mqtt_sem);8.return;9.;10.rt_thread_mdelay(500);11.12.该线程的主要功能为初始化 MQTT 协议,由于初始化一次可
11、能无法成功,因此,需要通过 while 循环进行多次尝试初始化,直到初始化成功,初始化成功之后则释放一个信号量,并告知“read_SHT3X_thread”、“read_light_thread”线程可以上传数据,再通过 return 语句完成线程工作。3 OneNET云平台的设计OneNET 物联网平台提供高效、安全的应用平台,图 4:OneNET 软件包配置图图 5:OneNET 云平台的管理界面图 6:光照数据流图 7:小熊派主板及拓展板数据库系统设计Database System Design电子技术与软件工程Electronic Technology&Software Enginee
12、ring209在设备端,适配多种传输协议,如 MQTT、NB-IoT、EDP、Modbus 等6,为开发者提供各种硬件终端的快速接入方案;另外,在应用层中为开发者提供各类开发需求,使得开发者能够将重点更聚焦于自身应用的开发,缩短开发周期,降低开发成本7。在本系统中建立“智慧农业大棚系统”产品,并在该产品下创建“1 号检测点”设备,设备创建成功之后,云平台会生成对应的设备 ID 及鉴权信息等,而设备端要接入云平台则要进行相应的验证。因此,在 RT-Thread Settings 中的 onenet 软件包中需对设备 ID、身份验证信息、API 密钥、产品 ID、及主/产品 APIKEY 这几个关
13、键参数进行配置,OneNET 软件包配置如图 4 所示,验证通过后最终成功连接到云平台。4 系统测试OneNET 云平台的管理界面如图 5 所示,从图中可知当前温度、湿度及光照度的值。光照数据流如图 6 所示,系统以 2min 为周期上传一次温湿度及光照数据,以采集光照度为例,从图中标号可知采集频率正确。当光照度低于阈值时,如图中标号所示,当前光照值为 0 时,则自动开启补光灯,如图 7 所示。同理,当湿度高于阈值时,则开启风机。另外,云平台通过下发命令功能手动控制风机和补光灯的开与关,如图 8 所示。5 结束语基于 RT-Thread 的智慧农业大棚监控系统通过OneNET 云平台实现远程监
14、控,并且实时采集传感器数据并与风机、补光灯等执行器进行联动,为管理人员提供精准数据以提高种植产量。另外,系统对 RTOS 资源进行合理规划,应用线程及信号量完成数据的传输能够有效提高系统响应速度,如为更好地满足大棚的监测需求,进一步完善系统功能,后期只需通过线程的管理即可增加其它传感器,降低开发难度8。参考文献1 丁飞,吴飞,艾成万,等.基于 OneNET 平台的环境监测系统设计与实现J.南京邮电大学学报(自然科学版),2018,38(04):24-29.2 廖建尚.基于物联网的温室大棚环境监控系统设计方法 J.农业工程学报,2016,32(11):233-243.3 李睿欣,姚磊,谢伟鸿.基
15、于 NB-IoT 的多功能农业大棚监测及控制系统设计 J.农业装备与车辆工程,2021,59(05):72-75.4 卢嫚,袁志军.基于 OneNet 云平台的智能监控系统设计 J.单片机与嵌入式系统应用,2022,22(07):34-37.5 侯杰林,张青春,符骏.基于 OneNet 平台的水质远程监测系统设计 J.淮阴工学院学报,2016,25(03):10-13.6 余兆成,杨光友,谢松.基于 oneNET 的大棚温湿度远程监测系统 J.中国农机化学报,2019,40(02):180-185.7 胡智,刘竹林,王慧.基于 OneNET 平台的物联网农业监测系统设计J.农业技术与装备,2020(12):24-25.8 孙璐,郑淏.基于物联网的农业温室大棚监控系统设计 J.南方农业,2021,15(14):218-219.作者简介 谢莹(1986-),女,福建省龙岩市人。大学本科学历,闽西职业技术学院,讲师。研究方向为物联网应用技术、电子信息工程技术。图 8:云平台的下发命令功能