Spisu treści:

ESP8266-01 Inteligentny zegar IoT do automatyki domowej: 9 kroków (ze zdjęciami)
ESP8266-01 Inteligentny zegar IoT do automatyki domowej: 9 kroków (ze zdjęciami)

Wideo: ESP8266-01 Inteligentny zegar IoT do automatyki domowej: 9 kroków (ze zdjęciami)

Wideo: ESP8266-01 Inteligentny zegar IoT do automatyki domowej: 9 kroków (ze zdjęciami)
Wideo: OD CZEGO ZACZĄĆ | Inteligentny Dom DIY #1 2024, Lipiec
Anonim
ESP8266-01 Inteligentny zegar IoT do automatyki domowej
ESP8266-01 Inteligentny zegar IoT do automatyki domowej
ESP8266-01 Inteligentny zegar IoT do automatyki domowej
ESP8266-01 Inteligentny zegar IoT do automatyki domowej
ESP8266-01 Inteligentny zegar IoT do automatyki domowej
ESP8266-01 Inteligentny zegar IoT do automatyki domowej

AKTUALIZACJE

30.09.2018: Aktualizacja oprogramowania układowego do wersji 1.09. Teraz z podstawową obsługą Sonoff

01.10.2018: Wersja próbna oprogramowania układowego 1.10 dostępna do testowania na ESP8266-01 z problemami

Ponieważ nowe modne hasła to Internet Rzeczy (IoT) i Automatyka Domowa, postanowiłem przyjrzeć się obecnym przedmiotom w moim domu i wokół niego, które są sterowane za pomocą jakiegoś urządzenia. Wyróżniały się następujące elementy:

  • Pompa basenowa
  • Wlew wody w basenie
  • Basen i oświetlenie otoczenia
  • Oświetlenie szafki telewizyjnej/rozrywkowej

Powszechnym elementem używanym do sterowania tymi urządzeniami są standardowe zegary ścienne. Każde urządzenie jest wyposażone we własny zegar i wszystkie znajdują się w różnych lokalizacjach. Możesz zapytać, dlaczego wybrałem te elementy, aby rozpocząć projekty Internetu rzeczy lub automatyki domowej?

Cóż, życie w RPA oznacza, że awarie zasilania są na porządku dziennym. Ze statystykami mojego domu, w ciągu ostatniego roku miałem 35 awarii zasilania, w sumie 40 godzin. Zwykle nie stanowi to problemu, ponieważ wszystkie aktualnie zainstalowane zegary są wyposażone w baterię podtrzymującą do utrzymywania czasu podczas awarii zasilania. Ale jest kilka problemów:

  • Te zapasowe baterie wytrzymują tylko rok lub dwa, a następnie należy wymienić timer. Zegary są skonstruowane w taki sposób, że należy je zniszczyć, aby uzyskać dostęp do wewnętrznej baterii Ni-Cad.
  • Za każdym razem, gdy nastąpi awaria zasilania, należy przeprogramować zegary z uszkodzonymi bateriami i ustawić czas.
  • Fizyczna lokalizacja timera, po podłączeniu do gniazdka ściennego, prawie uniemożliwia odczytywanie wyświetlaczy LCD, patrząc na timer od góry. Oznacza to, że timer musi być odłączony lub muszę położyć się na podłodze, aby ustawić lub wyregulować timery po awarii zasilania.

Z powyższych powodów zdecydowałem się przetestować możliwość wymiany timerów na Smart Timer IoT, podłączony do mojej lokalnej sieci domowej.

Pomysł polegał na zaprojektowaniu samodzielnego timera, który może:

  • Automatycznie dostosuj aktualny czas za pomocą Internetu (IoT)
  • Obsługiwane bez żadnych działań użytkownika (Smart)
  • Włącz/wyłącz wyjście zgodnie z ustawionymi czasami (Timer)
  • Programowalny i sterowany przez sieć (Automatyka domowa)

Krok 1: Projekt ESP8266-01

Projekt ESP8266-01
Projekt ESP8266-01
Projekt ESP8266-01
Projekt ESP8266-01

Projekt został wykonany przy użyciu modułu WiFi ESP8266-01, ponieważ taki miałem do dyspozycji. W swojej najprostszej formie ESP8266-01 ma cztery piny I/O:

  • GPIO0
  • GPIO2
  • TX
  • RX

ESP8266-01 Tryby zasilania

Stan logiczny pinów I/O służy do określenia, w jakim trybie uruchomi się ESP8266-01. Pierwszym krokiem było określenie, który z pinów I/O może być użyty do sterowania przekaźnikiem wyjściowym.

  • Dla normalnego uruchomienia, GPIO0 i GPIO2 muszą być ustawione na logiczne HIGH. Jest więc jasne, że te dwa piny nie mogą być używane jako wyjście cyfrowe.
  • Pin Tx jest ustawiony jako wyjście po włączeniu zasilania, a wyjście ustawione na wysoki. Ten pin Tx przesyła również niektóre dane szeregowe podczas uruchamiania. Tak więc ten pin nie może być również używany jako wyjście.

Jedynym pozostałym pinem jest pin Rx. Ten pin jest ustawiany jako wejście przy włączaniu i nie musi być wyciągany wysoko podczas włączania. Ten pin jest zatem najbardziej odpowiedni do użycia jako pin wyjściowy.

Rozruch

Aby zapewnić prawidłowy tryb rozruchu ESP8266-01 podczas uruchamiania, następujące piny są podciągnięte do góry za pomocą rezystorów 10K:

  • GPIO0
  • GPIO2
  • RST
  • CH_PD

Zapewnia to prawidłowe uruchamianie urządzenia za każdym razem.

Przekaźnik wyjściowy

RX jest jedynym pinem nadającym się do wykorzystania jako wyjście. Ten pin służy zatem do sterowania przekaźnikiem wyjściowym przez tranzystor NPN. Dodano standardową diodę koła zamachowego i rezystory bazowe tranzystora.

Przycisk MODE/SET

Przycisk jest podłączony do GPIO2, a po zwolnieniu przycisku rezystor 10K podniesie GPIO2 w stan wysoki. Gdy przycisk jest wciśnięty, GPIO2 jest podciągnięty do 0V.

Ten przycisk jest używany do dwóch funkcji:

  • Wstępna konfiguracja w celu podłączenia urządzenia do lokalnej sieci Wi-Fi
  • Aby ręcznie sterować wyjściem podczas normalnych operacji

Wskaźnik LED

Dioda LED jest podłączona do GPIO0 i wskazuje:

  • Po pierwszym uruchomieniu miga SZYBKO, wskazując tryb konfiguracji WiFi
  • Miga wolno, gdy czas urządzenia nie jest ustawiony
  • wskazuje stan włączenia/wyłączenia przekaźnika wyjściowego

Krok 2: Zasilacz

Zasilanie
Zasilanie
Zasilanie
Zasilanie
Zasilanie
Zasilanie

IoT Smart Timer będę używał na różnych poziomach napięcia, dlatego dostępne są dwie opcje zasilania:

12–24 V DC

Zastosowany konwerter DC-DC nadaje się do zasilania do 28V DC. Wyjście konwertera jest regulowane i jest ustawione na 5V. Należy to zrobić przed podłączeniem modułu ESP8266.

Dodano diodę zabezpieczającą przed odwrotną polaryzacją na wejściu zasilania.

220V AC Do tej opcji udało mi się na eBayu zaopatrzyć się w mały zasilacz impulsowy 220V/5V.

Niezależnie od napięcia wejściowego, Smart Timer IoT potrzebuje dwóch zasilaczy:

Szyna 5V

W obu opcjach napięcie 5 V DC jest uzyskiwane z zasilacza impulsowego, a nie z regulatora liniowego. Oznacza to, że ciepło generowane przez zasilacz jest minimalne. 5 V służy do sterowania przekaźnikiem wyjściowym;

Szyna 3,3 V

Napięcie 3,3 V dla ESP8266-01 pochodzi z regulatora ASM1117 3.3. ASM1117 3.3 jest regulatorem liniowym i może obsługiwać do 500mA. Jednak generowane ciepło będzie określone przez napięcie wejściowe do ASM1117. Aby zredukować ciepło, ASM1117 jest zasilany z szyny 5V.

Filtrowanie szumów

Aby zredukować tętnienie napięcia w ESP8266-01, szyna 3,3 V jest wyposażona w kondensator 100 - 1000 uf. Zarówno szyny 5 V, jak i 3,3 V są również chronione przed zakłóceniami o wysokiej częstotliwości przez kondensatory 0,1 uf.

Krok 3: Montaż płyty PC

Montaż płyty PC
Montaż płyty PC
Montaż płyty PC
Montaż płyty PC
Montaż płyty PC
Montaż płyty PC

Płyta PC została zaprojektowana przy użyciu darmowej wersji Eagle. Jest to tablica jednostronna, którą można łatwo wykonać w domu metodą transferu tonera.

Po wykonaniu płytki PC, złóż ją w następującej kolejności:

  • Przylutuj regulator ASM1117 i trzy komponenty SMD 0.1uf do lutowanej strony płyty
  • Dodaj pojedynczą zworkę po stronie komponentów płyty
  • Przylutuj rezystory i diody na miejscu
  • Dodaj nagłówki dla modułu ESP8266-01
  • Dodaj szpilki nagłówka dla diody LED i przycisku
  • Dodaj zaciski śrubowe
  • Za pomocą kołków rozgałęźnych podłącz konwerter DC/DC do płytki.
  • Przylutuj przekaźnik na miejsce
  • Uzupełnij płytkę, lutując tranzystor i kondensator 100uf.

Po przylutowaniu wszystkich komponentów do płytki sprawdź wszystkie punkty lutowania i upewnij się, że nie ma zwarć między padami.

! ! ! WAŻNA UWAGA ! ! ! Aby upewnić się, że płytka PC może wytrzymać duże prądy na stykach wyjściowych, należy nałożyć odpowiednią ilość lutowia na ścieżki między stykami przekaźnika a zaciskami śrubowymi

Krok 4: Testowanie płyty PC

Testowanie płyty PC
Testowanie płyty PC

! ! ! Przed zastosowaniem mocy ! ! !

Wyjmij moduł ESP8266-01 z urządzenia. Ma to zapobiec przegrzaniu regulatora ASM1117 przed wyregulowaniem zasilania 5V.

Niewiele jest testów, które można wykonać po montażu. Najważniejszym krokiem jest zapewnienie prawidłowych poziomów napięcia.

  • Doprowadzić do urządzenia napięcie 12–24 V DC.
  • Zmierz napięcie wyjściowe przetwornika DC/DC
  • Ustaw wyjście konwertera na pomiędzy 5,0 a 5,5V.
  • Następnie zmierz zasilanie 3,3V.
  • Jeśli zasilanie jest w porządku, odłącz zasilanie od urządzenia

Możesz teraz włożyć moduł ESP8266-01 do dostarczonych nagłówków.

! ! ! Notatka !

Po przetestowaniu timera IoT i jego działaniu użyj przezroczystego lakieru, aby pokryć lutowaną stronę płytki PC. Zapobiegnie to utlenianiu torów i zapewni dodatkową izolację między stykami przekaźnika a resztą obwodu

Krok 5: Obudowa

Załącznik
Załącznik
Załącznik
Załącznik
Załącznik
Załącznik

Obudowa nie jest tak ważna, o ile płytka PC i całe okablowanie pasuje do niej ładnie i bezpiecznie.

Aby ułatwić budowę wykonałem kabel z dołączoną diodą LED i przyciskiem MODE/SETUP. Dało mi to większą elastyczność w montażu diody i przycisku do obudowy. Ten kabel jest następnie podłączany do złącza na płycie PC.

Zdjęcia przedstawiają jedną z jednostek 12V używanych do świateł LED.

Krok 6: Programowanie ESP8266-01/NodeMCU

Programowanie ESP8266-01/NodeMCU
Programowanie ESP8266-01/NodeMCU
Programowanie ESP8266-01/NodeMCU
Programowanie ESP8266-01/NodeMCU
Programowanie ESP8266-01/NodeMCU
Programowanie ESP8266-01/NodeMCU

Aby zaprogramować ESP8266-01, musisz najpierw skonfigurować Arduino IDE. Nie wchodzę w te szczegóły, ponieważ dostępnych jest wiele świetnych instrukcji na ten temat. Wybrałem następujące linki w Instruktażach w celach informacyjnych, bez żadnej konkretnej kolejności dla autorów. Dzięki za ich indywidualne instrukcje.

Postępuj zgodnie z tym ESP8266 i Arduino IDE, aby skonfigurować Arduino IDE dla modułu ESP8266.

Następnie będziesz potrzebował programatora do zaprogramowania ESP8266. Oto dwa linki:

Korzystanie z Arduino Uno

Deska do programowania dla majsterkowiczów

Biblioteki

Będziesz musiał zainstalować dodatkowe biblioteki, aby móc skompilować kod. Ponownie zapoznaj się z tą instrukcją:

Zainstaluj i używaj bibliotek Arduino

Nie pamiętam, jakie biblioteki musiałem zainstalować, ale wiem, że WiFiManager musi być pobrany osobno.. Umieściłem je w pliku Libraries.zip.

Krok 7: Pierwsza konfiguracja

Pierwsza konfiguracja
Pierwsza konfiguracja
Pierwsza konfiguracja
Pierwsza konfiguracja
Pierwsza konfiguracja
Pierwsza konfiguracja

Przy pierwszym użyciu inteligentny czasomierz IoT musi być podłączony do sieci Wi-Fi. To zadanie jest wykonywane przy użyciu biblioteki WiFiManager, więc w kodzie nie trzeba wpisywać identyfikatora SSID ani haseł.

Wykonaj te kilka kroków:

  • Włącz urządzenie
  • Dioda zacznie szybko migać
  • Naciśnij przycisk MODE/SETUP
  • Gdy dioda LED zgaśnie, zwolnij przycisk
  • Poczekaj kilka sekund, a następnie otwórz połączenia Wi-Fi smartfona lub urządzenia
  • Będzie widoczne nowe słowo sieciowe Wi-Fi o nazwie IoT Timer
  • Wybierz ten punkt dostępu
  • Zaloguj się do IoT Timer (hasło nie jest wymagane)
  • Poczekaj, aż urządzenie połączy się z siecią IoT Timer
  • Otwórz dowolną przeglądarkę internetową
  • W pasku adresu wpisz następujący adres IP - 192.168.4.1
  • Otworzy się konsola WiFiManager
  • Wybierz Konfiguruj WiFi
  • Wyświetli się lista z dostępnymi punktami sieci WiFi
  • Wybierz żądaną sieć Wi-Fi i wpisz hasło
  • Następnie wprowadź adres IP, którego chcesz używać do łączenia się z zegarem IoT
  • Wprowadź adres IP bramy domyślnej, a następnie maskę
  • Po zakończeniu wszystkich ustawień kliknij przycisk Zapisz
  • Otworzy się nowe okno potwierdzające zapisanie nowych danych uwierzytelniających
  • Zamknij przeglądarkę

Po zapisaniu sieć IoT Timer zostanie wyłączona, a urządzenie spróbuje połączyć się z siecią Wi-Fi.

  • Podłącz swój smartfon lub urządzenie do tej samej sieci Wi-Fi, która jest używana przez IoT Timer.
  • Otwórz przeglądarkę
  • W pasku adresu wpisz adres IP swojego licznika IoT
  • Otworzy się strona konfiguracji IoT Timer

Twój licznik czasu IoT jest teraz gotowy do użycia

Krok 8: Konfiguracja zegara IoT

Konfiguracja zegara IoT
Konfiguracja zegara IoT
Konfiguracja zegara IoT
Konfiguracja zegara IoT
Konfiguracja zegara IoT
Konfiguracja zegara IoT
Konfiguracja zegara IoT
Konfiguracja zegara IoT

Wbudowana strona internetowa IoT Timer składa się z pięciu sekcji:

Status

Pokazuje nazwę urządzenia, a także aktualny czas i stan wyjścia timera

Dodatkowo w tej sekcji ustawia się tryb pracy timera. Dostępne są trzy tryby:

  • Auto - Wyjście będzie kontrolowane przez różne programy czasowe
  • On - wyjście jest wymuszone i pozostanie włączone do momentu zmiany trybu
  • Off - wyjście jest wymuszone w pozycji OFF i pozostanie wyłączone do momentu zmiany trybu.

Programy

Ta sekcja zawiera czasy włączenia i wyłączenia timera. Dostępnych jest siedem programów, a każdy program można ustawić indywidualnie.

Przed zmianą następnego programu naciśnij przycisk ZAPISZ, aby zapisać zmiany wprowadzone w bieżącym programie.

Funkcja przycisku

Przycisk MODE/SETUP może służyć do sterowania przekaźnikiem wyjściowym podczas normalnej pracy. Tutaj wybierz, co przycisk ma zrobić po naciśnięciu.

Zaznacz pole „Aktualizuj funkcję przycisku” przed naciśnięciem przycisku Zapisz, aby zapisać nowe ustawienia.

Konfiguracja

Tutaj możesz zmienić nazwę timera IoT. Ułatwia to identyfikację wielu timerów.

Czas na urządzeniu jest pobierany z Internetu za pośrednictwem serwera czasu NTP. Aby wyświetlić prawidłowy czas, zaktualizuj strefę czasową do swojego regionu.

Jeśli chcesz skorzystać z innego serwera czasu NTP, wprowadź nowy adres IP w odpowiednim miejscu.

Zaznacz pole „Aktualizuj konfigurację” przed naciśnięciem przycisku Zapisz, aby zapisać nowe ustawienia.

NOTATKA

Podczas zmiany strefy czasowej nowy czas zostanie ustawiony poprawnie dopiero podczas następnego zapytania o czas. Urządzenie jest ustawione na aktualizowanie czasu co 5 minut.

Dostosować czas

Czasami zdarza się, że serwer czasu NTP nie odpowiada na każde zapytanie o czas. Jeśli ustawienie czasu przez serwer NTP zajmie zbyt dużo czasu, możesz ręcznie wprowadzić godzinę i datę.

Zaznacz pole „Aktualizuj czas” przed naciśnięciem przycisku Zapisz, aby zapisać nowy czas i datę.

Synchronizacja czasu

Ostatnia część strony wskazuje czas i datę ostatniej synchronizacji czasu za pośrednictwem serwera czasu NTP.

Zalecana: