Wake on 2 Pins (Delivery Box Sensor) [ZigBee][Z2S]

Moderator: vajera

zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

POSTIN_W2P (Post In Wake 2 Pins)

XIAO ESP32C6 || ESP32C6 Dev Module

Soft wgrany na ESP tworzy urządzenie ZigByy powiadamiające do bramki Z2S Company @vajera o obecności czegoś. W domyślnej konfiguracji o zawartości skrzynki pocztowej. Ale oczywiście można z tego ustawić praktycznie dowolny czujnik czy alarm wystarczy zmiana nazw i ikony w Cloud SUPLA.

Opis aktywnych wyprowadzeń:
D0(GPIO0) - ADC (pomiar z podłączonego LiIon 3,7V)

D1(GPIO1): stan LOW → wybudzenie i wysłanie komunikatu do BinarySensor w bramce. W aplikacji informacja o dostarczeniu
D2(GPIO2): stan LOW → wybudzenie i wysłanie komunikatu do BinarySensor w bramce. W aplikacji wyzerowanie BinarySensor
GPIO9 - parowanie. Na obu modułach jest to przycisk BOOT. Naciśnięcie powyżej 3s.
W nawiązaniu do viewtopic.php?p=230301#p230301 czyli specjalne życzenie @QLQ... po obu stronach USB C XIAO ma takie maleńkie guziołki. :P ;)

Alternatywne ustawienie aby stan wyświetlany był zgodny z ustawionymi powiadomieniami
viewtopic.php?p=229802#p229802

Urządzenie wysyła stan baterii co 12 godzin.

Pull-upy (ważne)
Piny D1(GPIO1) i D2(GPIO2) muszą mieć zewnętrzne pull-up: rezystory ok. 10 kΩ do 3,3 V (pin 3V3).

Soft wgrywamy standardowo:
flash_download_tool_3.9.9_R2

Pomiar napięcia ogniwa (ADC)
Ogniwo Li-ion do ADC podłączamy przez dzielnik napięcia (dwa identyczne rezystory ok. 200 kΩ).

Pobór prądu i szacowany czas pracy
Pobór przy samych pull-up (bez dzielnika na ADC): ~18 µA (z pomiaru)
Po dodaniu dzielnika ~200 kΩ: powinno być ≤ ~27 µA

Obliczenie przyblizonego czasu pracy na ogniwie dla XIAO
Założenia do obliczeń:
sleep: 27 µA
aktywność (wkładanie/wyjmowanie listu + pobudka na raport baterii): 70 mA
dzienny czas w MAX poborze: 30 s (włożenie) + 30 s (wyjęcie) + 5 s (bateria) = 65 s/dobę
ogniwo 18650: 3000 mAh

Wynik orientacyjny: ~52 miesiące pracy — więc pytanie, czy w ogóle warto ciągnąć kable z zasilaniem 🙂

Kilka ważnych uwag
Nie uruchamiamy XIAO z oprogramowaniem Zigbee/komunikacyjnym bez podłączonej anteny.
Dla poprawnego działania wymagane są zewnętrzne pull-upy na GPIO1/GPIO2 (D1/D2). dotyczy i XIAO i Dev Module
Wszystko robicie na własną odpowiedzialność — nie biorę odpowiedzialności za błędy w podłączeniu czy ewentualne uszkodzenia podczas wgrywania.
Jeśli coś nie działa proszę o informację.

Na koniec
Równolegle powstaje podobne rozwiązanie nie mówiąc już o gotowych czujnikach itp., więc finalnie będą dwie opcje DIY do wyboru. Wrzucam swoje już teraz, może komuś się przyda.
EDIT:
22.02.2026 22.27 - V1(poprawka dot. pomiaru stanu baterii)
22.02.2026 22.30 - V2(zmiana zakresu stanu baterii na <=3.0V 0% >=4V 100%)
You do not have the required permissions to view the files attached to this post.
Last edited by zzrr on Sat Feb 28, 2026 8:20 pm, edited 6 times in total.
lukasz06
Posts: 2543
Joined: Sun Jul 17, 2022 6:53 pm
Has thanked: 45 times
Been thanked: 21 times

Post

