Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809

p.kaczmarek2 02 May 2022 02:34 897 0
Optex
  • Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Witajcie moi drodzy.
    Przedstawię tu czujnik wody (zalania) Tuya z WiFi zrealizowany w oparciu o moduł XR809 a następnie pokażę moje alternatywne firmware przeznaczone właśnie dla tego typu czujników. Będzie to kolejny już port mojego OpenBeken, który na ten moment wspiera aż cztery różne platformy (BK7231T, BK7231N, XR809 i BL602).
    Z XR809 spotkałem się pierwszy raz w tym temacie:
    Czujnik otwarcia drzwi/okna WiFi - test, wnętrze, integracja z resztą urządzeń
    Wtedy jeszcze nie wiedziałem, że można go w ogóle programować (że jest dostępne pełne SDK i wszystkie potrzebne narzędzia).
    Nieco później omawiałem go tutaj:
    Własny otwarty firmware dla XR809 kompatybilny z Tasmota HTTP/Home Assistant
    ale omówiony wyżej temat nie zawierał wsparcia MQTT oraz uniwersalnego konfiguratora pozwalającego wspierać dowolny typ urządzenia. Był zasadniczo tutorialem podstaw dla początkujących.
    Kilka słów o optymalizacji pracy z XR809 napisałem tutaj:
    Automatyzacja środowiska pracy (kompilacja, wgrywanie wsadu) XR809/XR3
    Ale wciąż było to tym samym, niewydajnym rozwiązaniem, wymagającym przerabiania wsadu pod każde kolejne urządzenie z XR809.
    Przełom nastąpił, gdy napisałem od 0 swój system działający analogicznie do Tasmoty, pozwalający użytkownikowi dowolnie wybrać role pinów przez panel WWW, co opisałem tutaj:
    [BK7231T] Mój serwer HTTP, konfigurator, wsparcie MQTT z Home Assistant
    I na tym będę teraz bazować.

    Zakup czujnika zalania
    Produkt znalazłem pod hasłem "Tuya Smart WiFi Water Leak Sensor Flood Leakage Level Alarm Overflow Detector". Kupowałem go z pół roku temu, nie pamiętam za ile, ale widzę, że teraz kosztuje około 13$.
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Charakterystyczna obudowa mówi nam, że produkt jest pewnie na XR809. Identyczną obudowę mają czujniki otwarcia drzwi/okna, też na tym układzie.
    Zestaw wymaga dwóch baterii AA do pracy, których nie załącza w nim sprzedawca. Należy je kupić osobno.
    Normalnie czujnik współpracuje z aplikacją Tuya, co testowałem już wcześniej.

    Wnętrze czujnika zalania
    Ten czujnik zalania wygląda identycznie jak omawiany wcześniej czujnik drzwi. Nawet płytka jest identyczna. Łatwo jest dostać się do środka:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Najwyraźniej w ramach optymalizacji kosztów obie wersje czujnika produkowane są wspólnie aż do momentu kiedy trzeba przylutować sensor.

    Wgrywanie wsadu na XR809
    Identycznie jak w przytoczonych na początku tematch.
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Tu jest instrukcja krok po kroku.
    Zdjęcia z lutowania i programowania (LDO TC1264-3.3V zapewnia zasilanie, USB na UART jest w trybie 3.3V):
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809 Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809 Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Najnowszą wersję wsadu umieszczam tutaj:
    https://github.com/openshwprojects/OpenBK7231T_App/releases
    Sukces:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809

    Konfiguracja OpenXR809
    Prezentowane tu firmware (OpenXR809) to port mojego OpenBeken, którego konfigurację omawiałem tutaj:
    'Żarówka' LED WiFi RGBCW Tuya - wnętrze, programowanie, BK7231N
    Ogrodowy podwójny przekaźnik Tuya CCWFIO232PK - BK7231T - programowanie
    Polecam się z nią zapoznać, tutaj będzie analogicznie.
    Podłączenie do otwartej sieci WiFi:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Swoją drogą, jak dalej mamy podłączony UART, to widzimy na nim informacje o połączeniu:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Strona konfiguracyjna o IP 192.168.4.1 (tam ustawiamy w Options np. namiary na nasz router; jak IP nie odpowiada to ustawić należy ręcznie sobie adres komputera typu 192.168.4.25, bo pewnie po prostu DHCP nie działa):
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Ustawiamy tam też role pinów - przykładowo dla diody LED:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Po ustawieniu tego możemy ją kontrolować przez przycisk (oraz przez MQTT, jak je skonfigurujemy):
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Ale najważniejszy dla nas jest detektor wody. Jest on na tym samym pinie gdzie czujnik otwarcia drzwi/okna miał czujnik magnetyczny.
    Dla niego musimy wybrać rolę pinu "DigitalInput_NoPullUp", czyli wejście cyfrowe bez rezystorów pull up czy tam pull down:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    W drugiej kolumnie, tam gdzie są 0, jest nazwa sprzężonego kanału z danym pinem. Możemy mieć wiele kanałów, wtedy kontrolujemy osobno np. wiele przekaźników. Pary przekaźnik/LED/przycisk o wspólnym kanale działają razem.
    Tutaj na próbę połączyłem LED i czujnik poprzez kanał 0.
    Sprawdźmy, czy to działa:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809 Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Działa! Oczywiście, jak chcemy zamienić stany na odwrotne (np. diody LED lub czujnika) to mamy dostępny odwrócone role pinów, z sufiksem "_n".
    Ale tą diodę LED podpiąłem tylko na próbę. Docelowo nadamy jej rolę WiFi - będzie nas informować o tym, czy urządzenie w danym momencie ma dostęp do sieci WiFi:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809

    Parowanie z Home Assistant poprzez MQTT
    Teraz musimy jakoś odczytać stan tego czujnika w HA.
    Służy do tego MQTT.
    Zgodnie z poprzednimi tematami z serii, konfigurujemy MQTT w Options->Configure MQTT.
    Restartujemy urządzenie.
    Kopiujemy nazwę urządzenia z "Generate Home Assistant config", będzie to przykładowo oxr6173F032. Następnie wypełniamy ręcznie configuration.yaml w HA:
    Code: yaml
    Log in, to see the code

    Normalnie w konfiguracji dołączam jeszcze:
    Code: yaml
    Log in, to see the code

    czyli sekcję odpowiedzialną za badanie czy urządzenie jest online, ale tutaj nie jest ona niezbędna. To nie jest żarówka, którą chcemy kontrolować, to jest sensor wilgotności, który raportuje nam gdy zmieni się stan czujnika.
    Następnie restartujemy Home Assistant.
    Sensor pojawia się na panelu:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Reaguje na dotyk:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    UWAGA: Jeśli mamy odwrócone "On" i "Off", to możemy zmienić to zarówno w rolach pinów (rolę pinu na wersję z _n lub bez _n), jak i w configuration.yaml (zamienić payload_on z payload_off).

    Inne produkty z XR809/XR3
    Z tej serii jest jeszcze kilka innych produktów. Postępujemy z nimi analogicznie.
    Czujnik drzwi:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Czujnik zalania-kapsel:
    Czujnik zalania na XR809 z WiFi, otwarte firmware dla platformy XR3/XR809
    Są też inne produkty z XR809, przykładowo czujnik ruchu bądź zegarek LCD, ale nimi dopiero się zajmę.

    Podsumowanie
    Przedstawione tu rozwiązanie dla układów XR809 jest w pełni konfigurowalne i uniwersalne, działa analogicznie do Tasmoty. Jest to znacznie lepszy sposób niż to co opisywałem około rok temu, czyli "na sztywno" napisana aplikacja dla danego jednego sensora, wymagająca rekompilacji w celu zmiany np. pinu na którym jest czujnik lub hasła MQTT.
    W kolejności do testów z XR809 mam jeszcze kilka urządzeń, m. in:
    - czujnik drzwi XR809 (powinien bez problemów zadziałać tutaj)
    - czujnik ruchu XR809 (jak wyżej)
    - kalendarzyk/termometr/higrometr z XR809 (oparty o TuyaMCU - będzie troszkę zabawy, ale na szczęście, większość tego mam zaimplementowaną już w repozytorium)
    Potencjalnie też będę zamierzał się zainteresować innym rodzajem czujników, które korzystają z osobnego mikrokontrolera (też TuyaMCU), który kontroluje zasilanie XR809 lub innego modułu i włącza go tylko wtedy, gdy trzeba zaraportować zmianę stanu (np. otwarcie drzwi). Jest to co innego niż to, co opisałem w tym temacie. Takie podejście pozwala przedłużyć życie baterii, bo tylko MCU ciągle pracuje. Więcej o tym poczytacie na stronie Tuya pod zakładką "Wi-Fi for Low-Power --> Serial Port Protocol".
    Na razie to tyle - jeśli znacie jakieś inne urządzenie z XR809 to dajcie znać. Jak ktoś jest zainteresowany testami mojego firwmare, to też zapraszam - pomogę rozwiązywać problemy.

    Cool? Ranking DIY
    About Author
    p.kaczmarek2
    Level 26  
    Offline 
  • Optex