赞
踩
转发: W5100S-EVB-Pico & DHT11: Real-time Data Transmission
项目介绍
这是一个关于如何使用带有 w5100s-evb-pico 板的 DHT11 传感器将温度和湿度数据发送到 Beebotte 云的教程。 该教程涵盖了导入必要的库、为 DHT11 传感器设置引脚号以及为 Beebotte 云连接更新令牌值。 w5100s-evb-pico开发板发送的实时温湿度数据可以在仪表盘上进行监控。
连接 W5100S-EVB-Pico 和 DHT11 湿度和温度传感器。 如下连接引脚。 在此示例中,我们将电路板上的 GP22 引脚连接到传感器上的数据引脚,但您也可以使用其他 GPIO 引脚。
W5100S-EVB-Pico | DHT11
3.3V | VCC
GND | GND
GP22 | DATA
将电源和以太网电缆连接到板上后,它应该如下图所示。
访问 Beebotte 云,登录并创建频道。 在通道下添加传感器资源。 将温度和湿度注册为数字类型。
创建通道后,将发行令牌。 您可以使用此令牌将数据发送到云。
转到“仪表板”菜单,创建一个新的仪表板,然后选择“基本值”小部件和“时间线图表”小部件。 通过选择资源从创建的频道添加资源,并将小部件添加到仪表板。
在 Arduino IDE 上安装 Arduino IDE 即可使用 W5100S-EVB-PICO 开发板。
3.1.1. 添加看板经理 URL
转到 Arduino IDE 中的文件 - 首选项并将以下链接添加到附加板管理器 URLS。
3.1.2. 添加 Board Manager
转到 Board Manager 搜索 PICO 并通过 Wiznet 安装 Raspberry PI PICO/RP2040 Ethernet。
进入Tools-Board,可以看到Raspberry PI PICO/RP2040 Ethernet已经添加。 现在您可以在 Arduino IDE 上使用 W5100S-EVB-PICO。
3.1.3. 安装库
您需要安装 3 个库。 转到 Arduino IDE 中的库管理器并安装以下各项:
使用 USB 5 针电缆将 W5100S-EVB-Pico 板连接到您的计算机。 转到 Arduino IDE 中的工具 - 端口并为开发板选择相应的端口。
更新来自 DHT11 传感器的温度和湿度数据并将其发布到 Beebotte 云端。
代码基于 beebotte 的 github 上上传的示例文件,并进行了一些修改。 我编写的完整代码已上传到 github 上。
导入必要的库,为 DHT11 传感器设置引脚号,并使用之前获得的值更新 Beebotte 云连接的令牌值。
- #include <SPI.h>
- #include <Ethernet.h>
- #include <PubSubClient.h>
- #include <ArduinoJson.h>
- #include <DHT.h>
-
- #define DHTPIN 22 // Pin which is connected to the DHT sensor.
- #define DHTTYPE DHT11 // DHT 11
-
- #define BBT "mqtt.beebotte.com" // Domain name of Beebotte MQTT service
- #define TOKEN "token_xxxxxxxxxxxxxxxx" // Set your channel token here
-
- #define CHANNEL "W5100SEVBPico" // Replace with your device name
- #define TEMP_RESOURCE "temperature" // This is where we will store temperature
- #define HUMID_RESOURCE "humidity" // This is where we will store humidity
-
- #define WRITE true // indicate if published data should be persisted or not
-
- // Initialize DHT sensor.
- DHT dht(DHTPIN, DHTTYPE);//
-
- // Enter a MAC address of your shield
- byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
- IPAddress ip(192, xxx, xxx, xxx);
- IPAddress myDns(xxx, xxx, xxx, xxx);
- IPAddress gateway(xxx, xxx, xxx, xxx);
- IPAddress subnet(xxx, xxx,, xxx, xxx);
-
- EthernetClient ethClient;
- PubSubClient client(ethClient);
loop() 函数使用 dht.readTemperature() 和 dht.readHumidity() 函数从 DHT11 传感器读取温度和湿度数据。 然后它使用 isnan() 函数检查数据是否有效。 如果数据有效,它会通过发布包含温度和湿度值的 JSON 负载将数据更新到 Beebotte 云。 数据也打印到串行监视器以用于调试目的。 delay() 函数用于在数据更新之间添加 5 秒的延迟。
- void loop() {
- // Read data from DHT11 sensor
- float temp = dht.readTemperature();
- float humid = dht.readHumidity();
-
- // Check if data is valid
- if (isnan(temp) || isnan(humid)) {
- Serial.println("Failed to read from DHT sensor!");
- return;
- }
-
- // Update data to Beebotte cloud
- char payload[50];
- snprintf(payload, sizeof(payload), "{\\"temperature\\": %.2f, \\"humidity\\": %.2f}", temp, humid);
- client.publish(channelResource, payload);
-
- // Print data to Serial Monitor
- Serial.print("Temperature: ");
- Serial.print(temp);
- Serial.print("°C, Humidity: ");
- Serial.print(humid);
- Serial.println("%");
-
- // Delay for 5 seconds
- delay(5000);
- }
将代码上传到W5100S-EVB-Pico开发板后,即可在Beebotte Dashboard上监控实时温湿度数据。
基本值小部件显示当前温度和湿度值,时间线图表小部件以图形格式显示历史数据。
就是这样! 您已成功设置和配置带有 DHT11 传感器的 W5100S-EVB-Pico 板,以将温度和湿度数据发送到 Beebotte 云并在仪表板上进行监控。
我希望本教程可以帮助您将 DHT11 传感器与 W5100S-EVB-Pico 板一起使用并将数据发送到 Beebotte 云。 如果您有任何疑问或需要进一步说明,请随时提问!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。