Spisu treści:
- Krok 1: Zbieranie materiałów
- Krok 2: Programowanie Arduino i ESP8266
- Krok 3: Konfiguracja Thingspeak.com
- Krok 4: Program
- Krok 5: Konfiguracja Linkit Smart 7688 Duo i kamery internetowej
- Krok 6: Konfiguracja PushingBox
- Krok 7: Tworzenie umiejętności Alexa za pomocą Backendless
- Krok 8: Konfiguracja umiejętności Alexa w konsoli programisty Amazon:
- Krok 9: Końcowa konfiguracja i zakończ
Wideo: Monitorowanie inteligentnego domu za pomocą Alexa i Arduino: 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
W dzisiejszym świecie ludzie spędzają więcej czasu w miejscu pracy niż w domu. Stąd istnieje potrzeba systemu monitoringu domu, w którym ludzie mogą zapoznać się z warunkami w domu podczas pracy. Byłoby jeszcze lepiej, gdyby można było po prostu zapytać „kogoś” o jego dom w godzinach pracy. Można to osiągnąć, wykorzystując Amazon Alexa jako asystenta, który może dostarczyć użytkownikowi potrzebnych informacji o jego domu.
Nie tylko miejsce pracy użytkownicy mogą poznać stan domu w dowolnym miejscu na świecie, o ile mają dostęp do Internetu i Amazon Alexa.
W tym projekcie realizowane są następujące Funkcje:
1) Kontroluj urządzenia domowe, takie jak wentylator i światło
2) Informuje o stanie urządzeń
3) Informuje o warunkach pogodowych w domu (temperatura i wilgotność)
4) Wysyła migawkę wnętrza domu do użytkownika za pośrednictwem Gmaila, gdy jest to wymagane.
5) Wysyła powiadomienie w przypadku -
* Intruz (przesyła również zdjęcie)
* Ogień
* Gość (przesyła również zdjęcie)
Krok 1: Zbieranie materiałów
Wymagane materiały
Arduino Uno
Moduł Wi-Fi ESP8266
Linkit Smart 7688 Duo
DHT11
Przekaźniki
Czujnik przeszkód na podczerwień
Kamerka internetowa
Amazon Echo Dot
Płytka do krojenia chleba i zworki Przewody
Oprogramowanie i usługi online:
Rzeczypeak.com
IDE Arduino
Zestaw umiejętności Amazon Alexa
Amazon Alexa Echosim.io (do testowania umiejętności)
Bez zaplecza
PushBox
Krok 2: Programowanie Arduino i ESP8266
Pobierz Arduino IDE Z oficjalnej strony internetowej:
Otwórz Arduino IDE i przejdź do pliku-> preferencje-> w dodatkowym adresie URL menedżera płyty -
Przejdź do narzędzi -> tablice -> Board Manager i zainstaluj znaleziony pakiet esp8266.
Aby zaprogramować arduino wystarczy podłączyć kabel USB z arduino do komputera i wybrać Arduino/Genuino UNO w narzędziach->płytki. Upewnij się również, że wybrałeś uprawnienia portów COM w Narzędziach (numer portu COM można znaleźć w Menedżerze urządzeń). Napisz wymagany program, skompiluj i kliknij prześlij, jeśli nie ma błędów.
Aby zaprogramować ESP8266 wykonaj połączenie jak pokazano na schemacie. podłącz usb z arduino do komputera. W narzędziach->płytka->wybierz Generic ESP8266 a także wybierz odpowiedni port COM. Napisz wymagany program, skompiluj i kliknij prześlij, jeśli nie ma błędów. Upewnij się, że podłączyłeś Arduino RST do GND (arduino działa jak programator do ESP8266).
W tym projekcie najpierw programuje się ESP8266, a następnie usuwa połączenia obwodów. Następnie obwód jest ponownie podłączony, jak pokazano na rysunku o nazwie „Połączenia obwodu”. A potem programuje się arduino.
Krok 3: Konfiguracja Thingspeak.com
Utwórz konto w thingspeak.com.
wykorzystujemy kanały w thingspeak do przechowywania informacji o kontroli urządzenia i przekierowywania ich do arduino/alexa. przechowujemy również wartości temperatury i wilgotności w kanałach. To jak miejsce przechowywania informacji.
Zaloguj się do thingspeak, przejdź do kanałów moich kanałów i utwórz nowy kanał. Nadaj nazwę i opis swoim kanałom. W naszym projekcie potrzebujemy 8 kanałów (można wykonać pracę używając mniej kanałów, ale będzie to trochę skomplikowane podczas programowania). Rzeczypeak ma również ograniczenia czasowe podczas aktualizacji kanału. Pomiędzy kolejnymi aktualizacjami danego kanału musi być przerwa 10-15 sekund.
Osiem kanałów wraz z ich wartościami i znaczeniem podano poniżej
nazwa kanału (wartość1 znaczenie, wartość2 znaczenie itp.):
1) Sterowanie urządzeniem (0 -lightON, 1- lightOff, 2-fan ON, 3-fan off)
2) stan światła (0- światło wyłączone, 1- światło włączone)
3) stan wentylatora (0- wentylator wyłączony, 1- wentylator włączony)
4) wilgotność (wartość wilgotności)
5) temperatura (wartość temperatury)
6) powiadomienie intruza (1- alarm intruza)
7) powiadomienie o pożarze (1- alarm pożarowy)
8)powiadomienie dla gości (1- alert dla gości)
gdy klikniesz na dowolny kanał, możesz zobaczyć jego identyfikator kanału i zapisać klucze API w zakładce Klucze API. identyfikator kanału jest wymagany do uzyskania informacji/wartości w kanale. Klucz zapisu jest wymagany do przechowywania wartości w kanale.
Żądanie http do aktualizacji kanału to:
api.thingspeak.com/update?api_key=&field1=
jest zastępowane odpowiednimi klawiszami zapisu kanału i może być (0/1 w przypadku sterowania urządzeniem lub wartościami temperatury/wilgotności)
Żądanie http do odczytania wartości z kanału to:
api.thingspeak.com/channels//field/field1/last.html
jest zastępowany przez konkretny identyfikator kanału, z którego chcemy czytać.
Krok 4: Program
Program podzielony jest na 3 części:
A) Program dla Arduino: program dla Arduino jest bardzo prosty. Odbiera dane z ESP8266 szeregowo i na podstawie otrzymanych danych steruje urządzeniami. Więcej informacji o programie znajdziesz w komentarzach w samym programie.
B) Program dla ESP8266: program dla ESP8266 obejmuje 3 rzeczy
1) aktualizacja temperatury i wilgotności za pomocą żądania
client.print(String("GET") + "/update?key=&field1="+wilgotność+" HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Połączenie: zamknij \r\n\r\n"); //aktualizacja wilgotności
client.print(String("GET ") + "/update?key=&field1="+temperature+" HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Połączenie: zamknij \r\n\r\n"); // aktualizacja temperatury
jest zastąpiony przez odpowiedni klucz zapisu znajdujący się w rzeczach kanał szczytowy odpowiednio dla wilgotności i temperatury. a gospodarzem jest api.thingspeak.com.
pobierz bibliotekę dht z:
2) odczyt z odpowiednich kanałów rzeczypeak i sterowanie urządzeniem na podstawie uzyskanych wartości: client.print(String("GET") + "/channels//field/field1/last.html HTTP/1.1\r\n" + " Host: " + host + "\r\n" + "Połączenie: zamknij\r\n\r\n");
gdzie jest zastępowane przez odpowiedni identyfikator kanału znaleziony w thingspeak.
3) Wysyłanie ostrzeżenia w przypadku wysokiej temperatury za pomocą pchającego pudełka
String host1="api.pushingbox.com";
client.print(String("GET") + "/pushingbox?devid= HTTP/1.1\r\n" + "Host: " + host1 + "\r\n" + "Połączenie: zamknij\r\n\r \n");
gdzie jest zastępowany przez identyfikator urządzenia w pushingbox.
Krok 5: Konfiguracja Linkit Smart 7688 Duo i kamery internetowej
W tym projekcie kamera internetowa i linkt smart 7688 duo służą do wykonania potrzebnego zdjęcia i wysłania go użytkownikowi. Możesz również użyć modułu kamery arduino i połączyć go z arduino lub użyć dowolnej kamery IP.
Naciśnij i przytrzymaj przycisk Wi-Fi na linkit smart 7688 przez 20 sekund, aby zresetować płytkę. Następnie po zresetowaniu ustawień Wi-Fi będziesz mógł zobaczyć jego nazwę punktu dostępu w połączeniach sieci bezprzewodowej. Teraz podłącz komputer do tej sieci. po podłączeniu otwórz przeglądarkę i wpisz 192.168.100.1 w pasku adresu. Będziesz mógł zobaczyć jego portal. ustawić hasło, aby zalogować się do swojego portalu.
Po zalogowaniu przejdź do zakładki Sieć i wybierz Tryb stacji (potrzebujemy go (linkit smart 7688 duo), aby uzyskać dostęp do Internetu) i podłącz go do swojej sieci Wifi, a następnie naciśnij Konfiguruj i uruchom ponownie.
Po ponownym uruchomieniu płyty zostanie jej przypisany lokalny adres IP. Znajdź adres za pomocą dowolnego narzędzia IP lub portalu routera. W moim przypadku było to 192.168.1.4. Teraz wpisz lokalny adres IP w pasku adresu przeglądarki. upewnij się, że komputer jest podłączony do tej samej sieci co linkit smart. Zostaniesz poproszony o ponowne zalogowanie.
Aby włączyć przesyłanie strumieniowe z kamery internetowej, należy włączyć streamer-j.webp
Po zalogowaniu przejdź do zakładki usługi i zaznacz włącz streamer-j.webp
Po skonfigurowaniu możesz podłączyć kamerę internetową do hosta duo USB linkt smart 7688 za pomocą kabla OTG. Teraz, aby zobaczyć strumień, otwórz przeglądarkę i wpisz: w pasku adresu. w moim przypadku jest to 192.168.1.4:4400
aby zrobić zdjęcie, wpisz polecenie:?action=snapshot
Teraz ten obraz jest dostępny lokalnie, ale musimy udostępnić go usłudze pushing box. Aby to osiągnąć, musimy wykonać przekierowanie portów. Przekierowanie portów można wykonać w portalu routera. Identyfikator procesu różni się dla różnych routerów. Po prostu google, aby dowiedzieć się, jak przekierować port dla konkretnego routera. Zwykle jest dostępny w ramach usługi NAT. Po przekierowaniu portów można uzyskać dostęp do tego portu (np. 4440) z zewnętrznego adresu IP. Zewnętrzny adres IP można znaleźć wpisując "whats my ip" w google.
Musisz podać ten adres
tj.
w pushingbox (co jest wyjaśnione w następnym kroku), aby pushingbox mógł uzyskać dostęp do tego obrazu i dołączyć go do wiadomości e-mail i wysłać go w razie potrzeby.
Możesz również przechowywać obraz na karcie SD, ponieważ Linkit smart 7688 duo jest również wyposażony w gniazdo karty SD do przechowywania informacji. Więcej informacji na ten temat można znaleźć na:
docs.labs.mediatek.com/resource/linkit-sm…
Krok 6: Konfiguracja PushingBox
pushingbox służy do wysyłania powiadomień o różnych alertach w projekcie do Gmaila.
logowanie do pushingbox przy użyciu konta google:
przejdź do moich usług dodaj usługę. istnieje wiele usług do wyboru, takich jak Gmail, Twitter, powiadomienia push dla Androida itp…
wybierz Gmail (ponieważ musimy wysłać zdjęcie jako załącznik) i wypełnij odpowiednią konfigurację nazwy gmail oraz identyfikator gmail użytkownika, do którego ma zostać wysłany alert.
przejdź do moich scenariuszy i utwórz nowy scenariusz. nadaj nazwę scenariuszowi (np. ALERT) dodaj wcześniej utworzoną usługę.
napisz odpowiedni temat i treść maila oraz wpisz adres URL, aby zrobić zrzut ekranu z kamery internetowej do załączenia zdjęcia. Tworzenie różnych scenariuszy dla różnych alerts.api do realizacji scenariusza push box to:
Krok 7: Tworzenie umiejętności Alexa za pomocą Backendless
backendless służy do tworzenia umiejętności alexa. Jest to proste programowanie typu „przeciągnij i upuść” służące do tworzenia umiejętności alexa (lub dowolnych programów), do których można uzyskać dostęp za pomocą interfejsu API bez zaplecza.
załóż konto w backendless:
- Zaloguj się do swojego konta na koncie backendless. kliknij Utwórz aplikację i nadaj nazwę swojej aplikacji
- Kliknij ikonę Business Logic znajdującą się na pasku ikon po lewej stronie. Zobaczysz ekran API SERVICES.
- Kliknij ikonę „+”, aby utworzyć nową usługę. Upewnij się, że wybrałeś BEZ KODU w wyskakującym okienku „Nowa usługa”. Wprowadź "AlexaService" dla nazwy usługi. Kliknij przycisk ZAPISZ:
- Backendless tworzy usługę API i poprosi o utworzenie metody dla usługi. Będzie to metoda, która będzie przetwarzać żądania od Alexy. Wpisz „handleRequest” jako nazwę metody. Upewnij się, że wybrałeś POST dla operacji REST i zadeklaruj argument o nazwie „req” i wpisz „Dowolny obiekt”, jak pokazano:
- Backendless tworzy symbol zastępczy dla bezkodowej logiki metody. Kliknij przycisk EDIT, aby rozpocząć przełączanie do Codeless Logic Designer. W utworzonym bloku zastępczym funkcji kliknij obszar z napisem „doSomething” i zmień go na „sendAlexaResponse”. Ta funkcja jest używana, aby alexa powiedziała coś, co może być przekazane jako argument. Kliknij przycisk ZAPISZ, aby funkcja została zapisana.
- Kliknij ikonę koła zębatego znajdującą się w fioletowym bloku tuż obok słowa „Funkcja”. Dodaj dwa argumenty, przeciągając bloki wejściowe, jak pokazano na poniższym obrazku. Przypisz nazwy argumentów jako „WhatToSay” i „waitForResponse„. Zauważ, że podczas dodawania argumentów obszar Bloki kontekstowe jest automatycznie wypełniany blokami reprezentującymi wartości argumentów.
- Zmodyfikuj logikę funkcji tak, aby wyglądała jak na obrazku. W przypadku bloków „Utwórz obiekty” użyj ikony koła zębatego, aby zmienić nazwę właściwości obiektu. Nie zapomnij zapisać swojej pracy, klikając przycisk ZAPISZ.
- Teraz, gdy funkcja niestandardowa jest zbudowana, przełącz się z powrotem do metody handleRequest usługi AlexaService. Kliknij kategorię Funkcje niestandardowe na pasku narzędzi po lewej stronie i przeciągnij blok sendAlexaResponse, aby połączyć się ze złączem zwrotnym metody usługi
- Powyższe kroki można również znaleźć na ich stronie internetowej:
- Kliknij węzeł „Dodaj nowy” w obszarze Funkcje w sekcji PRZEGLĄDARKA. W utworzonym bloku zastępczym funkcji kliknij obszar z napisem „doSomething” i zmień go na „getIntentName” zmodyfikuj bloki, aby funkcja wyglądała tak, jak pokazano na obrazku. otrzyma nazwę intencji na podstawie przykładowych wypowiedzi. Wróć do usług API->obsługuj żądania w sekcji przeglądarki. Zmienne i logika tworzone są z sekcji systemowej. Utwórz następujące zmienne pokazane na obrazach.
- następnie przechowujemy nazwę intencji do zmiennej żądania. A potem porównaj z intencjami. na przykład, jeśli żądanie to „wprowadzenie”, zmienna odpowiedzi jest ustawiona na „cześć! Mogę kontrolować……”. i ta odpowiedź jest wreszcie odczytywana na głos przez aleksę. zmodyfikuj blok, jak pokazano.
- jeśli żądanie jest intencją LightsOn, aktualizujemy kanał thingspeak do '0' za pomocą żądania http get i jednocześnie aktualizujemy stan urządzenia (1/0 w zależności od włączenia/wyłączenia). To samo powtarza się dla LightsOff, FanOn i FanOff.
- Dla pogody odczytujemy z kanału Temperatura i wilgotność i zapisujemy wynik w zmiennej odpowiedzi. Ponieważ kanał podaje tylko wartości, dołączamy teksty, aby odpowiedź była sensowna
- do zrzutu obrazu z salonu uruchamiamy scenariusz pushingbox
- dla statusu urządzenia odczytujemy informacje z kanału statusowego thingspeak:
- za powiadomienia i alerty odczytywane z kanałów alertów (pożar, intruz i gość):
- na podstawie wartości, które otrzymujemy z pola powiadomień odpowiednie komunikaty alertów są przechowywane w zmiennej respond0. jeśli nie ma powiadomienia, nie jest przechowywany żaden komunikat powiadomienia.
- po odczytaniu powiadomienia, w kanałach powiadomień aktualizowane jest „0”, aby alexa nie przeczytała ponownie tego samego powiadomienia. Następnie w końcu na podstawie żądania odczytywana jest na głos zmienna odpowiedź0/odpowiedź.
Krok 8: Konfiguracja umiejętności Alexa w konsoli programisty Amazon:
przejdź do konsoli programisty amazon i zaloguj się przy użyciu konta amazon.
przejdź do konsoli programisty i kliknij zakładkę ALEXA. Kliknij zestaw umiejętności alexa, aby rozpocząć.
utwórz niestandardowy typ umiejętności, nadaj nazwę i nazwę wywołania umiejętności. Odpowiednie intencje i przykładowe wypowiedzi są podane w kodzie.
na karcie konfiguracji wybierz HTTPS jako typ punktu końcowego usługi wypełnij domyślny adres URL adresem URL API z backendless. Wybierz drugą opcję w Certyfikat dla domyślnego punktu końcowego w certyfikacie SSL. Umiejętność można również przetestować za pomocą symulatora testu.
Po zakończeniu testu możesz opublikować umiejętność z wymaganymi informacjami o publikacji.
Krok 9: Końcowa konfiguracja i zakończ
Wykonaj połączenie obwodu, jak pokazano.
Czasami ESP8266 będzie działać nieprawidłowo z powodu niewystarczającego prądu. Tak więc, choć nie jest to wspomniane w obwodzie, zaleca się zasilanie ESP8266 z oddzielnego źródła 3.3V. Jeśli używasz power banku, upewnij się, że obniżyłeś napięcie z 5 V do 3,3 V za pomocą regulatora napięcia 3,3 V. Prześlij program do ESP8266 i arduino. Pokazałem podłączenie do żarówki, to samo można rozszerzyć na wentylator lub dowolne urządzenia. Na koniec użyj amazon echo lub echosim.io, aby sprawdzić swoje umiejętności.
Musisz aktywować umiejętność używając nazwy inwokacji (tak jak w moim przypadku - "mójdom"). Czasami to nie zadziała, jeśli zostanie użyte bez nazwy wywołania, jak kilka razy pokazałem w moim filmie
Mam nadzieję, że podobał Ci się samouczek!
Dziękuję!
Zalecana:
SmartBox - system inteligentnego domu do Twojego pokoju: 6 kroków
SmartBox - Smart Home System do Twojego pokoju: Witam wszystkich! W tej instrukcji wyjaśnię, jak zrobić inteligentny system pokojowy. Ten system zawiera dwa urządzenia. Urządzenie ogólne z czujnikiem wilgotności i czujnikiem temperatury, które mierzy bieżącą jakość życia w Twoim pokoju. Ty w
Kompletny dodatek do inteligentnego domu: 8 kroków
Kompletny dodatek do inteligentnego domu: Mój poprzedni projekt „Kompletny inteligentny dom” z powodzeniem działa od prawie 5 lat bez żadnych problemów. Teraz zdecydowałem się dodać sprzężenie zwrotne do tego samego bez żadnych modyfikacji obecnego obwodu i schematu. Więc ten dodatek na pro
Monitorowanie domu DIY za pomocą RaspberryPi i Cloud4Rpi: 5 kroków
Monitoring domu DIY za pomocą RaspberryPi i Cloud4Rpi: Pewnego zimowego weekendu pojechałem do mojego wiejskiego domu i okazało się, że jest tam bardzo zimno. Coś się stało z prądem i wyłącznik RCD go wyłączył, a ogrzewanie też się wyłączyło. Miałem szczęście, że tam trafiłem, inaczej za kilka dni
System inteligentnego domu Arduino: 7 kroków
Arduino Smart Home System: W tej instrukcji pokażemy, jak stworzyć własny system inteligentnego domu za pomocą aplikacji MATLAB App Designer z tablicą Sparkfun Red. Ta instrukcja może być wykorzystana do uzyskania podstawowej wiedzy na temat projektanta aplikacji MATLAB, a także do korzystania z fotore
Monitorowanie domu Raspberry Pi za pomocą Dropbox: 7 kroków
Monitorowanie domu Raspberry Pi za pomocą Dropbox: Ten samouczek pokaże Ci, jak stworzyć prosty i rozszerzalny system monitorowania domu za pomocą Raspberry Pi, kamery internetowej, kilku komponentów elektrycznych i konta Dropbox. Gotowy system pozwoli Ci zdalnie żądać i przeglądać obrazy z