- Inteligentna wtyczka ESP do automatyki domowej
- Wymagane materiały
- Program inteligentnej wtyczki dla ESP8266
- Schemat obwodu
- Obudowa z nadrukiem 3D na inteligentne gniazdo wtykowe
Odkąd zacząłem pracować z modułami ESP Wi-Fi, zawsze chciałem zbudować inteligentne gniazdo Wi-Fi, które umożliwi mi bezprzewodowe sterowanie obciążeniami AC za pomocą smartfona. Chociaż produkty takie jak te są już dostępne na rynku, takie jak popularna wtyczka Moko WiFi Smart Plug lub Sonoff, są nieco drogie, a do tego nie dają radości z budowania własnego. Dlatego w tym projekcie pokażę, jak zbudować własną inteligentną wtyczkę za pomocą modułu Wi-Fi ESP8266. Urządzenie, które zbudowaliśmy, można łatwo podłączyć do dowolnego wyjściowego gniazda prądu przemiennego, a na drugim końcu można podłączyć rzeczywiste obciążenie, po prostu podłączając je do tego gniazda w naszym urządzeniu. Następnie trzymaj główny wyłącznik gniazda zawsze włączony i możesz sterować ładowaniem bezpośrednio ze smartfona. Zabawa, prawda? Przejdźmy więc do projektu….
Inteligentna wtyczka ESP do automatyki domowej
Zbudowaliśmy już kilka projektów automatyki domowej, od prostej automatyki domowej opartej na RF po moją ulubioną automatyzację domu opartą na asystencie Google sterowaną głosem. Ale dzisiaj wymagania tego projektu są nieco inne.
Tutaj celem jest włączenie / wyłączenie routera Wi-Fi za pomocą smartfona bezpośrednio z mojej stacji roboczej. Ponieważ czasami moje połączenie internetowe ulega awarii i kiedy dzwonię do działu obsługi klienta, standardową odpowiedzią, jaką otrzymuję, jest „Proszę pana, przepraszam za spowodowane niedogodności. Zrestartuj router, wyłączając go, a następnie włączając ponownie po kilku sekundach ” Puffff! Zmęczony chodzeniem za każdym razem do routera, postanowiłem zbudować tę inteligentną wtyczkę wifi i sterować routerem za jej pomocą.
Ale chwileczkę! Po wyłączeniu routera utracę dostęp do Internetu. Jak więc zdalnie go ponownie włączyć? Na szczęście nasz ESP8266 może służyć jako punkt dostępowy, co oznacza, że może również działać jak router, wysyłając własny sygnał Wi-Fi. Ten sygnał Wi-Fi będzie zawsze dostępny, dopóki ESP8266 będzie zasilany. Dlatego zaprogramujemy nasz ESP8266 jako portal do przechwytywania, w ten sposób po połączeniu się z sygnałem Wi-Fi ESP zostaniemy przeniesieni na stronę internetową, z której możemy włączyć / wyłączyć nasze obciążenie.
Wymagane materiały
1. Moduł Wi-Fi ESP8266
2. Przetwornica Hi-Link AC / DC (3,3 V)
3. Przekaźnik 3V
4. Tranzystor NPN BC547
5. Moduł programatora FTDI
6. Osłona Arduino Wi-Fi
7. Przewody połączeniowe
Uwaga: używamy tej osłony Wi-Fi Arduino, którą zbudowaliśmy wcześniej. Płytka służy wyłącznie do wgrania kodu Arduino do modułu ESP8266. Jeśli nie masz tej płyty, możesz ją zbudować, korzystając z linku do użycia tego prostego obwodu programatora ESP8266, aby przesłać swój kod.
Program inteligentnej wtyczki dla ESP8266
Zanim przejdziemy dalej, przejdźmy bezpośrednio do programu, aby zrozumieć, jak będzie działać nasza inteligentna wtyczka WiFi DIY. Jak widać tutaj, zaczynamy program od dołączenia kilku plików nagłówkowych i skonfigurowania serwera sieciowego DNS
#zawierać
Następnie inicjalizujemy pin 2 GPIO ESP jako wyjście, które będzie używane do sterowania naszym obciążeniem. Po czym mamy długi kod HTML dla naszej strony internetowej. Tutaj mamy całkowicie trzy ekrany na naszej stronie internetowej, a mianowicie ekran główny, ekran ekranowy i ekran wyłączony.
String Home_Screen = "" // Strona 1 - Kod HTML ekranu głównego "" " " + style_detials + "
„”Witamy - CircuitDigest
"" "; String ON_Screen =" "// Strona 2 - Jeśli urządzenie jest WŁĄCZONE" "" "+ style_detials +" „”Inteligentna wtyczka - włączona
"" "; String OFF_Screen =" "// Strona 3 - Jeśli urządzenie jest WYŁĄCZONE " " " " + style_detials + " „ ”Inteligentna wtyczka - WYŁĄCZONA
" " ";Po otwarciu te trzy strony internetowe będą wyglądać mniej więcej tak. Możesz dostosować swoją stronę internetową, aby wyglądała tak, jak lubisz.
Następnie mamy funkcję void setup, w której definiujemy nasz ESP, aby działał jako punkt dostępu, a także podajemy jego nazwę, tutaj „ESP_Smart_Plug”. Gdy jakikolwiek użytkownik połączy się z tym Wi-Fi, zostanie przeniesiony na stronę główną, którą zdefiniowaliśmy wcześniej.
pinMode (LED_BUILTIN, OUTPUT); // pin LED jako wyjście wskazujące pinMode (GPIO_2, OUTPUT); // Pin GPIO jako wyjście do sterowania przekaźnikiem WiFi.mode (WIFI_AP); // Ustaw ESP w trybie AP WiFi.softAPConfig (apIP, apIP, IPAddress (255, 255, 255, 0)); WiFi.softAP ("ESP_Smart_Plug"); // Nazwij swoją sieć AP dnsServer.start (DNS_PORT, "*", apIP); webServer.onNotFound (() { webServer.sendHeader ("Lokalizacja", String ("http://www.circuitdigest-automation.com/home.html"), true); // Domyślnie otwórz ekran główny webServer.send (302, „tekst / zwykły”, „”); });
Na stronie głównej, jeśli użytkownik kliknie przycisk WŁ., Zostanie wyświetlona strona ekranowa, a pin GPIO 2 zostanie ustawiony wysoko
// ON_Screen webServer.on ("/ relay_ON", () {// Jeśli włącznik jest wciśnięty digitalWrite (LED_BUILTIN, LOW); // Wyłącz LED digitalWrite (GPIO_2, HIGH); // Wyłącz przekaźnik webServer.send (200, "text / html", ON_Screen); // Wyświetl ten ekran });
Podobnie, jeśli użytkownik kliknie przycisk wyłączenia, zostanie wyświetlona strona poza ekranem, a pin GPIO 2 zostanie ustawiony na LOW.
// OF_Screen webServer.on ("/ relay_OFF", () {// Jeśli przycisk wyłącza jest wciśnięty digitalWrite (LED_BUILTIN, HIGH); // Włącz LED digitalWrite (GPIO_2, LOW); // Włącz przekaźnik webServer.send (200, "text / html", OFF_Screen); // Wyświetl ten ekran });
Kompletny kod wraz z plikami biblioteki można pobrać jako plik ZIP z linku podanego poniżej. Teraz, gdy nasz kod jest gotowy, możemy przesłać go do naszego modułu ESP, po prostu klikając przycisk przesyłania, a następnie czekając na załadowanie kodu. Kompletny program wraz z plikami bibliotecznymi można pobrać z poniższego linku
Inteligentna wtyczka ESP8266 - Pobieranie kodu Arduino
Ci, którzy mają osłonę Wi-Fi, mogą po prostu podłączyć swoje moduły razem, jak pokazano powyżej, i podłączyć je do komputera, aby rozpocząć programowanie naszego ESP8266 za pomocą Arduino IDE. Osoby, które nie mają tej płytki, mogą skorzystać ze schematu obwodu, jak wspomniano wcześniej.
Po przesłaniu kodu wyszukaj sieci Wi-Fi w telefonie i powinieneś znaleźć sygnał o nazwie „ESP_Smart_Plug”. Połącz się z nim, a zostaniesz przeniesiony do strony internetowej, którą właśnie zaprojektowaliśmy. Tutaj po naciśnięciu przycisku wyłączania powinieneś zauważyć, że dioda LED na naszej płycie ESP gaśnie, a po naciśnięciu przycisku włączania dioda LED powinna się ponownie włączyć.
Po kilkukrotnej weryfikacji kodu nie będziemy już potrzebować płytki programisty dla tego projektu. Teraz musimy zbudować obwód do zasilania naszego modułu ESP bezpośrednio z napięcia sieciowego i użyć jego pinu GPIO do przełączania przekaźnika. Do budowy tego obwodu użyłem modułu konwertera AC-DC firmy Hi-Link, który przekształca napięcie sieciowe AC na 3,3 V DC z prądem wyjściowym 900 mA wystarczającym do zasilania modułu ESP z sieci. Przekaźnik strony wyjściowej jest przekaźnikiem 3,3 V, który może być sterowany przez pin GPIO ESP za pośrednictwem tranzystora takiego jak BC547. Będziemy również potrzebować rezystora 1k, aby ograniczyć prąd bazowy naszego tranzystora.
Schemat obwodu
Pełny schemat obwodu inteligentnej wtyczki Wi-Fi wyglądałby tak.
Sieć AC do zasilania naszego projektu zostanie uzyskana przez tę wtyczkę. Pozostałe komponenty to te, które wyjaśniły słuchacz. Kolejną ważną rzeczą, na której należy się skoncentrować, jest utrzymanie wysokiego poziomu GPIO-0 i GPIO-2 podczas uruchamiania. W przeciwnym razie moduł ESP wejdzie w tryb programowania, a kod wyjściowy nie będzie działał. Dlatego użyłem rezystora 10k (można użyć wartości od 3,3k do 10k), aby domyślnie wyciągnąć pin GPIO. Alternatywnie można również zastosować tranzystor PNP zamiast BC547 i przełączyć przekaźnik od strony wysokiego napięcia. Mając gotowy schemat obwodu, zaplanowałem, jak lutować te elementy, utrzymując jak najmniejszy rozmiar płytki, aby zmieściła się w małej obudowie, i przystąpiłem do lutowania płytki.
Obudowa z nadrukiem 3D na inteligentne gniazdo wtykowe
Następnie zmierzyłem wymiary płytki za pomocą noniusza, a także zmierzyłem wymiary wtyczki i gniazda, aby zaprojektować obudowę dla mojej inteligentnej wtyczki. Mój projekt wyglądał mniej więcej tak poniżej, gdy był gotowy.
Gdy byłem zadowolony z projektu, wyeksportowałem go jako plik STL, pokroiłem na plasterki na podstawie ustawień drukarki i ostatecznie wydrukowałem. Ponownie plik STL jest również dostępny do pobrania z thingiverse i możesz za jego pomocą wydrukować własną obudowę.
Po wykonaniu wydruku byłem bardzo zadowolony z wyniku. Następnie przystąpiłem do dodawania przewodów do płytki, a także przykręciłem je do zacisków i gniazda zasilania. Po wykonaniu kompletnego połączenia zmontowałem układ w mojej obudowie i wszystko było dobrze spasowane, jak widać tutaj.
Gdy moja inteligentna wtyczka była gotowa do działania, podszedłem do routera, prześledziłem jego przewód, aby znaleźć adapter. Następnie wyjąłem go z gniazdka i podłączyłem inteligentną wtyczkę do tego samego gniazda i włączyłem. Teraz podłączyłem adapter z powrotem do naszej inteligentnej wtyczki i dzięki temu mogę odtąd sterować nim z mojego telefonu. W ten sam sposób możesz kontrolować dowolne obciążenie AC w domu i dobrze się bawić.
Pełny kod można pobrać stąd, a film roboczy dotyczący tego inteligentnego gniazda zasilania dla majsterkowiczów można znaleźć na dole tej strony. Mam nadzieję, że podobał Ci się projekt, daj mi znać w sekcji komentarzy, co zautomatyzowałbyś za pomocą tego urządzenia. Jeśli masz jakieś pytania, zostaw je na forum, a ja postaram się na nie odpowiedzieć.