基于单片机的粮仓温湿度多点无线监测系统设计 1.docx

上传人:b****6 文档编号:5087254 上传时间:2022-12-13 格式:DOCX 页数:24 大小:684.76KB
下载 相关 举报
基于单片机的粮仓温湿度多点无线监测系统设计 1.docx_第1页
第1页 / 共24页
基于单片机的粮仓温湿度多点无线监测系统设计 1.docx_第2页
第2页 / 共24页
基于单片机的粮仓温湿度多点无线监测系统设计 1.docx_第3页
第3页 / 共24页
基于单片机的粮仓温湿度多点无线监测系统设计 1.docx_第4页
第4页 / 共24页
基于单片机的粮仓温湿度多点无线监测系统设计 1.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于单片机的粮仓温湿度多点无线监测系统设计 1.docx

《基于单片机的粮仓温湿度多点无线监测系统设计 1.docx》由会员分享,可在线阅读,更多相关《基于单片机的粮仓温湿度多点无线监测系统设计 1.docx(24页珍藏版)》请在冰豆网上搜索。

基于单片机的粮仓温湿度多点无线监测系统设计 1.docx

基于单片机的粮仓温湿度多点无线监测系统设计1

 

本科毕业设计

基于单片机的粮仓温湿度多点无线监测系统设计

 

温湿度是一个非常重要的参数。

在工业、医疗、军事和生活等许多地方,都需要用到测温湿装置来监测温湿度。

传统直接布线测量不能满足要求,特别是在某些环境恶劣的工业环境和户外环境,通过直接布线测量不现实。

因此采用无线传输温湿度信息尤为必要。

目前有些设计能够实现无线温湿度监测,但价格过高是其最大的缺点。

在实际温湿度控制过程中既要求系统具有稳定性、实时性又需要降低功耗。

因此设计一种低功耗的无线温湿度监测系统很有意义。

本文提出一种针对无线数据传输问题的解决方案,该方案基于nRF24L01来设计无线温湿度采集系统。

该系统采用传统单片机ATmega16L和数字温湿度传感器AM2301来构成多点、实时的无线温湿度监测系统。

通过简单的无线通信协议,实现可靠性与功耗平衡,该系统能实现对温湿度的监测,是可以实现远程控制的无线温湿度监测系统。

该系统利用无线通信技术构建了分布式无线传感器网络,通过传感器节点实现温湿度信息的采集和传输,系统具有组网简单,维护方便,运行费用低等优点,能够实现可靠的无线数据传输。

可以应用于大型粮仓温湿度的监测。

关键字:

ATmega16AM2301无线传输nRF24L01

WirelessTemperatureandHumidityMonitoringSysteminBarn

ShiJianzhu

(CollegeofEngineering,SouthChinaAgriculturalUniversity,Guangzhou,China)

Abstract:

Temperatureandhumidityisaveryimportantparameter.Inmanyplaces,suchastheindustrial,medical,andmilitary,youneedthetemperatureandhumiditymeasurementdevicetomonitortemperatureandhumidity.Directwiringmeasurementdoesnotmeettherequirements,especiallyinsomeenvironments,suchas,harshindustrialenvironmentsandoutdoorenvironments.Therefore,thewirelesstransmissionoftemperatureandhumidityinformationisparticularlynecessary.

Atpresent,somedevicescanbeusedtomonitorwirelesstemperatureandhumidity,butthepriceisthebiggestdrawback,thepriceistoohigh.Thesystemmustbestable,real-timeandlowpowerconsumptioninactualcontrol.Therefore,thedesignofalow-powerconsumptionwirelesstemperatureandhumiditymonitoringsystemmakessense.Thispaperpresentsasolutionforwirelessdatatransmission,theprogramisbasedonthenRF24L01todesignthemonitorintsystemofwirelesstemperatureandhumidity.ThesystemusesthetraditionalmicrocontrollerATmega16anddigitaltemperatureandhumiditysensorAM2301toformmulti-point,real-timewirelesstemperatureandhumiditymonitoringsystem.Throughasimplewirelesscommunicationprotocols,bringaboutreliabilityandpowerbalance.Thesystemisaremotewirelesstemperatureandhumiditymonitoringsystem.

