基于单片机的粮仓温湿度多点无线监测系统设计毕业设计(编辑修改稿)内容摘要:

37VCC5VCC17GND18VCC38GND39ATmega16L8AIVCC10KR110uFC1+5V 图 2 单片机最小系统 单片机控制模块由 ATmega16L 最小系统组成,包括 ATmega16L8AI 单片机(芯片内集成晶振电路)和复位电路。 单片机复位端低电平有效,系统上电后 由 RC 充放电电路实现 自动复位,也可短按复位按键 S1 实现手动复位 (王卫星, 20xx)。 单片机最小系统如图 2 所示。 ATmega16L系列单片机管脚如图 2 所示。 本设计无线传感器模块控制接口为 PB3~PB7 以及 PD2;下载程序采用 ISP 通信, 采用 USB ISP 下载器进行程序下载,其 接口为PB5~PB7 以及 RST 端口; RXD/ 和 TXD/ 为串口通信端口 , RXD 用于读数据, 5 TXD 用于发送数据 ;监测端:温湿度数据采集端口为 PC0~ PC7;接收端: TFT 彩屏接口为 PC0~ PC7 和 PA2~ PA4。 nRF24L01 无线模块 nRF24L01模块电路图 nRF24L01(张玉建, 20xx;刘靖 等, 20xx)芯片是由 NORDIC 公司生产一款无线通信芯片,采用 FSK 调制方式,内部集成有 NORDIC 自己的 Enhanced Short Burst 协议。 可以实现点对点或是 1 对 6 的无线通信。 通信速度可以达到 2Mb/s。 nRF24L01 无线射频模块的电路图如图 3 所示。 P7++CE1CSN2SCK3MOSI4MISO5IRQ6VDD7VSS8XC29XC110VDD_PA11ANT112ANT213VSS14VDD15IREF16VSS17VDD18DVDD19VSS20NRF24L011 216MY11MR122pFC122pFC2C3C415pFC515pFC612nHL1L2L310nFC91nFC833nFC722KR2E1CECSNSCKMOSIMISOIRO 图 3 nRF24L01 模块电路图 nRF24L01模块接口电路 10uFC10LM111710uFC91 23 45 67 8NRF24L01CESCKMISO1KR3GND+5VD2LED2CESCKMISOCSNMOSIIRQ 图 4 单片机与无线模块通信及其 电源转换电路图 6 nRF24L01 是一款新型单片射频收发器件,工作于 GHz~ GHz ISM(Industrial Scientific Medical)频段。 内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型 ShockBurst 技术,其中输出功率和通信频道可通过程序进行配置。 nRF24L01 功耗低,在以 6 dBm 的功率发射时,工作电流也只有 9 mA;接收时,工作电流只有 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。 表 1 nRF24L01 模块引脚功能 管脚 功能 CE 工作模式, TX 或者 RX 模式选择 CSN SPI 片选使能,低电平有效 SCK SPI 时钟 MOSI SPI 数据输入 MISO SPI 数据输出 IRQ 中断输出 VDD 电源 输入 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 的 PB3~ PB7 以及 PD2 端口连接。 nRF24L01模块供电电源 此无线射频模块需要的电源为 V~ V,故不能直接用 5V 电源供电,本系统中采用 直流电源对无线射频模块供电, 5V 电源经 LM1117 芯片进行转换后即得到稳定的直流电源供给 nRF24L01 无线射频模块。 nRF24L01模块工作模式 通过配置寄存器可将 nRF241L01 配置为发射、接收、 空闲及掉电四种工作模式,如表 2 所示。 在掉电模式下电流损耗最小,同时 nRF24L01 也不工作,但其所有配置寄存器的值仍然保留。 7 nRF24L01模块工作原理 发射数据:先将 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。 表 2 nRF24L01 工作模式及配置 工作模式 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。 8 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 状态寄存器,用来判定工作状态 0A0F RX_ADDR_P0~P5 设置接收通道地址 10 TX_ADDR 设置接收节点地址 1116 RX_PW_P0~P5 设置接收通道的有效数据宽度 数字温湿度传感器 AM2301 AM2301概述 AM2301 数字温湿度传感器, 别 称 为 DHT21 温湿度传感器,是电阻式感湿元件DHT11 湿度传感器的升级版, 具有高精度,快响应、抗干扰能力强等优点。 其中采集温度的精度为  C ,采集相对湿度的精度为  3%。 AM2301 它是一款含有已校准数字信号输出的温湿度复合传感器,应用专用的数字模块采集技术和温湿度传感技术。 传感器包括一个电容 式感湿元件和一个 NTC(Negative Temperature Coefficient)测温元件。 每个 AM2301 传感器都在极为精确的湿度校验室中进行校准。 校准系数以程序的形式储存在 OTP(One Time Programable)内存中,传感器内部在检测信号的处理过程中要调 9 用这些校准系数。 单线制串行接口,使系统集成变得简易快捷。 超小的体积、极低的功耗,信号传输距离 理论上 可达 20 米以上,使其成为各类应用场合的最佳选择。 (王志宏等, 20xx)。 AM2301接口及温湿采集电路 表 4 所示为 AM2301 各管脚功能,图 5 所示为 AM2301 温湿度采集电路图。 其中Data 数据口连接线长度短于 20 米时用 5K 上拉电阻 , 大于 20 米时根据实际情况使用合适的上拉电阻。 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。 其中 湿度 =% , 温度 =℃ (当温度低于 0℃ 时温度数据的最高位置 1)。 VDD1Data2NC3GND4AM2301+5V5KR2PC5PC5NC 管脚 名称 功能 1 VDD 供电 3- 2 Data 串行数据,单总线 3 NC 空脚,请悬空 4 GND 地,电源负极 表 4 AM2301 各管脚 功能 图 5 AM2301 接口电路 10 用户主机( MCU)发送一次开始信号后, AM2301 从低功耗模式转换到高速模式,等待主机开始信号结束后, AM2301 发送响应信号,送出 40bit 的数据,并触发一次信号采集(注:主机从 AM2301 读取的温湿度数据总是前一次的测量值,如两次测量间隔时间很长,需连续读取两次数据以获得实时的温湿度值)。 总线空闲状态为高电平, MCU 把总线拉低等待 AM2301 响应, MCU 把总线拉低必须大于 18 毫秒,保证 AM2301 能检测到起始信号。 AM2301 接收到 MCU 的起始信号后,等待 MCU 开始信号结束,然后发送 80μs低电平响应信号。 MCU 发送开始信号结束后,延时等待 20~ 40μs后,读取 AM2301 的响应信号, MCU 发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。 总线为低电平,说明 AM2301 发。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。