APP下载

基于STM32的温室远程监测和控制系统

2015-06-23杨欢欢秦会斌金步平

无线电通信技术 2015年5期
关键词:温湿度继电器温室

杨欢欢,秦会斌,金步平

(杭州电子科技大学 电子信息学院,浙江 杭州 310018)

基于STM32的温室远程监测和控制系统

杨欢欢,秦会斌,金步平

(杭州电子科技大学 电子信息学院,浙江 杭州 310018)

针对目前温室控制中的网络化程度不足,设计了以测量和控制温室内温湿度为目的温室远程监测和控制系统。系统采用STM32单片机作为温室内的控制器,通过温湿度传感器DHT11测量温室内的空气温湿度,并通过继电器模块控制温室内的加热系统和湿帘系统,实现对温室内温湿度的调节。在STM32控制器的设计中加入ENC28J60模块,并在STM32上进行LwIP协议的移植,使STM32控制器可以接入网络。利用MFC编写的远程控制软件可以通过TCP/IP协议与STM32进行通信,进行数据的接收、处理以及存储,实现对温室内温湿度的远程监测和控制。

STM32控制器;温湿度传感器;LwIP协议;温室远程控制

0 引言

传统农业需要消耗大量的劳动力,生产效率低,急需要向现代农业的转变。温室技术作为现代农业的重要代表将作物的生长从自然环境独立出来,形成一个可以进行人工控制的半封闭系统[1-3]。我国从20世纪90年代开始向温室技术发达的荷兰、美国等国学习,但是由于我国农业生产条件与国外情况不同,不能直接照搬国外的模式[4,5],而需要研发适合我国各地区生产条件的温室控制系统。

针对上述情况设计了一套温室的远程监测和控制系统。由于在各个环境因素中,空气温湿度对作物的生长具有较大的影响,所以系统选择对温室内空气温湿度进行监测和控制。传统的51系列单片机控制系统运算能力以及功能扩展能力差,PLC控制系统成本太高,所以选择了外设丰富、扩展性强以及成本较低的STM32单片机作为温室内的控制器。

1 系统总体设计

文中开发了一套基于STM32的温室远程监测和控制系统。通过利用STM32单片机作为温室内的控制器以及MFC编写的远程控制软件可以实现对温室内温湿度远程监测和控制。在STM32控制器设计中加入ENC28J60模块,使控制器可以接入网络,同时在STM32的程序设计中移植LwIP协议,使控制器可以通过TCP/IP协议与远程控制软件进行数据通信。STM32控制器直接控制DHT11传感器和继电器模块,DHT11负责测量温室内温湿度,继电器模块负责控制温室内的加热系统和湿帘系统,改变温室内的温湿度。在VC 6.0平台下利用MFC设计了简单易用的远程控制界面,可以远程监测温室内的温湿度,并对温室内设备进行控制,将控制过程中产生的数据保存到数据库中,系统整体框架如图1所示。

图1 系统整体框图

2 系统硬件设计

2.1 核心处理器的选择

STM32控制器是基于Cortex-M3内核的处理器,具有功耗低、中断延时时间短、门数少、成本低和调试简单等众多优点[6]。STM32在运行模式时即使最大时钟下,电流也仅有27 mA。在待机模式下功耗更是极低,典型的耗电电流仅为2 μA。STM32各个模式之间切换速度很快,从待机模式切换到运行状态只需55 μS,从停机模式下唤醒仅需7 μS,大大提高了单片机的性能。STM32的工作电压为2.0~3.6 V,设有上电/掉电复位电路,具有可编程电压监测器,最高72 MHz的工作频率。

STM32具有丰富的外围设备,内置64 K的静态RAM和512K字节的闪存存储器,多达112个GPIO端口,可以按要求配置成输入或输出各四种模式,共有7路通用DMA,负责存储器之间以及存储器和外设之间的直接数据传输,内嵌3个12位的模拟/数字转换器,1条I2C总线连接控制器和外围设备,2条SPI总线,负责一个主设备和多个从设备之间进行数据交换,可以外接以太网接口[7],3个USART串口,1个SDIO接口进行存储器扩展以及1个JTAG接口可以用于连接计算机进行程序调试。

2.2 温湿度传感器的选择

对于温室内的空气温湿度测量,本系统采用的是DHT11传感器。DHT11中集成了数字采集模块,包括1个测温元件和1个电阻式感湿元件,它的抗干扰能力强、价格便宜、体积小、功耗低,使用方便,工作电压为3.5 V[8]。其主要参数如表1所示。

表1 DHT11主要参数

DHT11采用的是单总线数据格式,可以通过一个引脚进行数据的发送和命令的接收,本次设计采用STM32的GPIO_Pin_7引脚来连接DHT11。在STM32中央控制器向DHT11发送开始信号以后,DHT11从低功耗模式唤醒,进入高速模式状态,并对STM32的开始信号进行响应,双方确认以后,DHT11把测得的数据封装在数据包中发送到STM32控制器,发送完以后会触发采集信号继续进行数据的采集。在STM32中央控制器向DHT11发送结束信号后,DHT11停止测量数据,重新进入低功耗模式,DHT11和STM32之间通信一次的时间最大为3 ms左右。

2.3 继电器模块的设计

设计中执行设备的状态是“二位”形式,即只有“打开”和“关闭”2种状态,可以通过继电器进行控制。本次设计采用的是电磁继电器,型号为欧姆龙G2R-1A-E。电磁继电器的组成部分有铁芯、线圈、衔铁和簧片,利用电磁效应通过在线圈两端加电压产生电流继而产生电磁力,对衔铁产生吸引力,控制开关。本次设计为每个执行设备连接一个电磁继电器。

2.4 网络接口设计

设计中采用STM32外接以太网控制器ENC28J60与远程控制软件进行通信。ENC28J60是美国微芯科技公司开发的,共有28个引脚,体积小、使用方便,价格便宜[9]。该芯片带有SPI接口,可以通过SPI接口与STM32控制器进行连接。ENC28J60的工作频率是25 MHz,工作电压为3.3 V。ENC28J60中的存储器以静态RAM方式实现。STM32通过使用SPI接口对ENC28J60芯片的寄存器写入控制参数和接收数据,实现以太网功能。

3 系统软件设计

3.1 LwIP协议的移植

LwIP协议是一种主要应用于嵌入式系统中的轻量级的TCP/IP协议。LwIP协议源码开放,在保持了TCP/IP协议的基本功能的前提下代码尽量精简、占用内存小、方便裁剪和调试[10,11]。LwIP在STM32上的移植工作主要包含2方面内容:一是修改文件ethernetif.c和文件sys_arch.c;二是编写网络驱动程序。

ethernetif.c文件是LwIP协议栈和STM32网络驱动程序之间的接口,主要工作就是对文件中的函数进行修改及编写。其中low_level_init函数设定了网卡的物理地址和每帧最大传输字节数该函数对netif结构体的MAC成员neitif->hwaddr赋值为macaddress数组的值,对netif->flags赋值使其可以使用广播地址、使能ARP功能。low_level_output函数负责向上层发送数据,以pbuf结构体作为参数,利用for循环调用memcpy函数把q->payload链表中的数据都取出来存放在数组中,最后调用驱动函数将数据发送出去。

sys_arch.c文件在移植时只需要对各个功能函数进行修改即可。sys_mbox_new是使用μC/OS-Ⅱ提供的消息队列机制创建一个空的消息队列,sys_ mbox_free函数的功能是进行队列的删除工作,当该队列中还有未被取出的消息时,该函数会报错,并向应用程序发出通知。sys_mbox_post函数用于将消息发送至消息队列中,如果消息没有发送,该函数会进入阻塞状态。sys_mbox_trypost用于尝试将某个消息发送至消息队列中,如果消息被成功发送返回成功,否则返回失败。sys_arch_mbox_fetch用于从消息队列中取出一条消息,若调用该函数的线程在指定时间内未取到消息会发生阻塞,当超过指定时间以后恢复至就绪状态。sys_arch_mbox_tryfetch尝试从消息队列中取出消息。

设计中采用ENC28J60在LwIP中用netif结构体来描述网络接口,通过对netif结构体中的各个成员进行赋值来实现网。netif结构体中定义了指向下个网络接口的指针、IP地址、网络掩码、网关以及用于实现以太网接收、发送数据包的函数等内容[12]。在驱动中所要完成的任务就是实现网络的初始化、数据的接收发送以及终端等任务,最终通过硬件接口函数可以实现对硬件的驱动。

3.2 测量程序的设计

DHT11发送的数据包大小为40 bit,包括测得的空气温度的整数部分8 bit,空气温度小数部分为8 bit,空气湿度整数部分8 bit,空气湿度小数部分8 bit,还有8 bit是进行数据校验,大小为前面4个字节的和。

当DHT11进行接收主机命令和向主机发送数据时,GPIO_Pin_7引脚分别被配置成和上拉输入模式和推挽输入模式。其中STM32从DHT11读取数据的程序如下所示。

其中参数temp表示测量的温度值,范围为0℃~50℃,参数humi表示测量的湿度值,范围为20%~90%。DHT11_Rst是DHT11的复位函数,DHT11_Check函数检测DHT11是否连接好,若连接好则进行数据的读取。

3.3 控制程序的设计

加热系统和湿帘系统通过继电器控制通断,两个继电器分别通过GPIOB的7和8两个引脚进行控制。引脚的输出模式配置为通用推挽输出模式,速率配置为2 MHz。GPIO_SetBits函数使引脚输出高电平,继电器导通,控制相应的执行设备运行,GPIO_ResetBits函数使引脚输出低电平,将继电器断开,控制相应的执行设备关闭。STM32中的程序执行过程如图2所示。

图2 STM32程序执行过程

3.4 远程控制软件的设计

文中设计的远程控制软件是在美国微软公司发行的VC 6.0平台上利用MFC进行开发的[13],设计的主控制界面如图3所示。

图3 主控制界面

从图3中可以看出主控界面主要包括实时监测模块和设备控制模块两大部分,实时监测模块主要包括对温室内温湿度进行上限和下限的设置,以及STM32控制器传送的实时数据的显示,可以选择将测得的数据保存到数据库中,并进行历史数据的查询。设备控制模块的主要功能是对温室内进行环境调节的执行设备进行控制,可以选择手动控制和自动控制2种模式。远程控制软件与STM32F103VET6中央控制器之间采用TCP/IP协议进行通信,规定了设备之间进行数据传输的标准格式。2个设备在进行数据传输时会建立起一条虚拟的网络通道,数据和控制命令封装成数据包的形式在这条通道上进行传输。远程控制软件与STM32通信的过程如图4所示。

图4 远程控制软件与STM32通信过程

设计中采用SQL Sever 2008数据库保存系统运行过程中产生的温室环境数据和执行设备控制信息等数据。用户可以对数据库中的数据进行保存、查询、删除和维护操作,准确快速地获取所需要的数据。

4 结束语

将设计好的程序烧写到STM32单片机中,调试成功以后将STM32通过ENC28J60接入网络。在远程控制软件上通过IP地址和端口号与STM32建立连接,在控制软件上可以直接获取温室内的温湿度数据,并可以设置温湿度的上下限范围,当温湿度超过设置的范围时,可以直接在控制软件上控制加热系统和湿帘系统的通断,来改变温室内的温湿度,达到适合作物生长的环境。

文中利用STM32单片机作为温室内的控制器,实现了通过网络对温室内温湿度的远程测量和控制。由于温室内的CO2浓度和光照强度对植物的生长也有影响,所以可以对系统进行功能扩展,控制更多的环境变量,使系统可以更好地营造植物生长的环境。

[1]汪建春,胡晓进.智能温室的远程控制设计[J].计算机光盘软件与应用,2013(03):179-180.

[2]郭炳辉,李进京,江启峰.温室智能测控仪发展现状与前景展望[J].农业装备技术,2003(03):15-17.

[3]杨学坤,蒋晓,诸刚.温室环境控制技术的研究现状与发展趋势[J].中国农机化学报,2013(4):16-18.

[4]谭静芳,刘成勋.浅谈温室自动控制技术的发展概况[J].农业装备技术,2005(5):21-23.

[5]高静.温室大棚环境监控系统研究[J].中国新技术新产品,2014(2):150-154.

[6]刘军.例说STM32[M].北京:北京航空航天大学出版社,2011:2-8.

[7]殷云志,解建伟.基于传感器协作网络的信号监测技术研究[J].无线电工程,2014,44(7):15-18.

[8]张冬林,李鑫,戴梅,等.基于DHT11的低成本蚕室温湿度自动控制系统的设计[J].现代农业科技,2010(18):14-15.

[9]陈奎,吴爱国,游洲.用ENC28J60和FPGA设计通用以太网控制器[J].电子产品世界,2005(21):94-95.

[10]梁凯鹏,王建伟,肖刚,等.面向服务的网络管理运控系统设计与实现[J].无线电工程,2011,41(2):7-9,15.

[11]张齐,劳炽元.轻量级协议栈LWIP的分析与改进[J].计算机工程与设计,2010.31(10):2169-2171.

[12]崔弘珂.一种空间环境下的TCP传输技术研究[J].无线电通信技术,2011,37(4):21-24.

[13]辛长安,王颜国.Visual C++权威剖析—MFC的原理、机制与开发实例[M].北京:清华大学出版社,2008:8-10.

Design of Remote Monitoring and Control System for Greenhouse Based on STM32

YANG Huan-huan,QIN Hui-bin,JIN Bu-ping
(School of Electronic Information,HangzhouDianzi University,Hangzhou Zhejiang 310018,China)

According to the low networking degree of greenhouse control,a remote monitoring and control system is designed to measure and control the temperature and humidity in greenhouse.This system uses the STM32 as the controller,uses the temperature and humidity sensor DHT11 to measure temperature and humidity and the relay to control the heating and cooling system in the greenhouse,which achieve temperature and humidity regulation in the greenhouse.The ENC28J60 module is added into the design of STM32 controller,which can access the network by transplanting LwIP protocol.The remote control software designed by MFC communicates with the STM32 by TCP/IP protocol for data reception,processing and storage to achieve remote monitoring and control of the temperature and humidity in the greenhouse.

STM32 controller;temperature and humidity sensor;LwIP protocol;remote control

TP277

A

1003-3114(2015)05-77-4

10.3969/j.issn.1003-3114.2015.05.21

杨欢欢,秦会斌,金步平.基于STM32的温室远程监测和控制系统[J].无线电通信技术,2015,41(5):77-80.

2015-04-20

杨欢欢(1988—),男,硕士研究生,主要研究方向:嵌入式开发与应用。秦会斌(1961—),男,教授,博士生导师,主要研究方向:新型电子器件及ASIC设计。

猜你喜欢

温湿度继电器温室
现代温室羊肚菌栽培技术
苍松温室 苍松灌溉
苍松温室 苍松灌溉
基于AT89C51的数字型蚕用温湿度计的设计
继电器控制及诊断在电动汽车动力电池包的应用
便携式继电器测试台的研制和应用
基于DSP的多路温湿度监测系统
计算机联锁复示继电器电路改进方案探讨
可以避免一个温室化的地球吗?
基于温湿度控制的天气预测装置