Thesystemuseswirelesscommunicationtechnologytobuildadistributedwirelesssensornetworks.Thetemperatureandhumiditydataacquisitionandtransmissionbasedonsensornodes,withasimplenetwork,easymaintenance,lowoperationcost.Thesystemcanbeappliedtoalargegranarytemperatureandhumiditymonitoring.

Keyword:

ATmega16AM2301WirelessTransmissionnRF24l01

华南农业大学本科生毕业设计成绩评定表

1前言

粮食是人类赖于生存不可或缺的物质基础,是人类从事各种活动的前提。

粮仓粮食的存储是否得当对国家的经济能否正常合理的运行有很大的影响。

受限制于以前的经济和科技水平,粮食的存储环境差,管理落后。

为此,合理地布置温湿度测量点,以便及时发现粮食的发热点、潮湿点,成为粮库管理的重中之重。

随着嵌入式技术,短距离无线通信技术、传感器网络技术等的不断发展,电子设备检测技术可以大大的降低粮仓的管理成本。

同时,现代化的粮食仓储系统对粮食的安全性也提出了更高的要求。

在粮仓管理过程中,湿度和温度是两个重要的控制指标,直接影响粮食的储存质量。

然而,传统的人工测试方法费时费力,效率低,且测试的温度及湿度误差大,随机性大(王明明等,2012);而有线方式的测温湿度系统存在着不稳定性,且布线复杂,线路容易老化,线路故障难以排查,设备重新布局需要重新布置等问题。

而无线方式的测温湿度系统不存在以上的这些问题,为此,采用无线实时的温湿度检测系统,对数据进行采集、装载、发送、并由终端对无线采集来的数据进行相应处理,以控制监测设备的运行情况,可大大的减少不必要的线路设备开支(张玉建,2012)。

本设计采用无线传感器网络技术,通过自组无线传感器网络实现一对多的通信,对粮仓内部环境进行监测。

由于每一个无线监测节点需长时间工作,对功率消耗十分敏感,为此,本系统采用低功耗无线传输芯片和超低功耗嵌入式处理器,组建实时的无线传感器监测网络,以实现对粮仓温湿度的网络化实时监测和报警。

2系统方案分析与选择论证

2.1系统最终方案

发送端:

由数字温湿度传感器AM2301,实时地采集当前的温湿度信息,经ATmega16L单片机分析处理后,通过模拟SPI接口控制无线射频模块nRF24L01装载温湿度信息,由无线射频模块nRF24L01发射给主机接收端并显示温湿度信息。

红外模块可用于监测各监测节点附近有无老鼠,试验中未做出。

接收端:

由nRF24L01无线射频模块接收终端采集过来的数据信息,经模拟SPI接口发给ATmega16L单片机,由ATmega16L单片机控制液晶LCD-TFT实时显示温湿度信息,并且显示报警温湿度上限值。

当温湿度过高或者过低时,TFT是否报警一行显示是并开始闪烁,蜂鸣器鸣叫,起报警作用,直到温湿度值恢复正常。

ATmega16L(发送端)

DHT11

温湿度传感器

红外模块

ISP

下载模块

NRF24L01

无线模块

LCD-TFT

显示模块

GSM

报警模块

蜂鸣器

ATmega128(接收端)

从机结构框图

主机结构框图

NRF24L01

无线模块

图1系统方框图

此系统为一对多的无线通信系统,多个从机发送端由传感器本地采集并且通过nRF24L01无线射频模块发送温湿度信息,一个主机通过nRF24L01无线射频模块的多个通道(最多6个,nRF24L01至多可开启6个通道接收数据)接收多个终端节点的温湿度信息,实时显示各终端节点温湿度信息,系统方框图如图1所示。

2.2系统方案设计

2.2.1主控芯片方案

方案一:

采用宏晶科技有限公司的STC90C52Rc单片机作为主控芯片。

