Am Beispiel von DHT11 und ESP8266 wird die Anwendung von ESPHome im Home Assistant vorgestellt

ESPHome ist ein Tool, das die Verwaltung von ESP-Boards so einfach wie möglich macht. Wir können ESP8266/ESP32-Systeme über einfache und leistungsstarke Konfigurationsdateien ohne Programmierung steuern und sie über den Home Assistant fernsteuern. ESPHome unterstützt ESP8266, ESP32, RP2040 und andere Entwicklungsplattformen, unterstützt Hunderte von Sensoren und Steuerungskomponenten und kann uns dabei helfen, Smart-Home-Systeme schnell selbst zu bauen.

So funktioniert ESPHome: ESPHome liest die YAML-Konfigurationsdatei und erstellt benutzerdefinierte Firmware, die auf dem ESP-Gerät installiert wird. Die in der ESPHome-Konfiguration hinzugefügten Geräte oder Sensoren werden automatisch in der Home Assistant-Oberfläche angezeigt.

1. Gerätevorbereitung

    1. ESP8266-Modul (ESP-01S)

      2. DHT11 Temperatur- und Feuchtigkeitssensormodul

     3. USB-zu-TTL-CH340-Modul

  

2. Geräteverbindung

CH340

ESP8266-
Programmiermodus

ESP8266-
Arbeitsmodus

DHT11

3,3 V

3,3 V

3,3 V

VCC

RX

TX

TX

RX

GND

GPIO0

GND

GND

GND

GND

GPIO2

DATEN

3. Installieren Sie ESPHome im Home Assistant

Klicken Sie in der Seitenleiste auf das Menü „Konfiguration“, wählen Sie „Add-ons“, um die Add-on-Verwaltungsseite aufzurufen, klicken Sie in der unteren rechten Ecke des Bildschirms auf „Add-on Store“, suchen Sie nach „ESPHome“ oder wählen Sie direkt „ESPHome“ aus.

 Nachdem Sie die ESPHome-Installationsseite aufgerufen haben, klicken Sie auf die Schaltfläche „Installieren“. Öffnen Sie nach Abschluss der Installation die vier Optionen wie oben gezeigt und klicken Sie dann auf Start (der Speicherort der ursprünglichen Installationsschaltfläche).

 Zu diesem Zeitpunkt erscheint das Esphome-Symbol in der Seitenleiste von Home Assistant. Wenn Sie darauf klicken, wird die Esphome-Konfigurationsseite geöffnet.

4. Fügen Sie das ESP-Gerät zu ESPHome hinzu

Klicken Sie unten rechts auf dem Bildschirm auf „+ NEUES GERÄT“ und wählen Sie „KONTUR“.

 

 Geben Sie den Namen des zu erstellenden Geräts ein und klicken Sie auf „WEITER“.

 Wählen Sie das zu programmierende ESP-Modulmodell aus. Ich wähle hier ESP8266 und klicken Sie auf „WEITER“.

 Für jedes ESPHome-Gerät wird ein eindeutiger Verschlüsselungsschlüssel generiert (der direkt gespeichert oder später über die Konfigurationsdatei abgerufen werden kann). Dieser Schlüssel wird später benötigt, um das Gerät zu Home Assistant hinzuzufügen. Wählen Sie „INSTALLIEREN“.

 Die folgenden Symbole werden auf dem Desktop angezeigt

 Und die folgende Schnittstelle erscheint

5. Aktualisieren Sie die Firmware des ESP-Geräts

Die obige Schnittstelle bietet vier Möglichkeiten zum Flashen der Firmware:

Die erste Methode besteht darin, die Firmware über ein automatisches WLAN-Upgrade zu flashen, nachdem das Telefon erfolgreich geflasht wurde.

Zweitens schließen Sie das Gerät an den lokalen USB-Anschluss an und flashen die Firmware über eine direkte Verbindung.

Die dritte Methode besteht darin, das Gerät über USB mit dem Server (z. B. Raspberry Pi) zu verbinden und die Firmware über das ESPHome-Dashboard zu flashen.

Die vierte Methode besteht darin, die Firmware manuell herunterzuladen und die Firmware über die Webmethode von ESPHome zu flashen.

Es wird empfohlen, zuerst die dritte Methode zum Herunterladen und Flashen der Firmware zu verwenden und dann die zweite Methode zum Remote-Upgrade und Flashen der Firmware zu verwenden.

Wählen Sie hier zunächst „ABBRECHEN“, um den Vorgang zu beenden, rufen Sie das ESPHome-Dashboard auf und wählen Sie „BEARBEITEN“, um es zu konfigurieren.

 

 Die ursprüngliche Konfiguration ist wie folgt:

esphome:
  name: esp8266-zl3

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "vVWZozV8A08B3kNuFd0LYMb6tJkRdULCdghfgtDF="

ota:
  password: "9fde296283bdad02a4d781c63k8ad154"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp8266-Zl2 Fallback Hotspot"
    password: "Ds4EAp1uGOgs"

captive_portal:

