Spisu treści:

Sterowany głosem przełącznik IOT IOT oparty na Arduino (obsługiwane Google Home i Alexa): 11 kroków
Sterowany głosem przełącznik IOT IOT oparty na Arduino (obsługiwane Google Home i Alexa): 11 kroków

Wideo: Sterowany głosem przełącznik IOT IOT oparty na Arduino (obsługiwane Google Home i Alexa): 11 kroków

Wideo: Sterowany głosem przełącznik IOT IOT oparty na Arduino (obsługiwane Google Home i Alexa): 11 kroków
Wideo: FOX - sterowanie wifi. Integracja z Google Home + Google Assistant (asystent głosowy) 2024, Czerwiec
Anonim
Sterowany głosem przełącznik przekaźnika IOT oparty na Arduino (obsługa Google Home i Alexa)
Sterowany głosem przełącznik przekaźnika IOT oparty na Arduino (obsługa Google Home i Alexa)

W tym projekcie opisano, jak stworzyć oparty na Arduino, sterowany głosem przełącznik przekaźnikowy IOT. Jest to przekaźnik, który możesz włączać i wyłączać zdalnie za pomocą aplikacji na iOS i Androida, a także powiązać go z IFTTT i sterować nim za pomocą głosu za pomocą Google Home i/lub Alexy. Omówimy wszystkie kroki potrzebne do stworzenia urządzenia, podłączenia aplikacji i połączenia w różnych usługach IOT.

Kieszonkowe dzieci

  • Wemos D1 Mini Lite ESP8285 (kilka dolarów na Amazon)
  • Moduł przekaźnika 5V dla Arduino/Raspberry Pi
  • Tranzystor NPN 2N2222
  • Rezystor 47K omów
  • Rezystor 1K ohm

Krok 1: Zbuduj obwód

Zbuduj obwód
Zbuduj obwód
Zbuduj obwód
Zbuduj obwód
Zbuduj obwód
Zbuduj obwód

Pierwszym krokiem jest okablowanie obwodu. Dołączyłem schemat i tradycyjny schemat połączeń, w zależności od tego, do czego jesteś przyzwyczajony. Zrobiłem swój pierwszy obwód na prototypowej płytce prototypowej, a następnie przeniosłem go na płytkę drukowaną, aby uzyskać bardziej trwałą konfigurację, i umieściłem go w wydrukowanym w 3D pudełku projektowym.

Przekaźnik jest optoizolowanym przekaźnikiem H/L 5V, co oznacza, że najpierw obwód wyzwalający jest optycznie odizolowany od samej aktywacji przekaźnika, co eliminuje wszelkie potencjalne problemy ze sprzężeniem zwrotnym z przekaźnika z powrotem do mikrokontrolera Wemos. Miłe bezpieczeństwo. Po drugie, jest przełączalny na wysoki/niski, co oznacza, że można go skonfigurować, przesuwając żółtą zworkę, którą widzisz na zdjęciach, z wyzwalania, gdy sygnał jest wysoki (+5V), lub wyzwalania, gdy sygnał jest niski (0V).. Sam Wemos wysyła 3,3 V ze swoich cyfrowych pinów, a my używamy D1 jako źródła wyzwalania, co oznacza, że musimy go lekko wzmocnić, aby zbliżyć się do sygnału cyfrowego +5 V do wyzwalania przekaźnika. Alternatywnie możesz użyć przekaźnika 3,3 V i wyeliminować element wzmacniacza tranzystorowego w obwodzie i przejść bezpośrednio z D1 do pinu sygnałowego na przekaźniku. Nie miałem przekaźników 3,3 V, więc używamy bardziej popularnego przekaźnika 5 V i obwodu wzmacniacza.

DC+ i DC- na przekaźniku łączą się z pinami 5V i GND Wemos, co zapewnia niezbędne napięcie do działania przekaźnika. Przekaźnik jest oceniany od niskiego napięcia do napięcia sieciowego, ale używam go do sterowania aplikacją okablowania niskiego napięcia. Jeśli używasz tego do kontrolowania napięcia sieciowego, upewnij się, że wiesz, co robisz, masz odpowiednie kwalifikacje i podejmujesz odpowiednie środki ostrożności. Jeśli nie, nie używaj tego do sterowania aplikacjami napięciowymi.