@zzrr Zawsze lubiłem Twoje projekty.
Chyba będę musiał w końcu zamontować taka skrzynkę 😅
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

lukasz06 wrote: Sat Feb 21, 2026 1:38 pm @zzrr Zawsze lubiłem Twoje projekty.
Chyba będę musiał w końcu zamontować taka skrzynkę 😅
Jak byś mieszkał gdzieś w pobliżu to nawet bym Ci pomógł :) Dzięki :) 👍
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

@zzrr, Twój program działa już prawie dobrze. Jednak kontaktrony klapki listonosza i klapki odbiorcy są cały czas zwarte. Zmiana stanu skrzynki (otwarcie klapki, a co za tym idzie rozwarcie kontaktronu) ma być zasygnalizowana po podaniu impulsu stanu wysokiego. A Twój soft reaguje na chwilowy impuls stanu niskiego.

Wrzucam schemat elektryczny dla XIAO ESP32-C6:

XIAO-ZIGBEE-MAILBOX.png
You do not have the required permissions to view the files attached to this post.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Robert Błaszczak wrote: Sun Feb 22, 2026 11:19 am @zzrr, Twój program działa już prawie dobrze. Jednak kontaktrony klapki listonosza i klapki odbiorcy są cały czas zwarte. Zmiana stanu skrzynki (otwarcie klapki, a co za tym idzie rozwarcie kontaktronu) ma być zasygnalizowana po podaniu impulsu stanu wysokiego. A Twój soft reaguje na chwilowy impuls stanu niskiego.

Wrzucam schemat elektryczny dla XIAO ESP32-C6:


XIAO-ZIGBEE-MAILBOX.png
Ok. Dzięki Robert. Zmiana wyzwalania stanem wysokim a nie niskim to nie problem. Rozumiem że mówimy o kontaktronie który ma tylko styki na rozwarcie przy zadziałaniu? Muszę chwilkę pomyśleć czy w takim rozwiązaniu obwód przez kontaktron zamknięty do masy nie będzie nam zabierał zasobów z batki. Osobiście wcześniej takiego układu nie podłączałem. Damy radę :)
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

zzrr wrote: Sun Feb 22, 2026 11:39 am Ok. Dzięki Robert. Zmiana wyzwalania stanem wysokim a nie niskim to nie problem. Rozumiem że mówimy o kontaktronie który ma tylko styki na rozwarcie przy zadziałaniu? Muszę chwilkę pomyśleć czy w takim rozwiązaniu obwód przez kontaktron zamknięty do masy nie będzie nam zabierał zasobów z batki. Osobiście wcześniej takiego układu nie podłączałem. Damy radę :)
Nad tym samym się zastanawiam. Nie wiem, czy w tym przypadku nie będzie sensowniej podawać stan niski na D1 i D2 (zwarte kontaktrony) i włączyć wewnętrzny PULL-UP na D1 i D2 i reagować na pojawienie się stanu wysokiego.

Drugie rozwiązanie, to kontaktrony z podwójnym stykiem NC/NO. Ale to rzadkość na rynku i słabo dostępne.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Robert Błaszczak wrote: Sun Feb 22, 2026 11:42 am
zzrr wrote: Sun Feb 22, 2026 11:39 am Ok. Dzięki Robert. Zmiana wyzwalania stanem wysokim a nie niskim to nie problem. Rozumiem że mówimy o kontaktronie który ma tylko styki na rozwarcie przy zadziałaniu? Muszę chwilkę pomyśleć czy w takim rozwiązaniu obwód przez kontaktron zamknięty do masy nie będzie nam zabierał zasobów z batki. Osobiście wcześniej takiego układu nie podłączałem. Damy radę :)
Nad tym samym się zastanawiam. Nie wiem, czy w tym przypadku nie będzie sensowniej podawać stan niski na D1 i D2 (zwarte kontaktrony) i włączyć wewnętrzny PULL-UP na D1 i D2 i reagować na pojawienie się stanu wysokiego.