Hier müssen Sie Konfigurationscodes hinzufügen, z. B. das Festlegen einer festen IP, die WEB-Steuerung und das Hinzufügen von Sensoren. Gleichzeitig stellen Sie das WLAN-Netzwerk und das Passwort entsprechend der tatsächlichen Situation wie folgt ein:

esphome:
  name: esp8266-zl2

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "vVWZozV8A08B3kNuFd0LYMb6tJkRdULCdghfgtDF="

ota:
  password: "9fde296283bdad02a4d781c63k8ad154"

wifi:  #wifi和密码
  ssid: "MyWIFI"
  password: "pass123456"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp8266-Zl2 Fallback Hotspot"
    password: "UtFLBHz8SAui"

  manual_ip:                #设置固定IP
    static_ip: 192.168.0.251
    gateway: 192.168.0.1
    subnet: 255.255.255.0

captive_portal:

web_server:  ## web控制,添加了这2行,就可以在网页端打开设备ip;
  port: 80

sensor:                      #设置dht11传感器
  - platform: dht
    pin: GPIO1
    temperature:
      name: "Temperature"
    humidity:
      name: "Humidity"
    update_interval: 60s    # 数据每60s监测一次
    model: "DHT11"  

Nachdem die Konfiguration abgeschlossen ist, wählen Sie oben rechts „SPEICHERN“, um die Konfiguration zu speichern, und klicken Sie dann zum Installieren auf „INSTALLIEREN“. Zu diesem Zeitpunkt müssen Sie die zuvor angeschlossenen ESP8266- und DHT11-Sensoren in die USB-Schnittstelle des Home Assistant-Servers einstecken. Das System ruft erneut die Firmware-Flash-Modus-Schnittstelle auf. Bitte wählen Sie Methode drei.

Nach Auswahl der Server-USB-Schnittstelle beginnt das System mit der Aktualisierung der Firmware. Sie müssen die Kompilierungskette zum ersten Mal herunterladen und installieren, daher dauert es lange, wird aber in Zukunft schneller sein.

Wenn die folgende Eingabeaufforderung auf dem Bildschirm erscheint, bedeutet dies, dass die Firmware aktualisiert wurde.

INFO Reading configuration /config/esphome/esp8266-zl2.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp8266-zl2 (board: esp01_1m; framework: arduino; platform: platformio/espressif8266 @ 3.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- ESPAsyncTCP-esphome @ 1.2.3
|-- ESPAsyncWebServer-esphome @ 2.1.0
|   |-- ESPAsyncTCP-esphome @ 1.2.3
|   |-- Hash @ 1.0
|   |-- ESP8266WiFi @ 1.0
|-- DNSServer @ 1.1.1
|-- ESP8266WiFi @ 1.0
|-- ESP8266mDNS @ 1.2
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- ArduinoJson @ 6.18.5
RAM:   [====      ]  42.3% (used 34636 bytes from 81920 bytes)
Flash: [=====     ]  49.4% (used 506025 bytes from 1023984 bytes)
========================= [SUCCESS] Took 8.06 seconds =========================
INFO Successfully compiled program.
esptool.py v4.4
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 5c:cf:7f:8f:26:99
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 1MB
Flash will be erased from 0x00000000 to 0x0007cfff...
Compressed 510176 bytes to 357416...
Wrote 510176 bytes (357416 compressed) at 0x00000000 in 8.3 seconds (effective 492.3 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
INFO Successfully uploaded program.
INFO Starting log output from /dev/ttyUSB0 with baud rate 115200

 Wählen Sie „STOP“, um den Vorgang zu beenden und die Firmware-Aktualisierung abzuschließen.

Danach können Sie Methode eins wählen, um die Firmware über WLAN zu aktualisieren (Hinweis: Methode eins muss nur eine 3,3-V-Stromversorgung zum ESP8266 hinzufügen, ohne die seriellen RX- und TX-Port-Leitungen anzuschließen und ohne IO0 zu erden).

INFO Reading configuration /config/esphome/esp8266-zl2.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp8266-zl2 (board: esp01_1m; framework: arduino; platform: platformio/espressif8266 @ 3.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- ESPAsyncTCP-esphome @ 1.2.3
|-- ESPAsyncWebServer-esphome @ 2.1.0
|   |-- ESPAsyncTCP-esphome @ 1.2.3
|   |-- Hash @ 1.0
|   |-- ESP8266WiFi @ 1.0
|-- DNSServer @ 1.1.1
|-- ESP8266WiFi @ 1.0
|-- ESP8266mDNS @ 1.2
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- ArduinoJson @ 6.18.5
RAM:   [====      ]  42.3% (used 34636 bytes from 81920 bytes)
Flash: [=====     ]  49.4% (used 506025 bytes from 1023984 bytes)
========================= [SUCCESS] Took 8.07 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.0.251
INFO Uploading /data/esp8266-zl2/.pioenvs/esp8266-zl2/firmware.bin (510176 bytes)
INFO Compressed to 357428 bytes
Uploading: [============================================================] 100% Done...

INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.0.251 using esphome API
WARNING Can't connect to ESPHome API for 192.168.0.251: Timeout while connecting to ('192.168.0.251', 6053)
INFO Trying to reconnect to 192.168.0.251 in the background
INFO Successfully connected to 192.168.0.251
[22:03:58][I][app:102]: ESPHome version 2022.12.8 compiled on Feb 15 2023, 21:59:45
[22:03:58][C][wifi:504]: WiFi:
[22:03:58][C][wifi:362]:   Local MAC: 5C:CF:7F:8F:26:99
[22:03:58][C][wifi:363]:   SSID: 'YUYU'[redacted]
[22:03:58][C][wifi:364]:   IP Address: 192.168.0.251
[22:03:58][C][wifi:365]:   BSSID: B0:73:5D:6D:64:4C[redacted]
[22:03:58][C][wifi:367]:   Hostname: 'esp8266-zl2'
[22:03:58][C][wifi:369]:   Signal strength: -58 dB ▂▄▆█
[22:03:58][C][wifi:373]:   Channel: 1
[22:03:58][C][wifi:374]:   Subnet: 255.255.255.0
[22:03:58][C][wifi:375]:   Gateway: 192.168.0.1
[22:03:58][C][wifi:376]:   DNS1: 0.0.0.0
[22:03:58][C][wifi:377]:   DNS2: 0.0.0.0
[22:03:58][C][logger:293]: Logger:
[22:03:58][C][logger:294]:   Level: DEBUG
[22:03:58][C][logger:295]:   Log Baud Rate: 115200
[22:03:58][C][logger:296]:   Hardware UART: UART0
[22:03:58][C][dht:017]: DHT:
[22:03:58][C][dht:018]:   Pin: GPIO1
[22:03:58][C][dht:022]:   Model: DHT11
[22:03:58][C][dht:027]:   Update Interval: 60.0s
[22:03:58][C][dht:029]:   Temperature 'Temperature'
[22:03:58][C][dht:029]:     Device Class: 'temperature'
[22:03:58][C][dht:029]:     State Class: 'measurement'
[22:03:58][C][dht:029]:     Unit of Measurement: '°C'
[22:03:58][C][dht:029]:     Accuracy Decimals: 1
[22:03:58][C][dht:030]:   Humidity 'Humidity'
[22:03:58][C][dht:030]:     Device Class: 'humidity'
[22:03:58][C][dht:030]:     State Class: 'measurement'
[22:03:58][C][dht:030]:     Unit of Measurement: '%'
[22:03:58][C][dht:030]:     Accuracy Decimals: 0
[22:03:58][C][captive_portal:088]: Captive Portal:
[22:03:58][C][web_server:125]: Web Server:
[22:03:58][C][web_server:126]:   Address: 192.168.0.251:80
[22:03:58][C][mdns:103]: mDNS:
[22:03:58][C][mdns:104]:   Hostname: esp8266-zl2
[22:03:58][C][ota:093]: Over-The-Air Updates:
[22:03:58][C][ota:094]:   Address: 192.168.0.251:8266
[22:03:58][C][ota:097]:   Using Password.
[22:03:58][C][api:138]: API Server:
[22:03:58][C][api:139]:   Address: 192.168.0.251:6053
[22:03:58][C][api:141]:   Using noise encryption: YES
[22:04:31][D][dht:048]: Got Temperature=15.0°C Humidity=60.0%
[22:04:31][D][sensor:126]: 'Temperature': Sending state 15.00000 °C with 1 decimals of accuracy
[22:04:31][D][sensor:126]: 'Humidity': Sending state 60.00000 % with 0 decimals of accuracy

Schließen Sie nach Abschluss der Firmware-Aktualisierung die 3,3-V-Stromversorgung wieder an den ESP8266 an (es ist nicht erforderlich, die seriellen Leitungen RX und TX anzuschließen und IO0 nicht mit Masse zu verbinden), und das Gerät wird im ESPHome-Dashboard als „ONLINE“ angezeigt .

6. Integrieren Sie ESP-Geräte in Home Assistant

Starten Sie Home Assistant neu und nachdem Sie die Benutzeroberfläche aufgerufen haben, werden Sie automatisch aufgefordert, das Gerät zu erkennen.

 Klicken Sie auf „Konfigurieren“ und wählen Sie „Senden“.

 Geben Sie nach Aufforderung den Verschlüsselungsschlüssel des ESP8266-Geräts ein (überprüfen Sie den Verschlüsselungsschlüsselwert in der Konfigurationsdatei). Nach der Übermittlung wurde das ESP8266-Gerät erfolgreich in Home Assistant erstellt.

 Sie können die Geräteintegration unter „Konfiguration“ -> „Gerät“ sehen, einschließlich „1 Gerät“ und „2 Entitäten“.

 Klicken Sie auf „1 Gerät“, um Gerätedaten anzuzeigen.

 Wählen Sie „Zum Dashboard hinzufügen“, um die Geräteentität zur Übersicht hinzuzufügen.

Supongo que te gusta

Origin blog.csdn.net/qq_31400983/article/details/129054636
Recomendado
Clasificación