资料介绍
描述
建立无线气象站是一次很棒的学习经历。完成此项目的构建后,您将更好地了解无线通信的工作原理、传感器的工作原理以及 Arduino 平台的强大功能。以这个项目为基础和获得的经验,将来您将能够轻松构建更复杂的项目。
气象站是一种使用许多不同传感器收集与天气和环境相关的数据的设备。我们可以测量很多东西,比如:
- 温度
- 湿度
- 风
- 气压
- 紫外线指数
- 雨
在我们将要建造的气象站中,我们将测量两个位置的温度和湿度并显示当前日期和时间。建立气象站非常容易。但是,制造商能否制造出具有彩色 TFT 显示屏和与商业设备相匹配的功能的设备?答案是肯定的!借助开源软件和硬件的力量,可以轻松构建这个令人印象深刻的气象站!
该项目由两部分组成:发射器和接收器。
发射器测量温度和湿度,并将数据无线发送到接收器。接收器测量温度和湿度,接收来自远程传感器的数据,并在大型彩色 TFT 显示屏上显示所有内容。
让我们建立这个项目!
第 1 步:获取所有零件
构建此项目所需的部分如下:
- Arduino 到期 ▶ http://edu8s.tv/part/ArduinoDue
- Arduino 超级 ▶ http://edu8s.tv/part/ArduinoMega
- Arduino Nano ▶ http://edu8s.tv/part/ArduinoNano
- 3.2" TFT 显示屏 ▶ http://edu8s.tv/part/32TFT
- DHT22 ▶ http://educ8s.tv/part/DHT22
- NRF24L01 ▶ http://edu8s.tv/part/NRF24L01
- DS3231 RTC ▶ http://edu8s.tv/part/DS3231
该项目的成本约为40美元。如果您使用 Arduino Mega 而不是 Arduino Due,您可以将项目成本降低 5 美元。我选择使用 Arduino Due 作为接收器,因为它速度非常快,而且内存很大。随着我们为项目添加更多功能,这将在未来非常有用。
第 2 步:温湿度传感器 - DHT22
DHT22 是一种非常流行的温度和湿度传感器。它价格便宜,易于使用,并且规格声称具有良好的精度和准确性。
DHT 传感器由两部分组成:电容式湿度传感器和热敏电阻。里面还有一个芯片,做一些模数转换,输出带有温度和湿度的数字信号。使用任何微控制器都可以轻松读取数字信号。
DHT22的特点
- 低成本
- 3 至 5V 电源和 I/O
- 转换期间使用的最大电流为 2.5mA
- 0-100% 湿度读数,精度为 2-5%
- -40 至 125°C 温度读数 ±0.5°C 精度
- 减缓
与 Arduino 的连接非常简单。我们将带有 + 号的传感器引脚连接到 Arduino 的 5V 或 3.3V 输出。我们将带有 - 符号的传感器引脚连接到 GROUND。最后,我们将 OUT 引脚连接到 Arduino 的任何数字引脚。
为了在 Arduino 中使用 DHT22 传感器,我们必须使用 DHT 库。
https://github.com/adafruit/DHT-sensor-library
第 3 步:DS3231 实时时钟模块
DS3231 实时时钟模块顾名思义就是一个实时时钟。使用它的电池,它可以保持多年的时间,因为它具有最低的功耗。
DS3231 是一款低成本、极其精确的 I2C 实时时钟 (RTC),具有集成的温度补偿晶体振荡器 (TCXO) 和晶体。该设备包含电池输入,并在设备的主电源中断时保持准确的计时。晶体谐振器的集成提高了设备的长期精度,并减少了生产线中的零件数量。
RTC 维护秒、分钟、小时、星期、日期、月份和年份信息。对于少于 31 天的月份,月末的日期会自动调整,包括闰年的更正。时钟以 24 小时制或 12 小时制运行,带有 AM/PM 指示器。提供了两个可编程的时间警报和一个可编程的方波输出。地址和数据通过 I2C 双向总线串行传输。
模组成本极低;它的成本约为 2 美元,包括电池!我们将使用它来保持我们的气象站项目的时间。
第 4 步:NRF24L01+:无线模块
NRF24L01 模块是一种低成本的双向收发器模块。它将帮助您了解它的工作方式。
第 5 步:构建发送器
让我们首先构建发射器。
就是这样,您的发射器已准备就绪。现在让我们继续讨论接收器。
第 6 步:构建接收器
为了构建接收器,我们需要以下部分:
- Arduino Due 或 Mega
- DS3231实时时钟模块
- DHT22温湿度传感器
- NRF24L01+无线模块
- 3.2" 彩色 TFT 显示屏
- 面包板
- 7头针
- 一些电线
首先,我们弯曲 7 个接头引脚并将它们放置在一些 Arduino Due 引脚上。我们需要一个接地,一个接 3.3V。我们需要两个 I2C 引脚。我们需要从 6 到 8 的剩余 3 个数字引脚。我们还必须将三根电线焊接到 Arduino Due 引脚的硬件 SPI 引脚。我们需要 MOSI、MISO 和 SCK。仔细检查图表。我们将电线连接到插头引脚,我们准备好连接显示器。
连接 DS3231
- Arduino 3.3V 输出上的 VCC 引脚
- GND 引脚连接到 Arduino 的 GND 和
- SDA(串行数据线)引脚到 Arduino 的 SDA 引脚和
- SCL(串行时钟线)引脚到 Arduino 的 SCL 引脚
连接 DHT22 传感器
- Arduino 3.3V 输出上的 VCC 引脚
- GND 引脚连接到 Arduino 的 GND 和
- 输出引脚到 Arduino 的数字引脚 8
连接 NRF24L01 模块
- GND 引脚到 Arduino 的 GND
- VCC 引脚到 Arduino 3.3V
- Arduino 数字引脚 6 的第 3 个引脚
- Arduino 数字引脚 7 的第 4 个引脚
- 我们焊接的第 5 个引脚到 SCK 引脚
- 我们焊接的第 6 个引脚到 MOSI 引脚
- 我们焊接的 MISO 引脚的第 7 个引脚
第 7 步:发送器代码
首先,我们必须下载 RF24 库,以使我们在使用 NRF24L01 无线模块时更轻松。我们还需要 DHT22 传感器的 DHT 库。
让我们先看看发射器代码。它发出一个简单的数据结构,其中包含两个浮点数,即温度和湿度。
为了建立通信链接,我们必须在两个模块之间创建一个“管道”。该管道需要有一个地址。两个模块都必须从同一个管道中写入和读取才能进行通信。这是我们在代码中定义的第一件事。我们将管道地址设置为“0”。接下来,我们定义要与其他模块通信的通道。NRF24L01 芯片支持 126 个不同的通道。两个模块需要使用相同的通道才能相互通信。在此示例中,我使用通道 115。接下来,我定义我要使用模块提供的最大发射功率。它使用更多功率,但扩展了通信范围。接下来我们定义传输的数据速率。我将其设置为 250Kbs,这是可能的最低数据速率,以实现更好的范围。
在循环函数中,我们从传感器读取温度和湿度值,将数据保存到数据结构中,然后通过将数据结构写入管道来发送数据结构。而已。您可以在本教程中找到附加的代码。
第 8 步:接收方代码
现在让我们看看接收器代码。我们需要 4 个库。首先,我们必须从此链接下载用于显示的库:
显示库:https ://github.com/Bodmer/TFT_HX8357_Due
下载库后,您必须打开 User_Setup.h 文件。注释第 13 行并取消注释第 14 行,因为我们的显示器使用的是 HX8357C 驱动程序。现在我们可以继续使用其他 3 个库。我们需要一个库用于实时时钟,一个用于 DHT22 传感器,最后一个用于无线模块。
- NRF24L01:https ://github.com/TMRh20/RF24
让我们看一下代码。如果尚未设置,我们要做的第一件事就是将时间设置到实时时钟模块。为了做到这一点,在setRTCTime
函数中输入当前日期和时间,取消注释第setRTCTime
54 行的函数调用并将程序上传到 Arduino。现在时间已定。但是我们必须再次注释setRTCTime
该函数的调用并再次将程序上传到Arduino。
接收器的代码工作如下。在设置函数中,我们初始化所有传感器和模块并打印用户界面。然后,在循环功能中,我们不断检查新的无线数据。如果有新数据,我们会将这些数据保存在变量中并在显示器上打印出来。我们每分钟读取一次温度和湿度,并且仅在值发生变化时才更新显示。通过这种方式,我们可以进一步减少显示屏的闪烁!我还准备了一个以华氏度显示温度的代码版本。您可以在本教程中找到所附代码的两个版本。
第 9 步:测试项目
启动所有设备并查看一切是否按预期工作的最后一步。谢谢参观!
- Arduino在线气象站(NodeMCU)
- Arduino气象站
- Arduino UNO迷你气象站
- 使用Arduino Nano的迷你气象站
- 使用Arduino的IoT无线气象站 0次下载
- Sigfox和Arduino气象站
- 与Sigfox连接并使用Arduino的气象站
- 基于Arduino的无线气象站 0次下载
- Arduino物联网气象站
- 基于Arduino UNO的气象站 2次下载
- Arduino气象站项目
- 带有Arduino的Lora气象站
- 使用Arduino和NodeMCU的气象站
- 使用NRF24L01、DHT11 DHT22的Arduino无线气象站
- Arduino气象站的设置开源分享
- 基于几何的泰森多边形来生成形体骨架 820次阅读
- 4G气象站的设计与实现 880次阅读
- 如何利用ESP32实现太阳能气象站的设计 4281次阅读
- 如何利用ESP8266实现防雨物联网气象站的设计 4963次阅读
- 如何利用粒子光子把你的雨伞变成气象站 1391次阅读
- 如何使用ESP32创建一个气象站 3771次阅读
- 利用Arduino Nano 33 IoT构建的微型互联网气象站 3373次阅读
- 如何手动制作一个风速仪 5630次阅读
- 基于树莓派组成的可随身携带气象站设计方案 2815次阅读
- 如何使用两个dht传感器及HC12模块制作远程气象站? 2792次阅读
- 基于创建带有空气质量传感器的室内气象站 2186次阅读
- dfrobotDIY智能气象站套件简介 1618次阅读
- 基于ARM微处理器和Linux的无线气象数据通信系统 1090次阅读
- 基于STM32的自动气象站控制模块设计 8306次阅读
- arduino是什么以及arduino能干什么 4.4w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多