引言
长期以来,中国农业发展较为落后,科学技术对农业生产的贡献率较低。随着物联网技术的发展,农业智能化时代逐步到来。经过对陕西省蒲城县等农业基地的多次实地考察,发现存在着农业自动化程度低、无法远程监控、增产因素难以把控等问题,因此对大棚内作物的生长状况进行实时监控十分必要。本系统以分布式传感器节点、NB-IoT数据链、云端服务器为关键组分,设计了具有远端监控作物生长状态,调节环境参数等功能的智能农业辅助控制系统。
1 系统设计
本系统整体可分为4部分:第1部分是以单片机(MCU)和NB-IoT模块为核心的节点主体;第2部分是以透传云、服务器为核心的远程分析及数据传输系统;第3部分是包括DHT11温湿度传感器、CCS811二氧化碳传感器、BH1750光照度传感器等定制化外置传感器和继电器、电磁阀等控制器;第4部分是树莓派微型电脑和NB-IoT模块节点以及摄像头等数据量较大的传感器。树莓派上可读取摄像头拍摄画面,运行本地分析程序,将分析结果通过NB-IoT上传至透传云。整体系统框架图见图1。
通过引入视觉分析,使用动态阈值离散化和FCN(全卷积神经网络)等语义分割技术对棚区木耳的长势进行动态追踪,有效解决了当前采摘效率较低的问题。将传感器和中心节点模块化,用户也可通过选装相关配件、传感器来选择相关服务。通过对农作物生长状况历史记录分析,系统可半监督学习作物生长全过程的最优环境参数,对整个生长周期有更全面的了解和调整,从而有效实时地监测大棚内作物的生长状况,并自动作出相应调整,真正实现智能农业生产。
1.1 系统控制算法
系统在安装后,节点向服务器进行注册,发送安装的传感器和控制器的种类和个数。接着初始化用户界面,显示各个传感器和控制器的状态,储存各传感器的历史数据表格,以供用户在图形化界面上选择自动控制的流程和条件。服务器根据各节点的运算能力及接入的传感器和控制器,将每个控制流程平均分布加载到各节点。最后对NB-IoT两次唤醒之间的休眠间隔进行配置,并使之实现同步唤醒。当NB-IoT休眠时,不进行通讯,各节点和服务器独立运行。需要发送的数据自动存入缓冲区,等待NB-IoT唤醒后再进行发送。设定控制算法流程示意图见图2。
1.2 系统工作过程
节点将接收到的传感器数据输入到控制中进行计算,得出控制指令,并将得出的控制指令存入缓冲区等待发送。再读取各个传感器,将数据储存至缓冲区等待上传。若数据超过报警上下限则强制唤醒NB-IoT,向服务器发送报警信息;反之则进入低功耗模式,等待NB-IoT模块定时唤醒,以减小功耗。
服务器通过分析历史数据,结合基地中心上传的长势数据,得出目前状态的种植方案,更新控制过程的各个参数。待节点的NB-IoT唤醒后,各节点向服务器上传最新传感器数据,在服务器上更新控制参数,进而向其他节点发送控制指令(或接收其他节点发来的控制指令)。从其他节点接收本节点内控制算法所需要的数据。最后结束一次工作循环,使NB-IoT休眠。
2 系统功能实现
2.1 硬件部分
2.1.1 节点探针模块
采用STM32F103C8T6作为微控制器(MCU),其功能强大且价格低廉。将每块单片机封装成一个监测“探针”,置于大棚中的监测点处,实现对大棚内的空气温湿度、光照强度和二氧化碳浓度的实时记录,并将数据上传至上位机,以便农业工作人员依据实地情况及时作出处理。
2.1.2 温湿度检测模块
温湿度测量采用数字传感器DHT11,该传感器依靠单总线协议与MCU(单片机)进行通信。在未接收主机发送的开始信号时,传感器处于超低能耗状态,尽可能地节省消耗。同时它应用了专用的数字模块采集技术和温湿度传感技术,可确保高的测量可靠性与长期稳定性。DHT11单总线协议时序图见图3。
2.1.3 光照强度检测模块
光照强度测量采用数字型光强度传感器BH1750,它具有较高的分辨率,利用它可探测到变化范围在1~65535 lx内的光强数据。传感器有6种分辨率模式可供选择,基于对实际情况的分析,采用了连续H分辨率模式,该模式工作在11 lx分辨率下,一次测量时长约为120 ms。依照芯片对应的通信时序图,我们编写了基于I 2 C通信协议的使用程序。I 2 C协议时序图见图4。
2.1.4 二氧化碳浓度检测模块
二氧化碳浓度是农业生产中一项较为重要的参数,在考虑了工作性能、实际需求、传感器体积、成本等多个方面之后,最终确定使用Cambridge CMOS Sensors公司生产的超低功耗微型气体传感器CCS811。
2.2 软件部分
2.2.1 服务器搭建
本系统通过租用云服务器将NB-IoT采集的数据保存下来,进行数据管理。通过浏览器打开我们的web端界面,输入对应的NB-IoT设备ID,可实现web端与NB-IoT设备的连接。web端程序监测NB-IoT的实时情况,一旦NB-IoT采集的数据更新,即可立即获取最新的大棚数据。这里同样通过程序连接NB-IoT模块,利用自定义函数来获取账号下的大棚数据信息。获取的数据分别对应着大棚号、节点号、棚内温度(℃),空气湿度(%)、光照强度(lx)以及二氧化碳浓度。
为了方便数据的管理,我们使用关系型数据库管理系统MySQL,存储数据信息。通过建立独立数据库,在库内为每个大棚单独建表,各自存储对应的数据,表的数量可根据当前状况进行增添或删减,利于后期项目管理。当节点有需要时,服务器可回归分析历史记录,得出对当前情况最有利的参数值。
在ODBC驱动的辅助下,实现了JavaScript和MySQL数据库的连接,当JavaScript获取NB-IoT更新的数据时,数据即可有序存入库中。
2.2.2 用户界面实现
为了实现直观显示用户所有设备状态及关键数据,远程控制大棚设备运作等功能,界面每个账户下的设备在首页以卡片形式展示,用户可看到各个设备所监测指标的数值及当前设备的在线状态。用户在界面点击单个卡片便可进入详情页面,查看该设备上的具体数据及图表化形象展示。
配置适配器MyFragmentPagerAdapter,创建ViewHolder 并定义item点击回调接口。用TabLayout控件,设置监听并重写onTabSelected方法。利用Adapter实现各个Fragment切换,并用RecyclerView来实现在页面中添加列表式的item,同样需要配置适配器RvAdapter。每个item配置但单独的xml文件。各个item点击的效果由item_selector.xml来实现。
利用Android下的广播机制,通过自定义的UsrCloudClient、UsrCloudClientService等Java类,来连接NB-IoT设备并进行实时数据更新与获取。
2.2.3 作物长势分析系统实现
本系统通过网络摄像头对图像进行采集后,先对图像进行语义分割。进而采用FCN(全卷积网络)对语义进 行分割,通过预先划分区域的图像数据集训练后,可对任意场景和角度将作物区域进行分割。相比传统的(Mask)蒙版划分适应性更强,可靠性更高。典型FCN网络架构见图5。
-
单片机
+关注
关注
6036文章
44556浏览量
634990 -
控制系统
+关注
关注
41文章
6611浏览量
110594 -
NB-IoT
+关注
关注
412文章
1447浏览量
184515
发布评论请先 登录
相关推荐
评论