- Schemat obwodu automatyki domowej sterowanej przez Google Assistant
- Konfigurowanie aplikacji Blynk
- Konfigurowanie IFTTT z Asystentem Google i Blynk do odczytu ciągu
- Programowanie Arduino dla automatyki domowej Blynk
- Produkcja PCB przy użyciu PCBGoGo
- Montaż PCB
- Podłączanie płytki do zasilaczy AC / modułów rozszerzeń
Wraz z rozwojem wirtualnych asystentów, takich jak Asystent Google i Alexa, automatyzacja domu i aplikacje sterowane głosem stają się normalne. Teraz sami stworzyliśmy wiele projektów automatyki domowej, od prostych automatycznych świateł na klatkach schodowych po automatykę domową sterowaną przez Internet za pomocą Raspberry Pi. Ale ten projekt jest inny, chodzi o to, aby stworzyć praktyczną płytę automatyki domowej, która może zmieścić się w naszych zasilaczach prądu przemiennego na naszych ścianach i pozostać w niej ukryta. Płytka nie powinna przerywać normalnej pracy przełączników naszego zasilacza, to znaczy powinny one włączać się i wyłączać również za pomocą przełączników ręcznych. I nie trzeba mówić, że powinien być w stanie sterować tym samym obciążeniem za pomocą głosu za pomocą asystenta Google, a także ustawić timer, aby każde obciążenie mogło automatycznie włączać się i wyłączać o określonej porze dnia.
Ten projekt jest bardzo podobny do naszej inteligentnej wtyczki Wi-Fi ESP8266, ale ponieważ będziemy używać ESP12, będziemy mieć więcej pinów GPIO, co pozwoli nam kontrolować jednocześnie cztery obciążenia AC. Ponadto, ponieważ zintegrowaliśmy Blynk i Google Assistant, projekt staje się interesujący i praktyczny w użyciu. Na potrzeby tego projektu zbudowaliśmy płytki drukowane przy użyciu usługi produkcji PCBGOGO PCB. W dalszej części artykułu zamieściliśmy plik Gerber przeznaczony dla obwodu, a także wyjaśniliśmy pełną procedurę zamawiania płytek drukowanych z PCBGOGO.
Ostrzeżenie: ten projekt wymaga pracy z napięciem sieciowym AC. Należy pamiętać, że podczas pracy z wysokim napięciem zmiennym należy zachować szczególną ostrożność. Jeśli jesteś nowy, upewnij się, że jesteś nadzorowany przez doświadczoną osobę.
Schemat obwodu automatyki domowej sterowanej przez Google Assistant
Pełny schemat obwodu automatyki domowej można znaleźć poniżej.
Jak widać obwód jest bardzo prosty, zacznijmy wyjaśnienie od modułu Wi-Fi ESP12E. Możesz również obejrzeć poniższy film, aby uzyskać szczegółowe wyjaśnienie projektu. Moduł można zaprogramować tak jak płytki rozwojowe nodeMCU i zajmuje to dużo miejsca. Domyślnie po włączeniu ESP12E przejdzie w tryb pracy. Aby to zaprogramować, musimy użyć przycisku Reset i Flash. To znaczy, aby ustawić ESP12 w trybie programowania, nacisnąć i przytrzymać przyciski Reset i Flash, a następnie zwolnić przycisk resetowania. Spowoduje to uruchomienie ESP12E z wciśniętym przyciskiem flash, teraz zwolnij przycisk flash, a ESP12E wejdzie w tryb programowania. Po zaprogramowaniu należy ponownie nacisnąć przycisk resetowania, aby uruchomić ESP12E w normalnym trybie pracy i wykonać załadowany program. Kołki programujące Rx, Rx,i uziemienie są przedłużone, aby można było połączyć się z płytą FTDI lub konwerterem USB na TTL. Upewnij się, że łączysz pin Tx ESP12 z pinem Rx programatora i vice versa.
Pozostałe szpilki flagowe I1 do I4 i R1 do R4 są używane do łączenia przełączników i przekaźników. Piny I1 do I4 oznaczają piny wejściowe. Wszystkie te piny obsługują wewnętrzny rezystor podciągający, więc musimy po prostu podłączyć przełączniki na skrzynce rozszerzającej do naszego styku wejściowego poprzez rezystor obniżający, jak pokazano poniżej.
Podobnie, styki wyjściowe przekaźnika R1 do R4 służą do sterowania przekaźnikami. Użyliśmy standardowego obwodu sterownika przekaźnika z diodą BC547 i IN4007, jak pokazano poniżej. Zwróć uwagę, że przekaźniki powinny być wyzwalane napięciem 5 V, ale piny wyjściowe ESP12E mają tylko 3,3 V. Dlatego konieczne jest użycie tranzystora do sterowania przekaźnikami. Umieściliśmy również diodę LED w ścieżce bazowej tranzystora, aby za każdym razem, gdy tranzystor zostanie wyzwolony, dioda LED również się włączy.
Wreszcie, aby zasilić wszystkie nasze obwody, użyliśmy konwertera Hi-Link AC-DC do konwersji naszego 220 V AC na 5 V DC. To 5 V DC jest następnie konwertowane na 3,3 V za pomocą regulatora napięcia AMS117-3,3 V. 5 V jest używane do wyzwalania przekaźników, a 3,3 V służy do zasilania modułu Wi-Fi ESP21.
Konfigurowanie aplikacji Blynk
Wcześniej stworzyliśmy wiele projektów Blynk, takich jak robot Arduino sterowany przez Wi-Fi, więc nie będziemy wchodzić w szczegóły konfiguracji aplikacji blynk. Mówiąc prościej, po prostu zainstaluj aplikację, utwórz nowy projekt dla NodeMCU i zacznij umieszczać swoje widżety, jak pokazano poniżej.
Użyłem wirtualnych pinów V1 do V4 do sterowania przekaźnikami od 1 do 4 w naszym projekcie. Pamiętaj, aby zmienić typ przycisku do przełączenia. Opcja timera może być również używana do automatycznego uruchamiania wirtualnych pinów na określony czas, nawet jeśli telefon jest wyłączony. Na przykład użyłem timera tylko dla wirtualnego pinu V1, ale w razie potrzeby możesz go użyć dla wszystkich czterech pinów.
Upewnij się, że wartość tokenu uwierzytelniania blynk jest pobierana ze strony projektu. Wystarczy kliknąć w ikonę nakrętki (zaznaczoną na czerwono na powyższym obrazku) i skopiować token autoryzacji za pomocą opcji kopiuj wszystko i wkleić go w bezpieczne miejsce, którego będziemy potrzebować podczas programowania płytki Arduino.
Konfigurowanie IFTTT z Asystentem Google i Blynk do odczytu ciągu
Najłatwiejszym sposobem użycia Asystenta Google do automatyzacji domu jest użycie IFTTT. Zbudowaliśmy również wiele projektów IFTTT wcześniej z NodeMCU i Raspberry Pi. W tym projekcie będziemy używać aplikacji Blynk do uruchamiania webhooka za pomocą asystenta Google. Jest bardzo podobny do naszego projektu automatyki domowej sterowanej głosem i radia FM sterowanego głosem. Z wyjątkiem tego, że tutaj będziemy używać blynk z IFTTT do wysyłania stringów, co sprawia, że jest to o wiele łatwiejsze i interesujące.
Zasadniczo będziemy używać wirtualnych pinów V5 i V6 na blynk, aby wysłać polecenie wyzwalacza. V5 będzie używany do poleceń włączania, a V6 będzie używany do poleceń wyłączania. Na przykład, jeśli powiemy, że włącz telewizor i lampę. Komenda tekstowa „TV and Lamp” zostanie wysłana do NodeMCU za pomocą API. Składnia API jest następująca.
http://188.166.206.43//update/V5?value=TV and Lamp
Teraz wszystko, co musimy zrobić w IFTTT, to użyć Asystenta Google jako IF i webhooków jako TEGO, więc nasłuchuj tego polecenia i wyślij informacje do NodeMCU za pomocą wyżej wymienionego API. Aplet włączający jest taki sam jak pokazano poniżej.
Pamiętaj, że podczas tworzenia przepisu na Asystenta Google musisz wybrać opcję powiedz frazę z opcją składnika tekstowego. Podobnie musisz powtórzyć to samo dla wirtualnego pinu V6, aby wyłączyć przekaźniki. Możesz sprawdzić wideo na dole tej strony, aby uzyskać szczegółowe informacje.
Programowanie Arduino dla automatyki domowej Blynk
Pełny kod Arduino dla tego projektu można znaleźć na dole tej strony. Wyjaśnienie tego samego jest następujące. Wcześniej upewnij się, że możesz używać Blynk i Program NodeMCU z Arduino IDE. Jeśli nie, postępuj zgodnie z artykułem wprowadzającym do ESP12. Dodaj również bibliotekę blynk do Arduino IDE za pomocą menedżera płyty.
Jak zawsze zaczynamy nasz kod od zdefiniowania pinów wejściowych i wyjściowych, tutaj wejście będzie pochodziło z przełączników, a wyjście z przekaźników. Zdefiniowaliśmy nazwy pinów dla wszystkich czterech przełączników jako sw i przekaźniki jako rel, jak widać poniżej.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
W następnym etapie musisz wprowadzić pewne dane uwierzytelniające, takie jak token uwierzytelniania blynk oraz nazwę użytkownika i hasło do routera Wi-Fi, z którym powinno się połączyć urządzenie nodeMCU. Token uwierzytelniania Blink można uzyskać z aplikacji blynk. Dowiemy się więcej na ten temat w sekcji konfigurowania aplikacji blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // pobierz z aplikacji blynk char ssid = "home_wifi"; char pass = "fakepass123";
Następnie podaliśmy definicję funkcji o nazwie read_switch_toggle () . W tej funkcji porównamy aktualny stan i poprzedni stan naszych przełączników. Jeśli przełącznik został włączony lub wyłączony, tj. Jeśli przełącznik został przełączony. Nastąpi zmiana stanu przełącznika, funkcja będzie monitorować tę zmianę i zwróci numer przełącznika. Jeśli żadna zmiana nie zostanie wykryta, zwróci 0.
int read_switch_toggle () {int wynik = 0; // Zanotuj wszystkie poprzednie wartości dla (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Przeczytaj aktualny stan przełączników crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // porównaj stan aktualny i stan pvs dla (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // jeśli jakikolwiek przełącznik zostanie przełączony, otrzymamy numer przełącznika jako wynik return result; } else wynik = 0; // jeśli nie ma wyniku zmiany 0} zwraca wynik; // zwróć wynik}
Następnie mamy kod aplikacji blynk. Będziemy używać wirtualnych pinów V1 do V6 do sterowania naszą inteligentną skrzynką przyłączową. Piny V1 do V4 będą używane do sterowania odpowiednio przekaźnikami od 1 do 4 bezpośrednio z aplikacji blynk. Poniższy kod pokazuje, co się dzieje, gdy V1 jest uruchamiany z aplikacji blynk. Po prostu odczytujemy stan (WYSOKI lub NISKI) i odpowiednio sterujemy przekaźnikiem.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println („V1”); }
Podobnie, wirtualne szpilki mogą być również używane do odczytywania ciągu z aplikacji blynk. Dowiemy się, jak wysłać ciąg z asystenta Google do NodeMCU za pomocą IFTTT i asystenta Google później, ale na razie zobaczmy, jak kod NodeMCU odczytuje ten ciąg i wyszukuje określone słowo kluczowe i odpowiednio uruchamia przekaźnik.
W poniższym kodzie widać, że gdy wyzwalany jest wirtualny pin V5, otrzymujemy ciąg przekazany przez niego do zmiennej łańcuchowej o nazwie ON_message . Następnie za pomocą tej zmiennej łańcuchowej i metody inderOf wyszukujemy, czy są obecne słowa kluczowe, takie jak „lampa”, „LED”, „muzyka”, „telewizor”, a jeśli tak, włączamy to konkretne obciążenie. Jeśli zostanie wykryte słowo kluczowe „wszystko”, włączamy wszystko. To samo można zrobić dla V6, aby wyłączyć przekaźniki. Zrozumiemy więcej na ten temat, gdy przejdziemy do sekcji IFTTT.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_message); if (ON_message.indexOf ("lamp")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("music")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("wszystko")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Wreszcie, wewnątrz funkcji pętli, musimy tylko sprawdzić, czy któryś z przycisków jest zmieniany. Jeśli tak, używamy obudowy przełącznika, jak pokazano poniżej, aby przełączać położenie tego konkretnego przekaźnika.
przełącznik (toggle_pin) {przypadek 0: przerwa; przypadek 1: Serial.println ("Przekaźnik przełączany 1"); digitalWrite (rel1, relay_state); przerwa; przypadek 2: Serial.println ("Przekaźnik przełączany 2"); digitalWrite (rel2, relay_state); przerwa; przypadek 3: Serial.println ("Przekaźnik przełączany 3"); digitalWrite (rel3, relay_state); przerwa; przypadek 4: Serial.println ("Przekaźnik przełączany 4"); digitalWrite (rel4, relay_state); przerwa; }}
Produkcja PCB przy użyciu PCBGoGo
Teraz, gdy rozumiemy, jak działają schematy, możemy przystąpić do tworzenia PCB dla naszego projektu automatyki domowej. Układ PCB dla powyższego obwodu jest również dostępny do pobrania jako Gerber z linku.
- Pobierz GERBER do automatyki domowej sterowanej głosem za pomocą Asystenta Google
Teraz nasz projekt jest gotowy, nadszedł czas, aby wykonać je za pomocą pliku Gerber. Wykonanie PCB z PCBGOGO jest dość łatwe, po prostu wykonaj poniższe czynności:
Krok 1: Wejdź na www.pcbgogo.com, zarejestruj się, jeśli to Twój pierwszy raz. Następnie w zakładce Prototyp PCB wprowadź wymiary swojej płytki PCB, liczbę warstw i liczbę potrzebnych PCB. Zakładając, że PCB ma wymiary 80 cm × 80 cm, możesz ustawić wymiary tak, jak pokazano poniżej.
Krok 2: Kontynuuj, klikając przycisk Cytuj teraz . Zostaniesz przeniesiony na stronę, na której możesz ustawić kilka dodatkowych parametrów, jeśli to konieczne, takich jak zastosowany materiał, rozstaw ścieżek itp. Ale przede wszystkim wartości domyślne będą działać dobrze. Jedyne, co musimy tutaj wziąć pod uwagę, to cena i czas. Jak widać, czas budowy wynosi tylko 2-3 dni i kosztuje tylko 5 USD za naszą płytkę PCB. Następnie możesz wybrać preferowaną metodę wysyłki w oparciu o swoje wymagania.
Krok 3: Ostatnim krokiem jest załadowanie pliku Gerber i kontynuacja płatności. Aby upewnić się, że proces przebiega bezproblemowo, PCBGOGO sprawdza, czy plik Gerber jest ważny przed przystąpieniem do płatności. W ten sposób możesz mieć pewność, że Twoja płytka drukowana jest przyjazna dla produkcji i dotrze do Ciebie zgodnie z zobowiązaniem.
Montaż PCB
Po zamówieniu płytka dotarła do mnie po kilku dniach kurierem w ładnie opisanym, dobrze zapakowanym pudełku i jak zawsze jakość PCB była niesamowita. Otrzymaną przeze mnie płytkę PCB pokazano poniżej. Jak widać, zarówno górna, jak i dolna warstwa okazały się zgodne z oczekiwaniami.
Wszystkie przelotki i podkładki miały odpowiedni rozmiar. Montaż na płytce PCB zajął mi około 15 minut, aby uzyskać działający obwód. Zmontowaną płytkę pokazano poniżej.
Podłączanie płytki do zasilaczy AC / modułów rozszerzeń
Płytka jest przeznaczona do mocowania wewnątrz gniazd prądu zmiennego w naszych domach. Ale ze względu na ten projekt będziemy używać rozszerzenia. Jeśli chcesz mieć bardziej trwałe rozwiązanie, podłącz je do gniazdek prądu przemiennego, ponieważ poniżej długość płytki drukowanej jest wystarczająco kompaktowa, aby można ją było umieścić w gniazdku sieciowym.
Upewnij się, że przestrzegasz środków ostrożności podczas pracy z zasilaniem sieciowym. Postępuj zgodnie ze schematem obwodu poniżej, aby zrozumieć, jak podłączyć przekaźniki i przełączniki do naszej płytki PCB.
Schemat połączeń jest wyłączony tylko dla jednego przekaźnika i przełącznika, ale możesz po prostu powielić to samo dla pozostałych trzech. Po wykonaniu połączeń tablica powinna wyglądać tak
Po wykonaniu połączeń upewnij się, że są one szczelnie zabezpieczone zaciskami śrubowymi, a także użyj gorącego kleju dla dodatkowego bezpieczeństwa. Zapakuj wszystko z powrotem do pudełka i powinniśmy być gotowi do testów. Pełne działanie tego projektu można znaleźć na poniższym filmie.
Mam nadzieję, że podobał Ci się artykuł i dowiedziałeś się czegoś pożytecznego. Jeśli masz jakieś pytania, zostaw je w sekcji komentarzy poniżej lub skorzystaj z naszych forów.