Kamil2118 Napisano Styczeń 27, 2019 Udostępnij Napisano Styczeń 27, 2019 Jakiś czas temu przestało mi działać jedno z gniazdek elektrycznych sterowanych pilotem radiowym, chcąc wykorzystać to co po nim pozostało postanowiłem zbudować własny kontakt zdalnie sterowny z autorskim oprogramowaniem. Na część sprzętową składają się między innymi: Obudowa po uszkodzonym włączniku Transformator 230VAC-5VDC ESP8266 ESP-12E Moduł z przetwornicą AMS1117 Dioda RGB Przekaźnik Prąd z transformatora jest obniżany przetwornicą do napięcia 3.3V odpowiedniego dla mikrokontrolera. Do ESP8266 podłączone są, poprzez rezystor, dioda odpowiedzialna za informowanie o stanie urządzenia oraz przekaźnik, to on będzie odpowiadał za sterowanie przepływem prądu w gniazdku. Całość zmontowana została na płytce PCB, wpasowana tak by wyprowadzenia połączenia UART znajdowały się pod otwieraną klapką na tyle obudowy. W swoim oprogramowaniu na początku zaimplementowałem bibliotekę WiFiManager, podczas pierwszego uruchomienia lub po wyczyszczeniu zapamiętanych danych urządzenia (przytrzymanie przycisku na obudowie przez około 15 sekund) uruchomiony zostaje tryb Access-Point (punkt dostępu), po połączeniu się z nim mamy stronę konfiguracji urządzenia o nazwę i hasło naszej sieci. Jest to o tyle przydatne, że nie musimy na sztywno w kodzie podawać takich danych. Kolejną ważną zaimplementowaną biblioteką jest ESP8266mDNS, wprowadza ona usługę mDNS, aby połączyć się z urządzeniem nie potrzeba zapamiętywać jego adresu IP, wystarczy w przeglądarce wpisać ustalony w kodzie adres z końcówką „.local” (usługa dostępna dla urządzeń z systemem firmy Apple, komputery osobiste Windows z usługą Bonjorno oraz Linux z Avahi). Najważniejsze cechy oprogramowania: Czas bez modułu RTC Godzina i data pobierane są z serwera NTP i zapisywane do zmiennej typu unsigned long long w milisekundach. Czas pobierany jest co 24H. Nieustannie do zmiennej dodawany jest czas zwrócony przez funkcję millis() pomniejszony o ostatni odczyt milisekund, ma to na celu zapewnienie ciągłości czasu. Dodatkowo przy każdym zwiększeniu czasu z serwera NTP o millis() następuje sprawdzenie przejścia na czas zimowy<->letni. Niezależnie od czasu NTP inna zmienna typu unsigned long long przechowuje czas działania urządzenia, jest to nic innego jak dane otrzymane z odczytu millis(), jednak pozbawiona wady ograniczonej wielkości do około 50dni. Wyłączanie po określonym czasie W urządzeniu zaimplementowano możliwość ustawiania czasu do wyłączenia pomiędzy 1, a 30minut. Wraz z ustawieniem czasu przekaźnik załącza się i wyłącza po upłynięciu tego czasu lub wybraniu opcji wyłącz w panelu sterowania. Dodatkowo na stronie panelu sterowania widoczny jest licznik odliczający wyłączenie. Harmonogram Oprogramowania gniazdka pozwala na tworzenie harmonogramów działania. Określone zostają dzień (poszczególne dni tygodnia, weekend, dni robocze), godzina, minuta oraz stan jaki ma wtedy nastąpić (włącz/wyłącz). Dane zapisywane są w pamięci EEPROM co zapewnia ich trwałość. Sterowanie POST Wszystkie polecenia realizowane przez urządzenie przekazywane są do niego metodą POST, nie ma więc potrzeby korzystania wyłącznie ze sterowania poprzez dedykowaną stronę internetową. Jest to o tyle wygodne, iż instalując na telefonie program do skrótów http możemy przypiąć do ekranu startowego pożądane funkcję, np. włącz, wyłącz, wyłącz po 2 minutach. Informacje w XML Wartości większości zmienny przechowujących dane o urządzeniu udostępniane są przez serwer uruchomiony na mikrokontrolerze w postaci XML. Pozwala to na szybki podgląd stanu urządzenia, harmonogramu lub informacji o ewentualnych błędach np. pobierania czasu. Obsługa poprzez stronę internetową. Strona internetowa napisana została głównie z myślą o wygodzie korzystania na urządzeniach mobilnych. Wykorzystana została tu przede wszystkim biblioteka jQuery. Przy pomocy funkcji Ajax odbywa się sterowanie urządzeniem (metody POST). Natomiast parsując dane udostępniane w postaci XML witryna wyświetla aktualny stan urządzenia. Pliki HTML zapisane zostały w mikrokontrolerze przy użyciu systemu plików SPIFFS. NFC Na obudowie została zamieszczona naklejka z tagiem NFC, który zawiera adres IP urządzenia, na sztywno przypisany w ustawieniach routera. 2
Treker (Damian Szymański) Styczeń 27, 2019 Udostępnij Styczeń 27, 2019 Właśnie zaakceptowałem Twój opis, możesz go teraz zgłosić do akcji rabatowej umieszczając link w temacie zbiorczym. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum
Gieneq Styczeń 28, 2019 Udostępnij Styczeń 28, 2019 18 godzin temu, Kamil2118 napisał: Na obudowie została zamieszczona naklejka z tagiem NFC, który zawiera adres IP urządzenia, na sztywno przypisany w ustawieniach routera. Nie wystarczy gdzieś napisać adres IP? NFC to chyba przerost formy nad treścią
Kamil2118 Styczeń 28, 2019 Autor tematu Udostępnij Styczeń 28, 2019 (edytowany) Nie jestem przekonany, czy przerost, takie małe usprawnienie skierowane do użytkowników z androidem (nie działa tam poprawnie opisana wyżej usługa mDNS). Miałem po prostu wolny znacznik, a pod samą naklejka jest dziura po fabrycznie zamontowanej diodzie, starałem się ją zakryć czymś więcej niż kawałkiem taśmy. Nie ma co ukrywać, że ten tag to raczej ciekawostka, bo po dodaniu adresu do zakładek w przeglądarce nie ma potrzeby go używać z danym smartfonem. Edytowano Styczeń 28, 2019 przez Kamil2118 1
Treker (Damian Szymański) Styczeń 28, 2019 Udostępnij Styczeń 28, 2019 Zawsze jakaś oryginalna opcja, która odróżnia Twoje gniazdko od innych - dla mnie na plus! 1
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »