Dzwonek do drzwi - powiadomienia w HA

Jakie napięcie, gdzie?

W co wpiąłeś tą “ładowarkę”

Tam gdzie wcześniej było 3,6. Między GND a GPIO16 na podłączonym i do dzwonka i zasilonym ESP

Ładowarką USB zasilam od zawsze ESP - przez port micro USB. Źle ?

trochę mam obawy, że sfajczysz ESP32 wepnij diodę między GPIO a DP, to powinno zabezpieczyć przed przepływem prądu w niewłaściwą stronę
dioda_2022-12-23_23-29

A docelowo jeśli kupisz paczkę diod dla poczatkującyh elektroników, to możesz zrobić z nich taki “sznureczek” (minimum 5 sztuk szeregowo, jeśli kupisz 10-pak to użyj 9 do tego celu, a jedną dla ochrony GPIO) i za jego pomocą ukradnij zasilanie z domofonu wpinając anodę pierwszej w złącze 15V domofonu, a katodę ostatniej do pinu VIN w twoim ESP (za tym pinem jest regulator 5V, który wytrzyma tą różnicę napięć, a za nim jest kolejny 3,3V który już zasila sam MCU), to przy założeniu, że domofon uciągnie ESP32. (ale powinien, bo w instrukcji którą podrzuciłeś zasilacze są 30W więc powinny mieć zapas obciążalności)

To teraz pytanie laika. Co to za dioda ? Napisz mi jeśli możesz co mam sobie zakupić to zrobię zaraz jakieś zamówienie (diody - jakie ?, oporniki - jakie ?) na teraz i przyszłość.

A tak w ogóle to dzięki wielkie za pomoc i cierpliwość do tak upośledzonego elektronicznie gościa jak ja :wink: To forum rządzi.

Abym dobrze podłączył diodę jak już ją zakupię:


Tak to ma być ?

Zasilanie domofonu zostawię w spokoju. I tak mam do tej ładowarki (ona ma trzy porty) podłączony mostek MiLight więc to nie stanowi problemu.

trochę pomazałem po twoim rysunku


a dioda obojętnie jaka byleby krzemowa
kiedyś były modne prostownicze 1N4001 ale tak naprawdę mogą być byle jakie najtańsze
do ochrony GPIO w zupełności wystarczy taka

a do partyzanckiego obniżenia napięcia zasilania takie

(te poprzednie przy ESP32 mogłyby pracować na granicy swojej wytrzymałości), a tu masz zapas obciążalności i to spory

Jeśli chodzi o rezystory to jakiś mały starter pack

albo

jednak jak znam życie to większości nie wykorzystasz a te wartości które będziesz używał w dużych ilościach w końcu braknie.
Najpotrzebniejsze do podstawowej zabawy w ESP to 1k, 2k2, 4k7 i 10k, ale mając po garsteczce 1k i 10k można sobie “ukręcić” inne potrzebne wartości (korzystając z prostej matematyki).

To miałem w głowie ale narysowałem inaczej. Chyba już za późna godzina.

Dobrze trafiłeś:

Coś mi da zmiana w konfiguracji ?

Da tyle, że IDE ESPHome będzie wiedziało jaki masz sprzęt i się dostosuje do tej deklaracji, być może dlatego miałeś problemy z działaniem (bo zdeklarowałeś mocno wycudowaną płytkę), generalnie na tej podstawie odbywa się np. kontrola zasobów oraz jest uruchamiany właściwy framework.
(być może ma to wpływ też na tablicę partycji we flashu, trzeba by pokopać a mi się już nie chce)

Widzę, że w ESP32 ustandaryzowano już opisy na soldermaskach, więc właściwie aliasy i tak powinny działać od początku, ale nie znam tamtej płytki którą deklarowałeś na początku, być może ona wymusza jakieś biblioteki niekompatybilne z twoją.

Edit: pamięć mnie zawiodła i sprawdziłem nie tam gdzie trzeba, niestety wśród ESP32 też jest niezły bałagan (choć sporo płytek akurat bazuje na tym samym układzie to jednak jest jeszcze większy bałagan niż w ESP82xx, gdzie po prostu na rynku było znacznie mniej modeli różnych producentów)

PS ten kod, który masz na początku jest w ogóle w starym formacie (więc skądś go skopiowałeś, bo obecnie kreator projektu tworzy z automatu w nowym formacie).

Tych diod akurat nie ma. Coś zastępczego ?
Czyli sama dioda wg narysowanego schematu wystarczy ? Rezystora już nie muszę dawać? Poleć jeszcze jakiś miernik nie za miliony to zamówię od razu. I jeszcze nad lutownica się zastanawiałem już wcześniej - warte to coś ? Stacja lutownicza Zhaoxin 936A 60W Sklep Botland

No cóż istnieją inne sklepy w Polsce

https://kamami.pl/13111-diody-prostownicze

ja bym kupił w tym sklepie, w którym mają wszystko (i ceny nie będą przegięciem)
możesz też kupić np. w ChRL

twoje doświadczanie dowiodło, że nawet w warunkach zwarcia płynie tam minimalny prąd

Jeśli chodzi o drugi miernik to zdecydowanie wygodniejszy w użytkowaniu jest jakiś mega-prosty multimetr bez automatycznych zakresów - jest znacznie szybszy w pomiarach np. coś w guście uni-t UT33 lub wręcz jeszcze prostszy, a co do lutownicy to na początek wystarczy najtańszy chinol z regulacją temperatury, taka stacja to już niezły wypas jak na niedzielne lutowanie (sprawdź tylko czy końcówki ma tanie i typowe).


Tak poza konkurencją to prawdopodobnie GPIO4 mógłby zadziałać gdyby go okrasić takimi ustawianiami (ale na nieuruchomionym ESP by prawdopodobnie ciągnął pin w dół czyli dzwonek by dzwonił)

      inverted: true
      mode:
        input: true
        pulldown: false

1 polubienie

Nie ma mnie w tej chwili w domu ale ostatecznie skończyło się na tym, że musiałem ESP od dzwonka odłączyć. W losowych porach (2-3 razy na dobę) sam sobie dzwonił. Po logach ESP wyglądało to na restart płytki a nie spadek napięcia do 0V na dzwonku. Gdy wrócę do domu dalej do tego usiądę. Wlutuje też diodę. Ale mam przeczucie, że chyba ESP dostało zbyt wysokim napięciem i się restartowało.

Cytat
PS ten kod, który masz na początku jest w ogóle w starym formacie (więc skądś go skopiowałeś, bo obecnie kreator projektu tworzy z automatu w nowym formacie).

Tak, konfiguracja dość stara, skopiowana z jakiegoś poradnika. Jeszcze z początków mojej przygody z BLE na ESP. BLE jednak działało :wink:

Nie sądzę :smiley: gdyby się coś miało upiec miałbyś już prawdopodobnie martwy układ, natomiast całkiem możliwe, że ESP się rebootuje, znając przyczynę można nad tym popracować, ale często przyczyną (na niektórych popularnych płytkach) są problemy z zasilaniem, tu czasem sprawę załatwi dolutowanie kondensatora elektrolitycznego w torze zasilania, można też zredukować moc wypromieniowywaną przez WiFi

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_pass
  output_power: 17 # to jest lekko zmniejszona moc, jeśli masz doskonały sygnał możesz jeszcze zmniejszyć o 3 lub o kolejne 3
  power_save_mode: none # to jest default dla ESP82xx, można poeksperymentować

ESP czasem się restartuje z zupełnie nieznanych przyczyn, choć zazwyczaj chodzi o połączenie WiFi i w tym wypadku można też to całkiem wyłączyć ustawiając reboot_timeout: 0s ale w takim wypadku jeśli ESP utraci połączenie WIFi to już się nie połączy ponownie.

Natomiast dioda na wejściu oprócz odcinania potencjalnie zbyt wysokiego napięcia na wejściu powinna też zapobiec skutkom pociągania GPIO do masy podczas rebootu.
W bryku do randomnerdtutorials ten pin nie jest opisany jako pociągany do masy podczas restartu, ale być może wejście domofonu jest na tyle czułe, że reaguje nawet na stany nieustalone, proponuję eksperyment choćby z tą jedną diodą (eksperymentalnie można też włączyć z nią w szereg rezystor, przy tak dużej czułości myślę, że warto spróbować od wartości koło 10k nawet idąc w górę by sprawdzić czy wykrywanie dzwonienia nadal działa).

To nie jest tak, że konfiguracja w starym formacie cokolwiek psuje na dziś, natomiast warto pozmieniać ten fragmencik aby podążać za zmianami - patrz zmiany w konfiguracji w HA - niektóre komponenty miały wyznaczony ostateczny termin (z półrocznym wyprzedzeniem, kiedy stary format przestanie działać, np. MQTT), tego typu zmiany są konieczne w celu optymalizacji kodu (nie da się utrzymywać wszędzie kompatybilności wstecznej z przestarzałymi formatami konfiguracji, więc breaking changes mogą nadejść w dowolnej chwili gdy to będzie potrzebne, oczywiście pewnie zostaną zapowiedziane z kilkumiesięcznym wyprzedzeniem, ale czy wszyscy śledzą te przełomowe zmiany? chyba nie…).

Mam już diody, rezystory i chciałbym wrócić do tematu. Dostałem również coś takiego jak WeMOS D1 Mini. ESP32 jak pisałeś szkoda to takiego zastosowania. Tak to wygląda:


Pytanie którego pinu użyć aby działało jak obecnie ?

EDIT
Ciężko mi ocenić czy to oryginał czy nie (pewnie nie). Tak wygląda tył:

A co powinienem wpisać w konfiguracji w sekcji (pierwsze moje takie urządzenie) board ?
Domyślnie mi podstawiło:

esp8266:
  board: esp01_1m

Zostawić tak ?

Konfiguracji sensora z ESP32 nie przyjmuje:

image
Usunąć pullup ?

Dowolny, który nie ma jakichś szczególnych ograniczeń, z pamięci to znam tylko jeden - GPIO0 (który się nie nadaje, bo ma dość szczególne zastosowanie - wprowadza ESP w tryb flashowania jeśli zostanie pociągnięty do masy w momencie rozruchu - wydaje się to nieprawdopodobne, ale jest jednak możliwe, a używając go można doprowadzić do bardzo trudnego do zdiagnozowania nieprzewidywalnego zachowania, gdy akurat ktoś zadzwoni, a z jakiegokolwiek powodu ESP będzie akurat w trakcie restartu)

na podstawie powyższego bryku unikałbym też GPIO: 1, 2, 3, 15 i 16
co do pozostałych to poeksperymetuj (bo ja nie mam możliwości by sprawdzić czy twój domofon nie zareaguje na podpięcie, jeśli wszystkie pozostałe zawiodą, to spróbuj też 16, pełna dokumentacja ESP82xx jest zbiorem niewiele mniej grubych książek niż dla ESP32).
ESP8266 też ma multiplekser portów, więc przy restarcie mogą być dziwne stany nieustalone.

PS zwróć uwagę czy nie trafiłeś na klona D1 od trefnego producenta (porównaj specyfikację, a w szczególności użyte podzespoły, one są akurat po przeciwnej stronie, ale już oznaczenie ESP8266MOD przy równoczesnym braku logo AiThinker wskazuje na potencjalnie podejrzanego klona)

Może jeszcze słowo komentarza - zachwyt nad oryginałami brzmi tutaj nieco marketingowo (uważam, że lepszym rozwiązaniem jest użycie ekranowanego modułu w rodzaju ESP-12E tak jak w klonach, niż elementów “luzem” jak we wczesnych oryginałach Lolin/Wemos, jednak niektóre klony są po prostu kiepsko wykonane, a już stabilizatory 3.3V 100mA czy 150mA to w wielu zastosowaniach porażka).

Po podłączeniu diody napięcie spadło do 0,008V (chyba za mocno) i w takiej konfiguracji:

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO16
      inverted: true
    name: dzwonek_new 

ustawia sensor na włączony (po wciśnięciu dzwonka) i taki status już zostaje. Ponowne wciśnięcie również niczego nie zmienia:

To dodaj pullup po stronie ESP, jeśli korzystasz z pinu, który ma taką opcję to włącz, a jeśli nie ma to rezystor 1k (lub większy musisz poeksperymentować) do 3V3.
Próbowałeś wszystkie piny?
Nie żyję z projektowania sprzętu na ESP to nie znam pełnej dokumentacji na pamięć.

No i tu jest kluczowe pytanie jakie napięcie spadło (gdzie mierzone i jakie jest tam normalnie).

D0/GPIO16 to nie jest dobry wybór - status wysoki ma przy boocie D1, D2, D5, D6, D7 mogłeś użyć, do tego dopisz sobie filtr by jakiegoś tam wzbudzania nieprzewidywanego unikać.

binary_sensor:
  - platform: gpio
    pin:
      number: D2
      inverted: true
      mode:
        input: true
        pullup: true
    name: dzwonek_new 
    filters:
      - delayed_on: 10ms
      - delayed_off: 10ms
1 polubienie

Działa na D1 (GPIO5). Wygląda dobrze. Zostawię na parę dni na testy czy sam nie będzie dzwonił przypadkiem.
Dzięki wielkie!

Ja podpowiem tylko swoje, nieinwazyjne rozwiązanie. Zastosowałem czujnik dźwięku
czujnik dźwięku.

  • WEMOS D1 MINI + przetwornica step down 12/5V. Mikrofon z czujnika przykleiłem przy przetworniku akustycznym domofonu. całość zasiliłem z z oryginalnego zasilacza przez przetwornicę. Resztę załatwia u mnie NodeRed.
2 polubienia

A co jak spadnie na podłogę np talerz w pobliżu tego unifonu - domofonu ? Dostajesz powiadomienie o stłuczonym talerzu , czy o dzwonku do drzwi ? To już lepiej wyglada układ z transoptorem , za pomocą którego można wyciągnąć sygnał z samej wkładki - głośnika .

Na początku zanim go dostroiłem potrafił zadzwonić na szczekanie psa :slight_smile: Od ok. pół roku nie miałem błędnego zadzwonienia. Mikrofon jest ustawiony na bardzo małą czułość bo jest przyklejony przy samym piezoelektrycznym “pipadełku” w domofonie.

1 polubienie