(淮阴师范学院 数学科学学院,江苏 淮安 223300)
对于蔬菜大棚来说,棚内蔬菜的生长与温度息息相关,因此蔬菜大棚最重要的一个管理因素就是温度控制.温度太低,蔬菜就会被冻死或则停止生长,温度过高同样也会影响蔬菜的生长发育和产量,所以蔬菜大棚温度掌控至关重要.目前我国北方大部分农村地区有很多的蔬菜大棚规模种植区,这种农村种植区域一般都是以农户为单位组成的,每家农户大约有1~4个蔬菜温室大棚,在蔬菜大棚里安放水银温度计,靠人工观测温度,然后通过手动打开和关闭通风口来调节棚内温度.虽然目前市场上有很多的蔬菜大棚温度控制系统[1],此类系统结构复杂,一般采用具有大功率的电加热装置或其他投资较大的设备.因此这类系统的安装和使用成本很高,一般的农户是承担不起的,故而极少使用.由于天气的影响蔬菜大棚内的温度变化是很迅速的,而蔬菜作物在不同的生长时期对温度的要求也是很苛刻的,如果棚内温度过高或过低来不及及时处理,不仅影响蔬菜的生长发育,又易诱发病害,最终导致作物减产,造成经济损失.蔬菜大棚大都在村外的农田远离居住地,种植户由于某些原因不能时时在现场观测温度,致使棚里温度发生异常,没有来得及处理造成损失的情况经常发生.因此为了适应大多数普通农户的需求,使农户在投资很小的情况下解决这一问题,本文以低成本的无线收发芯片A7302A和A7201A为核心设计出无线温度传感器终端,利用现有的GSM网络,设计出了一套组网简单、安装使用成本极低的蔬菜大棚温度监测报警系统.
本系统主要由无线温度传感器、无线数据采集模块和GSM短信传输模块构成的中心站(以下简称中心站)组成,原理框图如图1所示.每个中心站可以同时监测32个大棚的温度数据,每个棚内最多可以安装8个无线温度传感器,即每个中心站能检测和处理最多256无线温度传感器的温度信息.这样多个用户可以共用一个中心站,故每户的使用成本很低.
为了便于用户安装使用,无线温度传感器采用电池供电.中心站数据处理量大且任务较为繁重,故整体功耗较大,所以采用外接电源适配器供电.
系统的工作原理是:无线温度传感器根据需要分散安装在大棚内部,按照设定时间间隔采集棚内的温度数据,并把温度数据通过无线方式上传至数据采集基站.基站根据约定协议对数据进行处理分类,定时把各户的大棚内的温度数据通过GSM网络以短信的形式分别发送至对应农户的手机中.若大棚内温度超过或低于设定温度,中心站则立即向农户手机发送温度数据进行报警,及时通知农户进行处理.
图1 监测报警系统原理框图
无线温度传感器原理框图如图2所示.温度采集部分选用DS18B20[2-3]温度传感芯片,该芯片是美国DALLAS公司生产的单线数字温度传感器,具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可以直接将温度信号转化成为串行数字信号输出供单片机进行处理.采用该数字式温度传感器可以大大提高温度测量的可靠性、降低了功耗、缩小了体积.
图2 无线温度传感器原理框图
无线射频部分采用中国台湾笙科电子生产的无线射频控制芯片A7302A[4],该芯片是一颗高度集成的ASK/FSK发射芯片,很低的功耗,少许设置以后内建的控制时序自动使A7302A进入运行状态,使得该芯片易于使用和省电.A7302A 支持硬件引脚控制和SPI控制接口,用户能使用引脚SPIS以选择接口模式.为了获得更灵活的配置和控制故采用SPI模式,单片机PIC16F627A与A7302A采用SPI接口通讯,引脚SPIS接VDD即可使能SPI模式.433MHz是我们国家不用申请的无线发射接收频率,可直接使用,因此要把频率设置在433MHz的频点内.在SPI模式下寄存器0[4]用于设置发射频率和晶振频率.发射频率计算公式为:FRF=FCrystal*N/2R,其中R值取决于寄存器0的晶振频率选择位R[1:0][4].晶振选用13.56MHz时,R=16,R[1: 0]=[01].N值取决于寄存器0中NB和NA的值,因此可以通过改变NB和NA的值,就可以得到不同的发射频率,在大的蔬菜大棚种植区域,可以把不同的中心站及其管理的无线温度传感器设置成不同的无线频率,使其相互隔离运行.对于A7201A芯片,N=(16*NB)+NA其中:NB=46~144,NA=0~15.设置NB=63,NA=15,所以接收频率:FRF=FCrystal*N/2R=13.56MHz*(16*63+15)/32=433.49625MHz.通过设置寄存器1[4]可以控制A7302A的工作状态,本系统对A7302A设置为:调制方式FSK,射频频带433MHZ,待机时晶振停止,禁止时钟输出,最大发射功率.
单片机使用美国微芯(Microchip)科技公司生产的,采用纳瓦技术的18 引脚8位CMOS 闪存单片机PIC16F627A[5-6].该款单片机具有1024字节的FLASH程序存储器,128字节EEPROM数据保存期40年,1个异步收发器USART,带有可编程的片上参考电压的2路模拟比较器.可工作在8种不同的振荡模式,具有优秀的低功耗功能.当电压为2.0V 时,待机电流典型值为100nA,看门狗定时器电流典型值为1μA,频率为32.768 kHz时Timer1 振荡器电流值为1.2 μA.工作电压3.0V时,从休眠状态唤醒的典型值4 μs.无线温度传感器采用电池供电,为了实现设备的低功耗,本系统中单片机PIC16F627A使用如下设置:采用软件模拟SPI口连结A7302A,对其进行配置.采用异步收发器USART发送数据,也作为信息设置端口与电脑串行口(COM口)连接进行参数设置.使能Timer1外部晶振,晶振采用32.768KHz.禁止看门狗,采用2MHz外部XT晶振.A7302A无线射频电路见图3.
图3 A7302A无线射频电路
数据采集和GSM传输基站(中心站)原理框图如图4所示.无线射频部分采用中国台湾笙科电子生产的一颗高集成度ASK/FSK射频接收器A7201A[7],该芯片用于315/434MHz与A7302A 配对使用.
图4 中心站原理框图
同样单片机STC12C5A08PWM与A7201A采用SPI接口通讯,引脚SPIS接VDD即可使能SPI模式.在SPI模式下寄存器0用于射频频率和晶振频率设置,具体设置与A7302A计算公式相同,不同的是NB与NA值在写入A7201A的寄存器0时要转化成1的补码形式.通过设置寄存器1[7]可以控制A7201A的工作状态,对于本系统对A7201A设置为:开启自动增益控制,选择高端频带,禁止时钟输出,最小中频滤波器带宽,射频频带434MHZ,调制方式FSK,通过引脚控制芯片使能.A7201A无线射频电路见图5.
图5 A7201A无线射频电路
单片机采用宏晶科技生产的STC12LE5A08S2[8],该单片机采用增强型8051内核,比普通的8051快8~12倍;1280字节片内RAM数据存储器,完全满足中心站数据处理的要求;具有2个全双工异步串行通讯接口(UART),一个与A7201A连接,另一个与嵌入式GSM模块连接,同时也可以作为中心站信息设置端口与电脑串行口(COM口)连接进行参数设置;具有高速SPI串行通讯端口与A7201A连接.另外该单片机为国产,用于本系统具有很高的性价比.
GSM短信模块通讯采用ZWG-01DP[9]嵌式模块.该模块是广州致远电子有限公司出品的一款嵌入式GSM短信模块.它具有小巧的体积和灵活的应用方式,可以通过异步串口,非常方便的嵌入到用户的设备中,该模块同时提供配置串口和相应配置软件,使用便捷.
由于A7302A和A7201A为单纯的RF芯片,不会对传送的数据做处理.如果传送的数据中出现连续多个比特位为“0”或为“1”,在接收端容易引起位漂移造成接收数据错误[10].针对这个缺点,因此采用了FSK调制方式和通过异步串行口(UART)传送数据,因为FSK模式在接收端输出的数据较为稳定.加上异步串行口每发送一个字节的数,都要有一个起始位和停止位,所以连续的“0”和“1”不多于8个.因此在较高的传送速率下,有很高的可靠性.为了进一步增加传输的可靠性,制定以下传送规则.传送数据帧格式见表1.
表1 数据帧格式
在传送数据前发送一串“0”和“1”相间的数据作为前导码,作用是稳定接收端,增加接收灵敏度[11],比如0x55、0xAA等.识别码作用是用于接收端识别数据的开头,最好也是由不连续的“0”和“1”组成,且不能和前导码相同.数据区格式见表2.
表2 数据区格式
数据区第一个字节中心站ID是表示该无线传感器属于哪个中心站管理,只有ID号相同的中心站才会处理该信息.温度高低字节为无线传感器采集的温度数据,其中温度高字节最高位bit7为“1”时,表示无线传感器电池的电压已低于警戒电压,通知用户及时更换电池.无线温度传感器ID 的高5位(bit7~bit3)是该传感器所在大棚的编号,低3位(bit2~bit0)是传感器所在大棚内的编号.中心站ID和无线温度传感器ID的信息,可以用专门编写的设置软件,通过电脑异步串行口(COM口)[12]连接无线温度传感器的设置端口进行设置,无线温度传感器上的单片机将设置的信息存放在自身的EEPROM内,掉电也不会丢失.CRC8用于中心站检测接收的数据是否正确.无线传感器采集完温度数据按照以上的规则向中心站发送数据,中心站接收数据按照规则,分离出有效数据,通过计算和比对CRC8校验码,检测数据的正确性,对则处理,错则丢弃.
无线温度传感器软件设计时主要考虑两点.首先,要把功耗做到最低,延长电池使用寿命;其次,理论上一个中心站最多能同时监测255个无线温度传感器,因此在这种多点对单点无线通信系统中,要避免多个无线温度传感器同时发送数据时产生的相互干扰,即防止数据碰撞.所以为了解决这两个问题在软件设计时采用的方法是:增加温度数据采集和发射数据时间间隔,每次发送完数据后在固定间隔的基础上再增加一个随机时间段,才进入下次发射.时间间隔选择不能太短,太短功耗就会增加,也不能太长,太长系统数据实时性就会降低.根据本系统的特点和实践经验,采用基本时间间隔为60s,延时时间单位0.1s,随机数范围0~2047,共2048个发射点,大大减少数据碰撞的概率.因此最小发射间隔为60s,最大发射间隔60s+0.1s*2048=264.8s.
无线温度传感器上电,MCU完成自身初始化和配置完无线发射芯片A7302A后,读取温度数据,判断完电池状态后将数据发送出去,发送完毕后设置A7302A进入睡眠模式,以降低功耗,然后生成一个0~2047范围的随机数,根据这个随机数设置Timer1的计时时间,允许Timer1中断和全局中断,启动Timer1定时器,最后MCU进入睡眠模式.在MCU进入休眠模式前,所有I/O 引脚都应该保持为VDD 或VSS 电平,不要有外部电路通过I/O 引脚和比较器消耗电流,同时应禁止VREF和一切没有使用的外设,将电流消耗降至最低.此时MCU外部晶体停振,只有Timer1定时器处于工作状态,当Timer1定时器定时时间到,引发中断从而唤醒MCU进入工作模式,开始新的一轮数据采集与发送.参数设置采用上电检测设置开关状态,如果是高电平则进入参数设置状态,否则进入正常工作状态.程序主流程图见图6.
中心站的主要任务是实时接收数据和处理数据,以及利用GSM网络向指定用户手机以短信的形式发送信息.中心站MCU的异步串行口采用中断的方式接收A7201A输出的数据,该串行口中断的优先级设为最高,并且接收数据缓冲区位于片内RAM数据区.串行口中断服务程序只需将接收到的数据存放于接收数据缓冲区,并修改数据指针,不对数据进行处理.数据处理在主循环中执行,处理完的温度数据以大棚编号和棚内编号2维的形式分别存放至扩展存储器XRAM中.最后大棚编号也要与农户手机号码,形成一一对应关系.中心站参数的设置,同样采用上电检测设置开关状态,如果是高电平则进入参数设置状态,否则进入正常工作状态.程序主流程图见图7.
图6 无线温度传感器程序流程图
图7 中心站程序流程图
通过模拟实验,系统能够实现设计目标.本系统投资少、安装灵活、使用简单、运行成本低,非常适用于广大农村以农户为单位的蔬菜大棚规模种植区使用.同时也可应用于其他一些需要进行远程分布式、多点温度监测报警的场合.
[1]张玉峰.基于单片机的蔬菜大棚温度控系统制设计[J].农机化研究,2010(3):150-153.
[2]魏俊淦,占超,田建学.DS18B20在温度监测系统中的应用[J].仪表技术,2008(8):3-6.
[3]居荣,郭怡倩.DS18B20在温控系统中的应用[J].农机化研究,2005(1):224-226.
[4]AMIC Communication Corporation.A7302A/B Preliminary Sub 1GHz ASK/FSK Transmitter[EB/OL].http://www.micrelchip.com,2008-12-4.
[5]Microchip Technology Incorporation.PIC16F627A/628A/648A数据手册[EB/OL].http://www.microchip.com,2009-10-30.
[6]Jasio Di,Wilmshurst Ibrahim.PIC微控制器技术及应用[M].江宁康,朱安定,译.北京:电子工业出版社,2009:101-116.
[7]AMIC Communication Corporation.A7201A/B UHF ASK/FSK Receiver[EB/OL].http://www.micrelchip.com,2008-11-04.
[8]宏晶科技.STC12C5A60S2系列单片机器件手册[EB/OL].http://www.stcmcu.com,2010-04-21.
[9]广州致远电子有限公司.ZWG-03A.智能短信收发设备产品用户手册[EB/OL].http://www.zlgmcu.com,2008-06-26.
[10]AMIC Communication Corporation.AMICCOM RF Chip-A7302 Reference code[EB/OL].http://www.micrelchip.com,2008-05-14.
[11]AMIC Communication Corporation.AMICCOM RF Chip-A7201 Reference code[EB/OL].http://www.micrelchip.com,2008-5-14.
[12]求实科技.单片机控制技术与工程实践[M].北京:人民邮电出版社,2005:131-148.