Spisu treści:

Przełącznik sterowany głosem za pomocą Alexa i Arduino: 10 kroków (ze zdjęciami)
Przełącznik sterowany głosem za pomocą Alexa i Arduino: 10 kroków (ze zdjęciami)

Wideo: Przełącznik sterowany głosem za pomocą Alexa i Arduino: 10 kroków (ze zdjęciami)

Wideo: Przełącznik sterowany głosem za pomocą Alexa i Arduino: 10 kroków (ze zdjęciami)
Wideo: Ups. 2024, Lipiec
Anonim
Przełącznik sterowany głosem za pomocą Alexa i Arduino
Przełącznik sterowany głosem za pomocą Alexa i Arduino

Głównym celem tego projektu jest wykorzystanie czujnika temperatury do sterowania przełącznikiem (przekaźnikiem) w celu włączenia lub wyłączenia urządzenia.

Lista materiałów

  1. Moduł przekaźnika 12 V ==> 4,2 usd
  2. Arduino uno ==> 8 USD
  3. Czujnik temperatury DHT11 ==> 3 USD
  4. Moduł ESP8266 ==> 4,74 usd
  5. Transoptor N26 ==> 0,60 USD
  6. Regulator napięcia LM1117 ==> 0.60 usd
  7. Deska do krojenia chleba ==> 2,2 USD
  8. Przewody połączeniowe ==> 2,5 USD
  9. Przycisk ==> 2,5 USD

Całkowity koszt projektu to około 30 dolarów. Projekt podzielony jest na trzy części. Najpierw używamy heroku do tworzenia aplikacji. Po drugie, budujemy umiejętność Amazon Alexa, aby wdrożyć naszą pracę (najważniejsza część). Po trzecie, konfigurujemy nasz sprzęt i programujemy go za pomocą Arduino IDE.

Krok 1: Łączenie Heroku z GitHub

Łączenie Heroku z GitHub
Łączenie Heroku z GitHub
Łączenie Heroku z GitHub
Łączenie Heroku z GitHub
Łączenie Heroku z GitHub
Łączenie Heroku z GitHub

Heroku to platforma chmurowa jako usługa (PaaS) obsługująca kilka języków programowania, która jest wykorzystywana jako model wdrażania aplikacji internetowych. Najpierw wejdź na stronę heroku, utwórz nowe konto lub zaloguj się tam. Link jest podany poniżej

Strona internetowa Heroku

Zacznijmy od stworzenia nowej aplikacji. Nazwę mojej aplikacji nadałem "iottempswitch" podczas wdrażania aplikacji, link jest generowany.

Po utworzeniu aplikacji przejdź do GitHub. GitHub/

Zaloguj się tam lub zarejestruj, jeśli nie masz konta. Po zalogowaniu utwórz nowe repozytorium. Podaj dowolną nazwę, którą chcesz wybrać, a następnie naciśnij Utwórz repozytorium. Na następnej stronie kliknij README, na tej stronie podaj opis, który chcesz udostępnić innym. Następnie kliknij zatwierdź nowy plik. Następnie kliknij przycisk przesyłania.

Istnieją dwie opcje: przeciągnij i upuść folder lub wybierz plik. Pobierz wymagane pliki poniżej. Po wybraniu plików naciśnij zatwierdź zmiany. Otwórz aplikację, którą stworzyłeś w Heroku, a następnie przejdź do sekcji wdrażania. Następnie kliknij na GitHub. Nadaj nazwę repozytorium, które utworzyłeś po stronie GitHub. W moim przypadku jest to Smart-Relay. Skopiuj to i wklej tutaj. Po wyświetleniu linku kliknij Połącz. Następnie kliknij opcję Wdróż gałąź (ręcznie). Po wdrożeniu możesz zobaczyć link w dzienniku kompilacji lub możesz zobaczyć link w ustawieniach. Potrzebujemy tego linku później, gdy będziemy tworzyć umiejętności Amazon.

Krok 2: Amazonka

