步骤如下:

1.准备工作:

  • ESP8266开发板
  • DHT11温湿度传感器
  • MQTT协议的服务器(例如阿里云、腾讯云等)
  • MQTT协议的客户端(例如MQTT.fx等)
  • Arduino IDE开发环境

2.连接硬件:

将DHT11传感器的VCC接到ESP8266的3.3V电源,GND接到GND,DATA接到GPIO2。

3.编写代码:

打开Arduino IDE,新建一个工程,编写以下代码:

#include <ESP8266WiFi.h> #include <PubSubClient.h> #include <DHT.h>

// WiFi网络信息 const char* ssid = "your_SSID"; const char* password = "your_WIFI_password";

// MQTT服务器信息 const char* mqtt_server = "your_mqtt_server_address"; const char* mqtt_username = "your_mqtt_username"; const char* mqtt_password = "your_mqtt_password"; const char* mqtt_topic = "your_mqtt_topic";

// DHT11传感器信息 #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE);

// WiFi客户端和MQTT客户端 WiFiClient wifiClient; PubSubClient mqttClient(wifiClient);

void setup() { Serial.begin(115200); delay(10);

// 连接WiFi网络 Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected");

// 连接MQTT服务器 mqttClient.setServer(mqtt_server, 1883); mqttClient.setCallback(mqttCallback); while (!mqttClient.connected()) { Serial.print("Connecting to MQTT server..."); if (mqttClient.connect("ESP8266Client", mqtt_username, mqtt_password)) { Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(mqttClient.state()); Serial.println(" try again in 5 seconds"); delay(5000); } } }

void loop() { // 读取温湿度数据 float temperature = dht.readTemperature(); float humidity = dht.readHumidity();

// 发送数据到MQTT服务器 char message[50]; sprintf(message, "{"temperature":%.2f,"humidity":%.2f}", temperature, humidity); mqttClient.publish(mqtt_topic, message);

// 等待5秒 delay(5000); }

void mqttCallback(char* topic, byte* payload, unsigned int length) { // TODO: 处理MQTT服务器的回调消息 }

说明:代码中需要替换的参数有:WiFi网络信息、MQTT服务器信息、DHT11传感器信息、MQTT主题。

4.上传代码:

将ESP8266开发板连接到电脑,选择正确的开发板和端口,上传代码到ESP8266开发板。

5.查看数据:

打开MQTT客户端,订阅刚才设置的MQTT主题,即可实时查看ESP8266发送的温湿度数据。

6.存储数据:

将MQTT服务器的数据转储到云数据库,例如使用阿里云的物联网平台服务,将MQTT主题配置为数据流,即可自动存储ESP8266发送的温湿度数据到云数据库中。

使用esp8266通过mqtt协议发送dht11数据到云数据库

原文地址: https://www.cveoy.top/t/topic/bcsY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录