- Wymagania wstępne:
- Koncepcja pracy:
- Program Arduino IDE dla ESP8266:
- Schemat obwodu i sprzęt:
- Przekazywanie portów twojego ESP8266 IP:
- Instalowanie aplikacji Moni na Androida:
- Tworzenie apletów za pomocą usługi IFTTT:
- Testowanie projektu:
Witamy w kolejnym ekscytującym projekcie, w którym zbudujemy sterowany głosem system automatyki domowej z wykorzystaniem modułu Wi-Fi ESP8266, w którym można sterować urządzeniami domowymi AC za pomocą głosu za pośrednictwem aplikacji na Androida z dowolnego miejsca na świecie. Tak, Twoje marzenie o włączaniu lub wyłączaniu obciążeń (światła / wentylatorów) za pomocą polecenia głosowego spełni się pod koniec tego projektu. Ten projekt jest odmianą naszego poprzedniego projektu Smart Junction Box for Home Automation, w którym kontrolowaliśmy urządzenia domowe za pomocą serwera WWW przez sieć.
Ten projekt automatyki domowej sterowanej głosem oparty na IOT jest bardzo łatwy do zbudowania i nie kosztuje dużo, ponieważ nie wymaga kupowania żadnych kosztownych modułów głosowych. Cały projekt kosztował mnie około 500 INR (8 USD), aby go zbudować. Jest to również projekt niezależny od mikrokontrolera, co oznacza, że nie potrzebujesz żadnego MCU / MP, takiego jak Arduino lub Raspberry pi. Cały projekt działa na module ESP8266. Dowiedz się więcej o ESP8266 tutaj. Więc zacznijmy mówić…
Wcześniej omawialiśmy wiele typów automatyzacji domu przy użyciu różnych technologii, takich jak:
- Automatyka domowa oparta na DTMF
- Automatyka domowa oparta na GSM wykorzystująca Arduino
- Automatyka domowa sterowana komputerowo przy użyciu Arduino
- Automatyka domowa sterowana przez Bluetooth przy użyciu 8051
- Automatyka domowa sterowana zdalnie na podczerwień za pomocą Arduino
- projekt automatyki domowej wykorzystujący MATLAB i Arduino
- Zdalnie sterowane diody LED za pomocą Raspberry Pi
- Automatyka domowa sterowana smartfonem za pomocą Arduino
Wymagania wstępne:
Ten projekt jest kontynuacją naszego poprzedniego projektu Smart Junction Box for Home Automation z wykorzystaniem ESP8266, więc większość części sprzętowej została już omówiona w tym samouczku. Prosimy o przeczytanie tego przed przystąpieniem do tego, ponieważ pominę informacje zawarte w tym samouczku. Aby dać krótkie podsumowanie naszego poprzedniego projektu, zmodyfikowaliśmy skrzynkę połączeniową (płytkę rozszerzającą) w tym samouczku, która może konsolować kartę Perf składającą się z dwóch przekaźników i modułu ESP8266. Dwa przekaźniki (obciążenia AC) można przełączać za pomocą strony internetowej utworzonej przez ESP8266 (działając jako serwer sieciowy). W tym samouczku dodam tylko kilka funkcji, abyśmy mogli również kontrolować obciążenia AC za pomocą polecenia głosowego za pośrednictwem smartfona.W tym samouczku nie będziemy omawiać żadnej części sprzętu, a jego kod pozostanie taki sam, jak w poprzednim samouczku.
Wiedza o tym, jak korzystać z www.IFTTT.com, da ci przewagę w tym projekcie. Jeśli nie jesteś zaznajomiony z IFTTT, nie martw się, wyjaśnię, jak go używać w tym konkretnym samouczku, abyś mógł go uruchomić.
Koncepcja pracy:
Zakładam, że przeczytałeś poprzedni samouczek, w takim przypadku powinieneś teraz wiedzieć, jak zbudować tę skrzynkę połączeniową i jak zdalnie przełączać obciążenia z przeglądarki internetowej. Aby było to możliwe, udostępniliśmy publicznie nasz adres IP przydzielony do ESP8266. Można to zrobić za pomocą „techniki przekierowania portów”. Następnie zainstaluj aplikację mobilną o nazwie „Moni” na urządzeniu mobilnym z systemem Android / iPhone. Ta aplikacja rozpozna naszą mowę i przekaże informacje do apletów IFTT, które z kolei będą kontrolować obciążenia za pośrednictwem haków internetowych Maker.
Może to zabrzmieć trochę nudno, ale wszystkie te rzeczy zostały jasno wyjaśnione w tym samouczku i zaufaj mi za pomocą kilku kliknięć, wszystkie powyższe można zrobić. Ten samouczek pomoże Ci w najlepszy możliwy sposób za pomocą zdjęć i filmów. Na końcu tego samouczka będziesz mógł włączać i wyłączać swoje urządzenia domowe za pomocą głosu z dowolnego miejsca na świecie. Sprawdź pełny kod i wideo demonstracyjne na końcu samouczka.
Sprawdź także światła sterowane głosem za pomocą Raspberry Pi i pisania głosowego na wyświetlaczu LCD 16x2.
Program Arduino IDE dla ESP8266:
Podobnie jak w poprzednim projekcie będziemy programować nasz moduł ESP8266 przy pomocy Arduino IDE. W programie wprowadzono niewielką modyfikację. Ta modyfikacja ma na celu zapewnienie, że ESP8266 łączy się ze stałym adresem IP za każdym razem, gdy ustanawia połączenie z routerem. Program jest dokładnie taki sam jak poprzedni kod, z wyjątkiem tych czterech wierszy
// Uzyskaj stały adres IP za każdym razem IPAddress ip (192, 168, 0, 104); // Powinien to być adres IP bramy IPAddress mojego modułu ESP (192, 168, 0, 1); // ustaw bramę tak, aby pasowała do twojej sieci, większość bram będzie domyślnie taka sama Serial.print (F ("Setting static ip to:")); Serial.println (ip); Podsieć IPAddress (255, 255, 255, 0); // ustaw maskę podsieci tak, aby pasowała do twojej sieci WiFi.config (ip, brama, podsieć);
Tutaj w miejscu IPAddress ip (192, 168, 0, 104); wprowadź żądany adres IP. W takim przypadku mój ESP będzie cały czas podłączony do 192.168.0.104 i mogę po prostu uzyskać do niego dostęp, używając tego adresu IP w mojej przeglądarce. Kompletny kod podany na końcu tego samouczka.
Schemat obwodu i sprzęt:
Schematy i sprzęt dla tych urządzeń domowych sterowanych głosem opartych na IoT są takie same, jak w naszym poprzednim projekcie Smart Junction i wyjaśniłem schemat, więc uprzejmie go przejrzałem. Tutaj możesz zobaczyć pełny schemat w celach informacyjnych:
Przekazywanie portów twojego ESP8266 IP:
Pierwszym krokiem jest włączenie przekierowania portów w routerze (modemie), aby uzyskać dostęp do ESP z dowolnego miejsca na świecie, po prostu wprowadzając publiczny adres IP. Za każdym razem, gdy nasz ESP8266 łączy się z naszym routerem w domu / biurze, otrzyma unikalny adres IP, a ten adres IP jest używany do uzyskiwania dostępu do ESP8266 przez przeglądarkę internetową. Ten adres IP jest ograniczony w Twojej sieci domowej / biurowej, co oznacza, że nie możesz uzyskać do niego dostępu na całym świecie; dostęp do niego mają tylko urządzenia podłączone do routera. Przekierowanie portów to technika, dzięki której możemy wczytywać tę stronę globalnie. Po przekierowaniu portów możesz korzystać z publicznego adresu IP, aby uzyskać dostęp do tej strony internetowej z dowolnego miejsca na świecie. Brzmi fajnie, prawda !! Zobaczmy, jak możemy to zrobić. Aby to zrobić, musisz wcześniej wiedzieć, co następuje.
1. Nazwa producenta i adres IP routera. Można to łatwo znaleźć, patrząc na router. Adres IP zostanie również podany na naklejce. Jeśli nie Google, aby poznać adres IP routera.
2. Nazwa użytkownika i hasło do strony logowania routera. Większość routerów będzie miała nazwę użytkownika „admin” i hasło „admin”.
3. Adres IP przydzielony do modułu ESP8266. Jest to adres, którego używasz, aby uzyskać dostęp do strony internetowej modułu ESP.
4. Adres IP Twojego dostawcy usług internetowych (publiczny adres IP). Można to znaleźć, po prostu Goggling „jakie jest moje IP”.
Gdy masz już wszystko pod ręką, możesz wykonać poniższe kroki, aby przekierować port, jeśli utkniesz w znalezieniu czegoś, skorzystaj z sekcji komentarzy poniżej. Pomogę Ci.
Krok 1: Zaloguj się do strony narzędzia do zarządzania routerami, używając adresu IP routera, zazwyczaj jest to 192.168.1.1. Mój ekran będzie wyglądał jak poniżej
Krok 2: Wprowadź domyślną nazwę użytkownika „admin” i domyślne hasło „admin”, a następnie kliknij przycisk Zaloguj. Zostaniesz przeniesiony na stronę narzędziową, która będzie wyglądać mniej więcej tak, jak poniżej.
Większość informacji, które tu widzisz, jest bardzo poufnych, dlatego nie udostępniaj ich nikomu nieznanemu, ponieważ możesz ryzykować bezpieczeństwo w Internecie.
Krok 3: Jak pokazano powyżej, Twoja strona będzie miała wszystkie opcje wymienione w lewym dolnym rogu. Naszym celem jest znalezienie czegoś, co nazywa się „serwery wirtualne”. Moje mam wymienione w opcji Przekazywanie. Większość routery są one podane jako 6, 7 lub 8 -tego wariantu (przeważnie poniżej nastawy DHCP). Znajdź go i kliknij
Krok 4: Teraz musisz wpisać adres IP przydzielony do modułu ESP i numer portu, aby przekazać nasze IP. W moim przypadku muszę kliknąć Dodaj nowe i wprowadzić te dane. Dla Ciebie może być nieco inaczej. Adres IP to ten, którego używasz do uzyskiwania dostępu do strony internetowej modułu ESP. Numer portu może być wybrany przez użytkownika, ale dla uproszczenia użyjmy „80”. Adres IP przydzielony do mojego modułu ESP8266 to 192.168.0.104 i stąd moje przekierowanie będzie wyglądać poniżej:
Krok 5: Teraz musimy znać nasz publiczny adres IP. Możesz znaleźć to moje Goggling dla „What is my IP”. Adres IP Twojego dostawcy usług internetowych powinien być ściśle poufny. Na potrzeby tego samouczka załóżmy, że mój adres IP to 987: 654: 321: 123 Będę go używał jako IP mojego dostawcy usług internetowych do końca mojego tutoriala.
Uwaga: Twój dostawca usług internetowych mógł dostarczyć Ci statyczny / dynamiczny adres IP, jeśli jest to dynamiczny adres IP, Twój adres IP będzie się zmieniał przy każdym ponownym uruchomieniu modemu / routera. W takim przypadku musisz użyć czegoś takiego jak DynDNS. Ale to wykracza poza zakres tego samouczka. Nawet jeśli jest to dynamiczny adres IP, będzie działał, dopóki nie zresetujesz routera.
To znaczy, że przekierowanie portów zakończyło się sukcesem, możemy to sprawdzić, wpisując ISP IP: nazwa portu (987: 654: 321: 123: 80) do naszej przeglądarki i sprawdzić, czy strona ESP się ładuje. Jeśli wszystko pójdzie zgodnie z oczekiwaniami, powinieneś być teraz w stanie przełączać obciążenia z dowolnego miejsca na świecie za pomocą adresu IP swojego usługodawcy internetowego.
Instalowanie aplikacji Moni na Androida:
Moni to aplikacja dostępna na Androida, Windows, iTunes, a nawet Skype. Możesz pobrać tę aplikację na swój telefon komórkowy. Moni.ai ma znacznie więcej możliwości niż tylko reagowanie na polecenia głosowe, jest bardzo przyjazny dla programistów i umożliwia szybkie wizualne definiowanie rozmów i łączenie się z usługami. Moni.ai korzysta z aplikacji o nazwie Node-Red, za pomocą której możesz łatwo stworzyć kanał głosowy i zbudować własny system Chabot (AI) dla swojego biznesu / projektów i zautomatyzować go za pomocą języka naturalnego. Najlepsze jest to, że Moni jest całkowicie darmowe do użytku niekomercyjnego.
Używam telefonu z Androidem i dlatego pobieram Moni bezpośrednio ze sklepu Google Play. Po zainstalowaniu utwórz bezpłatne konto i zaloguj się do niego, Twoja aplikacja powinna wyglądać mniej więcej tak:
Możesz go używać jak każdego innego wirtualnego asystenta, na przykład pytać o pogodę, czas itp. Ale dodatkowo jest to, że może on odpowiadać na twoje aplety utworzone przez usługę Ifttt. Zobaczmy teraz, jak utworzyć aplety dla Twojej aplikacji.
Tworzenie apletów za pomocą usługi IFTTT:
Jesteśmy o krok od ukończenia tego projektu. Ostatnim krokiem jest utworzenie apletów w serwisie IFTTT. W tym miejscu poinstruujemy Moni o różnych poleceniach głosowych, aby sterować różnymi urządzeniami gospodarstwa domowego w domu.
Używam tej sterowanej głosem skrzynki połączeniowej do przełączania obciążeń mojego akwarium (światło / filtr), jak pokazano na poniższym filmie. Dlatego dostosowuję aplet do tego wymagania, możesz go dostosować do swoich celów. Wykonaj poniższe kroki:
Krok 1: Odwiedź www.IFTTT.com i zaloguj się na swoje konto. Jeśli nowy, zarejestruj się.
Krok 2: Teraz kliknij „Szukaj” i wpisz Utwórz webhooki. Wybierz go i kliknij „Połącz”. Postępuj zgodnie z instrukcjami, aby się z nim połączyć.
Krok 3: Teraz ponownie kliknij „Szukaj” i wpisz Moni. Wybierz Moni i kliknij „Połącz”. Zaloguj się na swoje konto IFTTT, aby włączyć połączenie.
Krok 4: Połączyliśmy się z usługami „Maker Webhooks” i „Moni”. Teraz możesz utworzyć aplet z tymi usługami. Kliknij My Applets, a następnie „New Applet”. Powinieneś zobaczyć coś takiego:
Na tym ekranie musisz kliknąć „this” i wybrać „Moni”. Następnie kliknij „Poproś Moni o wykonanie akcji”, aby przejść do poniższego ekranu.
Krok 5: Wypełnij szczegóły tak, jak wypełniłem powyższy obraz. Tutaj moim zadaniem jest włączenie świateł akwariowych (obciążenie 1), kiedy powiem „Włącz światła akwarium”. Następnie kliknij „Utwórz regułę”
Krok 6: Nastąpi powrót do ekranu „JEŚLI TO NIŻ TO”. Teraz kliknij „to”, wpisz „Maker Webhooks” i wybierz go. Następnie kliknij „Utwórz żądanie sieciowe”. Zostaniesz przeniesiony do poniższego ekranu
To ważny krok, podczas którego najprawdopodobniej popełnisz błędy. Na tej stronie wprowadź adres URL, który chcesz załadować. W moim przypadku chcę włączyć obciążenie podłączone do switch1, stąd linia http: // 987: 654: 321: 123 / switch1On jest używana, musisz zastąpić moje IP swoim publicznym adresem IP. To zadziała tylko wtedy, gdy użyłeś mojego kodu w poprzednim samouczku. Pełna lista adresów URL służących do przełączania obciążeń znajduje się poniżej.
URL |
Słowo kluczowe z programu |
Akcja |
http: // 987: 654: 321: 123 / switch1On |
Switch1On |
GPIO_0 jest wysokie, co powoduje włączenie obciążenia 1 |
http: // 987: 654: 321: 123 / switch1Off |
Switch1Off |
GPIO_0 jest niskie, co powoduje wyłączenie obciążenia 1 |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 jest wysokie, co powoduje włączenie obciążenia 2 |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 jest niskie, co powoduje wyłączenie obciążenia 1 |
Po wprowadzeniu żądanego adresu URL kliknij „Utwórz akcję”. Następnie kliknij Zakończ. Podobnie możesz utworzyć 4 Aplety, aby włączyć / wyłączyć oba obciążenia w naszej skrzynce połączeniowej.
Oznacza to, że aplet jest gotowy do działania i powinien pojawić się w sekcji „Moje aplety”, jak pokazano poniżej.
Czas przetestować nasz kod…….
Testowanie projektu:
Wreszcie jesteśmy gotowi z naszym projektem. Przetestujmy to. Włącz go i otwórz aplikację Moni w telefonie komórkowym. Kliknij ikonę mikrofonu i wypowiedz polecenie. W moim przypadku jest to „Włącz światła akwarium” i powinno włączyć odpowiedź „OK” i włączyć światła. Sprawdź pełny kod i film demonstracyjny poniżej.
Mam nadzieję, że spodobał Ci się projekt i udało Ci się go uruchomić. Jeśli gdzieś utkniesz, skorzystaj z sekcji komentarzy poniżej, a na pewno ci pomogę. Spotkamy się z kolejnym interesującym projektem do tego czasu.
Sprawdź również nasze inne projekty oparte na IoT tutaj.