基于STM32与3G技术的植物工厂远程监测系统
2016-05-11黄天宇黄叶琨郭嘉欣
黄天宇 黄叶琨 郭嘉欣
【摘要】 植物工厂代表着未来农业的发展方向,是农业产业化进程中吸收应用高新技术成果最具活力和潜力的领域之一。植物工厂的发展方向是大型化和家庭化,然而不论何种发展方向,都要求我们可以从客户端中远程实时的检测植物工厂的植物的生长状态与环境参数情况。所以基于3G通讯技术,我们设计了一套远程监测系统,并给出了软硬件的设计方案。实验结果证明,对植物工厂可以起到长期稳定的监测效果。
【关键词】 植物工厂 3G STM32
引言:近年来国家越来越重视农业生产问题,而植物工厂则是国际上公认的设施农业最高级的发展阶段,是一种技术高度密集,不受或很少受自然条件制约的全新生产方式。目前植物工厂的检测方式一般都是在植物工厂内部使用显示屏幕方式直接呈现,然而对于未来大规模植物工厂或者家庭植物工厂而言[1],用户更需要的是远程就可以得知植物工厂内植物的生长情况与环境参数如何。正是由于这种需求,所以我们设计了本系统。
一、系统框架
本系统由感知层子系统,传输层子系统与应用层子系统构成。其中感知层子系统与传输层子系统主要由下位机硬件构成,而应用层子系统则是通过C++语言进行编程的客户端。总体框架如图1所示。
二、感知层子系统
本子系统硬件由STM32F103ZET6单片机作为主控芯片,采用了DHT11大气温湿度传感器,BH1750FVI光照强度传感器,SMS-II-100土壤温湿度传感器与MG811二氧化碳浓度传感器。利用单片机对传感器检测到的数字量或模拟量进行采集和转化,以便后续通过传输层子系统发送到上位机进行处理。
1、主控制器模块。本系统采用的控制单元是意法半导体公司的STM32单片机,它具有32位处理器,时钟频率达到72MHZ,具有丰富的外设资源,是专为高性能,低功耗,低成本的嵌入式设备而设计的芯片,较强的运算能力足以达到本系统的要求。它主要负责采集和处理传感器数据并通过3G模块将数据打包传送至上位机中。
2、多传感器检测模块。1)DHT11温湿度传感器。DHT11数字温湿度传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。该传感器测量湿度的量程为20~90% RH,精度为±5% RH,测量温度量程为0~50 ℃,精度为±2℃,工作电压为3.5~5,5V,工作电流平均为0.5mA,分辨率为8位,采样周期为1s。值得注意的是,用MCU对其进行数据传输的时候要注意这个传感器的时序。[2]2)BH1750FVI光照强度传感器。BH1750FVI为不区分光源的光照强度传感器,他一种基于I2C编程的集成电路传感器,可以实时的反应植物工厂中的光照强度。此传感器的精度可调,且最高精度为0.5lx,量程为1~65535lx,同时此传感器内置了一个16位的A/D转换器。[3]3)SMS-II-100土壤温湿度传感器。SMS-II-100土壤温湿度传感器来自大连祺峰科技公司,具有功耗低,测量精度高,防水耐腐蚀等特性,特别适合用于农田或大棚中土壤温湿度的测量。输出方式有两种可选,0~20mA的电流输出方式或者0~2V的电压输出方式,前者适用于较大阻抗负载,后者适用于小负载。其水分测量范围为0~50%或者0到100%,误差小于5%,温度测量范围为-40~80摄氏度,误差小于0.4摄氏度。4)MG811二氧化碳浓度传感器。MG811二氧化碳传感器使用双路信号输出,包括TTL高低电平信号与模拟量信号输出,对二氧化碳有良好的选择性和很高的灵敏度,量程为0到10000ppm,具有快速的响应恢复特性,并且输出时自带温度补偿。缺点是线性度较差,需要用软件编程进行拟合。[4]
三、传输层子系统
1、硬件设计。本设计中采用芯讯通公司(SIMCom)的WCDMA/HSDPA模块SIM5320e,其支持下行速率达3.6Mbps,并且内置GPS和A-GPS,性价比非常高。SIM5320e模块与STM32的物理连接为STM32串口二的TXD与SIM5320E的RXD相连,STM32串口二的RXD与SIM5320e的TXD相连。
2、程序设计。SIM5320e与STM32之间通过串口发送和接受AT指令进行通讯。首先发送AT指令“AT+ CGSOCKCONT=1,IP,3gnet”,然后发送“AT+TCPCONNECT=服务器端公网IP,端口号”使之连接上服务器端,注意此处连接时需要公网的IP地址。发送数据包时候,发送“AT+TCPWRITE=n”,其中n为要发送的字符串长度,接着直接发送相应长度的字符串就可以将数据内容打包发出了。发送的数据需要加上帧头打包成数据包的形式发出,这是为了在服务器端进行解包的时候分辨出该数据是哪一个环境参数的数据,以便存放在相应的数据库中。程序设计流程如图2所示。
四、应用层子系统
4.1 程序设计
Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通讯。通过建立Socket连接,可以为通信的双方提供通道。Socket具有数据丢包率低,编程简单,可移植性高等优点。在客户端中首先声明一个Socket类的的对象,然后调用lisen()函数进行实时监听,一旦有客户端向服务器发送连接请求便启用accpet()函数与之相连,用receive()函数从下位机中进行数据的获取。接着使用ADO的数据库编程手法,首先初始化OLE/COM环境,为访问ADO接口做准备,然后创建Connection对象,接着为Adoconn类添加GetRecordSet的函数,目的是为了打开并获得记录集,之后为Adconn类添加ExecteSQL函数,目的是用来执行SQL函数,最后设置并退出记录集。在receive()函数获取到相应数据包并解包后,利用GetRecordSet()函数声明一个myrecord的对象,然后用AddNew()和Update()函数进行添加与刷新数据库。
4.2 服务端软件运行
服务器端软件运行流程图如图三所示:
五、 结语
本系统设计中,主要通过3G无线传输技术和多种传感器实现了对远程植物工厂的环境数据和植物状态的实时监测,可以长期稳定运行。与传统监测方式相比更加灵活方便,与2G等网络方式相比,提高了网络传输速率,稳定性和数据传输量都有所增加。
参 考 文 献
[1] 杨其长,张成波,植物工厂概论M].北京:中国农业科学技术出版社,2005.
[2]韩丹翱,王菲. DHT11数字式温湿度传感器的应用性研究[J]. 电子设计工程,2013,13:83-85+88.
[3]王海燕,陈贵斌,熊志成. 基于BH1750芯片的智能窗帘控制系统设[J]. 现代建筑电气,2015,03:48-50+63.
[4]陈树成,杨志勇,王科. 基于MG811探头的二氧化碳采集系统设计[J]. 单片机与嵌入式系统应用,2014,01:47-50.