Drugie rozwiązanie, to kontaktrony z podwójnym stykiem NC/NO. Ale to rzadkość na rynku i słabo dostępne.
Można to zrobić w sumie na cztery sposoby. najlepiej jak by kontaktron miał styk który robi zwarcie do masy przy zadziałaniu. Bo przy takim rozwiązaniu mamy to już gotowe i sprawdzone na stole co do poboru prądu. teraz pozostaje trzy inne opcje z czego opcja bliźniacza do tej z Pull-down by odpadała jeśli byśmy mieli iść w takie rozwiązanie jak proponujesz. Tu zostaje dwie. Pull-up lub pull-down bedzie sie zamykał przez kontaktron cały czas. bo mozna też dać zamiast GND 3.3V na kontaktron. Ale w tych dwóch rozwiązaniach z kontaktronem zwartm zały czas to chyba by trzeba fizycznie najpierw sprawdzić na stole jaki to będzie brało prąd w sleep. Żebysmy sobie nie popsuli fajnej juz zrobionej opcji. Co myślisz. Da radę w kontaktronie zrobić ŁĄCZ w przypadku zadziałania klapki> Czy idziemy w testy na tą opcję którą proponujesz?
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

@Robert Błaszczak wiesz co wywnioskowałem na ten moment... Że najlepiej to by było ustalić ze pod układ potrzebny jest kontaktron który z magnesem jest otwarty a bez magnesu zwiera. Co jeśli teraz będziemy kombinować a się okaże ktoś inny ma kontaktron nie NC tylko NO? :)
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Generalnie standardowe kontaktrony (np. wszystkie Satel) są NO i zwierają styk po zbliżeniu magnesu. Takie kontaktrony nie nadają się do tego projektu. Tu musimy mieć kontrakton NC, który po zbliżeniu magnesu rozwiera styk, a po oddaleniu zwiera. Są takie kontaktrony z trzema przewodami opisywane jako NC/NO. Tu pierwszy przykład z brzegu: https://allegro.pl/oferta/kontaktron-cz ... 5299529496.

Jeśli masz chęć / czas / chce Ci się ;) , to ja bym jeszcze proponował sprawdzić wersję z wewnętrznym PULL-UP na D1 i D2 i kontaktronami zwartymi do masy. Podobno wewnętrzny PULL-UP to zdecydowanie niższy pobór prądu niż standardowy rezystor 10k.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Robert Błaszczak wrote: Sun Feb 22, 2026 12:31 pm ....

Jeśli masz chęć / czas / chce Ci się ;) , to ja bym jeszcze proponował sprawdzić wersję z wewnętrznym PULL-UP na D1 i D2 i kontaktronami zwartymi do masy. Podobno wewnętrzny PULL-UP to zdecydowanie niższy pobór prądu niż standardowy rezystor 10k.
Zabawa z wewnętrznymi pull-up odpada. Już to przerobiłem ;) Przy DeepSleep nie ma co w to iść.
Sama opcja sposobu podłączenia musi być taka by zapewniała jak najmniejszy pobór prądu i niżej z poborem prądu niż ten układ co zrobiłem się nie zejdzie. Nawet w dokumentacji expresifa jest zdaje się 16uA i tyle mi pobierał +/- 2uA.

Próbowałem teraz podłączyć to przy stale zwartych stykach kontaktronu.
Wydaje mi się że zmiany w kodzie też nic nie dadzą bo jak by nie robić w układzie pull-up lub pull-down musi być i problem przy ciągle zwartych stykach kontaktronu jest taki że zabiera to jednak prąd ok.0,3mA

Wniosek na ten moment nasuwa mi się taki. Do zastosowania bateryjnego, w celu zminimalizowania poboru prądu z baterii wyzwolenie ze snu musi nastąpić zwarciem kontaktronu. (w takim stanie zwiększa się pobór prądu płynący przez rezystor pull-up do masy) jeśli zrobimy wyzwalanie plusem sytuacja będzie identyczna.
Użycie kontaktronu NC(czyli zwiera jak magnesu brak) jest właściwą opcją do układu powyżej. Ale jeszcze będę nad tym myślał :) ;)
EDIT:
W tekście edytowałem wartość 0,3A na 0,3mA (pomyłka przy pisaniu)
Last edited by zzrr on Sun Feb 22, 2026 1:17 pm, edited 2 times in total.

Return to “Bramka ZigBee”