智能家居 篇四:Home Assistant注册ESP32设备,监控室内温湿度

2024-03-07 07:39:23 2点赞 2收藏 3评论

使用的硬件是ESP32-C3mini和dht11温湿度传感器

之前MQTT和Home Assistant都安装好了,万事俱备只差部署。

要在Home Assistant中对接ESP32其实十分简单,官方给了完整的文档和演示:mqtt

对我们来说,只需要在esp32代码中集成注册和信息发送两部分就可以了,使用arduino上传以下代码,wifi和mqtt服务器地址改成自己的,启动后就可以自动注册设备并开始工作,监控室内温湿度。

#include "WiFi.h"
#include "PubSubClient.h"

#include "DHT.h"

#define DHTPIN 2

#define DHTTYPE DHT11

#define WIFI_SSID "sunk"

#define WIFI_PASSWORD "915471697"

#define MQTT_SERVER "192.168.1.140"

DHT dht(DHTPIN, DHTTYPE);

WiFiClient wifiClient;

PubSubClient mqttClient(wifiClient);

void connectWifi() {

Serial.print("Connecting to WiFi...");

WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

Serial.println("Connected to WiFi");

}

void connectMQTT() {

mqttClient.setServer(MQTT_SERVER, 1883);

while (!mqttClient.connected()) {

Serial.print("Connecting to MQTT...");

if (mqttClient.connect("ESP32Client")) {

Serial.println("Connected to MQTT");

} else {

delay(5000);

}

}

}

void setup() {

Serial.begin(9600);

dht.begin();

connectWifi();

connectMQTT();

delay(1000);

String tempConfig = "{

"unique_id": "esp32_temperature_sensor1",

"name": "温度传感器1",

"state_topic": "home/esp32/temperature1",

"unit_of_measurement": "°C",

"device_class": "temperature",

"value_template": "{{ value_json.temperature }}",

"device": {

"identifiers": ["esp32_unique_identifier"],

"name": "ESP32环境传感器",

"manufacturer": "自定义制造商",

"model": "ESP32-DHT11",

"sw_version": "1.0"

}

}

";

mqttClient.publish("homeassistant/sensor/esp32/temperature1/config", tempConfig.c_str());

String humConfig = "{

"unique_id": "esp32_humidity_sensor1",

"name": "湿度传感器1",

"state_topic": "home/esp32/humidity1",

"unit_of_measurement": "%",

"device_class": "humidity",

"value_template": "{{ value_json.humidity }}",

"device": {

"identifiers": ["esp32_unique_identifier"],

"name": "ESP32环境传感器",

"manufacturer": "自定义制造商",

"model": "ESP32-DHT11",

"sw_version": "1.0"

}

}

";

mqttClient.publish("homeassistant/sensor/esp32/humidity1/config", humConfig.c_str());

}

void loop() {

if (!mqttClient.connected()) {

connectMQTT();

}

mqttClient.loop();

float humidity = dht.readHumidity();

float temperature = dht.readTemperature();

if (!isnan(humidity) && !isnan(temperature)) {

String tempPayload = "{"temperature":" + String(temperature) + "}";

String humPayload = "{"humidity":" + String(humidity) + "}";

mqttClient.publish("home/esp32/temperature1", tempPayload.c_str());

mqttClient.publish("home/esp32/humidity1", humPayload.c_str());

} else {

Serial.println("Failed to read from DHT sensor!");

}

delay(1000);

}

上传之后在mqtt中出现两个实体以及一个设备:

Home Assistant注册ESP32设备,监控室内温湿度Home Assistant注册ESP32设备,监控室内温湿度

可以查看到数据变化:

Home Assistant注册ESP32设备,监控室内温湿度

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

259元起

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

16.9元起

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

181.8元起

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

191.79元起

京东京造 TH1 时钟温湿度计 白色

京东京造 TH1 时钟温湿度计 白色

29.9元起

Xiaomi 小米 米家智能插座3

Xiaomi 小米 米家智能插座3

49.9元起

MIJIA 米家 1S 增强版 智能台灯 白色

MIJIA 米家 1S 增强版 智能台灯 白色

156元起

linptech 领普 智能无线开关KS1Pro屏显温湿度传感器智能联动免布线遥控开关

linptech 领普 智能无线开关KS1Pro屏显温湿度传感器智能联动免布线遥控开关

50.9元起

玺加 智能窗帘宝X3 光能充电窗帘伴侣

玺加 智能窗帘宝X3 光能充电窗帘伴侣

暂无报价

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 AI指纹锁

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 AI指纹锁

2899元起

Xiaomi 小米 MCCG02HL 小米门窗传感器 2 米家

Xiaomi 小米 MCCG02HL 小米门窗传感器 2 米家

37.8元起

Xiaomi 小米 无线开关 蓝牙版

Xiaomi 小米 无线开关 蓝牙版

32.9元起

Xiaomi 小米 SJWS01LM 水浸卫士 白色

Xiaomi 小米 SJWS01LM 水浸卫士 白色

55元起

MIJIA 米家 人体传感器2S 居 智能监测联动

MIJIA 米家 人体传感器2S 居 智能监测联动

61.99元起

MIJIA 米家 空调伴侣2 智能插座 白色

MIJIA 米家 空调伴侣2 智能插座 白色

68元起

卡萨帝(Casarte)掌静脉人脸识别带可视猫眼密码锁入户门带摄像头指纹锁电子锁智能门锁CFA-X70-CAU1罗曼金

卡萨帝(Casarte)掌静脉人脸识别带可视猫眼密码锁入户门带摄像头指纹锁电子锁智能门锁CFA-X70-CAU1罗曼金

6009元起
3评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
2
扫一下,分享更方便,购买更轻松