Zigbee+Arduino无线温度测量装置设计

发布时间:2013-12-30 阅读量:1735 来源: 发布人:


【导读】温度是我们生活中接触的较多的物理量之一,例如气温、人体温度,但很多时候却不能实地测量,例如在室内想实时知道室外的气温,这时候就需要使用无线传输来实现了。这里给大家带来一款基于Zigbee协议、Arduino平台的无线温度测量装置。

Arduino控制器外围实现ZigBee无线传输功能的主要有XBee模块和Zigduino控制器,XBee模块是串口操作,使用Arduino控制器与XBee模块即可实现ZigBee无线传输,但是XBee模块价格较高,而且需要转接板或连接线,不利于集成化;Zigduino是带有ZigBee无线传输功能的Arduino兼容控制器,具有集成化程度高、体积小、性价比高的优点。从性价比的角度出发,本文最终采用Zigduino控制器来实现温度数据的ZigBee无线传输。

一、Zigduino IDE的设置

Zigduino是一款兼容Arduino的开源硬件控制器,不仅与Arduino控制器保持兼容,而且内部集成了802.15.4协议无线模块,支持任何基于802.15.4协议的无线模块,包括ZigBee,MAC/6LoWPAN和 RF4CE。虽然Zigduino的核心单片机Atmega128RFA1的工作电压为3.3V,但是Zigduino控制器的引脚兼容5V,并且可以与Arduino扩展板保持兼容。除此之外,Zigduino控制器还内置了锂电管理模块,并且具有128KB FLASH和16KB SRAM,可以满足较复杂的应用需求。Zigduino实物图如图1所示。

zigbee模块
图1 Zigduino模块

Zigduino的开发环境是基于Aduino的开发环境开发而来,可以使用Ziduino完整版或Arduino IDE扩展包来实现Zigduino的开发。扩展包的使用方法:将扩展包内2个文件夹复制到原IDE的根目录下,替换掉提示重复的文件后,再次运行arduino.exe即可正常使用。

二、温度测量部分

温度测量部分采用Zigduino控制器和温度传感器DS18B20来实现,将DS18B20的VDD和GND分别接至Zigduino 控制器的5V和GND,数据引脚DQ接至Zigduino控制器的数字端口D2,并且在数据引脚DQ与+5V之间连接阻值为4.7kΩ的上拉电阻,以保证温度传感器DS18B20能够正常工作,Zigduino控制器与DS18B20的连接示意图如图2所示。

装置硬件原理
图2 温度测量硬件部分

温度测量部分采用Zigduino控制器与DS18B20来实现温度的测量,即可使用第三方函数库DallasTemperature来实现,只是将带有两位小数的温度数据先放大100倍,以去除小数点,再提取出温度数据的整数部分和小数部分,具体代码如图3所示。

代码
图3  温度测量部分代码

三、时钟和显示部分

时钟和显示部分采用Zigduino控制器和DS3231实时时钟模块、LCD1602液晶显示屏模块来实现,将DS3231的5V和GND分别接至Zigduino 控制器的5V和GND,信号引脚SCL、SDA分别接至Zigduino控制器的端口SCL、SDA;将LCD1602液晶显示屏模块的VCC、GND、R/W分别接至Zigduino 控制器的5V、GND和GND,对比度调节引脚VEE通过10kΩ的电位器来调节分压值,从而实现对比度的调节,信号控制引脚RS、E分别直接至Zigduino 控制器数字端口D7和D6,数据输入引脚D4、D5、D6、D7分别接至Zigduino 控制器数字端口D5、D4、D3、D2。具体的连接示意图如图4所示。

时钟显示电路
图4 时钟和显示部分原理图

温度测量部分采用Zigduino控制器与DS18B20来实现温度的测量,即可使用第三方函数库DallasTemperature来实现,只是将带有两位小数的温度数据先放大100倍,以去除小数点,再提取出温度数据的整数部分和小数部分,具体代码如图5所示。

时钟部分代码
图5 时钟和显示部分代码

四、时钟校准部分

或许当你完成以上的工作之后,却发现时间不正确,这是因为时钟芯片或模块在出厂之后没有能够保证一直供电,或者其他原因的影响,导致时钟模块的时间与当前时间有所差值,这时候就需要对时钟模块进行校准。在时钟校准代码中将时间改为当前时间,最好略微超前30秒左右,因为编译和下载需要浪费一会儿时间,然后将校准代码下载至连接有DS3231实时时钟模块的Zigduino或Arduino 控制器,时钟校准代码如图6所示。

时钟校准代码
图6 时钟校准代码

五、结果展示

实物演示图如图7所示,上方为时钟和显示部分,下方为温度测量部分。为了更好的证明两者是通过无线传输数据,温度测量部分采用外接电源端口供电,时钟和显示部分采用USB端口供电。

实验结果
图7 实物演示

本方案利用Zigduino内部集成的无线模块实现数据的无线传输,温度测量部分采用单总线数字式温度传感器DS18B20实现温度测量,时钟和显示部分使用DS3231实时时钟模块和LCD1602液晶显示模块实现时钟和温度的显示功能。
 

相关资讯
特朗普集结苹果、英伟达等科技巨头组建“美国科技部队”

特朗普政府于15日宣布成立"美国科技部队"(US Tech Force),计划组建一支由工程师和专家组成的千人研发团队。

世纪大和解!京东方与三星专利战握手言和

京东方与三星达成全面和解,联合向美国国际贸易委员会提交终止相关调查的申请

全球首富再破纪录!马斯克净资产达6000亿美元

《福布斯》统计显示,埃隆·马斯克已成为全球首位净资产突破6000亿美元的富豪。

以“新”为擎 智汇湾区—— CITE 2026蓄势待发

​2025年12月16日,中国电子信息博览会组委会在深圳召开新闻发布会,宣布第十四届中国电子信息博览会(CITE 2026)将于2026年4月9日—11日在深圳会展中心(福田)盛大举办,并向社会各界发布博览会相关筹备情况。

激光雷达巨头Luminar申请破产重组:CFO离职、最大客户沃尔沃取消合约

激光雷达制造商Luminar Technologies周一宣布启动破产重组程序并计划出售资产。