Arduino IDE编写esp8266通过mqtt协议发送DHT11温度和湿度数据
首先,需要安装MQTT库并添加到Arduino IDE中。可以使用PubSubClient库,它提供了MQTT客户端功能。
步骤1:包含所需的库文件
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
步骤2:设置WiFi连接信息
const char* ssid = "YourWiFiSSID";
const char* password = "YourWiFiPassword";
步骤3:设置MQTT服务器信息
const char* mqtt_server = "mqtt_server_ip";
const int mqtt_port = 1883;
const char* mqtt_user = "YourMQTTUsername";
const char* mqtt_password = "YourMQTTPassword";
步骤4:设置DHT11引脚
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
步骤5:连接WiFi和MQTT服务器
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
//连接WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
//连接MQTT服务器
client.setServer(mqtt_server, mqtt_port);
while (!client.connected()) {
if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
Serial.println("connected to MQTT server");
} else {
delay(1000);
}
}
//启动DHT11传感器
dht.begin();
}
步骤6:发送DHT11数据到MQTT服务器
void loop() {
//读取温度和湿度
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
//将数据转换为字符串
String temperature_str = String(temperature, 1);
String humidity_str = String(humidity, 1);
//发布MQTT消息
client.publish("topic/temperature", temperature_str.c_str());
client.publish("topic/humidity", humidity_str.c_str());
//延迟一段时间
delay(10000);
}
以上就是通过MQTT协议发送DHT11温度和湿度数据的代码实现。可以根据自己的需要修改MQTT服务器信息和传感器引脚等信息。
原文地址: https://www.cveoy.top/t/topic/bd2V 著作权归作者所有。请勿转载和采集!