Amazonka
Amazonka
Amazonka
Amazonka
Amazonka
Amazonka

Najnowsze zdjęcia umiejętności Alexa

Na stronie Amazon Developer używamy umiejętności Amazon do kontrolowania spustu przełącznika poprzez ustawienie temperatury i wilgotności.

Przejdź do witryny programisty Amazon. Link znajduje się poniżej.

Witryna programisty Amazon

  • Przejdź do konsoli programisty w prawym górnym rogu, jak pokazano na rysunku i4
  • Przejdź do Alexa, a następnie wybierz Alexa Skill Kit, a następnie utwórz nową umiejętność, klikając Dodaj nową umiejętność.

Po dodaniu nowej umiejętności zobaczysz stronę z informacjami o umiejętnościach.

1. Informacje o umiejętnościach (jak pokazano na obrazku i7)

musimy podać typ umiejętności, język, nazwę, nazwę wywołania.

Typ umiejętności ==> wybierz niestandardowy

  • Nazwa ==> wybierz dowolną nazwę.
  • Nazwa wywołania ==>, której używasz podczas komunikacji z Alexą. Na przykład;- Alexa, poproś czujnik o włączenie wyzwalacza przełącznika lub Alexa, zapytaj o światło tutaj nazwy wywołania to czujnik i światło.
  • Język ==> angielski (Indie). Wybierz według swojego kraju

kliknij zapisz, a następnie dalej

2. Model interakcji

Tutaj użyjemy kreatora umiejętności. Tak więc, kliknij Uruchom Konstruktor Umiejętności. zobaczysz stronę pokazaną na obrazku i8.

Najpierw tworzymy nowe intencje. Kliknij Dodaj (po lewej stronie) i nadaj dowolną nazwę, której użyłem "smartswitch"

  • Podaj nazwę typu gniazda „measurement_type” i wartości gniazda „temperatura” i „wilgotność”, jak pokazano na rysunku i9.
  • Następnie dodaj nazwę typu gniazda „zapytanie”, a wartości gniazda to „co” i „jest”, jak pokazano na obrazku i10.
  • Następnie dodaj typ slotu "switchstate", a wartości slotów to "on" i "off", jak pokazano na obrazku i11.
  • Dodaj kolejny typ gniazda „tempscale”, a wartości gniazda to „fahrenheit” i „celcuis”, jak pokazano na obrazku i12.
  • Następnie dodaj nowy typ slotu tutaj używamy istniejącego typu slotu, w tym celu musimy kliknąć użyj istniejącego slotu. W istniejącym slocie wyszukaj amazon.number i wybierz to i dodaj. Po dodaniu go zobaczysz w typach gniazd, jak pokazano na obrazku i13.

Więc skończyliśmy z typami slotów, całkowity typ slotu, którego używamy, to 5. Teraz przejdź do następnego kroku. Kliknij intencję, którą stworzyliśmy, w moim przypadku jest to smartswitch. Po prawej stronie zobaczysz gniazdo intencji, jak pokazano na obrazku i14.

  • Utwórz nowy slot, nadaj mu nazwę „Switch_State” i zmapuj go na „switchstate” za pomocą przycisku rozwijanego, jak pokazano na obrazku i15.
  • Utwórz nowy slot, nadaj mu nazwę „Sensor_Values” i zmapuj go na „measurement_type”, jak pokazano na obrazku i16.
  • Utwórz nowy slot, nadaj mu nazwę "query" i zmapuj go na "query", jak pokazano na obrazku i17.
  • Następnie utwórz nowy slot "tmp_scale" i zmapuj go na "tempscale", jak pokazano na obrazku i18.
  • Utwórz nowy slot „Numbers” i zmapuj go na „Amazon. Numbers”, jak pokazano na obrazku i19.

Teraz skończyliśmy z automatami Intent. Używamy 5 slotów intencji. Następnie przechodzimy do Sample Utterances, jak pokazano na obrazku i20.

Dodaj te przykładowe wypowiedzi.

