第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/5/20 18:37:48 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

3.2.6 nRF24L01配置字

SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给单片机ATmega16L。

nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。nRF24L01 的配置寄存器共有25个,常用的配置寄存器如表3所示。

表3 nRF24L01常用配置寄存器

地址(H)

00 01 02 03 04 07 0A-0F 10 11-16

寄存器名称 CONFIG EN_AA EN_RXADDR SETUP_AW SETUP_RETR STATUS RX_ADDR_P0~P5

TX_ADDR RX_PW_P0~P5

功能

设置nRF24L01工作模式 设置接收通道及自动应答 使能接收通道地址 设置地址宽度

设置自动重发数据时间和次数 状态寄存器,用来判定工作状态

设置接收通道地址 设置接收节点地址 设置接收通道的有效数据宽度

3.3 数字温湿度传感器 AM2301 3.3.1 AM2301概述

AM2301数字温湿度传感器,别称为DHT21温湿度传感器,是电阻式感湿元件DHT11湿度传感器的升级版, 具有高精度,快响应、抗干扰能力强等优点。其中采集温度的精度为?0.5?C,采集相对湿度的精度为?3%。AM2301它是一款含有已校准数字信号输出的温湿度复合传感器,应用专用的数字模块采集技术和温湿度传感技术。传感器包括一个电容式感湿元件和一个NTC(Negative Temperature Coefficient)测温元件。每个AM2301传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP(One Time Programable)内存中,传感器内部在检测信号的处理过程中要调

8

用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离理论上可达20米以上,使其成为各类应用场合的最佳选择。(王志宏等,2011)。

3.3.2 AM2301接口及温湿采集电路

表4所示为AM2301各管脚功能,图5所示为AM2301温湿度采集电路图。其中Data数据口连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。

表4 AM2301各管脚功能 管脚 1 2 3 4 名称 VDD Data NC GND 功能 供电 3-5.5VDC 串行数据,单总线 空脚,请悬空 地,电源负极 图5 AM2301接口电路

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)。

9

用户主机(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(Thin Film Transistor-Liquid Crystal Display)即薄膜晶体管液晶显示器。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,

10

使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。上配置2.8寸的TFTLCD。该模块的控制器为ILI9325,具有26万像素,320×240的分辨率,16位真彩显示,自带触摸屏,可以用来作为控制输入。电路图如图6所示。

4 系统软件设计

4.1 单片机软件设计 4.1.1 发送端流程

初始化无线模块nRF24L01:单片机控制引脚CE为低,使nRF24L01进入待机模式。将本机地址(TX_ADDR)通过SPI接口写入nRF24L01,当CSN为低时数据被不断写入。将通道0(或者其他通道)设置为接收模式来接收应答信号,并且允许自动应答,自动重发10次,间隔为500μs。其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同(接收地址长度为40位),其接收数据长度设置为4个字节,其工作频率设为2.4GHz(收发保持一致),其发射速率为1Mb/s。

初次读温湿度值:延时1秒钟,待AM2301上电稳定后,读取一次温湿度数据。因为读一次数据才会触发一次温湿度采集,即在使用数据时先采集一次数据。两次温湿度采集的时间间隔不少于1秒,程序设定延时1.5秒。

初始化定时器0:精确控制两次温湿度采集的时间间隔。设置定时器0高低位字节初始值,初始化flag标志为0,设置定时器模式寄存器和中断寄存器。

装载信息:将节点号信息、温湿度数据信息装载到发送缓冲寄存器中。

发送数据:设置PRIM_RX为低、CE为高,启动发射模式,CE高电平持续时间最小为10μs。设置nRF24L01为ShockBurst发送模式。

判断是否收到应答:数据发送完后,立即进入接收模式。如果在有效应答时间范围内收到应答信号,则认为温湿度信息成功发送到了接收端,此时状态寄存器的TX_DS位置高并把数据从TX_FIFO中清除掉;如果在设定时间范围内没有接收到应答信号,则重新发送数据。

自动重发:当发完数据后,如果在有效应答的时间范围内没收到应答信号,且自动重发计数器溢出,则状态寄存器的MAX_RT位置高,不清除TX_FIFO中的数据。当MAX_RT或TX_DS为高电平时,引脚产生中断,IRQ中断通过写状态寄存器来复位。如果重发次数在达到设定的最大重发次数时还没有收到应答信号的话,在MAX_RX中

11

基于单片机的粮仓温湿度多点无线监测系统设计毕业设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3tb149yjoo5o77k30e8m0fvqu4yw9b00pd5_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top