技术中心
 
 

基于单片机ATmega16的无线温度监测系统

   日期:2011-05-25     来源:互联网    作者:张 宁 华北电力大学    
核心提示:利用AVR系列的ATmega16单片机、无线收发模块nRF24L01、数字温度传感器DS18B20和LCD1602液晶显示器设计了无线温度监测系统。该系统通过配置ATmega16单片机,采集DS18B20转换的温度量,将温度信息显示在LCD1602液晶显示器上,同时通过无线收发模块将温度信息传送到管理终端进行显示和处理。系统同时保证当被测温度不在合理范围时发出声音报警信号。

关键词:单片机;ATmega16;DS18B20;无线温度监测;nRF24L01

0 引言
随着社会的发展和进步,越来越多的场合对温度的要求日臻严格,温度监控系统的应用日趋受到重视。在农业发展领域,农业大棚、冷库、培育温室等众多场合都需要温度测量技术。传统的测温系统都是有线系统,对于一些需要多点测温的场合,使用传统有线测温方式在布设、维护和更新方面存在着很多不便。为了解决这个问题,设计了一种基于单片机和无线收发模块的无线温度监控系统,结合温度传感器可以很方便构建一个多点分布式智能无线温度监控系统。

1 无线温度监控系统构成
系统主要由两部分组成。如图1所示,第一部分是节点温度测量系统,第二部分是温度显示管理终端。节点温度测量系统负责测量温度,并将温度值通过无线通信发送到温度显示管理终端。管理终端接收温度信息并进行显示和发出警报信号,而且在特殊情况下管理终端还可以逆向发送调控信息给节点温度测量系统,实现对温度的调控。 a.jpg
1.1 节点温度测量系统设计
节点温度测量系统构成如图2所示,系统核心控制芯片采用AVR系列的单片机ATmega16。这是一款精简指令集的单片机,高速度、低功耗,具有Sleep功能及CMOS技术,并具有高度保密性,可多次烧写的Flash,具有多重密码保护锁死功能。另外内置看门狗定时器(WDT)和片内有RC振荡器,使用起来非常方便。具有休眠省电功能和闲置低功耗功能,在实用性方面性价比相对较高。 b.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所示。 c.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所示。 e.jpg
MCU-ATmega16、温度传感器DS18B20和液晶显示器模块1602都是用5 V供电电源。系统供电电源为5 V,可以直接使用。nRF24L01无线收发模块需要3.3 V供电,所以采用REG1117-3.3芯片进行电源电压变换,产生3.3 V电源供nRF24L01使用。ATmega16的SPI口在与nRF24L01无线收发模块相接时,由于ATmega16输出驱动电流偏大,可能会损坏无线模块,所以要串联2 k电阻以保护无线模块。
1.2 温度显示管理终端
在温度显示管理终端,首先由无线收发模块nRF24L01通过天线将节点温度测量系统发送的温度信息进行接收。通过单片机SPI串口将温度信息数据采集到MCU,温度不在正常监测范围则声音模块发出声音报警。最后通过RS232通信,将温度数据送到PC进行显示和处理。整个系统的通信属于双工通信,在必要情况下,电路功能可以扩展,实现PC发出控制信号,通过反方向通信调节各个节点的温度。

2 结束语
本文设计的无线温度监测系统结构简单,实现容易,系统性能好。适合多种场合进行无线温度监测。
 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