基于ESP8266的简易气象站
Posted HQYJ_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于ESP8266的简易气象站相关的知识,希望对你有一定的参考价值。
Wemos D1 是一款 ESP8266 开发板,板载 ESP8266-12E 模块和 USB 转串口芯片。这是一种构建连接事物的廉价方式,并且与 Arduino 兼容。在这个项目中,我们将使用 DHT11 传感器构建一个简单的气象站监测温度和湿度(您也可以使用 DHT22)。我们将将此设备定义为 iostash 平台中的公共设备,以便我们可以通过带有图表和图形的漂亮界面与世界分享我们的设备数据。
介绍:
我们将在这个项目中使用 IOstash 的 MQTT 连接接口,我建议您阅读 MQTT 接口的 API 文档以更好地理解这个项目中使用的概念。
要将 Wemos D1 与 Arduino 库一起使用,您必须使用支持 ESP8266 板的 Arduino IDE。如果您还没有这样做,您可以按照 Sparkfun 的教程轻松将 ESP8266 Board 支持安装到您的 Arduino IDE 。
将开发板安装到 Arduino IDE 后,在 WeMos D1 上安装 PubSubClient 库和 USB 转串口转换器芯片的相关驱动程序,选择端口,然后从 Arduino 工具菜单中选择开发板:
接线:
请遵循此项目的以下接线图:
您可以使用面包板,也可以使用跳线/直接焊接将传感器直接连接到 WeMos D1。而已!
设置 IOStash:
接线完成,现在我们可以专注于在 IOstash 平台上创建设备。为此,如果您没有帐户,请创建一个帐户,它是免费的!
打开添加设备页面,填写设备名称和描述等基本信息。确保选中“设备是公开的”选项,以便公众可以访问设备的提要。
添加 2 个数据点,温度和湿度。之后,单击创建设备按钮,就是这样!您已经在 IOStash 上创建了一个设备!您的设备页面将呈现给您。
连接
现在我们已经完成了硬件连接和 IOstash 上的设备定义,我们现在可以连接两者。为此,请转到您新创建的设备页面(如果您还没有离开,点击“创建设备”按钮,您应该在新设备页面上)。
记下您的设备 ID,此 ID 用于在 IOstash 平台上识别您的设备。现在,转到您的个人资料页面并复制您的X-Access-Token,这是您的 MQTT 用户名。对于 MQTT 密码,请使用您在创建设备时提供的设备密码。参考 IOstash Github 上的代码,对程序顶部定义的变量进行相关修改:
如果您仔细阅读代码,您会发现它相当简单,代码用于从 DHT11 传感器读取数据、连接到 wifi 并以 JSON 格式发布到 IOstash。如果您查看 Arduino ,您会看到以下内容:loop()
检查活动连接,如果未连接,我们正在尝试使用该功能重新连接。正在寻找来自 MQTT 服务器的任何发布回,有关更多详细信息,请参阅 Arduino MQTT Pub/Sub 客户端:https 😕/github.com/knolleary/pubsubclientreconnect()client.loop()
该函数从 DHT11 传感器读取温度和湿度值并将其存储到和变量中。然后我们构建一个 JSON 字符串并通过 MQTT 将其发布到 IOStash。该循环每 60 秒重复一次。getTemperature()temp_fhumidity
结果
如果您访问设备的公共源,您会看到设备数据随着数据的传入而实时更新。您可以与其他人共享此页面,他们也可以在没有数据的情况下查看数据在登录。
结论性想法
您可以使用 ESP8266 和 IOstash 轻松构建连接的物联网设备,以实现控制或自动化。使用 IOStash android 或 JS 库创建无需编写任何后端代码即可控制设备的移动应用程序。您可以收听设备更新、传递控制命令并执行更多操作!
特别说明
如果您尝试将此示例用作基础并尝试发送超过 3 个数据点,请注意 Arduino PubSubClient 库为 MQTT 数据包定义了 128 字节的大小限制。要发送更多数据点,请将 MQTT_MAX_PACKET_SIZE 宏更改为 256(默认为 128)或更多。为此,您必须编辑位于 \\PubSubClient\\src 内的 PubSubClient.h 文件并查找第 26 行。
**【文章福利】给大家分享一些ESP8266学习资料,点击下方链接即可学习。
学习交流群:881895560
硬件上云-ESP8266与阿里云
以上是关于基于ESP8266的简易气象站的主要内容,如果未能解决你的问题,请参考以下文章
基于ESP8266 NodeMCU + DHT22 记录室内温湿度
基于ESP8266 NodeMCU + DHT22 记录室内温湿度
基于51单片机+DHT11温湿度模块+ESP8266模块+上传oneNET APP显示+LCD1602显示