Этот проект использует датчик DHT11 для измерения температуры и влажности, которые ESP32 передает в Home Assistant через MQTT. Home Assistant отображает данные в реальном времени и позволяет создавать автоматизации на их основе.
Подключение датчика DHT11 к ESP32
- Подключите VCC датчика DHT11 к 3.3V или 5V на ESP32.
- GND датчика подключите к GND на ESP32.
- DATA датчика подключите к GPIO4 (Pin D4) на ESP32.

Питание ESP32
Подключите ESP32 к компьютеру или адаптеру через USB.
Установка Mosquitto Broker
- Откройте Home Assistant.
- Перейдите в Supervisor или Add-Ons.
- Найдите Mosquitto Broker и установите его.
Настройка MQTT
- Перейдите в Settings > Devices & Services > Integrations (Настройки > Устройства и сервисы > Интеграции) и добавьте MQTT.
- Запомните IP-адрес и данные входа MQTT для дальнейшего использования в коде ESP32.
Установка библиотек в Arduino IDE
- Установите библиотеку PubSubClient для MQTT и DHT для работы с датчиком.
- Перейдите в Sketch > Include Library > Manage Libraries…, найдите и установите PubSubClient и DHT.
Код для ESP32
#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
// Настройки Wi-Fi и MQTT
#define WIFI_SSID "YourWiFiSSID"
#define WIFI_PASSWORD "YourWiFiPassword"
#define MQTT_SERVER "YourMQTTBrokerIP"
#define MQTT_USER "YourMQTTUsername"
#define MQTT_PASSWORD "YourMQTTPassword"
// Настройки датчика DHT
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// Темы MQTT для температуры и влажности
const char* temperature_topic = "home/livingroom/temperature";
const char* humidity_topic = "home/livingroom/humidity";
// Инициализация Wi-Fi и MQTT
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
dht.begin();
setup_wifi();
client.setServer(MQTT_SERVER, 1883);
}
void setup_wifi() {
Serial.println("Connecting to WiFi...");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected.");
}
void reconnect_mqtt() {
while (!client.connected()) {
if (client.connect("ESP32Client", MQTT_USER, MQTT_PASSWORD)) {
Serial.println("connected");
} else {
delay(5000);
}
}
}
void loop() {
if (!client.connected()) {
reconnect_mqtt();
}
client.loop();
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (!isnan(temperature) && !isnan(humidity)) {
client.publish(temperature_topic, String(temperature).c_str(), true);
client.publish(humidity_topic, String(humidity).c_str(), true);
delay(2000);
}
}
Замените значения:
"YourWiFiSSID"и"YourWiFiPassword"на свои данные Wi-Fi."YourMQTTBrokerIP","YourMQTTUsername","YourMQTTPassword"на данные MQTT-брокера.
Отображение данных в Home Assistant
Добавьте следующие сенсоры в файл configuration.yaml:
sensor:
- platform: mqtt
name: "Living Room Temperature"
state_topic: "home/livingroom/temperature"
unit_of_measurement: "°C"
value_template: "{{ value | float }}"
- platform: mqtt
name: "Living Room Humidity"
state_topic: "home/livingroom/humidity"
unit_of_measurement: "%"
value_template: "{{ value | float }}"
Перезапустите Home Assistant для применения изменений.
Настройка отображения данных
- Перейдите на вкладку Overview в Home Assistant.
- Нажмите Edit Dashboard и выберите Add Card.
- Добавьте Sensor Card для отображения температуры и влажности или используйте Gauge Card и History Graphs.
Автоматизации
Настройте автоматизации на основе температуры или влажности, например, для отправки оповещений при превышении порога температуры в 30°C.

Вы успешно создали монитор температуры и влажности с использованием ESP32, DHT11 и Home Assistant.