Moduł ESP32-DevKitC WROOM - wgrywanie oprogramowania i konfiguracja czujników bluetooth

Cześć,
Posiadam dwa moduły ESP32-DevKitC (WROOM-32D i WROOM-32U). Chciałbym na nie wgrać oprogramowanie, które pozowli mi na podłączenie do nich poniższych czujników działających na bluetooth i dołączenie ich do bramki AI-Speaker.

  • czujniki roślin (VegTrug/Mi Flora)
  • czujniki temperatury/wilgotności: LYWSD03MMC

Na forum znalazłem informację, że można skorzystać z “ESPHome” lub “Tasmota”. Czy wgranie od razu np. “AIS-BLE ESP32 BLE GATE” z http://www.ai-speaker.com/ota/ będzie najlepszym rozwiązaniem ?
Czy możecie napisać jak krok po kroku podłączyć moduł ESP32, wgrać i skonfigurować oprogramowanie i dodać poszczególne czujki aby to wszystko zadziałało ?
Na pewno taki opis przyda się też innym osobom.
Z góry dzięki.

Jesli chodzi konkretnie o ESP32 to temat byl poruszony kilka tygodni temu - sprawdz watek AIS-Tasmota v8.4.0 George

Jest tez ‘ogolny’ watek dotyczacy urzadzen ESP8266: Ogólne: Wgrywanie oprogramowania do urządzeń IoT (AI-Speaker - Home Assistant)

AI-Speaker bazuje na Tasmota, jest tez duzo artykulow w necie

Aktualnie testujemy Nasze esp32 (wersje BLE GATE i AIS-CAM):

Kamera to moduł LilyGo TTGO w wersji 1.62 (działa wszystko oprócz mikrofonu, czyli wyświetlacz, pir i przycisk): https://pl.aliexpress.com/item/32968683765.html?spm=a2g0s.9042311.0.0.19125c0fAxqfe8

Mi Flora działa bez problemu (nic nie trzeba konfigurować - odczyt co 10sek w trybie pasywnym - nie wymaga połączenia, więc nie zużywa baterii)

Termometr LYWSD03 jest nieco trudniej zmusić do współpracy (trzeba wyciągnąć bind_key, ale testujemy też alternatywny firmware https://github.com/atc1441/ATC_MiThermometer)

Opis w przygotowaniu …

4 polubienia

Mi udało się zintegrować czujnik MiFlora pod ESPHome.

Z ESPHome jest jedna niedogodność do przejścia, a mianowicie sposób/miejsce kompilacji pliku bin dla modułu ESP. Najłatwiej osiągnąć to przez dodatek (Add on) dla Home Assistant Supervisor (Hassio). Ale gdzieś te HA trzeba postawić. Są również inne metody opisane na stronie ESPHome.

1 polubienie

Zespół AIS nie przestaje mnie zaskakiwać :wave:t2:.
Super sprawa z Tasmota, binarki są gotowe. CichY dla edukacji, ESPHome jest fajną przygodą. Ale ja w takim razie zamawiam moduły z ali. Zabawa z Tasmota i ESP32 będzie akurat na jesienne wieczory.

Super wiadomość :slight_smile:
Czy do ESP32 wystarczy wgrać sam plik "AIS-BLE ESP32 BLE GATE” z http://www.ai-speaker.com/ota/ ?

Musisz wgrać wszystkie 4 pliki na raz:

esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dout --flash_freq 40m --flash_size detect 0x1000 bootloader_dout_40m.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000 tasmota32-ais-ble.bin

tasmota32-ais-ble.bin pobierz aktualne z: https://github.com/sviete/AIS-Tasmota/blob/firmware/firmware/tasmota32/languages/tasmota32-ais-ble.bin
a pozostałe pliki są tu: https://github.com/sviete/AIS-Tasmota/tree/firmware/firmware/tasmota32/ESP32_needed_files

MiFlora powinna od razu się pojawić w MQTT.
z LYWSD03 musisz wyciągnąć bind_key i zapodać go w połączeniu z MAC’iem do konsoli Tasmoty komendą MI32Key - tu jest opisany najprostszy sposób: https://community.home-assistant.io/t/xiaomi-passive-ble-monitor-sensor-platform/177352/407

1 polubienie

… a może jest gdzieś dostępny jakiś plik *.bin, który można pobrać i wgrać do czystego modułu ESP32, który pozwoli na wstępną konfigurację integracji ESPHome w AIS ?

w pliku *.bin trzeba przynajmiej podać dane do zalogowania się modułu do wifi, ale to i tak nic nie da, bo jak dodasz swoje ustawienia to od nowa trzeba skompilować. Ja to robię na HA postawionym testowo na RPI 3B

Wgrałem wszystkie 4 pliki. Jest lepiej ale w logu mam tak:

18:24:38]00:00:00 CFG: Loaded, Licz 9
[18:24:38]00:00:00 Projekt ais-dom Nowe gniazdko Wersja 8.5.0(tasmota)-1_0_4
[18:24:39]00:00:01 WIF: Łączenie z AP2 8DB0839D w trybie 11 jak dom_69183C-6204…
[18:24:42]00:00:04 WIF: Połączenie nie powiodło się, AP nie osiągalny
[18:24:42]00:00:04 WIF: Łączenie z AP2 8DB0839D w trybie 11 jak dom_69183C-6204…
[18:24:45]00:00:07 WIF: Połączenie nie powiodło się, AP nie osiągalny
[18:24:46]00:00:08 RSL: SENSOR = {“Time”:“1970-01-01T00:00:08”,“Flora-6b4a73”:{“Illuminance”:1355,“RSSI”:-93}}
[18:24:46]00:00:08 WIF: Połączenie nie powiodło się, AP nie osiągalny
[18:24:46]00:00:08 WIF: Łączenie z AP2 8DB0839D w trybie 11 jak dom_69183C-6204…
[18:24:51]00:00:13 WIF: Połączenie nie powiodło się, AP nie osiągalny

Czy teraz powinienem ustawić ESP32 w tryb “soft Access Point” (w jaki sposób ?) aby pojawiła się nowa sieć WiFi i skonfigurować moduł dostając się po 192.168.4.1 ?

Jesli masz dostep do konsoli, to uzyj polecenia
Backlog SSID1 NazwaTwojejSieciWiFi; Password1 TwojeHasloWiFi;

Jak dostaniesz się na stronę urządzenia, to możesz już wszystko zmieniać.
Jeśli nic się w tej kwestii nie zmienia przy ESP32 względem ES8266, to punkt AP jest pod adresem 192.168.4.1 standardowo po podłączeniu do rozgłaszanej sieci wi-fi wbijasz na stronę modułu.

Po wprowadzeniu z konsoli “Backlog SSID1 NazwaTwojejSieciWiFi; Password1 TwojeHasloWiFi;” moduł ESP32 podłączył się do mojej sieci (dzięki @badzio) i z poziomu konsoli widać było przydzielony adres IP po którym dostałem się do jego konfiguracji. Po kilku sekundach automatycznie zostały wykryte czujniki roślin (brakuje tylko informacji o poziomie baterii):

3

Zauważyłem jednak pewien problem. Pomimo tego że moduł ESP32 jest umieszczony niedaleko routera (poziom sygnału: 100%) to cały czas strasznie rwie połączenie i nie wiem dlaczego :frowning:

1

2

Poza tym domyślnie po wgraniu Tasmoty na ESP32 wyłączone jest MQTT. Skonfigurowałem go na module i chciałbym dodać go teraz do bramki AIS w ramach integracji MQTT. Obecnie w ramach integracji MQTT (w pliku configuration.yaml nie mam żadnych wpisów o nim) mam dodany moduł H801 obsługujący taśmę LED, która działa poprawnie. W jaki sposób powinienem dodać teraz ESP32 z wykrytymi czujnikami MiFlora do integracji MQTT ?

2

Z tego co kojarze, to w panelu administracyjnym www dla urzadzenia z firmware tasmota/ais

  1. wybierasz konfiguracja->inna konfiguracja->MQTT enable
  2. nastepnie w sekcji konfiguracja pojawia sie opcja ‘konfiguracja mqtt’ i tam podajesz dane serwera mqtt


obraz

1 polubienie

Jak wszystko prawidłowo będzie skonfigurowane po stronie klienta i tematu, to encje dodadzą się po restarcie serwera HA na bramce.
Polecam lekturę (Problem ze zrozumieniem jak działa komunikacja MQTT)
oraz wpisanie dwóch komend w konsoli urządzenia z Tasmota.

SetOption19 1
GroupTopic dom

Przykład z karty informacji o module z Tasmota:

Kluczem prawidłowej konfiguracji jest indywidualny identyfikator bramki.
On służy do parowania urządzeń AIS
Najprościej będzie dla Ciebie wejść na stronę konfiguracji modułu, który już masz dodany (H801) i skopiować jego ustawienia dla MQTT.

1 polubienie

do configuration.yaml dodaj sensory mqtt:

sensor:
  - platform: mqtt
    name: "LYWSD03-9855cb - Temperatura"
    state_topic: "tele/esp32_47711C/SENSOR"
    value_template: "{{ value_json['LYWSD03-9855cb']['Temperature'] | float }}" 
    unit_of_measurement: '°C'
  - platform: mqtt
    name: "LYWSD03-9855cb - Wilgotność"
    state_topic: "tele/esp32_47711C/SENSOR"
    value_template: "{{ value_json['LYWSD03-9855cb']['Humidity'] | float }}"
    unit_of_measurement: '%'
  - platform: mqtt
    name: "LYWSD03-9855cb - Punkt rosy"
    state_topic: "tele/esp32_47711C/SENSOR"
    value_template: "{{ value_json['LYWSD03-9855cb']['DewPoint'] | float }}"
    unit_of_measurement: '°C'

  - platform: mqtt
    name: "Ficus - Temperatura"
    state_topic: "tele/esp32_47711C/SENSOR"
    value_template: "{{ value_json['Flora-660905']['Temperature'] | float }}" 
    unit_of_measurement: '°C'
  - platform: mqtt
    name: "Ficus - Wilgotność"
    state_topic: "tele/esp32_47711C/SENSOR"
    value_template: "{{ value_json['Flora-660905']['Moisture'] | int }}"
    unit_of_measurement: '%'
  - platform: mqtt
    name: "Ficus - Nasłonecznienie"
    state_topic: "tele/esp32_47711C/SENSOR"
    value_template: "{{ value_json['Flora-660905']['Illuminance'] | int }}"
    unit_of_measurement: 'lux'
  - platform: mqtt
    name: "Ficus - Żyzność"
    state_topic: "tele/esp32_47711C/SENSOR"
    value_template: "{{ value_json['Flora-660905']['Fertility'] | int }}"
    unit_of_measurement: 'µS/cm'
  - platform: mqtt
    name: "Ficus - Bateria"
    state_topic: "tele/esp32_47711C/SENSOR"
    value_template: "{{ value_json['Flora-660905']['Battery'] | int }}"
    unit_of_measurement: '%'

odpowiednio pozmieniaj wartości esp32_47711C, Flora-660905, LYWSD03-9855cb wg tego co masz w swoim komunikacie:

20:04:16 MQT: tele/esp32_47711C/SENSOR = {“Time”:“2020-09-10T20:04:16”,“Flora-662e48”:{“Temperature”:22.2,“Illuminance”:90,“Moisture”:14,“Fertility”:41,“RSSI”:-91},“TempUnit”:“C”}
20:04:16 MQT: tele/esp32_47711C/SENSOR = {“Time”:“2020-09-10T20:04:16”,“LYWSD03-9855cb”:{“Temperature”:22.9,“Humidity”:50.8,“DewPoint”:12.1,“RSSI”:-75},“TempUnit”:“C”}

Odczyt stanu baterii robi komenda:

MI32Battery

najlepiej dodać ją poprzez regułę uruchamianą raz dziennie (częściej raczej nie ma sensu ;):

RULE1 on Time#Minute=30 do MI32Battery endon

PS: Niestety BLE zamula Tasmotę i też mamy takie objawy zrywania połączenia i restartów - najwygodniej jest konfigurować przez konsolę z TTL.
Skonfiguruj, odstaw w odpowiednie miejsce i zapomnij :wink: - pamiętaj, że to wciąż wersja beta.

1 polubienie

ESPHome połączenie stabilne. Nie ma w nim odczytu stanu baterii. Lecz nie jest to straszna wada. Bateria starcza na długo, a można jej stan sprawdzić łatwo, logując się aplikacji Mi.

Działa. Dzięki za pomoc :slight_smile:
MiFlora

Przy okazji chciałem przetestować kartę “Stan rośliny” ale po wpisaniu nazwy encji otrzymuje na niej błąd:

MiFlora3

dla plant-status podajesz encję typu plant i ewentualnie nową nazwę oraz motyw
np:

entity: plant.eonium
name: Eonium drzewiaste 'Schwarzkopf' - Aeonium arboreum
type: plant-status

najprościej to zrobić dodając kartę “Stan rośliny” z edytora wizualnego:

Zdjęcie dodajesz do galerii i przypisujesz dla encji plant.nazwa w Konfiguracja / Dostosowywanie

PS: Najlepsze są wykresy nasłonecznienia i temperatury - odczyty co 10 sekund i widać każdą chmurkę na niebie i każde uchylenie okna:
image image

1 polubienie