Pin D1 na Wemos łączy się z rezystorem 47 kiloomów, który zasila bazę tranzystora NPN. Emiter przywiązuje się do ziemi. Kolektor jest podłączony do wejścia sygnału na przekaźniku. Przekaźnik jest ustawiony na wyzwalanie na niskim poziomie, więc gdy D1 podaje sygnał, sygnał 3,3 V jest wzmacniany do około 5 V, a przekaźnik jest otwarty. Kiedy D1 staje się niski, sygnał do przekaźnika staje się niski, a przekaźnik zamyka się i zamyka obwód.

Zapomniałem zrobić zdjęcia mojego tymczasowego obwodu na płytce prototypowej, ale wyglądało to dokładnie tak, jak powyższy diagram Fritzing, jeśli to było pomocne. Dołączyłem kilka zdjęć mojego ostatecznego obwodu stałego, abyś mógł zobaczyć, jak jest podłączony, na wypadek, gdybyś potrzebował wglądu lub widoczności konkretnych komponentów, których używam.

Krok 2: Programowanie Wemos - przegląd

Jedną z rzeczy, które lubię w Wemos, jest to, że można je programować tak jak Arduino, używając tego samego IDE. Tutaj jest jednak kilka kroków.

  1. Zainstaluj sterowniki Wemos, aby komputer mógł rozmawiać z Wemos
  2. Zaktualizuj Arduino IDE, aby płyta Wemos była dostępna
  3. Wykonaj szybki test "Mrugnięcia", aby upewnić się, że wszystko działa poprawnie
  4. Skonfiguruj Blynk (wiem, że to mylące, ale w rzeczywistości różni się od „testu mrugania”)
  5. Uzyskaj kod aplikacji od Blynk
  6. Zaktualizuj kod Wemos / Arduino za pomocą informacji Blynk
  7. Prześlij kod do konfiguracji Wemos.

Krok 3: Programowanie Wemos - Zainstaluj sterowniki

Programowanie Wemos - Zainstaluj sterowniki
Programowanie Wemos - Zainstaluj sterowniki

Wejdź tutaj (ten link wydaje się okresowo zmieniać, postaram się go aktualizować):

www.wemos.cc/en/latest/ch340_driver.html

I pobierz odpowiedni pakiet sterowników dla swojego systemu operacyjnego. Następnie rozpakuj plik zip do katalogu i uruchom aplikację „SETUP”, aby go zainstalować.

Kiedy zrobiłem to po raz pierwszy, dostałem dziwny błąd o tym, że nie instalowałem. Zobaczyłem czyjąś notatkę o tym i ich rozwiązanie, które zadziałało dla mnie. Jeśli więc pojawi się błąd, spróbuj użyć przycisku „Odinstaluj”, a następnie ponownie użyj „Zainstaluj”. Mam nadzieję, że to rozwiąże problem, tak jak dla mnie.

Krok 4: Programowanie Wemos - Zaktualizuj Arduino IDE

Programowanie Wemos - Zaktualizuj Arduino IDE
Programowanie Wemos - Zaktualizuj Arduino IDE
Programowanie Wemos - Zaktualizuj Arduino IDE
Programowanie Wemos - Zaktualizuj Arduino IDE
Programowanie Wemos - Zaktualizuj Arduino IDE
Programowanie Wemos - Zaktualizuj Arduino IDE

Jeśli nie zainstalowałeś Arduino IDE, teraz jest dobry moment, aby to zrobić. Możesz go pobrać ze strony www.arduino.cc

Oto odniesienie do tego, co zamierzamy zrobić w tym kroku.

