基于ATmega16的无线温度监测系统
随着社会的发展和进步,越来越多的场合对温度的要求日臻严格,温度监控系统的应用日趋受到重视。在农业发展领域,农业大棚、冷库、培育温室等众多场合都需要温度测量技术。传统的测温系统都是有线系统,对于一些需要多点测温的场合,使用传统有线测温方式在布设、维护和更新方面存在着很多不便。为了解决这个问题,设计了一种基于单片机和无线收发模块的无线温度监控系统,结合温度传感器可以很方便构建一个多点分布式智能无线温度监控系统。
1 无线温度监控系统构成
系统主要由两部分组成。如图1所示,第一部分是节点温度测量系统,第二部分是温度显示管理终端。节点温度测量系统负责测量温度,并将温度值通过无线通信发送到温度显示管理终端。管理终端接收温度信息并进行显示和发出警报信号,而且在特殊情况下管理终端还可以逆向发送调控信息给节点温度测量系统,实现对温度的调控。
![](../img/eep/emb/emb-10338wexzpoqrrkd.jpg)
1.1 节点温度测量系统设计
节点温度测量系统构成如图2所示,系统核心控制芯片采用AVR系列的单片机ATmega16。这是一款精简指令集的单片机,高速度、低功耗,具有Sleep功能及CMOS技术,并具有高度保密性,可多次烧写的Flash,具有多重密码保护锁死功能。另外内置看门狗定时器(WDT)和片内有RC振荡器,使用起来非常方便。具有休眠省电功能和闲置低功耗功能,在实用性方面性价比相对较高。
![](../img/eep/emb/emb-103395snvxhdnfty.jpg)
温度传感器模块采用数字温度传感器DS18B20,它是美国Dallas半导体公司推出的一种智能数字温度传感器。DS18B20在与MCU连接时仅需要一条线(即单总线接口,加电源为三线接口)即可实现微处理器与DS18B20的双向通讯。使用DS18B20可以节省系统资源、使系统结构更趋简单。DS18B20测温范围是-55℃~+125℃,固有测温分辨率0.5℃。工作电源为3 V~5V/DC。在使用中不需要任何外围元件,测量结果以9~12位数字量方式串行传送。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其中64位光刻ROM中存储的是该DS18B20的地址序列号码。其号码的排列是:最初8位(28H)是产品类型标号,接着的48位是DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM中的地址序列码可以区分每一个DS18B20,从而实现在同一根总线上挂接多个DS18B20。根据DS18B20的通讯协议,MCU(单片机)控制DS18B20完成温度转换必须经过三个步骤:
(1)每一次读写之前都要对DS18B20进行复位操作
(2)复位成功后发送一条ROM指令
(3)最后发送RAM指令
这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500 μs,然后释放,当DS18B20收到信号后等待16~60μs左右,后发出60~240μs的低脉冲,主CPU收到此信号表示复位成功。论文设计的测温系统中每一个DS18B20在与MCU连接时各占用一个I/O口,则MCU控制DS18B20完成温度转换的步骤如图3所示。
![](../img/eep/emb/emb-10340hdmvmg4zdes.jpg)
nRF24L01是Nordic公司推出的高集成的单片无线收发器件。芯片具备自动应答和自动重发功能,速度可达2 Mbps,126个可选工作频道,很短的频道切换时间,可用于跳频,其输出功率,频道选择以及协议设置都可以通过SPI口进行设置。其Enhanced Shock Burst模式可以同时控制应答及重发功能而无需增加微控制器的工作量。nRF24L01还具备同一频道接收六路不同通道数据的功能,利用FDMA技术最多可实现750个点的数据采集,这使它成为无线温度测量系统硬件实现的最佳选择。nRF24L01模块在与MCU进行数据传输时,可以使用MCU普通的I/O口,系统中直接利用ATmega16的固有资源SPI通信口,这样从一定程度上简化了软件设计过程。
液晶显示模块采用LCD1602液晶显示器,模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,设计中可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A’。系统中1602采用的是8位数据线驱动,其控制端和数据传输均通过单片机的I/O口直接控制,电路如图4所示。
![](../img/eep/emb/emb-10341wmzlnid4q1s.jpg)
MCU-ATmega16、温度传感器DS18B20和液晶显示器模块1602都是用5 V供电电源。系统供电电源为5 V,可以直接使用。nRF24L01无线收发模块需要3.3 V供电,所以采用REG1117-3.3芯片进行电源电压变换,产生3.3 V电源供nRF24L01使用。ATmega16的SPI口在与nRF24L01无线收发
- 基于MMS的即时报警系统设计(01-23)
- 基于ATmega162的智能仪器设计(08-18)
- AVR汇编初探之二《AVR的指令与汇编系统》(01-10)
- Atmega16与DS1302数码管显示程序(12-02)
- ATMEGA16与DS18B20数码管显示(12-02)
- ATmega16利用TWI模块读写24C02程序(12-02)