钱春阳,王建春,李凤菊,孙海波,刘 伟,杜彦芳,孙 想
(1.天津市农业科学院 信息研究所,天津300192;2.天津市农业生物技术研究中心,天津300384;3.北京农业信息技术研究中心,北京100097)
现代农业已经发展成为从数字化到网络化再到智能化的高级阶段,各类农业智能设备与传感器的接入为农业数字化提供了多元的数据、内容和相关推理依据,有助于解决基于农业复杂环境和主体行为的复杂问题,也为下一代智能农业技术产品研发应用提供强有力的支撑。
农业生产往往受到地理位置、基础设施、经济条件等多方面限制,从而影响农业生产相关数据的采集以及农业生产信息化进程。本设计采用新一代网络(5G)的重要分支NB-IOT技术,并结合高性能FRAM数据存储技术,意在解决农业生产信息化的最后一公里问题,为着力建设以农业物联网和精准装备为重点的农业全程信息化提供技术支撑。
设施温室智能环境采集系统硬件构成如图1所示,以低功耗微处理器MSP430FR5x为核心,通过接口电路实现与外围模块之间的连接;NB-IOT模块实现传感器与服务器之间的数据传输;采用拨码开关实现设备编号和传感器种类设置,开放的传感器接口,可实现具有数字、模拟及脉冲信号传感器连接的随机组合;电源采用[10]1节大容量磷酸铁锂电池为系统供电,采用XL4005电源芯片分别为每通道传感器提供电源,有效减少电源引脚空置对系统功耗的影响。
图1 设施温室智能环境采集系统硬件结构
FRAM技术是将微小的铁电晶体集成进电容内,通过施加电场使铁电晶体的电极化在两个稳定状态之间转变,使得FRAM产品能够像快速非易失性RAM那样工作,以实现高或低的逻辑状态,保证掉电后仍能将数据保存完好。
在设施温室环境中,通过实时分析环境数据变化规律(例如高温高湿条件下的通风与遮阳、呼吸作用条件下对二氧化碳的及时补充、阴天雾霾条件下的增温补光等)作为优化设施种植、提效增产的重要依据。通过使用FRAM来存储系统改写频繁的设施环境监测数据,实时的报警信息,以及其他配置参数,以保证需要频繁读写和快速调用的数据的存储。除此之外,用于设施温室的智能控制设备,往往需要使用电池供电,避免受到温室电力设施条件的限制,与此同时,能够降低系统功耗,延长使用时间和使用寿命,与传统的采用FLASH作为存储器具有明显优势,FRAM与FLASH存储的区别见表1。可以看出,FRAM具有高速读写、低功耗、长寿命的优点,采用防篡改保护,提高数据安全性。由于不需要轮询来完成读写操作,程序代码量可以减少,FRAM不需要代码做损耗均衡,大大减少对于芯片的损害。
处理器单元选择TI公司的MSP430FR5x系列作为系统的主控单元。该控制芯片是超低功耗(ULP)嵌入FRAM的MCU,16位RISC架构高达24 MHz时钟,工作电压范围2.0~3.6 V,多达16 KB非易失存储器工作模式,活动模式下典型功耗为103 μA/3 V,系统状态保持下功耗是6.4 μA/3 V,掉电模式功耗是5.9 μA/3 V。
表1 FRAM与FLASH存储技术比较
随着移动通信网络的蓬勃发展,其业务范围和应用市场悄然发生了改变,一方面高速率、高宽带、设计复杂的高速路径来满足对于大流量的需求,一方面低功耗、设计简单、信令简化的低速路径成为万物互联的一个重要分支。
NB-IoT(窄带物联网)技术最大的优势在于广覆盖、强连接、低功耗、低成本。其构建于蜂窝网络,采用授权频谱,基于运营商现有基础设施,大部分都可以重用,所以无论在数据安全性、建网成本、产业链和网络覆盖上来讲,相对于非授权频谱的LoRa、Sigfox都有很强的优越性。同时,对于在主芯片、外围器件、PCB以及应用场景方面的特殊设计,让NB-IOT模块在功耗和成本方面相较现有的LPWAN通信技术标准(如LoRa、Sigfox)在竞争中显示出更大的优势,非常适合应用在智能抄表、智慧交通、可穿戴设备、智能建筑、智慧物流以及智慧农业等领域。
采用低功耗UDP/CoAP/UDC协议通讯模块NB73,支持板载天线和内置芯片SIM卡,减少体积,降低设计复杂度,提高稳定性。该模块对内部的嵌入式软件和AT指令进行了易用性优化,提供透明传输UDP模式,提供CoAP通讯组件,严格的重传机制,保障数据发出必答,不达报警,能够提供透传云服务。
该模块能够实现串口到网络的双向数据透明传输(图2),与传统2G网络相比,为节省电量,模块随时可以向服务器发送数据,而服务器对于数据实行选择性接收,在无数据交互时模块进入PSM状态,通过定时激活网络获取数据降低系统功耗。工作电压为DC 3.5~4.2 V,波特率可调,峰值功耗为0.5 A/3.8 V,休眠功耗小于20 μA/3.8 V,自定义注册包并支持心跳包。
图2 透传模式网络接入流程
数据采集模块软件设计流程主要涉及系统硬件初始化、定时休眠唤醒、传感器数据采集、数据存储和发送4个步骤进行轮询。本设计采用LPM3.5低功耗模式,采用该模式时唤醒时间约为0.5 μA,CPU处于关闭状态,不适用与SMCLK、MCLK、ACLK相关的外设,系统进入休眠状态后,通过RTC时间唤醒系统,进行后续操作,采用该模式时I总=I晶+I漏+I电源+Irtc≈400 μA。
通过RTC唤醒系统后,进入传感器数据采集操作,通过与传感器探头进行通讯,并判断数据有效性后,将测量数据存入FRAM块中,同时发送无线网络通道应答指令,若当前无线传感网络正常则将FRAM块中的数据取出打包并发送至上位机,若当前无线网络不正常则连续侦听,直至正常发送,若到下一周期之前均无法正常发送,则数据保存在FRAM块中并休眠,进入下一个采集周期时将上一周期滞留在FRAM中的数据一并发送(图3)。
数据汇转的作用是将设备采集到的数据与远程服务器相连接,作为物联网体系架构当中的重要一环,使用C++ Builder进行开发,结合Mysql数据库,作为传输层与应用层之间的桥梁,实现数据的无线上传和储存功能。
3.2.1 初始化 (1)配置数据库连接
配置数据库变量见表2。
(2)进行串口连接
使用victorcomm控件接收数据,通过YbCommDevice1->PortParams设置串口参数,通过YbCommDevice1->Active打开串口、YbCommDevice1->Write写数据、YbCommDevice1->Read读数据。串口接收数据具有1帧53字节、9600波特率,由下位机传感器设定数据上传周期。
图3 系统流程图
数据类型变量名数据库服务器地址UnicodeStringm_data_source数据库表UnicodeStringm_initial_catalog登陆数据库的用户名UnicodeStringm_user_id登陆数据库的密码UnicodeStringm_user_pass-word连接到数据库的字符串UnicodeStringconnectstr连接到UDP连接的本地ipUnicodeStringus_local_ip连接到UDP连接的本地端口UnicodeStringus_local_port
(3)获取数据库初始化参数伪代码如下,
void__fastcall TF_main::FormCreate(TObject*Sender)
{
…
Fr_udp_rs->MyC->Server=m_data_source;
Fr_udp_rs->MyC->Port=3306;
Fr_udp_rs->MyC->Username=m_user_id;
Fr_udp_rs->MyC->Password=m_user_password;
try
{Fr_udp_rs->MyC->Connected=true;}
catch (Exception &exception)
{ShowMessage("无法正确连接到数据库或是数据库服务器没有运行!");return ;}
ShowMessage("数据库成功连接!");
Edit_server_ip->Text=us_local_ip;
Edit_server_port->Text=us_local_port;
}
TF_main::dedao_zuihou_zhuangtai(UnicodeString us_cpuid) {…} //传感器当前状态
TF_main::chuli_received_Package(UnicodeString us_recv) {…}//处理收到的数据包
TF_main::cunchu_zhuangtai(unsigned char get_data_buf[],int ilen) {…}//处理收到的数据包并保存
TF_main::chuli_send_Package(UnicodeString ust_wifi_ip,unsigned short ust_cpu_id,UnicodeString us_shuzhi) {…}//处理发送的数据包
3.2.2 处理收到的数据包并保存 从传感器传来的数据具有如下帧结构,程序通过帧头和帧尾识别数据包,并通过帧类型对数据包进行分类存储和执行,目标器件地址和来源器件地址分别采用自动识别主控芯片出厂ID,以保证地址的唯一性,40字节的数据长度包含空气温度、空气湿度、光照度、土壤温度、土壤湿度数据及类别标志,以便在数据库的相应位置进行存储(表3)。
表3 帧结构
设备测试于2018年5月15~20日在天津市农科院试验基地进行。首先,配置本地虚拟服务器IP地址和端口号,通过网络调试助手测试数据接收情况,然后使用自主开发的服务器监听程序接收软件进行测试,通过设定工作串口频率、设定公网IP地址、UDP端口号、心跳包频率和注册包字段后,启动网络并开启检测设备;硬件部分数据设定每30分钟采集空气温度、空气湿度、光照度、土壤温度、土壤湿度数据,用于检测设施温室生产环境相关数据,累计采集测试数据793组,均正常接收,无数据包丢失,为设施温室内的合理灌溉提供指导依据。
采用FRAM和NB-IOT架构搭建设施温室智能环境监测系统,能够合理处置滞留数据,并有效保证数据采集上传的连贯性,同时确保掉电数据不会丢失;NB-IOT网络环境搭建,能够适应在农业智慧生产条件下低频率、小数据量的数据传输,有效减少数据传输过程产生的费用,同时从整体上降低系统功耗(图4)。
图4 数据测试及实物图