完整版基于单片机的粮仓温湿度多点无线监测系统毕业设计论文Word文档下载推荐.docx
《完整版基于单片机的粮仓温湿度多点无线监测系统毕业设计论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《完整版基于单片机的粮仓温湿度多点无线监测系统毕业设计论文Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
2.2.2无线通信模块方案2
2.2.3温湿度传感器方案3
2.2.4显示模块方案3
3主要芯片介绍和系统模块硬件设计4
3.1ATmega16L-8AI单片机4
3.2nRF24L01无线模块5
3.2.1nRF24L01模块电路图5
3.2.2nRF24L01模块接口电路5
3.2.3nRF24L01模块供电电源6
3.2.4nRF24L01模块工作模式6
3.2.5nRF24L01模块工作原理7
3.2.6nRF24L01配置字8
3.3数字温湿度传感器AM23018
3.3.1AM2301概述8
3.3.2AM2301接口及温湿采集电路9
3.3.3AM2301工作原理9
3.4显示模块TFT-LCD10
4系统软件设计11
4.1单片机软件设计11
4.1.1发送端流程11
4.1.2接收端流程12
5硬件电路13
5.1硬件制作13
5.2硬件调试14
5.3硬件调试结果14
5.3.1温湿度采集测试15
5.3.2nRF24L01无线模块测试18
6结论与展望18
参考文献19
附录20
致谢22
华南农业大学本科生毕业设计成绩评定表
1前言
粮食是人类赖于生存不可或缺的物质基础,是人类从事各种活动的前提。
粮仓粮食的存储是否得当对国家的经济能否正常合理的运行有很大的影响。
受限制于以前的经济和科技水平,粮食的存储环境差,管理落后。
为此,合理地布置温湿度测量点,以便及时发现粮食的发热点、潮湿点,成为粮库管理的重中之重。
随着嵌入式技术,短距离无线通信技术、传感器网络技术等的不断发展,电子设备检测技术可以大大的降低粮仓的管理成本。
同时,现代化的粮食仓储系统对粮食的安全性也提出了更高的要求。
在粮仓管理过程中,湿度和温度是两个重要的控制指标,直接影响粮食的储存质量。
然而,传统的人工测试方法费时费力,效率低,且测试的温度及湿度误差大,随机性大(王明明等,2012);
而有线方式的测温湿度系统存在着不稳定性,且布线复杂,线路容易老化,线路故障难以排查,设备重新布局需要重新布置等问题。
而无线方式的测温湿度系统不存在以上的这些问题,为此,采用无线实时的温湿度检测系统,对数据进行采集、装载、发送、并由终端对无线采集来的数据进行相应处理,以控制监测设备的运行情况,可大大的减少不必要的线路设备开支(张玉建,2012)。
本设计采用无线传感器网络技术,通过自组无线传感器网络实现一对多的通信,对粮仓内部环境进行监测。
由于每一个无线监测节点需长时间工作,对功率消耗十分敏感,为此,本系统采用低功耗无线传输芯片和超低功耗嵌入式处理器,组建实时的无线传感器监测网络,以实现对粮仓温湿度的网络化实时监测和报警。
2系统方案分析与选择论证
2.1系统最终方案
发送端:
由数字温湿度传感器AM2301,实时地采集当前的温湿度信息,经ATmega16L单片机分析处理后,通过模拟SPI接口控制无线射频模块nRF24L01装载温湿度信息,由无线射频模块nRF24L01发射给主机接收端并显示温湿度信息。
红外模块可用于监测各监测节点附近有无老鼠,试验中未做出。
接收端:
由nRF24L01无线射频模块接收终端采集过来的数据信息,经模拟SPI接口发给ATmega16L单片机,由ATmega16L单片机控制液晶LCD-TFT实时显示温湿度信息,并且显示报警温湿度上限值。
当温湿度过高或者过低时,TFT是否报警一行显示是并开始闪烁,蜂鸣器鸣叫,起报警作用,直到温湿度值恢复正常。
图1系统方框图
此系统为一对多的无线通信系统,多个从机发送端由传感器本地采集并且通过nRF24L01无线射频模块发送温湿度信息,一个主机通过nRF24L01无线射频模块的多个通道(最多6个,nRF24L01至多可开启6个通道接收数据)接收多个终端节点的温湿度信息,实时显示各终端节点温湿度信息,系统方框图如图1所示。
2.2系统方案设计
2.2.1主控芯片方案
方案一:
采用宏晶科技有限公司的STC90C52Rc单片机作为主控芯片。
此芯片为51类单片机增强版,价格便宜、易于操作,比较经济实惠。
方案二:
采用ATmega16L作为主控芯片。
此芯片是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPSMHz,从而可以减缓系统在功耗和处理速度之间的矛盾,且其跟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公司的单片集成两端感温电流源芯片,采用此芯片测量温度。
此器件测温精度高、电源电压范围宽,但须差分放大器放大和AD转换,需要元器件多,且价格较贵。
采用湿敏电阻测量湿度信息,通过将湿敏电阻的电阻变化量放大并且通过模数转换为相对湿度数值。
此方法测相对湿度信息精度较差,也需要较多元器件。
采用广州奥松有限公司生产的DHT11温湿度一体的数字传感器。
通过单片机等微处理器单总线的电路连接就能实时地采集本地温度和湿度信息。
功耗很低。
工作电压范围为3.5V~5.5V,可以直接和单片机的IO口相连。
采用广州奥松电子有限公司生产的AM2301温湿度一体的数字传感器。
它是电阻式感湿元件DHT11湿度传感器的升级版,具有高精度,低功耗、抗干扰能力强等优点。
其中采集温度的精度为0.5,采集相对湿度的精度为3%。
外围电路简单,只需在数据口上拉一个5K欧电阻,便可直接和ATmega16L单片机的IO口相连。
使用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端口;
RXDP3.0和TXDP3.1为串口通信端口,RXD用于读数据,TXD用于发送数据;
监测端:
温湿度数据采集端口为PC0~PC7;
TFT彩屏接口为PC0~PC7和PA2~PA4。
3.2nRF24L01无线模块
3.2.1nRF24L01模块电路图
nRF24L01(张玉建,2012;
刘靖等,2007)芯片是由NORDIC公司生产一款无线通信芯片,采用FSK调制方式,内部集成有NORDIC自己的EnhancedShortBurst协议。
可以实现点对点或是1对6的无线通信。
通信速度可以达到2Mbs。
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
FIFO寄存器状态
接收模式
1
数据在RX
FIFO
寄存器中
发射模式
数据在TX
下降沿
停留在发送模式,直至数据发送完
待机模式1
无数据传输
待机模式2
TX
为空
掉电
接收数据:
首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。
当接收方监测到有效的地址和CRC时,就将数据包存储在RX
FIFO数据寄存器中,同时中断标志位RX_DR置高,IRQ变低,产生中断,进入中断服务子程序,通知单片机ATmega16L去取数据。
若此时自动应答开启,接收方则同时进入发射状态回传应答信号。
若自动应答未开启,则不进入发射状态。
最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。
3.2.6nRF24L01配置字
SPI口为同步串行通信接口,最大传输速率为10Mbs,传输时先传送低位字节,再传送高位字节。
但针对单个字节而言,要先送高位再送低位。
与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湿度传感器的升级版,具有高精度,快响应、抗干扰能力强等优点。
AM2301它是一款含有已校准数字信号输出的温湿度复合传感器,应用专用的数字模块采集技术和温湿度传感技术。
传感器包括一个电容式感湿元件和一个NTC(NegativeTemperatureCoefficient)测温元件。
每个AM2301传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP(OneTimeProgramable)内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离理论上可达20米以上,使其成为各类应用场合的最佳选择。
(王志宏等,2011)。
3.3.2AM2301接口及温湿采集电路
表4所示为AM2301各管脚功能,图5所示为AM2301温湿度采集电路图。
其中Data数据口连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。
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后,读取AM2301的响应信号,MCU发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。
总线为低电平,说明AM2301发送响应信号,发送响应信号之后,再把总线拉高80μs,准备发送数据,每1bit数据都以50μs低电平时隙开始,高电平时间为26~28μs时数据位为0;
高电平时间为70μs时数据位为1。
如果读取响应信号为高电平,则AM2301没有响应。
当最后1bit数据传送完毕后,AM2301拉低总线50μs,随后总线由上拉电阻拉高进入空闲状态。
3.4显示模块TFT-LCD
图6彩屏TFT电路图
显示模块采用TFT-LCD(ThinFilmTransistor-LiquidCrystalDisplay)即薄膜晶体管液晶显示器。
TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。
TFT-LCD也被叫做真彩液晶显示器。
上配置2.8寸的TFTLCD。
该模块的控制器为ILI9325,具有26万像素,320×
240的分辨率,16位真彩显示,自带触摸屏,可以用来作为控制输入。
电路图如图6所示。
4系统软件设计
4.1