ustaw wyzwalacz przełącznika na {Numbers} procent {tmp_scale}

{zapytanie} to stan przełącznika

Włącznik przełącznika {Switch_State}

ustaw wyzwalacz przełącznika na {Numbers} stopień {tmp_scale}

włącz przełącznik {Switch_State}

{query} przełącznik {Switch_State}

{query} to bieżące {Sensor_Values}

Następnie zapisz model i zbuduj go. Poczekaj, aż model zostanie zbudowany, po tym kliknij konfigurację. Po zbudowaniu zobaczysz komunikat, jak pokazano na obrazkach i21 i i22.

3. Konfiguracja

Wybierz HTTPS i dodaj link, który został wygenerowany podczas tworzenia aplikacji heroku. W moim przypadku jest to https://iottempswitch.herokuapp.com/. Po dodaniu linku kliknij Dalej, jak pokazano na obrazku i23.

4. Certyfikat SSLWybierz drugą opcję i kliknij Dalej, jak pokazano na obrazku i24.

z powodzeniem stworzyliśmy naszą umiejętność.

Krok 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Otwórz Arduino IDE. Następnie przejdź do Plik ==> Preferencje

W Menedżerze dodatkowych tablic skopiuj i wklej adres URL i kliknij ok, jak pokazano na obrazku i26.

arduino.esp8266.com/versions/2.4.0/package_…

  • Otwórz Menedżera tablicy, przechodząc do Narzędzia ==> Tablica ==> Menedżer tablicy.
  • Otwórz Menedżera tablic i wyszukaj nodemcu, jak pokazano na obrazku i27.
  • Następnie pobierz bibliotekę ESP8266WiFi. Otwórz menedżera bibliotek: Szkic ==> Dołącz bibliotekę ==> Zarządzaj bibliotekami.
  • Wyszukaj bibliotekę ESP8266WiFi i zainstaluj ją.
  • Wybierz płytkę ==> Ogólny moduł ESP8266.
  • Przed wgraniem kodu potrzebujemy trzech bibliotek.

Wymagane biblioteki

Przenieś te biblioteki do folderu bibliotek Arduino

Musisz zmienić trzy rzeczy w kodzie SSID, PWD i link do aplikacji heroku. Następnie wgraj kod. W przypadku modułu ESP należy wcisnąć przycisk flash podczas wczytywania kodu, a następnie jednokrotnie wcisnąć przycisk reset, a następnie zwolnić przycisk flash. Po wgraniu kodu otwórz terminal. zobaczysz wyjście.

Krok 4: Opis komponentu

opis podzespołu
opis podzespołu
opis podzespołu
opis podzespołu
opis podzespołu
opis podzespołu
opis podzespołu
opis podzespołu

1. Co to jest przekaźnik?

Przekaźnik jest urządzeniem elektromagnetycznym, które służy do elektrycznego odizolowania dwóch obwodów i połączenia ich magnetycznie. Są to bardzo przydatne urządzenia i umożliwiają przełączanie jednego obwodu na inny, gdy są całkowicie odseparowane. Są one często używane do łączenia obwodu elektronicznego (działającego przy niskim napięciu) z obwodem elektrycznym, który działa przy bardzo wysokim napięciu. Na przykład przekaźnik może utworzyć obwód akumulatora 5 V DC, aby przełączyć obwód sieci 230 V AC.

Jak to działa

Przełącznik przekaźnikowy można podzielić na dwie części: wejście i wyjście. Sekcja wejściowa ma cewkę, która generuje pole magnetyczne, gdy zostanie do niej przyłożone niewielkie napięcie z obwodu elektronicznego. To napięcie nazywa się napięciem roboczym. Powszechnie stosowane przekaźniki są dostępne w różnych konfiguracjach napięć roboczych 6V, 9V, 12V, 24V itd. Sekcja wyjściowa składa się ze styczników, które łączą lub rozłączają mechanicznie. W podstawowym przekaźniku znajdują się trzy styczniki: normalnie otwarty (NO), normalnie zamknięty (NC) i wspólny (COM). W stanie braku wejścia COM jest podłączony do NC. Po przyłożeniu napięcia roboczego cewka przekaźnika jest zasilana i COM zmienia styk na NO. Dostępne są różne konfiguracje przekaźników, takie jak SPST, SPDT, DPDT itp., które mają różną liczbę styków przełącznych. Stosując odpowiednią kombinację styczników można włączać i wyłączać obwód elektryczny. Uzyskaj szczegółowe informacje na temat budowy przełącznika przekaźnikowego.

Terminal COM jest terminalem wspólnym. Jeżeli zaciski COIL są zasilane napięciem znamionowym, zaciski COM i NO mają ciągłość. Jeżeli zaciski COIL nie są zasilane, to zaciski COM i NO nie mają ciągłości.

Zacisk NC to zacisk normalnie zamknięty. Jest to terminal, który może być włączony, nawet jeśli przekaźnik nie otrzymuje żadnego lub wystarczającego napięcia do pracy.

Zacisk NO to zacisk normalnie otwarty. Jest to terminal, na którym umieszczasz wyjście, które chcesz włączyć, gdy przekaźnik otrzyma napięcie znamionowe. W przypadku braku napięcia na zaciskach COIL lub niewystarczającego napięcia wyjście jest otwarte i nie otrzymuje napięcia. Gdy zaciski COIL otrzymują napięcie znamionowe lub nieco poniżej, zacisk NO otrzymuje wystarczające napięcie i może włączyć urządzenie na wyjściu.

2. Czujnik temperatury DHT

DHT11 to czujnik wilgotności i temperatury, który generuje skalibrowane wyjście cyfrowe. DHT11 może współpracować z dowolnym mikrokontrolerem, takim jak Arduino, Raspberry Pi itp., i uzyskiwać natychmiastowe wyniki. DHT11 to niedrogi czujnik wilgotności i temperatury, który zapewnia wysoką niezawodność i długoterminową stabilność.

3. Kompletny opis ESP8266

Moduł WiFi ESP8266 to samodzielny SOC ze zintegrowanym stosem protokołów TCP/IP, który może zapewnić dostęp do sieci WiFi każdemu mikrokontrolerowi. ESP8266 może obsługiwać funkcje sieciowe aplikacji z innej aplikacji. Każdy moduł ESP8266 jest wstępnie zaprogramowany za pomocą polecenia AT.

ESP8266 obsługuje APSD dla aplikacji VoIP i interfejsów współistnienia Bluetooth, zawiera samokalibrowany RF, co pozwala mu pracować we wszystkich warunkach pracy i nie wymaga zewnętrznych części RF.

Cechy

  • 802.11b/g/n
  • Wi-Fi Direct (P2P),
  • Soft-APZintegrowany stos protokołów TCP/IP
  • Zintegrowany przełącznik TR, balun, LNA, wzmacniacz mocy i pasująca sieć
  • Zintegrowane PLL, regulatory, DCXO i jednostki zarządzania energią
  • +19,5dBm moc wyjściowa w trybie 802.11b
  • Wyłączenie prądu upływu <10uA
  • 1 MB pamięci flash
  • Zintegrowany 32-bitowy procesor o małej mocy może być używany jako procesor aplikacji
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1×1 MIMO, 2×1 MIMOA-MPDU i A-MSDU agregacja i interwał ochronny 0,4 ms
  • Budzenie i przesyłanie pakietów w < 2ms
  • Pobór mocy w trybie gotowości < 1,0 mW (DTIM3)

Opis pinów, jak pokazano na obrazku i34.

Do połączenia modułu ESP z Arduino UNO potrzebny jest regulator napięcia Lm1117 3.3 lub dowolny regulator, ponieważ Arduino nie jest w stanie dostarczyć 3,3 V do ESP8266.

