Skocz do zawartości

Gniazdko elektryczne z autorskim oprogramowaniem


Kamil2118

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
Link do komentarza
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.

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ą 🤔

Link do komentarza
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
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.