《基于单片机的粮仓温湿度多点无线监测系统设计毕设论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的粮仓温湿度多点无线监测系统设计毕设论文.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科毕业设计基于单片机的粮仓温湿度多点无线监测系统设计基于单片机的粮仓温湿度多点无线监测系统设计温湿度是一个非常重要的参数。在工业、医疗、军事和生活等许多地方,都需要用到测温湿装置来监测温湿度。传统直接布线测量不能满足要求,特别是在某些环境恶劣的工业环境和户外环境,通过直接布线测量不现实。因此采用无线传输温湿度信息尤为必要。目前有些设计能够实现无线温湿度监测,但价格过高是其最大的缺点。在实际温湿度控制过程中既要求系统具有稳定性、实时性又需要降低功耗。因此设计一种低功耗的无线温湿度监测系统很有意义。本文提出一种针对无线数据传输问题的解决方案,该方案基于nRF24L01来设计无线温湿度采集系统。该
2、系统采用传统单片机ATmega16L和数字温湿度传感器AM2301来构成多点、实时的无线温湿度监测系统。通过简单的无线通信协议,实现可靠性与功耗平衡,该系统能实现对温湿度的监测,是可以实现远程控制的无线温湿度监测系统。该系统利用无线通信技术构建了分布式无线传感器网络,通过传感器节点实现温湿度信息的采集和传输,系统具有组网简单,维护方便,运行费用低等优点,能够实现可靠的无线数据传输。可以应用于大型粮仓温湿度的监测。关键字:ATmega16 AM2301 无线传输 nRF24L01Wireless Temperature and Humidity Monitoring System in Barn
3、Shi Jianzhu(College of Engineering, South China Agricultural University, Guangzhou 510642, China)Abstract:Temperature and humidity is a very important parameter. In many places, such as the industrial, medical, and military, you need the temperature and humidity measurement device to monitor tempera
4、ture and humidity. Direct wiring measurement does not meet the requirements, especially in some environments, such as, harsh industrial environments and outdoor environments. Therefore, the wireless transmission of temperature and humidity information is particularly necessary.At present, some devic
5、es can be used to monitor wireless temperature and humidity, but the price is the biggest drawback, the price is too high. The system must be stable, real-time and low power consumption in actual control. Therefore, the design of a low-power consumption wireless temperature and humidity monitoring s
6、ystem makes sense. This paper presents a solution for wireless data transmission, the program is based on the nRF24L01 to design the monitorint system of wireless temperature and humidity. The system uses the traditional microcontroller ATmega16 and digital temperature and humidity sensor AM2301 to
7、form multi-point, real-time wireless temperature and humidity monitoring system. Through a simple wireless communication protocols, bring about reliability and power balance. The system is a remote wireless temperature and humidity monitoring system.The system uses wireless communication technology
8、to build a distributed wireless sensor networks. The temperature and humidity data acquisition and transmission based on sensor nodes, with a simple network, easy maintenance, low operation cost. The system can be applied to a large granary temperature and humidity monitoring.Key word: ATmega16 AM23
9、01 Wireless Transmission nRF24l01目 录1 前言12 系统方案分析与选择论证12.1 系统最终方案12.2 系统方案设计22.2.1 主控芯片方案22.2.2 无线通信模块方案22.2.3 温湿度传感器方案32.2.4 显示模块方案33 主要芯片介绍和系统模块硬件设计43.1 ATmega16L-8AI单片机43.2 nRF24L01无线模块53.2.1 nRF24L01模块电路图53.2.2 nRF24L01模块接口电路53.2.3 nRF24L01模块供电电源63.2.4 nRF24L01模块工作模式63.2.5 nRF24L01模块工作原理73.2.6 n
10、RF24L01配置字83.3 数字温湿度传感器 AM230183.3.1 AM2301概述83.3.2 AM2301接口及温湿采集电路93.3.3 AM2301工作原理93.4 显示模块TFT-LCD104 系统软件设计114.1 单片机软件设计114.1.1 发送端流程114.1.2 接收端流程125 硬件电路135.1 硬件制作135.2 硬件调试145.3 硬件调试结果145.3.1 温湿度采集测试155.3.2 nRF24L01无线模块测试186 结论与展望18参考文献19附录20致谢22华南农业大学本科生毕业设计成绩评定表1 前言粮食是人类赖于生存不可或缺的物质基础,是人类从事各种活
11、动的前提。粮仓粮食的存储是否得当对国家的经济能否正常合理的运行有很大的影响。受限制于以前的经济和科技水平,粮食的存储环境差,管理落后。为此,合理地布置温湿度测量点,以便及时发现粮食的发热点、潮湿点,成为粮库管理的重中之重。随着嵌入式技术,短距离无线通信技术、传感器网络技术等的不断发展,电子设备检测技术可以大大的降低粮仓的管理成本。同时,现代化的粮食仓储系统对粮食的安全性也提出了更高的要求。在粮仓管理过程中,湿度和温度是两个重要的控制指标,直接影响粮食的储存质量。然而,传统的人工测试方法费时费力,效率低,且测试的温度及湿度误差大,随机性大(王明明等,2012);而有线方式的测温湿度系统存在着不稳
12、定性,且布线复杂,线路容易老化,线路故障难以排查,设备重新布局需要重新布置等问题。而无线方式的测温湿度系统不存在以上的这些问题,为此,采用无线实时的温湿度检测系统,对数据进行采集、装载、发送、并由终端对无线采集来的数据进行相应处理,以控制监测设备的运行情况,可大大的减少不必要的线路设备开支(张玉建,2012)。本设计采用无线传感器网络技术,通过自组无线传感器网络实现一对多的通信,对粮仓内部环境进行监测。由于每一个无线监测节点需长时间工作,对功率消耗十分敏感,为此,本系统采用低功耗无线传输芯片和超低功耗嵌入式处理器,组建实时的无线传感器监测网络,以实现对粮仓温湿度的网络化实时监测和报警。2 系统
13、方案分析与选择论证2.1 系统最终方案发送端:由数字温湿度传感器AM2301,实时地采集当前的温湿度信息,经ATmega16L单片机分析处理后,通过模拟SPI接口控制无线射频模块nRF24L01装载温湿度信息,由无线射频模块nRF24L01发射给主机接收端并显示温湿度信息。红外模块可用于监测各监测节点附近有无老鼠,试验中未做出。接收端:由nRF24L01无线射频模块接收终端采集过来的数据信息,经模拟SPI接口发给ATmega16L单片机,由ATmega16L单片机控制液晶LCD-TFT实时显示温湿度信息,并且显示报警温湿度上限值。当温湿度过高或者过低时,TFT是否报警一行显示是并开始闪烁,蜂鸣
14、器鸣叫,起报警作用,直到温湿度值恢复正常。ATmega16L(发送端)DHT11温湿度传感器红外模块ISP下载模块NRF24L01无线模块LCD-TFT显示模块GSM报警模块 蜂鸣器ATmega128 (接收端)从机结构框图主机结构框图NRF24L01无线模块图1 系统方框图此系统为一对多的无线通信系统,多个从机发送端由传感器本地采集并且通过nRF24L01无线射频模块发送温湿度信息,一个主机通过nRF24L01无线射频模块的多个通道(最多6个,nRF24L01至多可开启6个通道接收数据)接收多个终端节点的温湿度信息,实时显示各终端节点温湿度信息,系统方框图如图1所示。2.2 系统方案设计2.
15、2.1 主控芯片方案方案一:采用宏晶科技有限公司的STC90C52Rc单片机作为主控芯片。此芯片为51类单片机增强版,价格便宜、易于操作,比较经济实惠。方案二:采用ATmega16L作为主控芯片。此芯片是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾,且其跟51类单片机相比,具有超低功耗和内置晶振等特点。考虑到此系统的复杂度,进行模数转换实现对温湿度的监测所需外围器件较多,监测节点电路板面积小,主控采用贴片封装。从性能和实用性上考虑我们
16、选择方案二。2.2.2 无线通信模块方案方案一:采用GSM(Global System for Mobile)模块进行通信,GSM模块需要借助移动卫星或者手机卡,虽然能够远距离传输,但是其成本较大、且需要内置SIM(Subscriber Identity Module)卡,通信过程中需要收费,后期成本较高。方案二:采用TI(德州仪器)生产的C2430无线通信模块,此模块采用Zigbee总线模式,传输速率可达250kbps,且内部集成高性能8051内核。但是此模块价格较贵,且Zigbee协议相对较为复杂,实用性不高。方案三:采用nRF24L01无线射频模块进行通信,nRF24L01是挪威Nord
17、ic公司推出的单片射频收发芯片,工作于2.42.5GHz ISM频段,抗干扰能力强,能耗非常低,满足多点通信和跳频通信需要。当加定向天线后,在无障碍通信情况下能传输上千米的距离,而且价格较便宜,采用SPI总线通信模式电路简单,操作方便。综合考虑各方面因素,采用方案三作为本系统的无线通信方案。2.2.3 温湿度传感器方案方案一:AD590是美国ANALO G DEV ICES 公司的单片集成两端感温电流源芯片,采用此芯片测量温度。此器件测温精度高、电源电压范围宽,但须差分放大器放大和A/D转换,需要元器件多,且价格较贵。采用湿敏电阻测量湿度信息,通过将湿敏电阻的电阻变化量放大并且通过模数转换为相
18、对湿度数值。此方法测相对湿度信息精度较差,也需要较多元器件。方案二:采用广州奥松有限公司生产的 DHT11温湿度一体的数字传感器。通过单片机等微处理器单总线的电路连接就能实时地采集本地温度和湿度信息。功耗很低。工作电压范围为3.5V5.5V,可以直接和单片机的I/O口相连。方案三:采用广州奥松电子有限公司生产的AM2301温湿度一体的数字传感器。它是电阻式感湿元件DHT11湿度传感器的升级版,具有高精度,低功耗、抗干扰能力强等优点。其中采集温度的精度为0.5,采集相对湿度的精度为3%。外围电路简单,只需在数据口上拉一个5K欧电阻,便可直接和ATmega16L单片机的I/O口相连。使用DHT11
19、采用单总线的控制方式。线路简单,编程容易,但是比AD590精度低。AD590还需要其它辅助电路,线路复杂,编程难度大。而AM2301外围电路简单,并且精度相比于DHT11高。所以,考虑到电路的设计复杂度、系统的精度,功耗,还有本系统需多点通信,在成本考虑上,选择方案三,即用AM2301作为本系统的温湿度传感器。2.2.4 显示模块方案方案一:采用字符液晶LCD1602显示信息,LCD1602是一款比较通用的字符液晶模块,能显示字符和数字等信息,且价格便宜,容易控制。方案二:选择主控为ST7920驱动器的带字库的LCD12864来显示信息。LCD12864是一款通用的液晶显示屏,能够显示常用的汉
20、字及ASCII码,而且能够绘制图片,描点画线,设计成比较理想的结果,但考虑到监测节点较多,需显示的信息较多,而其最多只能显示四行信息。方案三:采用配置2.8寸的TFT-LCD即薄膜晶体管液晶显示器。该模块的控制器为ILI9325,具有26万像素,320240的分辨率,16位真彩显示。可以清晰的显示各监测节点的信息,且其可以显示人性化界面,各节点信息以及报警上限温湿度值一目了然。综合以上方案,选择了可显示人性化界面的TFT-LCD作为接收端的显示。3 主要芯片介绍和系统模块硬件设计3.1 ATmega16L-8AI单片机图2 单片机最小系统单片机控制模块由ATmega16L最小系统组成,包括AT
21、mega16L-8AI单片机(芯片内集成晶振电路)和复位电路。单片机复位端低电平有效,系统上电后由RC充放电电路实现自动复位,也可短按复位按键S1实现手动复位(王卫星,2009)。单片机最小系统如图2所示。ATmega16L系列单片机管脚如图2所示。本设计无线传感器模块控制接口为PB3PB7以及PD2;下载程序采用ISP通信,采用USB ISP下载器进行程序下载,其接口为PB5PB7以及RST端口;RXD/P3.0和TXD/P3.1为串口通信端口,RXD用于读数据, TXD用于发送数据;监测端:温湿度数据采集端口为PC0PC7;接收端:TFT彩屏接口为PC0PC7和PA2PA4。3.2 nRF
22、24L01无线模块3.2.1 nRF24L01模块电路图nRF24L01(张玉建,2012;刘靖等,2007)芯片是由NORDIC公司生产一款无线通信芯片,采用FSK调制方式,内部集成有NORDIC自己的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。通信速度可以达到2Mb/s。nRF24L01无线射频模块的电路图如图3所示。图3 nRF24L01模块电路图3.2.2 nRF24L01模块接口电路 图4 单片机与无线模块通信及其电源转换电路图nRF24L01是一款新型单片射频收发器件,工作于2.4 GHz2.5 GHz ISM(Industrial Scien
23、tific Medical)频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6 dBm的功率发射时,工作电流也只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。表1 nRF24L01模块引脚功能管脚功能CE工作模式,TX或者RX模式选择CSNSPI片选使能,低电平有效SCKSPI时钟MOSISPI数据输入MISOSPI数据输出IRQ中断输出VDD电源1.9-3.6V输入GND地nRF24L01无线射频模块的各引
24、脚功能如表1所示。图4所示为单片机与无线模块通信及其电源转换电路图,图中CE(Control Enable)使能控制线,CSN(Channel Sequence Number) 频道序号,MOSI (Master Out Slave In)主机输出从机输入,MISO(Master In Slave Out)主机输入从机输出,SCK(Serial Clock)串行时钟线,IRQ(Interrupt Request)中断请求位,分别跟ATmega16L的PB3PB7以及PD2端口连接。3.2.3 nRF24L01模块供电电源此无线射频模块需要的电源为1.9 V3.6 V,故不能直接用5V电源供电,
25、本系统中采用3.3V直流电源对无线射频模块供电,5V电源经LM1117芯片进行转换后即得到稳定的直流电源供给nRF24L01无线射频模块。3.2.4 nRF24L01模块工作模式通过配置寄存器可将nRF241L01配置为发射、接收、空闲及掉电四种工作模式,如表2所示。 在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。3.2.5 nRF24L01模块工作原理发射数据:先将nRF24L01配置为发射模式,再把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区。TX_PLD必须在CSN为低时连续写入,而 TX_ADDR
26、在发射时写入一次即可,然后置为高电平并保持至少10s,延迟130s后发射数据。若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TXFIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启)。若重发次数达到上限,MAX_RT置高,TXFIFO中数据保留以便再次重发。MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知ATmega16L。最后发射成功时。若CE为低,则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高
27、,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。 表2 nRF24L01工作模式及配置工作模式PWR_UPPRIM_RXCEFIFO寄存器状态接收模式111数据在RXFIFO寄存器中发射模式101数据在TXFIFO寄存器中发射模式10下降沿停留在发送模式,直至数据发送完待机模式1100无数据传输待机模式2101TXFIFO为空掉电000无数据传输接收数据:首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方监测到有效的地址和CRC时,就将数据包存储在RXFIFO数据寄存器中,同时中断标志位RX_DR置高,IRQ变低,产生中断,进入中断服
28、务子程序,通知单片机ATmega16L去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。若自动应答未开启,则不进入发射状态。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。 3.2.6 nRF24L01配置字SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给单片机ATmega16L。 nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访
29、问。nRF24L01 的配置寄存器共有25个,常用的配置寄存器如表3所示。表3 nRF24L01常用配置寄存器地址(H)寄存器名称功能00CONFIG设置nRF24L01工作模式01EN_AA设置接收通道及自动应答02EN_RXADDR使能接收通道地址03SETUP_AW设置地址宽度04SETUP_RETR设置自动重发数据时间和次数07STATUS状态寄存器,用来判定工作状态0A-0FRX_ADDR_P0P5设置接收通道地址10TX_ADDR设置接收节点地址11-16RX_PW_P0P5设置接收通道的有效数据宽度3.3 数字温湿度传感器 AM23013.3.1 AM2301概述AM2301数字
30、温湿度传感器,别称为DHT21温湿度传感器,是电阻式感湿元件DHT11湿度传感器的升级版, 具有高精度,快响应、抗干扰能力强等优点。其中采集温度的精度为0.5,采集相对湿度的精度为3%。AM2301它是一款含有已校准数字信号输出的温湿度复合传感器,应用专用的数字模块采集技术和温湿度传感技术。传感器包括一个电容式感湿元件和一个NTC(Negative Temperature Coefficient)测温元件。每个AM2301传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP(One Time Programable)内存中,传感器内部在检测信号的处理过程中要调用这些校准系
31、数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离理论上可达20米以上,使其成为各类应用场合的最佳选择。(王志宏等,2011)。3.3.2 AM2301接口及温湿采集电路表4所示为AM2301各管脚功能,图5所示为AM2301温湿度采集电路图。其中Data数据口连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。管脚名称功能1VDD供电 35.5VDC2Data串行数据,单总线3NC空脚,请悬空4GND地,电源负极表4 AM2301各管脚功能图5 AM2301接口电路3.3.3 AM2301工作原理AM2301的供电电压为5V。传感器
32、上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。AM2301采用单总线接口,其中DATA 数据口用于微处理器与AM2301之间的通讯和同步,采用单总线数据格式,一次通讯时间5ms左右,具体格式如下,当前数据传输为40bit,高位先出。数据格式:40bit数据=16bit湿度数据+16bit温度数据+8bit校验和。当接收40bit数据如:0000 0010 1000 1100 0000 0001 0101 1111 1110 1110。其中前16位是湿度数据,接下来16位是温度数据,最后8位数据是温湿度校
33、验和,即湿度高8位+湿度低8位+温度高8位+温度低8位=数据的末8位=校验和。如:0000 0010+1000 1100+0000 0001+0101 1111=1110 1110。其中湿度=65.2, 温度=35.1(当温度低于0时温度数据的最高位置1)。用户主机(MCU)发送一次开始信号后,AM2301从低功耗模式转换到高速模式,等待主机开始信号结束后,AM2301发送响应信号,送出40bit的数据,并触发一次信号采集(注:主机从AM2301读取的温湿度数据总是前一次的测量值,如两次测量间隔时间很长,需连续读取两次数据以获得实时的温湿度值)。总线空闲状态为高电平,MCU把总线拉低等待AM2
34、301响应,MCU把总线拉低必须大于18毫秒,保证AM2301能检测到起始信号。AM2301接收到MCU的起始信号后,等待MCU开始信号结束,然后发送80s低电平响应信号。MCU发送开始信号结束后,延时等待2040s后,读取AM2301的响应信号,MCU发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。总线为低电平,说明AM2301发送响应信号,发送响应信号之后,再把总线拉高80s,准备发送数据,每1bit数据都以50s低电平时隙开始,高电平时间为2628s时数据位为0;高电平时间为70s时数据位为1。如果读取响应信号为高电平,则AM2301没有响应。当最后1bit数
35、据传送完毕后,AM2301拉低总线50s,随后总线由上拉电阻拉高进入空闲状态。3.4 显示模块TFT-LCD图6 彩屏TFT电路图显示模块采用TFT-LCD(Thin Film Transistor-Liquid Crystal Display)即薄膜晶体管液晶显示器。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。上配置2.8寸的TFTLCD。该模块的控制器为ILI9325,具有26万像素
36、,320240的分辨率,16位真彩显示,自带触摸屏,可以用来作为控制输入。电路图如图6所示。4 系统软件设计4.1 单片机软件设计4.1.1 发送端流程初始化无线模块nRF24L01:单片机控制引脚CE为低,使nRF24L01进入待机模式。将本机地址(TX_ADDR)通过SPI接口写入nRF24L01,当CSN为低时数据被不断写入。将通道0(或者其他通道)设置为接收模式来接收应答信号,并且允许自动应答,自动重发10次,间隔为500s。其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同(接收地址长度为40位),其接收数据长度设置为4个字节,其工作频率设为2.4GHz(收发保持一
37、致),其发射速率为1Mb/s。初次读温湿度值:延时1秒钟,待AM2301上电稳定后,读取一次温湿度数据。因为读一次数据才会触发一次温湿度采集,即在使用数据时先采集一次数据。两次温湿度采集的时间间隔不少于1秒,程序设定延时1.5秒。初始化定时器0:精确控制两次温湿度采集的时间间隔。设置定时器0高低位字节初始值,初始化flag标志为0,设置定时器模式寄存器和中断寄存器。装载信息:将节点号信息、温湿度数据信息装载到发送缓冲寄存器中。发送数据:设置PRIM_RX为低、CE为高,启动发射模式,CE高电平持续时间最小为10s。设置nRF24L01为ShockBurst发送模式。判断是否收到应答:数据发送完
38、后,立即进入接收模式。如果在有效应答时间范围内收到应答信号,则认为温湿度信息成功发送到了接收端,此时状态寄存器的TX_DS位置高并把数据从TX_FIFO中清除掉;如果在设定时间范围内没有接收到应答信号,则重新发送数据。自动重发:当发完数据后,如果在有效应答的时间范围内没收到应答信号,且自动重发计数器溢出,则状态寄存器的MAX_RT位置高,不清除TX_FIFO中的数据。当MAX_RT或TX_DS为高电平时,引脚产生中断,IRQ中断通过写状态寄存器来复位。如果重发次数在达到设定的最大重发次数时还没有收到应答信号的话,在MAX_RX中断清除之前不会重发数据包,数据包丢失计数器(PLOS_CNT)在每
39、次产生MAX_RT中断后加一。发送端程序流程如图9所示。图9 发送端程序流程图4.1.2 接收端流程初始化液晶显示TFT和无线模块nRF24L01:初始化TFT为黑屏。本系统的无线模块为1对多无线收发,一个主机,多个终端(不超过6个),需要配置多个接收通道。单片机控制引脚CE为低,使nRF24L01进入待机模式。将本机地址(TX_ADDR)通过SPI接口写入nRF24L01,当CSN为低时数据被不断写入。各通道接收地址(RX_ADDR_P0- RX_ADDR_P5)与发送端地址(TX_ADDR)相同(其中通道2-5只需设置低8位地址,高32位地址与通道1相同,无需设置),各通道接收数据长度设置
40、为4个字节,各通道工作频率设为2.4GHz(收发保持一致),各通道发射速率为1Mb/s。接收配置:将PWR_UP、PRIM_RX、CE引脚置高,使nRF24L01进入接收模式;130s后nRF24L01开始检测空中信息。 图10 接收端程序流程图接收到数据检测:读取状态寄存器,判断是否接收到数据。接收到有效的数据包后(地址匹配、CRC校验正确),将数据存储在RX_FIFO中,同时RX_DR位置高,并产生中断。接收到的数据为四个字节,第一字节为终端节点号,第二字节为湿度值,第三字节为温度值,第四字节为数据和校验信息。温湿度上限值检测:将实时采集到的温湿度值与预设的温湿度值进行比较,若超过预设的温
41、湿度值则进行报警并闪烁;若没有超出,则温湿度值正常,并实时刷新显示。接收端程序流程如图10所示。5 硬件电路5.1 硬件制作首先是打印电路板,将绘制好的电路板用转印纸打印出来,并裁剪覆铜板,再将打印好的电路板裁剪成合适大小,把印有电路板的一面贴在覆铜板上,对齐好后把覆铜板放入热转印机,放入时保证转印纸没有错位。将热转印机事先预热,温度设定在160200摄氏度。经过510次转印,电路板就很牢固的转印在覆铜板上。接下来是腐蚀线路板,检查一下电路板是否转印完整,将少数没有转印好的线路用黑色油性笔修补后再进行腐蚀。最后将板打孔,钻孔完后,用细砂纸把覆在线路板上的墨粉打磨掉,用清水把线路板清洗干净。即做
42、成一块印制电路板。5.2 硬件调试通电之前,先用万用表检查线路的正确性,并核对元器件的型号、规格是否符合要求。特别注意电源的正负极以及电源之间是否有短路,并重点检查地址总线、数据总线、控制总线是否存在相互间的短路或其他信号线的短路。在本系统中均进行了仔细的检查。通电后,确认主控芯片没有发烫,再检查各器件引脚的电位,仔细测量各点电位是否正常,尤其注意单片机的插座上的各点电位,若有高压,将有可能损坏单片机仿真器。同样,如果电压过低就没有能力驱动其负载。在断电的情况下,除单片机以外,用仿真插头将所连接电路与单片机仿真器的仿真接口相连,为软件调试做好准备。遇到的问题,如印制电路线不合格,中间有些许短路
43、,造成调试的失败。还有USB电源供电电压不足的问题,电源电压经过供电给负载,电压下降0.5V,致使单片机不正常工作。5.3 硬件调试结果首先调试出TFT-LCD显示,方便观看其他各项调试结果。调试过程发现虚焊和短路情况,排除此类情况。其次调试温湿度监测电路。调试时不加入无线收发,直接用液晶显示结果,调节好定时器时间后监测正常。再次调试无线收发电路。调试时先调试发送端,发送固定数值,禁用自动应答功能,禁用自动重发功能,通过读状态寄存器,查看发送成功标志是否置位检测是否发送成功。发送成功后,调试接收端,接收端也禁用自动应答功能,直接接收发送端的数据并通过液晶显示出来。调试成功后开启自动应答功能和自
44、动重发功能,自动重发设置为重发10次,间隔150微秒。实现一对一通信后,调试一对多无线通信。主要是接收和发送节点的地址配置,设置了6个发送端的地址,一个接收端的地址,接收端6个接收通道地址分别设置为对应的6个发送端的地址。调试过程中发现6个接收通道中P0通道和P1通道为40位地址,P2P5通道为8位地址,且P2P5通道的高32位地址与P1通道地址一样。发送端若用P0,P1通道发送必须将地址设置为40位且要与接收端的响应的接收通道对应(若接收通道为P2,地址只有8位,则发送端用P0通道发送,地址应设为接收端的接收通道P2的8位地址加上接收端的接收通道P1的高32位地址)。最后整合温湿度监测电路和
45、无线收发电路。将AM2301采集过来的温湿度值直接传送给无线发送模块,再由无线接收模块接收温湿度信息,最后由液晶显示温湿度信息。调试过程中发现开机仅能监测一次温湿度信息,不能实时监测。经过几次先后开关发送端和接收端,找出原因是发送之后没有清除发送成功标志。5.3.1 温湿度采集测试实验测试了华南农业大学华山宿舍区20栋104室内的温湿度数据,通过三个无线监测节点采集的不同的温湿度信息,发送给终端节点显示。其中节点2采用AM2301温湿度传感器,采集温度的精度为0.5,采集相对湿度的精度为3%,并放置在笔记本电脑的散热排气扇通风口旁;节点3和节点4均采用DHT11温湿度传感器,采集温度的精度为2
46、,采集相对湿度的精度为5%,其中节点3放置在书桌上,节点4放置在书桌下。5.3.1.1 系统准确性测试表5 12:00时宿舍内采样点温湿度节点编号温度()相对湿度(%)所处地23464电脑散热器旁33079书桌上42980书桌下图11 12:00时温湿度值采用温湿度计于2013年4月24号12:00时采集三处节点的温湿度,如表5所示。采用本系统于12:00时,检测三处节点的温湿度值,如图11所示。5.3.1.2 系统稳定性测试采用温湿度计于2013年4月24号18:00时采集三处节点的温湿度,如表6所示。采用本系统于18:00时,检测三处节点的温湿度值,如图12所示。表6 18:00时宿舍内采样点温湿度节点编号温度()相对湿度(%)所处地23465电脑散热器旁32878书桌上42881书桌下图12 18:00时温湿度值采用温湿度计于2013年4月24号18:10时采集三处节点的温湿度,如表7所示。采用本系统于18:10时,检测三处节点的温湿度值,如图13所示。表7 18:10时宿舍内采样点温湿度节点编号温度()相对湿度(%)所处地23565电脑散热器旁32779书桌上428