wiki.wemos.cc/tutorials:get_started:get_st…

  1. Zainstalujmy nową płytkę, aby pojawiła się jako opcja w Arduino IDE. Kroki 2 - 4 są zaczerpnięte z instrukcji instalacji na następnej stronie github.

    github.com/esp8266/Arduino

  2. Uruchom Arduino IDE i otwórz okno Preferencje.
  3. Wpisz „https://arduino.esp8266.com/stable/package_esp8266com_index.json” w polu Dodatkowe adresy URL menedżera tablicy. Możesz dodać wiele adresów URL, oddzielając je przecinkami.
  4. Otwórz Menedżera tablic z Narzędzia > Tablica > Menedżer tablic (u góry), wyszukaj „esp8266” i zainstaluj wymienioną platformę esp8266.
  5. W tym momencie zobaczysz tablice Wemos w menu Narzędzia → Tablica: xxx Wybierz Wemos D1 Mini. W moim przypadku, jak widać na obrazku, konkretna nazwa brzmiała „LOLIN(WEMOS) D1 R2 & mini”
  6. Podłącz kabel USB między komputerem a Wemos
  7. Potwierdź, że „Port” jest teraz aktywny w menu Narzędzia i wygląda poprawnie.

Krok 5: Programowanie Wemos – test migania

Programowanie Wemos - Test migania
Programowanie Wemos - Test migania

Zanim przejdziemy dalej, musimy się upewnić, że możemy komunikować się z tablicą Wemos i wszystko wygląda dobrze. Najprostszym sposobem na to jest podłączenie kabla USB i wypróbowanie prostego programu do Wemos. Blink jest najłatwiejszym przykładem i zaoszczędził mi wielu kłopotów podczas pracy z nowymi płytami, ponieważ zawsze robię to w pierwszej kolejności.

  1. Przejdź do: Plik > Przykłady > ESP8266 > Migaj i załaduj szkic migania dla urządzenia Wemos
  2. Skompiluj i prześlij szkic

Jeśli niebieska dioda zacznie migać mniej więcej raz na sekundę, możesz przejść do następnego kroku! Jeśli nie, wróć i rozwiąż poprzednie kroki. Sprawdź, czy jest jakiś problem z kierowcami i zarządcą zarządu. Miałem pewne problemy z pakietem płyty dla ESP8266 i musiałem go całkowicie odinstalować i ponownie zainstalować z powodu czegoś dziwnego z wersjami, które się działy. Nie poddawaj się, a wyszukiwanie w Internecie może być Twoim przyjacielem!

Zakładając, że wszystko jest w porządku, przejdź do następnego kroku.

Krok 6: Programowanie Wemos - konfiguracja Blynk

Programowanie Wemos - konfiguracja Blynk
Programowanie Wemos - konfiguracja Blynk
Programowanie Wemos - konfiguracja Blynk
Programowanie Wemos - konfiguracja Blynk
Programowanie Wemos - konfiguracja Blynk
Programowanie Wemos - konfiguracja Blynk

W kolejnych krokach musimy założyć konto w Blynk i uzyskać token, którego będziemy używać do kontrolowania utworzonego obwodu.

  1. Pobierz aplikację i utwórz konto (jest bezpłatne)
  2. Utwórz nowy projekt
  3. Wybierz Wemos D1 jako sprzęt w obszarze Wybierz urządzenie
  4. Nadaj projektowi nazwę i zachowaj typ złącza jako WiFi
  5. Kliknij Utwórz projekt
  6. W tym momencie Token Auth zostanie wysłany na adres e-mail użyty podczas tworzenia konta Blynk. Zachowaj to na później, w następnym kroku wstawimy wartości do szkicu.
  7. Gdy dojdziesz do pustego ekranu płótna, po prostu przesuń palcem w lewo, a otrzymasz menu widżetów. Wybierz "Przycisk", aby dodać "przycisk" do projektu
  8. Wybierz przycisk, a następnie skonfiguruj Pin, klikając go i wybierając „Cyfrowy” i „D1” jako pi, a następnie kliknij „Ok”
  9. W tym momencie wszystko powinno być gotowe. Aby to uaktywnić, chciałbyś wybrać ikonę trójkąta w prawym górnym rogu, ale to jeszcze nie zadziała, dopóki szkic nie zostanie załadowany i skonfigurowany, co jest następnym krokiem!

