Skocz do zawartości
Kamil2118

Gniazdko elektryczne z autorskim oprogramowaniem

Pomocna odpowiedź

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:

Widok boku obudowyWidok frontu obudowyWidok tyłu obudowy1.thumb.jpg.92480b5b7e0e24ffb511f73e8d5ac6ac.jpg

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.

Strona główna panelu zarządzaniaWitryna zarządzania haronogramemWitryna ustawień urządzenia

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

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 🙂

Udostępnij ten post


Link to post
Share on other sites
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ą 🤔

Udostępnij ten post


Link to post
Share on other sites
(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 przez Kamil2118
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Zawsze jakaś oryginalna opcja, która odróżnia Twoje gniazdko od innych - dla mnie na plus!

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...