此芯片为51类单片机增强版,价格便宜、易于操作,比较经济实惠。

方案二:

采用ATmega16L作为主控芯片。

此芯片是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。

由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾,且其跟51类单片机相比,具有超低功耗和内置晶振等特点。

考虑到此系统的复杂度,进行模数转换实现对温湿度的监测所需外围器件较多,监测节点电路板面积小,主控采用贴片封装。

从性能和实用性上考虑我们选择方案二。

2.2.2无线通信模块方案

方案一:

采用GSM(GlobalSystemforMobile)模块进行通信,GSM模块需要借助移动卫星或者手机卡,虽然能够远距离传输,但是其成本较大、且需要内置SIM(SubscriberIdentityModule)卡,通信过程中需要收费,后期成本较高。

方案二:

采用TI(德州仪器)生产的C2430无线通信模块,此模块采用Zigbee总线模式,传输速率可达250kbps,且内部集成高性能8051内核。

但是此模块价格较贵,且Zigbee协议相对较为复杂,实用性不高。

方案三:

采用nRF24L01无线射频模块进行通信,nRF24L01是挪威Nordic公司推出的单片射频收发芯片,工作于2.4~2.5GHzISM频段,抗干扰能力强,能耗非常低,满足多点通信和跳频通信需要。

当加定向天线后,在无障碍通信情况下能传输上千米的距离,而且价格较便宜,采用SPI总线通信模式电路简单,操作方便。

综合考虑各方面因素,采用方案三作为本系统的无线通信方案。

2.2.3温湿度传感器方案

方案一:

AD590是美国ANALOGDEVICES公司的单片集成两端感温电流源芯片,采用此芯片测量温度。

此器件测温精度高、电源电压范围宽,但须差分放大器放大和A/D转换,需要元器件多,且价格较贵。

采用湿敏电阻测量湿度信息,通过将湿敏电阻的电阻变化量放大并且通过模数转换为相对湿度数值。

此方法测相对湿度信息精度较差,也需要较多元器件。

方案二:

采用广州奥松有限公司生产的DHT11温湿度一体的数字传感器。

通过单片机等微处理器单总线的电路连接就能实时地采集本地温度和湿度信息。

功耗很低。

工作电压范围为3.5V~5.5V,可以直接和单片机的I/O口相连。

方案三:

采用广州奥松电子有限公司生产的AM2301温湿度一体的数字传感器。

它是电阻式感湿元件DHT11湿度传感器的升级版,具有高精度,低功耗、抗干扰能力强等优点。

其中采集温度的精度为

0.5

,采集相对湿度的精度为

3%。

外围电路简单,只需在数据口上拉一个5K欧电阻,便可直接和ATmega16L单片机的I/O口相连。

使用DHT11采用单总线的控制方式。

线路简单,编程容易,但是比AD590精度低。

AD590还需要其它辅助电路,线路复杂,编程难度大。

而AM2301外围电路简单,并且精度相比于DHT11高。

所以,考虑到电路的设计复杂度、系统的精度,功耗,还有本系统需多点通信,在成本考虑上,选择方案三,即用AM2301作为本系统的温湿度传感器。

2.2.4显示模块方案

方案一:

采用字符液晶LCD1602显示信息,LCD1602是一款比较通用的字符液晶模块,能显示字符和数字等信息,且价格便宜,容易控制。

方案二:

选择主控为ST7920驱动器的带字库的LCD12864来显示信息。

LCD12864是一款通用的液晶显示屏,能够显示常用的汉字及ASCII码,而且能够绘制图片,描点画线,设计成比较理想的结果,但考虑到监测节点较多,需显示的信息较多,而其最多只能显示四行信息。

方案三:

采用配置2.8寸的TFT-LCD即薄膜晶体管液晶显示器。

该模块的控制器为ILI9325,具有26万像素,320×240的分辨率,16位真彩显示。

可以清晰的显示各监测节点的信息,且其可以显示人性化界面,各节点信息以及报警上限温湿度值一目了然。

综合以上方案,选择了可显示人性化界面的TFT-LCD作为接收端的显示。