Krok 7: Programowanie Wemos - instalowanie biblioteki Blynk

Aby móc przesłać szkic oparty na Blynk, musimy zainstalować ich bibliotekę. Szczegóły znajdziesz tutaj.

github.com/blynkkk/blynk-library/releases

Aby zapoznać się z pewnym kontekstem, sprawdź ich główną stronę tutaj (https://blynk.io/en/getting-started)

Na początku było to dla mnie mylące, ale jest to o wiele łatwiejsze niż się wydaje. Po prostu rozpakuj plik do katalogu Arduino. Dla mnie było to w \user\Documents\Arduino. Był tam już folder o nazwie „biblioteki”. Plik zip zawiera katalog "biblioteka" i "narzędzia". Po rozpakowaniu do katalogu Arduino dodaje zawartość do bibliotek i tworzy narzędzia, jeśli jeszcze nie istniały.

Krok 8: Programowanie Wemos – szkic

W tym momencie prawie skończyliśmy. Szkic jest dość prosty, pochodzi prosto z Blynk i zasadniczo łączy usługę Blynk i tablicę. Możesz użyć ich kreatora tutaj:

examples.blynk.cc/?board=WeMos%20D1&shield=ESP8266%20WiFi&example=Widgets%2FTerminal

Lub możesz użyć tej próbki, która powinna Ci odpowiadać. Upewnij się tylko, że podstawiasz wartości tokena uwierzytelniania i poświadczenia swojej sieci Wi-Fi.

/*************************************************************

Pobierz najnowszą bibliotekę Blynk tutaj: https://github.com/blynkkk/blynk-library/releases/latest Blynk to platforma z aplikacjami na iOS i Androida do kontrolowania Arduino, Raspberry Pi i podobnych przez Internet. Możesz łatwo tworzyć interfejsy graficzne dla wszystkich swoich projektów, po prostu przeciągając i upuszczając widżety. Pliki do pobrania, dokumenty, samouczki: https://www.blynk.cc Generator szkiców: https://examples.blynk.cc Społeczność Blynk: https://community.blynk.cc Śledź nas: https://www.fb. com/blynkapp Biblioteka Blynk jest licencjonowana na licencji MIT Ten przykładowy kod jest w domenie publicznej. ************************************************** *********** Możesz wysyłać/odbierać dowolne dane za pomocą obiektu WidgetTerminal. Konfiguracja projektu aplikacji: Widżet terminala dołączony do Virtual Pin V1 **************************************** **********************/ /* Skomentuj to, aby wyłączyć drukowanie i zaoszczędzić miejsce */ #define BLYNK_PRINT Serial #include #include // Powinieneś uzyskać Auth Token w aplikacji Blynk. // Przejdź do ustawień projektu (ikona nakrętki). char auth = "TwójTokenAuth"; // Twoje dane logowania do Wi-Fi. // Ustaw hasło na „” dla otwartych sieci. char ssid = "NazwaTwojejSieci"; char pass = "TwojeHasło"; // Podłącz wirtualny terminal szeregowy do wirtualnego pinu V1 WidgetTerminal terminal(V1); // Możesz wysyłać polecenia z Terminala do swojego sprzętu. Po prostu użyj // tego samego wirtualnego pinu, co twój widżet terminala BLYNK_WRITE(V1) { // jeśli wpiszesz "Marco" w widżecie terminala - odpowie: "Polo:" if (String("Marco") == param.asStr ()) { terminal.println("Powiedziałeś: 'Marco'"); terminal.println("Powiedziałem: 'Polo'"); } else { // Odeślij terminal.print("Powiedziałeś:"); terminal.write(param.getBuffer(), param.getLength()); terminal.println(); } // Upewnij się, że wszystko zostało wysłane terminal.flush(); } void setup() { // Debuguj konsolę Serial.begin(9600); Blynk.begin(auth, ssid, pass); // Możesz również określić serwer: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 100), 8080); // Spowoduje to wydrukowanie wersji oprogramowania Blynk w widżecie terminala, gdy // twój sprzęt zostanie podłączony do serwera Blynk terminal.println(F("Blynk v" BLYNK_VERSION ": Urządzenie uruchomione")); terminal.println(F("--------------")); terminal.println(F("Wpisz 'Marco' i uzyskaj odpowiedź lub wpisz")); terminal.println(F("cokolwiek innego i wypisz to z powrotem.")); terminal.flush(); } void loop() { Blynk.run(); }

Krok 9: Programowanie Wemos - ostatni krok

Image
Image

Po załadowaniu szkicu skompiluj i prześlij szkic i powinieneś być gotowy do przetestowania konfiguracji!

Otwórz aplikację Blynk, kliknij trójkąt w prawym górnym rogu swojego projektu Wemos

Następnie kliknij przycisk! Powinieneś usłyszeć kliknięcie przekaźnika, a diody LED stanu na płytce przekaźników wskazują, że przekaźnik zmienił stan.

Teraz możesz podłączyć przekaźnik do dowolnej aplikacji niskonapięciowej wymagającej prostego przełącznika i sterować nim z aplikacji Blynk. Ostatnią rzeczą, którą musimy zrobić, to powiązać IFTTT i użyć Google lub Alexa do kontrolowania systemu Blynk, więc nie musimy tego robić z naszej aplikacji Blynk.

Krok 10: Kontrolowanie Blynk za pomocą IFTTT i Google Home lub Alexa

Zakładam w tym momencie, że znasz już IFTTT. Jeśli nie, istnieje kilka doskonałych samouczków, które pomogą Ci nauczyć się używać i wykorzystywać IFTTT. Jest bardzo potężny i coś, czego będziesz chciał się nauczyć, jeśli jeszcze nie jesteś zaznajomiony.

  1. Utwórz nowy aplet w IFTTT
  2. Wybierz Asystenta Google jako „Jeśli to” i użyj „prostej frazy” jako wyzwalacza. Dla mnie, ponieważ miało to włączyć lub wyłączyć mój kominek, moje zdanie brzmiało „włącz kominek”
  3. W części „Wtedy to” wyszukaj i użyj webhooków
  4. Wybierz „Złóż wniosek internetowy”
  5. W przypadku adresu URL, którego chcesz użyć:

    „https://blynk-cloud.com/XXXXYYYYZZZZZ/update/d5?value=1”

  6. Ustaw metodę na GET, typ treści na urlencoded, możesz pozostawić pole BODY puste, a następnie zapisać

Poczekaj kilka minut, a następnie przetestuj swoją frazę za pomocą urządzenia Google Home. Zauważyłem, że przygotowanie zajmuje około dwóch minut.

UWAGA: jeszcze jedna rzecz, na którą należy zwrócić uwagę. Zauważ, że używam "d5" w moim wywołaniu API, ale podłączyłem się do pinu D1 na płycie. Zajęło mi około dnia, aby dowiedzieć się, że numeracja pinów GPIO i numeracja sitodrukowa na płytce nie są takie same. Po zmianie wartości za pomocą bezpośrednich wywołań URL i przetestowaniu napięć na różnych pinach za pomocą woltomierza, zauważyłem, że wywołanie d1 przez API zmieniło napięcie, ale nie na D1 na płycie. d5/GPIO 5 faktycznie odpowiadał D1 na płycie. Kiedy dokonałem tej regulacji, wszystko działało pięknie!

Podłączanie Alexy jest identyczne jak w domu Google, wystarczy skorzystać z usługi Alexa na IFTTT.

Krok 11: Wniosek

W tym momencie powinieneś mieć działający sterowany głosem przekaźnik IOT za pomocą Wemos D1 mini lite. Miłej zabawy i powodzenia!

Ponownie, elektryczność jest niebezpieczna, więc prosimy o podjęcie odpowiednich środków ostrożności, a jeśli nie masz odpowiednich kwalifikacji, nie rób tego.

Zalecana: