【学习笔记】模拟设计(7):基于MSP430的温室环境数据采集和控制系统设计
2016年微型机与应用第07期
作者:李勇,张以帅,唐广耀,赖惠鸽
摘要:在分析了传统温湿度采集设备的基础上,提出了一种以MSP430单片机为控制器,利用温湿度传感器DHT11实现对温室环境数据进行采集的系统。通过键盘和LCD1602液晶显示屏实现人机交互,利用nRF905无线收发模块将采集的数据发送到上位机,上位机通过VB和ACCESS实现对温湿度的实时监测和历史数据的保存。实验结果表明,该系统结构简单、成本较低,克服了传统采集设备布线复杂、维护困难等缺陷,而且可以实现远程监控。
0引言
在温室大棚中,温湿度对农作物的生长发育过程有着至关重要的影响[12]。根据已知的科学常识将温湿度控制在合适的范围内是人们一直追求的目标。本文用MSP430单片机作为控制器,通过DHT11实现温湿度的采集,将采集的数据经过控制器处理之后显示到LCD1602显示屏,同时也可以用键盘将温湿度设置到理想的区间,一旦实际采集到的温湿度低于或高于设置的区间,就会启动报警装置来通知相关人员。同时该系统利用无线射频模块nRF905实现温室环境的远程监控[3]。由于MSP430单片机的低功耗性能[4],使得该系统具有较强的省电性能。
1系统整体设计
如图1所示,系统以16位控制器MSP430为主控制器,加上显示模块、键盘模块、数据采集模块、报警装置、nRF905无线通信模块和上位机PC组成。其中,上位机软件负责数据的保存和远程监控。
1.1单片机主控制器
对于采集数据的处理及显示、按键的不断扫描以及同上位机的通信等功能, MSP430单片机起着极其重要的作用。MSP430是TI公司设计的一款16位超低功耗处理器,CPU采用的是16位精简指令集[5],由于它的低功耗特性使其特别适合于通过外部电池供电的长时间工作场合。本系统需要实现快速处理温湿度传感器采集的数据、将处理结果显示到显示屏上、不断地扫描键盘引起的中断事件以及与上位机进行通信等功能,所以选用MSP430单片机,这样能更快地处理多事件,同时可以及时对事件做出响应。
1.2上位机与下位机之间的通信
考虑到布线复杂、维护困难及成本等原因[6],本文选用nRF905无线收发模块。nRF905主要负责将MSP430单片机处理后的数据发送给上位机,同时将上位机的控制指令传到MSP430单片机来控制单片机外围配置接口。nRF905是挪威NORDIC公司设计的一款无线收发模块[78],主要工作在433 MHz、868 MHz等频段,与MSP430单片机一样,由于其在功耗方面的优良性能和抗干扰能力强等原因使其在众多无线模块中脱颖而出。
1.3主控制器与DHT11之间的单总线通信
DHT11传感器采用单总线的通信协议来读写数据。单总线通信就是通过一根线实现指令和数据的传输,在平时休眠状态时该条线被上拉电阻置成高电平,一旦芯片收到初始化的指令就开始工作。芯片在传输数据的过程中,控制器首先读取挂载的设备的序列号,然后通过发送读写指令来控制此设备。使用DHT11时,首先给DHT11发送初始化指令,使DHT11做好读数据的准备,接着直接根据DHT11的时序发送读写指令来实现对温湿度的采集[9]。由于只挂载了一个DHT11设备,所以忽略了读设备的序列号。
2系统硬件电路设计
该控制系统分为上位机和下位机两部分,下位机电路主要包括温湿度采集电路、液晶显示电路、键盘电路、报警电路和nRF905收发模块等。上位机主要是nRF905与PC的接口电路。
2.1下位机电路设计
如图2所示,上电后,MSP430单片机作为主控器,首先发送读数据指令给DHT11温湿度传感器,DHT11收到MSP430单片机发送的读数据指令后将采集的数据传给单片机,单片机对读到的数据进行处理后显示到液晶显示屏上,同时将数据通过nRF905无线收发模块发送出去;在程序执行的每个周期中,不断扫描键盘电路是否被按下,如果检测到有按键按下,则响应对应的按键事件。在本文中,按键主要是用来设置最大温湿度和最小温湿度。当采集的实际温湿度大于或者小于设置的最大温湿度或最小温湿度时,启动报警电路来通知相关工作人员。
2.2上位机电路设计
如图3所示,下位机控制器MSP430将采集的数据处理之后通过nRF905收发模块发送出去,上位机的nRF905模块接收到数据之后经过89C51对数据作进一步的处理,然后通过RS232发送到PC上。由于PC不能直接与nRF905模块连接,所以采用89C51作为中间转换器件,将数据先保存到89C51中,然后再通过RS232串口总线发送给PC端,同时PC端也可以将用户的命令通过此电路传给下位机。
3系统软件设计
3.1下位机主程序流程图
下位机程序设计主要包括DHT11温湿度传感器的驱图2下位机硬件电路图
动程序、键盘扫描程序、向nRF905发送数据的程序、液晶显示程序等部分,主程序流程图如图4所示。系统上电后,主程序开始向DHT11发送读数据指令,DHT11收到指令后将
采集的数据上传给主控制器;主控制器将数据进行处理之后显示到液晶显示屏并发送给nRF905无线收发模块,接着扫描键盘是否有按下,如果有,则处理相应的中断事件,否则继续给DHT11发送读指令,重复以上过程。
3.2上位机软件设计
上位机软件设计包括将nRF905接收到的数据进行显示,同时实现对下位机的监控,所以根据需求,采用VB和ACCESS实现上述对数据的显示和保存等功能。VB是微软公司开发的专门面向结构化设计的容易让开发者上手的程序设计语言[10],由于它良好的图形用户界面和对各种数据库等接口的兼容特性,赢得了开发者青睐。如图5所示,通过此界面可以显示当前的温湿度,也可以查看历史报表和历史曲线等。
为了验证该系统的可靠性和精度,在实验室对该系统进行了测试。结果表明,上位机能实时地接收到来自下位机的温湿度数据;上位机接收到的温湿度数据与实验室实际温湿度相差不大;系统具有一定的可靠性,能适应一定环境的变化要求。图6是上位机接收到的数据形成的曲线图。
参考文献
[1] 夏志华.基于单片机温度控制系统的研究与实现[J].煤炭技术,2013,32(2):191193
图6温湿度曲线图[2] 郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009.
[3] 王海宁.基于单片机的温度控制系统的研究[D].合肥:合肥工业大学,2008.
[4] 周素茵,章云,曾斌.无线通信技术在我国现代温室中的应用综述[J].传感器与微系统,2001,30(2):1417.
[5] 程世利.现代温室环境控制[J].农业装备技术,2004,30(6):79
[6] 沈建华,杨艳琴.MSP430系列16位超低功耗单片机原理与实现[M].北京:北京航空航天大学出版社,2008.
[7] 代阳.基于MSP430和RS485的分布式的风机检测系统设计[J].机电一体化,2013,19(4):6872.
[8] 齐虹,徐志,陈冲,等.基于nRF905的短距离无线数据传输系统的设计[J].福州大学学报,2010(1):6468.
[9] 张叶茂,张建功,张广洲,等.基于nRF905模块的无线通信直流电场测量系统设计[J].高电压技术.2012,38(11):1014.
[10] 孟德欣,谢婷,王先花.VB程序设计[M].北京.清华大学出版社,2009.