W5100S-EVB-Pico & DHT11:实时数据传输

该教程展示了如何使用W5100S-EVB-Pico开发板和DHT11传感器,通过ArduinoIDE及MQTT协议将温度和湿度数据发送到Beebotte云平台。用户需配置硬件连接,创建Beebotte频道和仪表板,然后编写并上传代码,实现实时数据监控。
摘要由CSDN通过智能技术生成

转发: W5100S-EVB-Pico & DHT11: Real-time Data Transmission

项目介绍

0.简介

这是一个关于如何使用带有 w5100s-evb-pico 板的 DHT11 传感器将温度和湿度数据发送到 Beebotte 云的教程。 该教程涵盖了导入必要的库、为 DHT11 传感器设置引脚号以及为 Beebotte 云连接更新令牌值。 w5100s-evb-pico开发板发送的实时温湿度数据可以在仪表盘上进行监控。

1.硬件

1.1. 必需的组件

  • W5100S-EVB-Pico
  • DHT11
  • 面包板
  • 以太网线
  • USB 线

1.2. 硬件接线

连接 W5100S-EVB-Pico 和 DHT11 湿度和温度传感器。 如下连接引脚。 在此示例中,我们将电路板上的 GP22 引脚连接到传感器上的数据引脚,但您也可以使用其他 GPIO 引脚。

W5100S-EVB-Pico | DHT11

3.3V                           | VCC

GND                           | GND

GP22                          | DATA

将电源和以太网电缆连接到板上后,它应该如下图所示。

2. 云设置

2.1. 创建频道

访问 Beebotte 云,登录并创建频道。 在通道下添加传感器资源。 将温度和湿度注册为数字类型。

创建通道后,将发行令牌。 您可以使用此令牌将数据发送到云。

2.2. 创建仪表板

转到“仪表板”菜单,创建一个新的仪表板,然后选择“基本值”小部件和“时间线图表”小部件。 通过选择资源从创建的频道添加资源,并将小部件添加到仪表板。

3. Arduino IDE

3.1.配置 Arduino 集成开发环境

在 Arduino IDE 上安装 Arduino IDE 即可使用 W5100S-EVB-PICO 开发板。

3.1.1. 添加看板经理 URL

转到 Arduino IDE 中的文件 - 首选项并将以下链接添加到附加板管理器 URLS。

https://github.com/WIZnet-ArduinoEthernet/arduino-pico/releases/download/global/package_rp2040-ethernet_index.json

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 中的库管理器并安装以下各项:

4. 发送数据到 Beebotte Cloud

4.1. 连接到以太网

使用 USB 5 针电缆将 W5100S-EVB-Pico 板连接到您的计算机。 转到 Arduino IDE 中的工具 - 端口并为开发板选择相应的端口。

4.2. 更新数据并发布

更新来自 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);
}

5. Beebotte Dashboard 监控数据

将代码上传到W5100S-EVB-Pico开发板后,即可在Beebotte Dashboard上监控实时温湿度数据。

基本值小部件显示当前温度和湿度值,时间线图表小部件以图形格式显示历史数据。

就是这样! 您已成功设置和配置带有 DHT11 传感器的 W5100S-EVB-Pico 板,以将温度和湿度数据发送到 Beebotte 云并在仪表板上进行监控。

我希望本教程可以帮助您将 DHT11 传感器与 W5100S-EVB-Pico 板一起使用并将数据发送到 Beebotte 云。 如果您有任何疑问或需要进一步说明,请随时提问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值