粮库无线温度监测系统的设计与实现

2015-04-13 19:00邹卫华肖化
现代电子技术 2015年1期

邹卫华 肖化

摘 要: 针对粮库有线温度监测布线复杂的缺点,设计并实现了粮库无线温度监测系统。系统采用MSP430F149作为MCU,结合温度传感器DS18B20与nRF24L01+射频芯片完成温度的采集与数据的无线传输,同时利用C#.NET完成了上位机监测软件的开发。测试结果表明,系统能够实时地监测粮库的温度状况,并且测量精度高,符合预期设计结果,具有一定的实用价值。

关键词: 无线温度监测; MSP430F149; DS18B20; nRF24L01+; C#.NET

中图分类号: TN934.8+5; TP277 文献标识码: A 文章编号: 1004?373X(2015)01?0093?03

Abstract: Because of the wiring complexity of the wired temperature monitoring system for grain depot, a wireless temperature monitoring system was designed and implemented. In the system, MSP430F149 is adopted as MCU, temperature sensor DS18B20 and nRF24L01+ RF chip are combined to complete the temperature acquisition and wireless data transmission. The development of PC monitoring software was achieved by means of C#.NET. The testing results show that the system can implement the high?accuracy real?time monitoring of temperature status in grain depot. The design result is in line with expectation. The system has a certain practical value.

Keywords: wireless temperature monitoring; MSP430F149; DS18B20; nRF24L01+; C#.NET

0 引 言

粮食安全作为一个全球性话题,历来受到我国政府的高度重视。粮食的安全储藏是国家为了备战和预防灾荒的重要战略决策,而粮库储粮监测技术又是科学保粮的关键技术之一[1]。影响粮食储存的因素众多,外界的环境因素是其中的重要方面。为了保证存放在粮仓中的粮食不致腐烂变质,就必须使粮仓内的温度、湿度保持在一定的范围以内[2]。因此,为保证粮库粮食的有效存储,对温度进行实时监测极为重要。在日常的粮库温度检测中,可以采用人工定期检测[3]的方法。然而这种方法效率低,并且不能实现实时检测。而有线监测虽然可以做到实时检测,但是,粮库面积大且布局分散,导致布线困难[4]。采用无线方式则可以解决上述问题,本文在此背景下完成了粮库无线温度监测系统的设计。

1 系统总体框架

粮库无线温度监测系统主要包括PC上位机、下位机及监测点电路。监测点电路完成温度采集及发送,主要包括MCU、无线发送电路、温度传感器及液晶显示。下位机完成温度数据的接收、显示,最后通过USB转串口将数据上传给PC上位机监测端显示。PC上位机负责实时监测,上位机监测软件采用C#.NET编写。系统总体框图如图1所示。

2 主要硬件电路设计

2.1 监测点电路

整个监测点电路的核心是MCU。考虑到要兼顾速度与低功耗,选用德州仪器(TI)MSP430系列16位超低功耗混合信号处理器MSP430F149。MSP430系列单片机的电源电压采用1.8~3.6 V低电压,RAM数据保持方式下耗电[5]电流仅0.1 μА。nRF24L01是一款工作在2.4~2.5 GHz国际通用ISM频段的单片无线收发器芯片[6],可通过SPI接口配置其工作状态为发射或接收状态。系统采用nRF24L01+完成数据的发送和接收功能,nRF24L01+在nRF24L01提供的1 Mb/s或2 Mb/s的无线速率基础上,增加了250 Kb/s的通信速率,功能与nRF24L01类似,在器件的操作上没有太大差异。

温度传感器采用Dallas公司的数字式温度传感器DS18B20。DS18B20 是“单总线”器件,只需一根线与单片机相连即可完成全部操作,具有体积小、分辨率高的特点。其测量温度范围[7]为-55~125 ℃,在-10~85 ℃的范围内,测量精度可达±0.5 ℃,满足粮库实际温度范围-30~60 ℃的测量[8]需要。液晶屏采用5 V供电的LCD1602,可以显示32个字符,满足系统要求。由于输入电压为5 V,而部分芯片工作电压为3.3 V,因此选用AMS1117?3.3 V将电压降至3.3 V后给后续电路使用。测量电路采用模块化的设计方法,各功能既相互独立又便于相互组合。图2所示为监测点电路,限于篇幅,这里只给出了主要的I/O连接。为了提高发射效率,nRF24L01+采用了外接天线的方法。

2.2 下位机电路

下位机电路完成温度数据的接收,同时经过单片机的UART口送给PC端上位机,从而实时地在上位机上显示监测点的温度。下位机电路同样配置了液晶显示,可以在没有PC上位机的情况下显示监测点的温度,使系统更加灵活。为了能够与USB接口连接,采用CH340T实现USB转串口功能,整个电路只需一根USB线即可实现与PC上位机相连。nRF24L01+兼具有收发功能,下位机电路在监测点电路的基础上移除了温度传感器电路,同时增加了MCU与上位机通信电路,其余部分与监测点电路相同。这里只给出了MCU与上位机通信电路,如图3所示。

3 软件设计

3.1 监测点程序设计

监测点程序主要完成温度数据的采集、显示并完成数据的发送,其程序流程图如图4所示。系统初始化完成时钟的配置、与液晶LCD1602和nRF24L01+操作有关的I/O设置。MCU与nRF24L01+通过SPI进行双向通信,在nRF24L01+初始化中,设置发射地址与接收地址相同,地址宽度为5 B。为提高系统性能,降低功耗,将芯片工作模式配置为Enhanced ShockBurstTM。通过配置寄存器CONFIG设置芯片为发送TX模式,信道工作频率为2.4 GHz,频道0作为允许的接收地址并且频道0自动应答ACK允许,当发送数据完成后立刻转为接收状态。通过RF_SETUP寄存器将芯片的数据传输率设为1 Mb/s,工作在最大发射功率0 dBm下。

MCU通过单总线访问DS18B20时,必须按照初始化、ROM操作命令、存贮器操作命令、处理数据的格式进行,由于监测节点只挂了一根DS18B20,因此初始化后可执行跳过ROM命令。DS18B20可通过编程将测量精度设置为9 b,10 b,11 b,12 b,分别对应0.5,0.25,0.125,0.062 5的分辨率,本文将测量精度设置为12 b。

3.2 下位机程序设计

下位机完成温度数据的接收与显示,并将数据通过UART口传送至PC上位机,整个下位机程序流程图如图5所示。初始化操作与监测点发射程序相类似,程序不断检测空中是否有数据,若接收到数据则进行CRC校验,然后MCU从RX_FIFO读出温度数据送至液晶显示,并上传至PC上位机。由于DS18B20温度数据只有两个字节,因此接收有效数据宽度设置为2 B,接收灵敏度设置为-85 dBm。

3.3 上位机监测软件设计

上位机监测软件提供更为友好的人机交互环境,在PC端可以方便地监测粮库温度,并进行其他有关的操作。上位机监测软件采用C#语言基于.NET框架编写,开发环境为Microsoft Visual Studio 2010 Ultimate。

C#是Microsoft在2000年7月推出.NET Framework的第1版时提供的一种全新语言[9],从C/C++语言派生而来,具有简洁易学的特点。C#是面向对象的语言,同时进一步提供了对面向组件(Component Oriented)编程的支持。.NET Framework是支持生成和运行下一代应用程序和XML Web Services的内部Windows组件[10],[.NET] Framework可以创建Windows应用程序、Web应用程序、Web服务和其他各种类型的应用程序。上位机监测软件在Visual C#环境下,基于.NET Framework 4.0创建Windows Forms Application。由于上位机通过USB转串口的方式实时地与单片机进行通信,因此需要串口编程。在Visual C#环境下,提供了功能强大的串口组件serialPort,在serialPort中可以方便地设置与串口通信有关的端口号PortName、波特率BaudRate、数据位DataBits、校验位Parity、停止位StopBits等,可以方便地完成串口的初始化操作。采用事件触发的方式,当检测到串口有数据时即进行读取,进行处理后在界面上显示监测点的温度值。设计好的上位机监测软件界面如图6所示,除了基本的实时温度监测功能外,还可进行温度报警设置,以便在超出设定范围时提醒管理者进行相应处理。

4 系统测试

在最大发射功率为0 dBm、接收灵敏度为-85 dBm条件下,搭建系统后进行测试。在约16 m2的室内,数据能够正确传输并无延时。在室外空旷的条件下,150 m范围内正确传输,延时约2~4 s,最大传输距离超过270 m,根据温度不能突变的特性,仍然满足温度实时监测的要求。上位机软件调试确认无误后通过Publish生成可发布的应用程序,软件在Windows XP 32位和Windows 7 64位系统上均进行了测试,测试结果表明,上位机软件在两种操作系统上均可良好地运行。

5 结 语

设计并实现了粮库无线温度监测系统,给出了总体方案、主要硬件原理图及软件设计流程。充分利用MSP430F149及收发一体芯片nRF24L01+的优势,结合功能强大的C#.NET完成了整个系统的设计。实际测试表明,系统能够完成温度实时监测的目标,系统灵活可扩展,具有一定的实用价值。

参考文献

[1] 王永志,刘媛媛.大型粮库的温湿度监测报警控制系统[J].农机化研究,2008(8):167?169.

[2] 石伟.粮库温度智能检测系统研究[D].武汉:华中科技大学,2004.

[3] 包长春,李志红,张立山,等.基于ZigBee技术的粮库监测系统设计[J].农业工程学报,2009,25(9):197?201.

[4] 衣翠平.基于无线传感器网络的粮库温湿度实时监控系统研究[D].长春:长春理工大学,2012.

[5] 沈建华,杨燕琴,翟骁曙.MSP430系列16位超低功耗单片机原理与应用[M].北京:清华大学出版社,2004.

[6] 谭辉.Nordic中短距离无线应用入门与实践[M].北京:北京航空航天大学出版社,2009.

[7] 何东坡,任贵波,韩春鹏,等.DS18B20在季冻土区公路路基温度场测量中的应用[J].电子技术应用,2010(4):48?50.

[8] 袁易君.基于nRF905粮库温湿度监测系统设计[J].低压电器,2009(14):40?42.

[9] WATSON K, NAGEL C. C#入门经典[M].齐立波,译.北京:清华大学出版社,2008.

[10] 崔群法,唐有明,王俊伟.Visual C# 2008从入门到精通[M].北京:电子工业出版社,2009.