3主要芯片介绍和系统模块硬件设计

3.1ATmega16L-8AI单片机

图2单片机最小系统

单片机控制模块由ATmega16L最小系统组成,包括ATmega16L-8AI单片机(芯片内集成晶振电路)和复位电路。

单片机复位端低电平有效,系统上电后由RC充放电电路实现自动复位,也可短按复位按键S1实现手动复位(王卫星,2009)。

单片机最小系统如图2所示。

ATmega16L系列单片机管脚如图2所示。

本设计无线传感器模块控制接口为PB3~PB7以及PD2;下载程序采用ISP通信,采用USBISP下载器进行程序下载,其接口为PB5~PB7以及RST端口;RXD/P3.0和TXD/P3.1为串口通信端口,RXD用于读数据,TXD用于发送数据;监测端:

温湿度数据采集端口为PC0~PC7;接收端:

TFT彩屏接口为PC0~PC7和PA2~PA4。

3.2nRF24L01无线模块

3.2.1nRF24L01模块电路图

nRF24L01(张玉建,2012;刘靖等,2007)芯片是由NORDIC公司生产一款无线通信芯片,采用FSK调制方式,内部集成有NORDIC自己的EnhancedShortBurst协议。

可以实现点对点或是1对6的无线通信。

通信速度可以达到2Mb/s。

nRF24L01无线射频模块的电路图如图3所示。

图3nRF24L01模块电路图

3.2.2nRF24L01模块接口电路

图4单片机与无线模块通信及其电源转换电路图

nRF24L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM(IndustrialScientificMedical)频段。

内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。

nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。

表1nRF24L01模块引脚功能

管脚

功能

CE

工作模式,TX或者RX模式选择

CSN

SPI片选使能,低电平有效

SCK

SPI时钟

MOSI

SPI数据输入

MISO

SPI数据输出

IRQ

中断输出

VDD

电源1.9-3.6V输入

GND

nRF24L01无线射频模块的各引脚功能如表1所示。

图4所示为单片机与无线模块通信及其电源转换电路图,图中CE(ControlEnable)使能控制线,CSN(ChannelSequenceNumber)频道序号,MOSI(MasterOutSlaveIn)主机输出从机输入,MISO(MasterInSlaveOut)主机输入从机输出,SCK(SerialClock)串行时钟线,IRQ(InterruptRequest)中断请求位,分别跟ATmega16L的PB3~PB7以及PD2端口连接。

3.2.3nRF24L01模块供电电源

此无线射频模块需要的电源为1.9V~3.6V,故不能直接用5V电源供电,本系统中采用3.3V直流电源对无线射频模块供电,5V电源经LM1117芯片进行转换后即得到稳定的直流电源供给nRF24L01无线射频模块。

3.2.4nRF24L01模块工作模式

通过配置寄存器可将nRF241L01配置为发射、接收、空闲及掉电四种工作模式,如表2所示。

在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。

3.2.5nRF24L01模块工作原理

发射数据:

先将nRF24L01配置为发射模式,再把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区。

TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后置为高电平并保持至少10μs,延迟130μs后发射数据。

若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。

如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启)。

若重发次数达到上限,MAX_RT置高,TX FIFO中数据保留以便再次重发。

MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知ATmega16L。

最后发射成功时。

若CE为低,则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。

表2nRF24L01工作模式及配置

工作模式

PWR_UP

PRIM_RX

CE

FIFO寄存器状态

接收模式

1

1

1

数据在RX FIFO 寄存器中

发射模式

1

0

1

数据在TX FIFO 寄存器中

发射模式

1

0

下降沿

停留在发送模式,直至数据发送完

待机模式1

1

0

0

无数据传输

待机模式2

1

0

1

TX FIFO 为空

掉电

0

0

0

无数据传输

接收数据:

首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。

当接收方监测到有效的地址和CRC时,就将数据包存储在RX FIFO数据寄存器中,同时中断标志位RX_DR置高,IRQ变低,产生中断,进入中断服务子程序,通知单片机ATmega16L去取数据。

若此时自动应答开启,接收方则同时进入发射状态回传应答信号。

若自动应答未开启,则不进入发射状态。

最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。

3.2.6nRF24L01配置字

SPI口为同步串行通信接口,最大传输速率为10Mb/s,传输时先传送低位字节,再传送高位字节。

但针对单个字节而言,要先送高位再送低位。

与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。

相应的状态和数据信息是从MISO输出给单片机ATmega16L。

nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。

nRF24L01的配置寄存器共有25个,常用的配置寄存器如表3所示。

表3nRF24L01常用配置寄存器

地址(H)

寄存器名称

功能

00

CONFIG

设置nRF24L01工作模式

01

EN_AA

设置接收通道及自动应答

02

EN_RXADDR

使能接收通道地址

03

SETUP_AW

设置地址宽度

04

SETUP_RETR

设置自动重发数据时间和次数

07

STATUS

状态寄存器,用来判定工作状态

0A-0F

RX_ADDR_P0~P5

设置接收通道地址

10

TX_ADDR

设置接收节点地址

11-16

RX_PW_P0~P5

设置接收通道的有效数据宽度

3.3数字温湿度传感器AM2301

3.3.1AM2301概述

AM2301数字温湿度传感器,别称为DHT21温湿度传感器,是电阻式感湿元件DHT11湿度传感器的升级版,具有高精度,快响应、抗干扰能力强等优点。

其中采集温度的精度为

0.5

,采集相对湿度的精度为

3%。

AM2301它是一款含有已校准数字信号输出的温湿度复合传感器,应用专用的数字模块采集技术和温湿度传感技术。

传感器包括一个电容式感湿元件和一个NTC(NegativeTemperatureCoefficient)测温元件。

每个AM2301传感器都在极为精确的湿度校验室中进行校准。

校准系数以程序的形式储存在OTP(OneTimeProgramable)内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。

单线制串行接口,使系统集成变得简易快捷。

超小的体积、极低的功耗,信号传输距离理论上可达20米以上,使其成为各类应用场合的最佳选择。

(王志宏等,2011)。

3.3.2AM2301接口及温湿采集电路

表4所示为AM2301各管脚功能,图5所示为AM2301温湿度采集电路图。

其中Data数据口连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。

管脚

名称

功能

1

VDD

供电3-5.5VDC

2

Data

串行数据,单总线

3

NC

空脚,请悬空

4

GND

地,电源负极

表4AM2301各管脚功能

图5AM2301接口电路

3.3.3AM2301工作原理

AM2301的供电电压为5V。

传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。

电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。

AM2301采用单总线接口,其中DATA数据口用于微处理器与AM2301之间的通讯和同步,采用单总线数据格式,一次通讯时间5ms左右,具体格式如下,当前数据传输为40bit,高位先出。

数据格式:

40bit数据=16bit湿度数据+16bit温度数据+8bit校验和。

当接收40bit数据如:

0000001010001100000000010101111111101110。

其中前16位是湿度数据,接下来16位是温度数据,最后8位数据是温湿度校验和,即湿度高8位+湿度低8位+温度高8位+温度低8位=数据的末8位=校验和。

如:

00000010+10001100+00000001+01011111=11101110。

其中湿度=65.2%,温度=35.1℃(当温度低于0℃时温度数据的最高位置1)。

用户主机(MCU)发送一次开始信号后,AM2301从低功耗模式转换到高速模式,等待主机开始信号结束后,AM2301发送响应信号,送出40bit的数据,并触发一次信号采集(注:

主机从AM2301读取的温湿度数据总是前一次的测量值,如两次测量间隔时间很长,需连续读取两次数据以获得实时的温湿度值)。

总线空闲状态为高电平,MCU把总线拉低等待AM2301响应,MCU把总线拉低必须大于18毫秒,保证AM2301能检测到起始信号。

AM2301接收到MCU的起始信号后,等待MCU开始信号结束,然后发送80μs低电平响应信号。

MCU发送开始信号结束后,延时等待20~40μs后,读取AM2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1