Elektroda.pl
Elektroda.pl
X
Mierniki instalacji Metrel
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Dzwonek do drzwi z obsługą MQTT i Google na ESP-01

ghost666 20 Sty 2019 13:47 2784 6
  • Dzwonek do drzwi z obsługą MQTT i Google na ESP-01
    Czy zdarzyło Ci się kiedyś nie usłyszeć dzwonka do drzwi? Na przykład będąc w części domu, w której go po prostu nie słychać - w zamkniętej sypialni, piwnicy albo na strychu? A może wystarczyło słuchać muzyki w słuchawkach? Dzięki poniższemu projektowi problem ten przestanie istnieć. Poniższy system to układ, który pozwala podłączyć dzwonek do drzwi do sieci wewnętrznej naszego domu, a następnie poprzez MQTT wysterować np. głośnik Google, który poinformuje nas, że ktoś dzwoni do drzwi. Głośniki takie możemy umieścić w różnych miejscach, w szczególności tam, gdzie dzwonka nie słychać.

    Prezentowany w poniższym materiale elektroniczny układ - przystawka do klasycznego dzwonka do drzwi - jest klientem MQTT. Łączy się on z brokerem tej usługi w naszej sieci, która następnie przesyła powiadomienia do Google Home lub Pushbullet wykorzystując NodeRED. Projekt ten w żaden sposób nie zastępuje naszego obecnego dzwonka do drzwi czy samego przycisku, który go uruchamia - nadal wykorzystany może być ten sam mechaniczny przycisk obok naszych drzwi i ten sam dzwonek w domu.

    Prezentowany układ, oparty na ESP-01, wpina się do klasycznej instalacji dzwonka do drzwi na 16 V AC (napięcia przemiennego). Wykrywa on naciśnięcie przycisku dzwonka i wysyła powiadomienie do brokera MQTT, które trafia do NodeRED - stąd powiadomienie trafić może do głośników Google Home lub na nasz telefon, lub przeglądarkę www w naszym komputerze dzięki Pushbullet.

    W systemie automatyki domowej autora projektu serwer MQTT (Mosquito MQTT) hostowany jest na Raspberry Zero W. Działa bezproblemowo już od roku.

    Dzwonek do drzwi z obsługą MQTT i Google na ESP-01


    Dzwonek do drzwi z obsługą MQTT i Google na ESP-01
    Dzwonek do drzwi z obsługą MQTT i Google na ESP-01
    Krok 1: układ do połączenia dzwonka i modułu ESP-01





    Pierwszym krokiem jest stworzenie układu elektronicznego, który pozwoli nam na podłączenie modułu ESP-01 do dzwonka do drzwi. Typowy dzwonek elektryczny aktywowany jest poprzez podanie napięcia zmiennego 16 V pomiędzy piny TRANS i FRONT/REAR, jak pokazano na obrazku.

    Musimy skonstruować prosty układ, który będzie wykrywał pojawienie się 16 V AC na tych pinach i sygnalizował to poprzez podanie cyfrowego sygnału o napięciu 3,3 V DC na piny modułu ESP-01. Układ ten składa się z prostego prostownika jednopołówkowego na diodzie D1 z filtrem pojemnościowym C1 (patrz schemat). Nie potrzebujemy tutaj prostownika dwupołówkowego, jako że obciążenie przykładane na wyjściu tego układu jest pomijalnie małe. Dzięki temu układ jest o wiele prostszy i mniejszy. Jest to ogromna zaleta, gdyż niewielką płytkę drukowaną łatwo jest umieścić w obudowie dzwonka.

    Oporniki R1 i R2 formują dzielnik oporowy, który pozwoli nam zmniejszyć napięcie z prostownika w okolice 3,3 V, strawnego dla modułu ESP-01. Dalej - R3, TR1 oraz R4 formują inwerter, który zapewnia logikę odwrotną, jakiej wymaga moduł ESP-01 na pinie GPIO2. To ważne, aby zapewnić układowi stan wysoki na tym wejściu w czasie bootowania (dzięki podciągnięciu przez R4 i R5), by układ załadował program z pamięci Flash. W momencie, gdy naciśnięty zostanie przycisk na wejściu GPIO2, pojawi się stan niski.

    TR1 może być dowolnym tranzystorem NPN małej mocy. W tym przypadku wykorzystano popularny 2N3904.

    Napięcie V1 wynosi 3,3 V i pochodzi z zasilacza, jaki dołączyć trzeba do systemu. Autor wykorzystał starą ładowarkę do telefonu, którą połączył ze stabilizatorem AMS1117, by uzyskać odpowiednie napięcie.

    ESP-01 nie jest na stałe wlutowany na płytkę. Wpięto go w PCB wykorzystując element gniazda dla układów DIP-8, które przecięto wzdłuż dłuższej osi i następnie zwężono i sklejono.

    Dzwonek do drzwi z obsługą MQTT i Google na ESP-01
    Krok 2: Zasilacz 3,3 V dla ESP-01

    W kolejnym kroku musimy skonstruować prosty zasilacz 3,3 V DC, który będzie zasilał ESP-01 i elektronikę do niego podłączoną. Najprościej jest wykorzystać w tym celu zasilacz USB lub podobną ładowarkę do telefonu. Daje ona napięcie 5 V i posiada wydajność prądową od 500 mA do 700 mA lub nawet więcej. To zupełnie pod dostatkiem do zasilenia naszego układu. Musimy tylko zmniejszyć napięcie z 5 V do 3,3 V. Najprościej jest zrobić to scalonym stabilizatorem napięcia, takim jak AMS1117. Upewnijmy się, że kupujemy go w wersji na 3,3 V. Jeśli chcemy uprościć sobie życie, to możemy tak jak autor projektu, wykorzystać gotowy moduł z tym stabilizatorem.

    Moduł stabilizatora 3,3 V jest bardzo malutki. Bez problemu zmieści się nawet w obudowie ładowarki USB. Dzięki temu będzie prościej go zainstalować oraz uchronić się przed zwarciem jakichś elementów. Autor usunął bolce do gniazdka z układu i zastąpił je dwoma kablami, które podłączy do sieci elektrycznej w domu. Ten krok jednak zrobić możemy później, ponieważ kompletna ładowarka uprości nam testy poza dzwonkiem - będzie można podłączyć ją do zwykłego gniazdka.

    Jeśli nie czujesz się na siłach, by przerabiać układ zasilany napięciem sieciowym, to możesz zostawić zasilacz w nietkniętym stanie i podłączyć go do najbliższego gniazdka, a do dzwonka doprowadzić tylko kabel. Nie będzie to wyglądało jednakże tak elegancko, jak schowanie całej dodatkowej elektroniki w obudowie urządzenia.

    Wyjście ze stabilizatora 3,3 V podłączamy do płytki, na której znajduje się moduł ESP-01, zgodnie z informacjami ze schematu.

    Krok 3: programowanie modułu ESP-01

    W tym kroku musimy załadować do ESP-01 odpowiedni szkic Arduino. Jeśli nigdy tego nie robiliście, to tutaj można znaleźć prosty poradnik, jak to zrobić.

    Szkic, który musimy załadować, wygląda następująco:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    W szkicu zmienić musimy tylko jeden fragment, aby dostosować system do naszej sieci domowej:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Autor zaprojektował układ tak, aby był redundantny, stąd dwa SSID oraz dwa hasła - jeśli mamy w domu dwie sieci, to system będzie mógł łączyć się z nimi nawet, gdy jedna z nich będzie nieaktywna. Jeśli mamy w domu tylko jedną sieć bezprzewodową, to w obu polach dla SSID i hasła wpisujemy te same dane.

    W ssid[] oraz password[] podajemy dłuższe z, odpowiednio, SSID i haseł lub przynajmniej tyle samo spacji, co ma najdłuższy z wpisów.

    Teraz, po wprowadzeniu modyfikacji, możemy skompilować cały program w Arduino IDE i wgrać go do ESP-01.

    Dzwonek do drzwi z obsługą MQTT i Google na ESP-01


    Krok 4: Testowe uruchomienie systemu

    W kroku 1. zbudowaliśmy interfejs oparty na ESP-01, a w kroku 2. zasilacz 3,3 V dla modułu ESP-01. Teraz podłączamy zasilacz do płytki zgodnie ze schematem, gdzie źródło zasilania oznaczone jest jako V1. Kolejnym krokiem jest połączenie instalacji dzwonkowej do pinów na płytce interfejsu. Ponieważ dzwonek jest najpewniej zamontowany wysoko na ścianie, w celu przeprowadzenia testu, autor tymczasowo podłączył interfejs długim kablem. Następnie podobnym kablem podpiął zasilanie.

    Aby sprawdzić, czy nasze urządzenie działa, najłatwiej jest monitorować komunikaty MQTT w sieci. Aby to zrobić, otwieramy sesję SSH do brokera mosquitto i wydajemy następujące polecenie:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Powyższa komenda pozwoli nam zobaczyć, jakie komunikaty nadsyłane są do brokera. Możemy teraz podłączyć zasilacz do naszego modułu. W brokerze powinniśmy zobaczyć następującą wiadomość:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Teraz naciskamy na próbę dzwonek. Powinniśmy otrzymać kolejną wiadomość:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Jeśli tak się stało, to wszystko działa poprawnie i możemy przystąpić do finalnego montażu.

    Krok 5: Integracja zasilacza i płytki w dzwonku

    Teraz, gdy mamy już przetestowany system, musimy nasz moduł i zasilacz schować wewnątrz dzwonka, jeśli to możliwe. W dzwonku autora projektu znalazło się pod dostatkiem wolnego miejsca, aby zmieścić tam tą konstrukcję. Teraz możemy usunąć bolce z ładowarki USB i zastąpić je grubszym kablem, który możemy podłączyć do sieci elektrycznej domu. Pamiętaj, aby wyłączyć prąd w sieci, gdy będziemy podpinać zasilacz do sieci.

    Jeśli nie ma w obudowie dzwonka wystarczająco dużo miejsca, aby zmieścić nasz projekt, musimy umieścić go w osobnej obudowie i zamontować blisko dzwonka do drzwi.

    Dzwonek do drzwi z obsługą MQTT i Google na ESP-01
    Krok 6: konfiguracja MQTT

    Teraz, gdy system działa i jest w stanie opublikować komunikat MQTT do naszego brokera, następnym krokiem jest oprogramowanie brokera, by przekazywał komunikat dalej. Autor projektu korzysta z NodeRED, aby subskrybować komunikaty MQTT od dzwonka i transmitować je dalej do urządzeń w domu. Oprócz wysyłania informacji do urządzeń Google Home, autor podłączył z węzłem telefon z Androidem. Dzięki temu wiadomo, kiedy dzwonił dzwonek do drzwi, nawet gdy nie ma nas w domu. Powiadomienie Pushbullet nie jest dla wszystkich praktyczne, ale w przypadku autora projektu sprawdza się idealnie. Spiął on dodatkowo system z kamerą na werandzie, dzięki czemu wie od razu, kto dzwonił. Jest to znacznie efektywniejsze, niż poleganie tylko na funkcji wykrywania ruchu wbudowanej w kamerę.

    Na obrazku pokazano konfigurację NodeRED u autora. Można ją skopiować z githuba lub po prostu wkleić ten config:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Połączenie dzwonka do systemu Google Home to tylko jeden przykład, jak wykorzystać można tego typu projekty. Jak uważa autor, jest on najbardziej przydatny i praktyczny. Można rozszerzyć urządzenie dodając więcej funkcji związanych z MQTT lub nawet skonfigurować IFTTT do sterowania dodatkowymi urządzeniami po naciśnięciu dzwonka do naszych drzwi.

    Źródło: https://www.instructables.com/id/MQTT-DoorBell-Using-ESP01/


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Mierniki instalacji Metrel
  • #2 21 Sty 2019 09:20
    czasnagli
    Poziom 16  

    Moim zdaniem projekt jest za bardzo skomplikowany. To samo można zrobić o wiele prościej za pomocą modułu GSM Air202 (lub Air200). Po wykryciu przerwania od dzwonka Air202 zadzwoni na wybrany numer.

    Można też zrobić okrężną drogą po mqtt (dzwonek > Air202 > broker > aplikacja w telefonie lub głośniki).

  • Mierniki instalacji Metrel
  • #3 21 Sty 2019 09:24
    tos18
    Poziom 38  

    I w ten oto sposób wujek google będzie wiedział ile osób do Ciebie przychodzi.

    Moderowany przez gulson:

    Komunikacja odbywa się bez udziału serwerów Google. MQTT_SERVER "192.168.10.100"

  • #4 22 Sty 2019 20:34
    tos18
    Poziom 38  

    tos18 napisał:
    Moderowano przez gulson:
    Komunikacja odbywa się bez udziału serwerów Google. MQTT_SERVER "192.168.10.100"


    A czy to nie wystarczy ?
    ghost666 napisał:
    Oprócz wysyłania informacji do urządzeń Google Home, autor podłączył z węzłem telefon z Androidem.

  • #5 24 Sty 2019 08:40
    bumek123
    Poziom 10  

    Jest opcja przerobienia tego na 230v?

  • #6 25 Sty 2019 11:55
    bodzio667
    Poziom 18  

    Cytat:
    Jest opcja przerobienia tego na 230v?
    Trzeba przeliczyć sobie dzielnik R1 R2

  • #7 25 Sty 2019 15:51
    ghost666
    Tłumacz Redaktor

    bodzio667 napisał:
    Cytat:
    Jest opcja przerobienia tego na 230v?
    Trzeba przeliczyć sobie dzielnik R1 R2


    No ja bym jednak pokusił się o jakieś separacyjne trafo ;). Albo chociaż izolację optyczną.