Czujnik zalania SONE – flashowanie oprogramowania OpenBeken

To miało być kolejne rutynowe flashowanie drobnego urządzenia, ale los zdecydował inaczej. Rozebrałem nowozakupiony czujnik zalania i oczom mym ukazał się zupełnie nowy chip, inny niż dotychczas: CBU 2.01.01.103308.

Na stronie udało mi się odnaleźć pinout

Okazuje się, że niektóre z wyjść modułu są wyprowadzone na terminal nieco poniżej, przemierzyłem je miernikiem i przedstawiają się następująco:

Rozstaw pinów w terminalu nie jest standardowym i najpowszechniejszym 2.54mm, a rzadziej stosowanym 2mm.

Ten chip nie współpracuje z oprogramowaniem Tasmota, natomiast okazuje się, że powstało do niego również alternatywne oprogramowanie, OpenBeken, inspirowane Tasmotą i rozwijane… na Elektrodzie 😮

Standardowo, do pinów lutujemy kabelki (wszystkie 5, to ważne!) i podłączamy urządzenie do ulubionego flashera (u mnie niezmiennie CP2102). Dbamy o to, by CER był dość łatwy do zwarcia do GND

Z repozytorium projektu pobieramy najnowszą kompilację oprogramowania, wypakowujemy i uruchamiamy .exe


Wybieramy port COM do którego podmapował się konwerter, baud zostawiłem domyślny i nie odnotowałem zakłóceń w komunikacji. Wg dokumentacji, mój moduł CBU wykorzystuje BK7231N, więc i tu nie wprowadzałem żadnych zmian w konfiguracji urządzenia.

Jako pierwszy krok, kliknąłem 'Firmware backup (read) only’, gdyż nie mam bladego pojęcia czy uda mi się wgrać nowe oprogramowanie, warto również zrobić backup konfiguracji samego urządzenia. Narzędzie poprosi nas o podanie informacji nt backupowanego oprogramowania – wpisałem flood sensor, bo tym się ten moduł w tym układzie trudnił

Po wpisaniu prefixu, rozpoczyna się zrzucanie backupu. Program wpierw poprosi nas o krótkotrwałe zwarcie CER do masy, by móc wprowadzić chip w odpowiedni tryb pracy, dzięki któremu dane zaczynają się pobierać.

Po pobraniu w moim przypadku pojawił się komunikat o nieznanym urządzeniu – nie było to zaskoczeniem, gdyż nie widziałem tego sensora zalania w bibliotekach projektu.

Pobieramy najnowsze oprogramowanie przyciskiem 'Download latest from Web’ i wgrywamy w urządzenie, wybierając 'Do firmware write (no backup!)’. Nie przejmujemy się opisem 'no backup’, gdyż backup stworzyliśmy samodzielnie przed chwilą (swoją drogą – uwielbiam jednoznaczność komunikatów na przyciskach, nie pozostawiają pola do interpretacji).

Czekamy aż obok Set baud rate: pojawi się komunikat Write success!

Możemy kliknąć 'Change OBK settings for flash write’, by wgrać w urządzenie konfigurację naszej sieci – w nowym oknie pojawią się pola do wpisania nazwy i hasła do WIFI (pamiętajmy o tym, że powinno to być 2.4GHz) oraz brokera MQTT – następnie klikamy 'Write only OBK config’.

Sprawdzamy DHCP, wpisujemy adres ip naszego nowego urządzenia w przeglądarkę i naszym oczom ukazuje się interface wyraźnie inspirowany Tasmotą, choć stworzony na zupełnie innym chipie.

Odpinamy urządzenie od programatora, odlutowujemy przewody – jest ono już w naszej sieci, ale nie ma żadnej konfiguracji. Trzeba ją będzie odtworzyć.

Urządzenie ma funkcję powiadamiania o zalaniu poprzez odnotowanie zwarcia na sondzie, wykorzystującej dwa piny na płytce. Drugą funkcjonalnością jest przycisk od dołu, wybudzający urządzenie, prawdopodobnie będzie też wymagany tryb deep sleep, by nie zużywać przesadnie baterii.

Odtwarzanie w tym wypadku nie powinno być aż tak straszne. Tu muszę mocno pochwalić twórców oprogramowania, gdyż możliwości oferowane w nim są imponujące 🙂

Skupmy się na znalezieniu funkcji wykrywania zalania. W tym celu klikamy w config i wybieramy GPIO Finder. Ukazuje nam się menu z pełnym GPIO urządzenia oraz krótkim opisem funkcjonalności poszczególnych przycisków.


Przy zwarciu sondy kawałkiem metalu i jednym z licznych kliknięć w 'Set Input P-up’, jeden z pinów zaczyna zmieniać swój stan w miarę zwierania sondy – to nasz pin odpowiedzialny za jej stan

W podobny sposób udało mi się określić pozycję przycisku a poprzez kliknięcia kolejnych przycisków Set Output High/Low, namierzyłem też diodę LED (zgasła po zmianie na Low).

Poprawne (prawdopodobnie) ustawienia zasilania określiłem z pomocą artykułu na elektrodzie.

Ostateczna konfiguracja modułu wygląda na ten moment następująco:

{
  "vendor": "Tuya",
  "bDetailed": "0",
  "name": "SONE Water Leak Sensor",
  "model": "",
  "chip": "BK7231N",
  "board": "CBU",
  "flags": "1024",
  "keywords": [
    "water",
    "leak",
    "flood",
    "sensor",
    "battery"
  ],
  "pins": {
    "14": "dInput;49",
    "15": "LED_n;48",
    "17": "BAT_Relay;4",
    "22": "dInput;41",
    "23": "BAT_ADC;5"
  },
  "command": "",
  "image": "",
  "wiki": ""
}

Nie wiem, jak urządzenie będzie się sprawowało na dłuższą metę – pod znakiem zapytania pozostaje długość działania na baterii, ale z czasem postaram się zaktualizować ten wpis, w miarę pozyskiwania nowych informacji.

EDIT 2026-04-27:
Obecna konfiguracja wyssała dwie baterie AAA przez noc, więc muszę jeszcze popracować nad template, bo zmiana baterii z taką częstotliwością jest nieco bez sensu

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *