基于Arduino平台开发的无线温度和湿度监控器

电子说

1.3w人已加入

描述

本篇文章主要介绍了使用Arduino平台以及价格低廉且易于使用的ASK发送器/接收器模块,为孩子或婴儿房间安装一款DIY自制的无线温度和湿度监控器。在发送端,Arduino nano使用DHT22传感器感测室温和湿度,并通过433 MHz ASK RF链路将数据发送到接收端Arduino。接收方Arduino解码接收到的字节并将信息显示在LCD屏幕上。 RF传输的室内范围约为100英尺,这足以满足常见的室内面积。

Arduino

所需的组件

您将需要以下物品来构建此项目:

●    ASK发送器/接收器对

●    两个Arduino开发板。在发射端使用Arduino Nano,在接收端使用Arduino Uno。

●    一个诺基亚5110 LCD,用于在接收端显示数据

●    一个DHT22传感器,用于在发射端上测量温度和湿度

●    两个LED和两个330Ω电阻

●    电线、面包板、原型板等。

ASK RF套件简介

在国内和国际市场上,都可以在线购买使用各种ASK Tx / Rx模块。其中有些带有弹簧天线,有些则没有。对于没有天线的天线,您可以将〜20cm的导线连接到电路板上的天线针。下图显示了您可以在eBay和Amazon上购买的一些ASK RF模块。

在本文中,我们使用了NiceRF公司生产的高质量ASK RF模块。这些模块的优点是它们非常紧凑,面包板和PCB友好,由高质量PCB制成,配有铜制弹簧天线,并具有合理的传输范围。

发送器的硬件设置

ASK发送器模块具有三个引脚:VCC、数据和接地。根据制造商的不同,它们的顺序可能不同。因此,请务必仔细查看引脚,以识别这些模块上的数据和电源引脚。 VCC和Gnd引脚连接到Arduino Nano的+ 5V和Gnd引脚,而Tx模块的数据引脚连接到Arduino的数字I / O引脚12。 LED还与串联的限流电阻一起连接到I / O引脚11。在数据传输过程中,该LED点​​亮。

Arduino

发送电路(与LED串联的电阻为330欧姆)

将上面的电路连接到面包板上,如下图所示。

Arduino

接收端的电路设置

接收模块同样包含VCC、Gnd和Data三个引脚。某些模块可能具有多个数据引脚。在这种情况下,您可以使用它们中的任何一个,因为它们都连接在一起。在接收端,Rx模块的数据引脚输出,并由Arduino引脚读取。在本文中,它连接到Arduino的D11引脚。与发送端类似,连接到D3引脚的LED指示接收发送器发送的数据。诺基亚5110 LCD也连接到接收端Arduino,以显示远程站的温度和湿度。在本文中,我在接收端使用Crowduino Uno。请注意,诺基亚5110 LCD的工作电压为3.3V。如果您的Arduino开发板工作在5.0V,则在Arduino和LCD之间需要一个电压转换器。下图更详细地显示了接收端的连接。

Arduino

我使用了通用的Arduino原型板来构建上述电路。下图显示了焊接在Arduino proto-shield上的组装好的接收器电路

软件代码

该项目使用由Mike McCauley编写的Arduino VirtualWire库。该库支持市场上众多的低成本RF发送器和接收器,并允许通过ASK调制发送短消息。在此项目中,Tx端的Arduino从DHT22传感器读取温度和湿度,将两个读数合并为一个字符串,然后通过RF链接发送。在接收端,Arduino从接收的字符串中提取两个读数,并在诺基亚5110 LCD上显示数据。您可以从以下链接下载用于Tx和Rx末端的VirtualWire库和Arduino代码。

●    下载VirtualWire库

●    下载用于发送端的Arduino代码

●    下载用于接收端的Arduino代码

输出

将固件上传到两个Arduino开发板后,该项目就可以进行测试了。您可以将Tx模块放置在要远程监控温度和湿度的地方,并将Rx模块放置在100英尺范围内。您应该在LCD屏幕上看到测量值,如下所示:

Arduino

可以通过在Rx端添加蜂鸣器,并编程Arduino以在温度和/或湿度超出预设极限值时发出警报来进一步扩展该项目。
编辑:hfy

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分