Uwaga:- Podczas wgrywania kodu naciśnij przycisk flash, a następnie jeden raz naciśnij przycisk resetowania, a następnie zwolnij przycisk flash, jak pokazano na obrazku i29.

Do podłączenia czujnika DHT11 i przekaźnika wykorzystujemy dwa piny GPIO modułu ESP8266. Po wgraniu kodu można odłączyć piny RX, TX, GPIO0. Użyłem GPIO0 do czujnika DHT11 i GPIO2 do przekaźników. Czujnik DHT11 działa dobrze z ESP8266, ale do przekaźników potrzebujemy jeszcze jednej dodatkowej rzeczy, tj. izolatora optycznego lub sprzęgacza optycznego. Zobacz zdjęcie i30, i31, i32 i i33.

Krok 5: Połączenia

ESP8266 === > DHT11GPIO0 === > Pin wyjściowy

ESP8266 === > PrzekaźnikGPIO2 ===> Wejście

ARDUINO ===> ESP8266

Gnd ===> GndTX === > TX

RX === > RX

Przycisk resetowania === > RST

Przycisk lampy błyskowej ===> GPIO0

Krok 6: Sprawdzenie wszystkich rzeczy

Sprawdzanie wszystkich rzeczy
Sprawdzanie wszystkich rzeczy
Sprawdzanie wszystkich rzeczy
Sprawdzanie wszystkich rzeczy
Sprawdzanie wszystkich rzeczy
Sprawdzanie wszystkich rzeczy
Sprawdzanie wszystkich rzeczy
Sprawdzanie wszystkich rzeczy

Pomyślnie stworzyliśmy naszą aplikację, umiejętności i nasz sprzęt jest gotowy. Czas więc sprawdzić.

W tym celu twój ESP8266 jest włączony, ponieważ nasz serwer działa na ESP8266. Tutaj nie podłączyłem żadnego czujnika do ESP8266 tylko sprawdzam czy działa czy nie ale można podłączyć czujnik, przekaźnik do ESP8266. Po połączeniu z Heroku zobaczysz połączony. Aby przetestować, przejdź do utworzonej przez siebie umiejętności Amazon, a następnie kliknij stronę testową. Po sprawdzeniu, czy działa, podłączę czujnik do ESP8266. Możesz zobaczyć wyniki, jak pokazano na zdjęciach i35, i36, 37, 38, 39, 40.

Jeśli użyjesz go bez podłączenia ESP8266, pojawi się ten błąd, jak pokazano na obrazku i41.

Wypowiedź, której możesz użyć

ustaw wyzwalacz przełącznika na {Numbers} procent {tmp_scale}

np.:-ustawić spust przełącznika na 50% wilgotności

{zapytanie} to stan przełącznika

ex- on/off to stan przełącznika

Włącznik przełącznika {Switch_State}

ex - włącznik / wyłącznik spust

ustaw wyzwalacz przełącznika na {Numbers} stopień {tmp_scale}

ex - ustaw spust przełącznika na 76 stopni Fahrenheita

ex - ustaw spust przełącznika na 24 stopnie Celsjusza

włącz przełącznik {Switch_State}

ex - włącz/wyłącz

Zobacz obraz i41 do i46 dla wyników.

Podczas rozmowy z AlexaAlexą poproś arduino o włączenie/wyłączenie wyzwalacza przełącznika

Alexa, poproś arduino o ustawienie wyzwalacza przełącznika na 24 stopnie Celsjusza.

Alexa, poproś arduino o ustawienie spustu przełącznika na 50 procent wilgotności

Alexa, poproś arduino o włączenie/wyłączenie przełącznika

Krok 7: Diagram VUI (Voice User Interface)

Schemat VUI (głosowego interfejsu użytkownika)
Schemat VUI (głosowego interfejsu użytkownika)

Krok 8: Demo

Image
Image

1. Ustaw spust temperatury i wilgotności.

2. Ustaw spust na 20 stopni celsjusza.

3. Ustaw spust na 80% wilgotności.

Krok 9: Schemat

Zalecana: