




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 设 计 基于单片机的粮仓温湿度多点无线监测系统设计 温湿度是一个非常重要的参数。在工业、医疗、军事和生活等许多地方,都需要 用到测温湿装置来监测温湿度。传统直接布线测量不能满足要求,特别是在某些环境 恶劣的工业环境和户外环境,通过直接布线测量不现实。因此采用无线传输温湿度信 息尤为必要。 目前有些设计能够实现无线温湿度监测,但价格过高是其最大的缺点。在实际温 湿度控制过程中既要求系统具有稳定性、实时性又需要降低功耗。因此设计一种低功 耗的无线温湿度监测系统很有意义。本文提出一种针对无线数据传输问题的解决方案, 该方案基于 nRF24L01 来设计无线温湿度采集系统。该系统采用传统单片机 ATmega16L 和数字温湿度传感器 AM2301 来构成多点、实时的无线温湿度监测系统。 通过简单的无线通信协议,实现可靠性与功耗平衡,该系统能实现对温湿度的监测, 是可以实现远程控制的无线温湿度监测系统。 该系统利用无线通信技术构建了分布式无线传感器网络,通过传感器节点实现温 湿度信息的采集和传输,系统具有组网简单,维护方便,运行费用低等优点,能够实 现可靠的无线数据传输。可以应用于大型粮仓温湿度的监测。 关键字:ATmega16 AM2301 无线传输 nRF24L01 Wireless Temperature and Humidity Monitoring System in Barn 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 temperature 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 devices 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 system 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 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 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 AM2301 Wireless Transmission nRF24l01 目 录 1 前言 .1 2 系统方案分析与选择论证 .1 2.1 系统最终方案 .1 2.2 系统方案设计 .2 2.2.1 主控芯片方案 2 2.2.2 无线通信模块方案 2 2.2.3 温湿度传感器方案 3 2.2.4 显示模块方案 3 3 主要芯片介绍和系统模块硬件设计 .4 3.1 ATmega16L-8AI 单片机 4 3.2 nRF24L01 无线模块 5 3.2.1 nRF24L01 模块电路图 .5 3.2.2 nRF24L01 模块接口电路 .5 3.2.3 nRF24L01 模块供电电源 .6 3.2.4 nRF24L01 模块工作模式 .6 3.2.5 nRF24L01 模块工作原理 .7 3.2.6 nRF24L01 配置字 .8 3.3 数字温湿度传感器 AM2301 8 3.3.1 AM2301 概述 8 3.3.2 AM2301 接口及温湿采集电路 9 3.3.3 AM2301 工作原理 9 3.4 显示模块 TFT-LCD .10 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.2 nRF24L01 无线模块测试 .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 ATmega16L(发送端 ) DHT11 温湿度传感器 红外模块 ISP 下载模块 NRF24L01 无线模块 LCD-TFT 显示模块 GSM 报警模块 蜂鸣器 ATmega128 (接收端) 从机结构框图 主机结构框图 NRF24L01 无线模块 图 1 系 统 方 框 图 此系统为一对多的无线通信系统,多个从机发送端由传感器本地采集并且通过 nRF24L01 无线射频模块发送温湿度信息,一个主机通过 nRF24L01 无线射频模块的多 个通道(最多 6 个,nRF24L01 至多可开启 6 个通道接收数据)接收多个终端节点的温 湿度信息,实时显示各终端节点温湿度信息,系统方框图如图 1 所示。 2.2 系统方案设计 2.2.1 主控芯片方案 方案一:采用宏晶科技有限公司的 STC90C52Rc 单片机作为主控芯片。此芯片为 51 类单片机增强版,价格便宜、易于操作,比较经济实惠。 方案二:采用 ATmega16L 作为主控芯片。此芯片是基于增强的 AVR RISC 结构 的低功耗 8 位 CMOS 微控制器。由于其先进的指令集以及单时钟周期指令执行时间, ATmega16 的数据吞吐率高达 1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之 间的矛盾,且其跟 51 类单片机相比,具有超低功耗和内置晶振等特点。 考虑到此系统的复杂度,进行模数转换实现对温湿度的监测所需外围器件较多, 监测节点电路板面积小,主控采用贴片封装。从性能和实用性上考虑我们选择方案二。 2.2.2 无线通信模块方案 方案一:采用 GSM(Global System for Mobile)模块进行通信,GSM 模块需要借助 移动卫星或者手机卡,虽然能够远距离传输,但是其成本较大、且需要内置 SIM(Subscriber Identity Module)卡,通信过程中需要收费,后期成本较高。 方案二:采用 TI(德州仪器)生产的 C2430 无线通信模块,此模块采用 Zigbee 总线模式,传输速率可达 250kbps,且内部集成高性能 8051 内核。但是此模块价格较 贵,且 Zigbee 协议相对较为复杂,实用性不高。 方案三:采用 nRF24L01 无线射频模块进行通信,nRF24L01 是挪威 Nordic 公司 推出的单片射频收发芯片,工作于 2.42.5GHz ISM 频段,抗干扰能力强,能耗非常 低,满足多点通信和跳频通信需要。当加定向天线后,在无障碍通信情况下能传输上 千米的距离,而且价格较便宜,采用 SPI 总线通信模式电路简单,操作方便。 综合考虑各方面因素,采用方案三作为本系统的无线通信方案。 2.2.3 温湿度传感器方案 方案一:AD590 是美国 ANALO G DEV ICES 公司的单片集成两端感温电流源芯 片,采用此芯片测量温度。此器件测温精度高、电源电压范围宽,但须差分放大器放 大和 A/D 转换,需要元器件多,且价格较贵。采用湿敏电阻测量湿度信息,通过将湿 敏电阻的电阻变化量放大并且通过模数转换为相对湿度数值。此方法测相对湿度信息 精度较差,也需要较多元器件。 方案二:采用广州奥松有限公司生产的 DHT11 温湿度一体的数字传感器。通过 单片机等微处理器单总线的电路连接就能实时地采集本地温度和湿度信息。功耗很低。 工作电压范围为 3.5V5.5V,可以直接和单片机的 I/O 口相连。 方案三:采用广州奥松电子有限公司生产的 AM2301 温湿度一体的数字传感器。 它是电阻式感湿元件 DHT11 湿度传感器的升级版,具有高精度,低功耗、抗干扰能力 强等优点。其中采集温度的精度为 0.5 ,采集相对湿度的精度为 3%。外围电路C 简单,只需在数据口上拉一个 5K 欧电阻,便可直接和 ATmega16L 单片机的 I/O 口相 连。 使用 DHT11 采用单总线的控制方式。线路简单,编程容易,但是比 AD590 精度 低。AD590 还需要其它辅助电路,线路复杂,编程难度大。而 AM2301 外围电路简单, 并且精度相比于 DHT11 高。所以,考虑到电路的设计复杂度、系统的精度,功耗,还 3 有本系统需多点通信,在成本考虑上,选择方案三,即用 AM2301 作为本系统的温湿 度传感器。 2.2.4 显示模块方案 方案一:采用字符液晶 LCD1602 显示信息,LCD1602 是一款比较通用的字符液 晶模块,能显示字符和数字等信息,且价格便宜,容易控制。 方案二:选择主控为 ST7920 驱动器的带字库的 LCD12864 来显示信息。 LCD12864 是一款通用的液晶显示屏,能够显示常用的汉字及 ASCII 码,而且能够绘 制图片,描点画线,设计成比较理想的结果,但考虑到监测节点较多,需显示的信息 较多,而其最多只能显示四行信息。 方案三:采用配置 2.8 寸的 TFT-LCD 即薄膜晶体管液晶显示器。该模块的控制器 为 ILI9325,具有 26 万像素, 320240 的分辨率,16 位真彩显示。可以清晰的显示各监 测节点的信息,且其可以显示人性化界面,各节点信息以及报警上限温湿度值一目了 然。 综合以上方案,选择了可显示人性化界面的 TFT-LCD 作为接收端的显示。 3 主要芯片介绍和系统模块硬件设计 3.1 ATmega16L-8AI 单片机 CSNEKMIOP0124567RQADFVTGXB(/)9L8mega-u+ 图 2 单片机最小系统 单片机控制模块由 ATmega16L 最小系统组成,包括 ATmega16L-8AI 单片机(芯 片内集成晶振电路)和复位电路。单片机复位端低电平有效,系统上电后由 RC 充放 电电路实现自动复位,也可短按复位按键 S1 实现手动复位(王卫星,2009) 。单片机最 小系统如图 2 所示。 ATmega16L 系列单片机管脚如图 2 所示。本设计无线传感器模块控制接口为 PB3 PB7 以及 PD2;下载程序采用 ISP 通信,采用 USB ISP 下载器进行程序下载, 其接口为 PB5PB7 以及 RST 端口;RXD/P3.0 和 TXD/P3.1 为串口通信端口,RXD 用 于读数据, TXD 用于发送数据;监测端:温湿度数据采集端口为 PC0PC7;接收端: TFT 彩屏接口为 PC0PC7 和 PA2PA4。 3.2 nRF24L01 无线模块 3.2.1 nRF24L01 模块电路图 nRF24L01(张玉建,2012;刘靖等,2007)芯片是由 NORDIC 公司生产一款无线通 信芯片,采用 FSK 调制方式,内部集成有 NORDIC 自己的 Enhanced Short Burst 协议。 可以实现点对点或是 1 对 6 的无线通信。通信速度可以达到 2Mb/s。nRF24L01 无线射 频模块的电路图如图 3 所示。 P7.+VCESNKMOI45RQD8X90_ATFLYpnH 图 3 nRF24L01 模块电路图 3.2.2 nRF24L01 模块接口电路 5 10uFCLM7923468NRV.ESKIOGD+Q 图 4 单片机与无线模块通信及其电 源 转 换 电 路 图 nRF24L01 是一款新型单片射频收发器件,工作于 2.4 GHz2.5 GHz ISM(Industrial Scientific Medical)频段。内置频率合成器、功率放大器、晶体振荡器、 调制器等功能模块,并融合了增强型 ShockBurst 技术,其中输出功率和通信频道可通 过程序进行配置。nRF24L01 功耗低,在以-6 dBm 的功率发射时,工作电流也只有 9 mA;接收时,工作电流只有 12.3 mA,多种低功率工作模式(掉电模式和空闲模式) 使节能设计更方便。 表 1 nRF24L01 模 块 引 脚 功 能 管 脚 功 能 CE 工 作 模 式 , TX 或 者 RX 模 式 选 择 CSN SPI 片 选 使 能 , 低 电 平 有 效 SCK SPI 时 钟 MOSI SPI 数 据 输 入 MISO SPI 数 据 输 出 IRQ 中 断 输 出 VDD 电 源 1.9-3.6V 输 入 GND 地 nRF24L01 无线射频模块的各引脚功能如表 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 电源供电,本系统 中采用 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 在发射时写入一次即可,然后置为高电平并保持至少 10s,延迟 130s 后发射数据。若自动应答开启,那么 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。 表 2 nRF24L01 工 作 模 式 及 配 置 工作模式 PWR_U P PRIM_R X CE FIFO 寄存器状态 接收模式 1 1 1 数据在 RX FIFO 寄存器中 发射模式 1 0 1 数据在 TX FIFO 寄存器中 发射模式 1 0 下降沿 停留在发送模式,直至数据发送 7 完 待机模式 1 1 0 0 无数据传输 待机模式 2 1 0 1 TX FIFO 为空 掉电 0 0 0 无数据传输 接收数据:首先将 nRF24L01 配置为接收模式,接着延迟 130s 进入接收状态等 待数据的到来。当接收方监测到有效的地址和 CRC 时,就将数据包存储在 RX FIFO 数据寄存器中,同时中断标志位 RX_DR 置高,IRQ 变低,产生中断,进入中断服务 子程序,通知单片机 ATmega16L 去取数据。若此时自动应答开启,接收方则同时进 入发射状态回传应答信号。若自动应答未开启,则不进入发射状态。最后接收成功时, 若 CE 变低,则 nRF24L01 进入空闲模式 1。 3.2.6 nRF24L01 配置字 SPI 口为同步串行通信接口,最大传输速率为 10 Mb/s,传输时先传送低位字节, 再传送高位字节。但针对单个字节而言,要先送高位再送低位。与 SPI 相关的指令共 有 8 个,使用时这些控制指令由 nRF24L01 的 MOSI 输入。相应的状态和数据信息是 从 MISO 输出给单片机 ATmega16L。 nRF24L0l 所有的配置字都由配置寄存器定义,这些配置寄存器可通过 SPI 口访问。 nRF24L01 的配置寄存器共有 25 个,常用的配置寄存器如表 3 所示。 表 3 nRF24L01 常 用 配 置 寄 存 器 地址 (H) 寄存器名称 功能 00 CONFIG 设置 nRF24L01 工作模式 01 EN_AA 设置接收通道及自动应答 02 EN_RXADDR 使能接收通道地址 03 SETUP_AW 设置地址宽度 04 SETUP_RETR 设置自动重发数据时间和次数 07 STATUS 状态寄存器,用来判定工作状态 0A-0F RX_ADDR_P0P5 设置接收通道地址 10 TX_ADDR 设置接收节点地址 11-16 RX_PW_P0P5 设置接收通道的有效数据宽度 3.3 数字温湿度传感器 AM2301 3.3.1 AM2301 概述 AM2301 数字温湿度传感器,别称为 DHT21 温湿度传感器,是电阻式感湿元件 DHT11 湿度传感器的升级版, 具有高精度,快响应、抗干扰能力强等优点。其中采 集温度的精度为 0.5 ,采集相对湿度的精度为 3%。AM2301 它是一款含有已校C 准数字信号输出的温湿度复合传感器,应用专用的数字模块采集技术和温湿度传感技 术。传感器包括一个电容式感湿元件和一个 NTC(Negative Temperature Coefficient)测 温元件。每个 AM2301 传感器都在极为精确的湿度校验室中进行校准。校准系数以程 序的形式储存在 OTP(One Time Programable)内存中,传感器内部在检测信号的处理过 程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、 极低的功耗,信号传输距离理论上可达 20 米以上,使其成为各类应用场合的最佳选择。 (王志宏等, 2011)。 3.3.2 AM2301 接口及温湿采集电路 表 4 所示为 AM2301 各管脚功能,图 5 所示为 AM2301 温湿度采集电路图。其中 Data 数据口连接线长度短于 20 米时用 5K 上拉电阻,大于 20 米时根据实际情况使用 合适的上拉电阻。 VD1at2N3GAM0+KRP 管脚 名称 功能 1 VDD 供电 35.5VDC 2 Data 串行数据,单总线 3 NC 空脚,请悬空 4 GND 地,电源负极 表 4 AM2301 各管脚功能 图 5 AM2301 接口电路 9 3.3.3 AM2301 工作原理 AM2301 的供电电压为 5V。传感器上电后,要等待 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 位数据是温湿度校验和,即 湿度高 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 把总线拉低等待 AM2301 响应,MCU 把总线拉低 必须大于 18 毫秒,保证 AM2301 能检测到起始信号。AM2301 接收到 MCU 的起始信 号后,等待 MCU 开始信号结束,然后发送 80s 低电平响应信号。MCU 发送开始信 号结束后,延时等待 2040s 后,读取 AM2301 的响应信号,MCU 发送开始信号后, 可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。 总线为低电平,说明 AM2301 发送响应信号,发送响应信号之后,再把总线拉高 80s,准备发送数据,每 1bit 数据都以 50s 低电平时隙开始,高电平时间为 2628s 时数据位为 0;高电平时间为 70s 时数据位为 1。如果读取响应信号为高电平,则 AM2301 没有响应。当最后 1bit 数据传送完毕后,AM2301 拉低总线 50s,随后总线 由上拉电阻拉高进入空闲状态。 3.4 显示模块 TFT-LCD RSWDB10234567CTLEK89F-VNP_OUYI 图 6 彩屏 TFT 电路图 显示模块采用 TFT-LCD(Thin Film Transistor-Liquid Crystal Display )即薄膜晶体 管液晶显示器。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显 示屏的每一个象素上都设置有一个薄膜晶体管(TFT ),可有效地克服非选通时的串 扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。上配置 2.8 寸的 TFTLCD。该模块的控制器为 ILI9325,具 有 26 万像素,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(收发保持一致),其发射速率为 1Mb/s。 初次读温湿度值:延时 1 秒钟,待 AM2301 上电稳定后,读取一次温湿度数据。 因为读一次数据才会触发一次温湿度采集,即在使用数据时先采集一次数据。两次温 湿度采集的时间间隔不少于 1 秒,程序设定延时 1.5 秒。 11 初始化定时器 0:精确控制两次温湿度采集的时间间隔。设置定时器 0 高低位字 节初始值,初始化 flag 标志为 0,设置定时器模式寄存器和中断寄存器。 装载信息:将节点号信息、温湿度数据信息装载到发送缓冲寄存器中。 发送数据:设置 PRIM_RX 为低、CE 为高,启动发射模式, CE 高电平持续时间 最小为 10s。设置 nRF24L01 为 ShockBurst 发送模式。 判断是否收到应答:数据发送完后,立即进入接收模式。如果在有效应答时间范 围内收到应答信号,则认为温湿度信息成功发送到了接收端,此时状态寄存器的 TX_DS 位置高并把数据从 TX_FIFO 中清除掉;如果在设定时间范围内没有接收到应 答信号,则重新发送数据。 自动重发:当发完数据后,如果在有效应答的时间范围内没收到应答信号,且自 动重发计数器溢出,则状态寄存器的 MAX_RT 位置高,不清除 TX_FIFO 中的数据。 当 MAX_RT 或 TX_DS 为高电平时,引脚产生中断,IRQ 中断通过写状态寄存器来复 位。如果重发次数在达到设定的最大重发次数时还没有收到应答信号的话,在 MAX_RX 中断清除之前不会重发数据包,数据包丢失计数器(PLOS_CNT)在每次产生 MAX_RT 中断后加一。 发送端程序流程如图 9 所示。 延 时 1 s 读 取 温 湿 度 数 据 处 理 及 装 载 初 始 化 定 时 器 0 定 时 1 s ? 进 入 中 断 启 动 N R F 2 4 L 0 1 初 始 化 N R F 2 4 L 0 1 发 送 数 据 收 到 应 答 ?自 动 重 发 超 重 发 数 ? I R Q 中 断 等 待 定 时 中 断 开 始 结 束 是 否 是 否 否 是 图 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 相同,无需设置),各通道接收数据长度设置为 4 个字节,各通道工作频率设为 2.4GHz(收发保持一致 ),各通道发射速率为 1Mb/s。 接收配置:将 PWR_UP、PRIM_RX、CE 引脚置高,使 nRF24L01 进入接收模式; 130s 后 nRF24L01 开始检测空中信息。 13 接 收 配 置 初 始 化 T F T 及 N R F 2 4 L 0 1 开 始 接 收 到 数 据 ? 启 动 N R F 2 4 L 0 1 节 点 编 号 检 测 ? 显 示 节 点 2 温 湿 度 显 示 节 点 3 温 湿 度 显 示 节 点 4 温 湿 度 是 否 超 过 温 湿 度 上 限 值 ? 报 警 并 闪 烁 结 束 绘 制 系 统 界 面 预 设 温 湿 度 上 限 值 显 示 是 是 否 否 2 3 4 图 10 接收端程序流程图 接收到数据检测:读取状态寄存器,判断是否接收到数据。接收到有效的数据包 后(地址匹配、CRC 校验正确),将数据存储在 RX_FIFO 中,同时 RX_DR 位置高, 并产生中断。接收到的数据为四个字节,第一字节为终端节点号,第二字节为湿度值, 第三字节为温度值,第四字节为数据和校验信息。 温湿度上限值检测:将实时采集到的温湿度值与预设的温湿度值进行比较,若超 过预设的温湿度值则进行报警并闪烁;若没有超出,则温湿度值正常,并实时刷新显 示。 接收端程序流程如图 10 所示。 5 硬件电路 5.1 硬件制作 首先是打印电路板,将绘制好的电路板用转印纸打印出来,并裁剪覆铜板,再将 打印好的电路板裁剪成合适大小,把印有电路板的一面贴在覆铜板上,对齐好后把覆 铜板放入热转印机,放入时保证转印纸没有错位。将热转印机事先预热,温度设定在 160200 摄氏度。经过 510 次转印,电路板就很牢固的转印在覆铜板上。接下来是 腐蚀线路板,检查一下电路板是否转印完整,将少数没有转印好的线路用黑色油性笔 修补后再进行腐蚀。最后将板打孔,钻孔完后,用细砂纸把覆在线路板上的墨粉打磨 掉,用清水把线路板清洗干净。即做成一块印制电路板。 5.2 硬件调试 通电之前,先用万用表检查线路的正确性,并核对元器件的型号、规格是否符合 要求。特别注意电源的正负极以及电源之间是否有短路,并重点检查地址总线、数据 总线、控制总线是否存在相互间的短路或其他信号线的短路。在本系统中均进行了仔 细的检查。 通电后,确认主控芯片没有发烫,再检查各器件引脚的电位,仔细测量各点电位 是否正常,尤其注意单片机的插座上的各点电位,若有高压,将有可能损坏单片机仿 真器。同样,如果电压过低就没有能力驱动其负载。 在断电的情况下,除单片机以外,用仿真插头将所连接电路与单片机仿真器的仿 真接口相连,为软件调试做好准备。 遇到的问题,如印制电路线不合格,中间有些许短路,造成调试的失败。还有 USB 电源供电电压不足的问题,电源电压经过供电给负载,电压下降 0.5V,致使单片 机不正常工作。 5.3 硬件调试结果 首先调试出 TFT-LCD 显示,方便观看其他各项调试结果。调试过程发现虚焊和 短路情况,排除此类情况。其次调试温湿度监测电路。调试时不加入无线收发,直接 用液晶显示结果,调节好定时器时间后监测正常。再次调试无线收发电路。调试时先 调试发送端,发送固定数值,禁用自动应答功能,禁用自动重发功能,通过读状态寄 存器,查看发送成功标志是否置位检测是否发送成功。发送成功后,调试接收端,接 收端也禁用自动应答功能,直接接收发送端的数据并通过液晶显示出来。调试成功后 开启自动应答功能和自动重发功能,自动重发设置为重发 10 次,间隔 150 微秒。 实现一对一通信后,调试一对多无线通信。主要是接收和发送节点的地址配置, 设置了 6 个发送端的地址,一个接收端的地址,接收端 6 个接收通道地址分别设置为 对应的 6 个发送端的地址。调试过程中发现 6 个接收通道中 P0 通道和 P1 通道为 40 位地址,P2 P5 通道为 8 位地址,且 P2P5 通道的高 32 位地址与 P1 通道地址一样。 发送端若用 P0,P1 通道发送必须将地址设置为 40 位且要与接收端的响应的接收通道 15 对应(若接收通道为 P2,地址只有 8 位,则发送端用 P0 通道发送,地址应设为接收端 的接收通道 P2 的 8 位地址加上接收端的接收通道 P1 的高 32 位地址)。最后整合温湿 度监测电路和无线收发电路。将 AM2301 采集过来的温湿度值直接传送给无线发送模 块,再由无线接收模块接收温湿度信息,最后由液晶显示温湿度信息。调试过程中发 现开机仅能监测一次温湿度信息,不能实时监测。经过几次先后开关发送端和接收端, 找出原因是发送之后没有清除发送成功标志。 5.3.1 温湿度采集测试 实验测试了华南农业大学华山宿舍区 20 栋 104 室内的温湿度数据,通过三个无线 监测节点采集的不同的温湿度信息,发送给终端节点显示。其中节点 2 采用 AM2301 温湿度传感器,采集温度的精度为 0.5 ,采集相对湿度的精度为 3%,并放置在C 笔记本电脑的散热排气扇通风口旁;节点 3 和节点 4 均采用 DHT11 温湿度传感器,采 集温度的精度为 2 ,采集相对湿度的精度为 5%,其中节点 3 放置在书桌上,节C 点 4 放置在书桌下。 5.3.1.1 系统准确性测试 节点编号 温度( C) 相对湿度 (%) 所处地 2 34 64 电脑散热器旁 3 30 79 书桌上 4 29 80 书桌下 图 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 所示。 表 5 12:00 时宿舍内采样点温湿度 节点编号 温度( C) 相对湿度 (%) 所处地 2 34 65 电脑散热器旁 3 28 78 书桌上 4 28 81 书桌下 图 12 18:00 时温湿度 值 表 6 18:00 时宿舍内采样点温湿度 采用温湿度计于 2013 年 4 月 24 号 18:10 时采集三处节点的温湿度,如表 7 所示。 采用本系统于 18:10 时,检测三处节点的温湿度值,如图 13 所示。 节点编号 温度( C) 相对湿度 (%) 所处地 2 35 65 电脑散热器旁 3 27 79 书桌上 4 28 82 书桌下 图 13 18:10 时温湿度 值 分析上图各组数据,可知相比于中午 12 点的数据,各节点温度值降低,湿度值升 高,符合实际情况。相比 18:00 与 18:10 时的数据,可知室内温度值较为稳定,10 分钟内,数据波动较小,温度在 1 C以内,相对湿度在 1%以内。且湿度在室内有明 显的层次分布,其中地上最潮湿,书桌上次之,书桌电脑旁由于受电脑散热风影响最 为干燥,且温度最高。 5.3.1.3 系统误差分析 本系统存在一定误差,现对误差进行分析与计算。以温湿度计数值为基准,计算 本系统的相对误差如下表所示。其中表 8 为 12:00 时的温湿度误差,表 9 为 18:00 时的温湿度误差,表 10 为 18:10 时的温湿度误差,表 11 为三个时间点系统的平均温 湿度误差。 分析以上各组数据,本系统相
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位授权委托书的作用和范本3篇
- 员工上下班安全协议书范文3篇
- 出口授权代理协议样本3篇
- 人力资源带贫协议书2篇
- 年度框架采购协议合同3篇
- 上海市建筑工程学校招聘考试真题2024
- 2024年江西南昌医学院招聘笔试真题
- 2024年哈尔滨市香电幼儿园招聘笔试真题
- 渤海银行西安分行招聘考试真题2024
- 内蒙古自治区北京八中乌兰察布分校2024-2025学年高三下第一次测试物理试题含解析
- 中职护理专业护理服务质量评价体系研究
- 2024年南京市中考历史试题及答案
- 小学生卫生知识健康教育精课件
- A类供应商绩效评价表
- 新目标英语初三英语总复习资料讲义
- 体育馆钢结构工程马道施工方案
- 2024年全国中学生数学奥林匹克竞赛内蒙古赛区初赛试卷(解析版)
- 四川省建筑与桥梁结构监测实施与验收标准
- 2024届山东省潍坊市六年级下学期小升初真题数学试卷含解析
- 加油站股东合作的协议书
- 2024招商引资协议书范本
评论
0/150
提交评论