Gdy masz wątpliwości, postaw na zegar. Niezależnie od tego, czy planujesz przetworzyć stary tablet, czy uzyskać dokładne raporty pogodowe, zegar to idealny projekt, aby zaspokoić duszę majsterkowicza. Mając to na uwadze, niedawno odkryliśmy projekt Tiny Internet Clock opublikowany przez „gokux” na platformie Instructables. Wszystko, czego potrzebujesz, to mały wyświetlacz OLED, moduł oparty na ESP32 lub ESP8266 oraz odpowiednia dawka druku 3D.
Arduino, Raspberry Pi, mikrokontrolery, druk 3D… bez wątpienia to jeden z najlepszych momentów, aby zanurzyć stopy w wodach DIY. W rzeczywistości wiele projektów online nie wymaga nawet lutownicy, a oferują doskonałą okazję dla wszystkich użytkowników. Tiny Internet Clock od „gokux” to jeden z takich projektów, ale jeśli masz dostęp do drukarki 3D i jesteś gotów oddać kilka punktów lutowniczych na połączeniach, otrzymasz bardzo kompaktowy i prosty zegar WiFi.
Jak zbudować zegar z WiFi
Z technicznego punktu widzenia potrzebujesz tylko trzech rzeczy: kompatybilnego modułu ESP32 lub ESP8266 (tutaj używa Seeed Studio Xiao), wyświetlacza OLED SSD1306 w formacie 128 x 32 piksele oraz źródła zasilania. „gokux” postanowił maksymalnie uprościć konstrukcję i zasila swojego Xiao przez kabel USB typu C, ale nie jest złym pomysłem dodanie modułu TP4056 i małej baterii, aby „przeciąć pępowinę”. Mimo to nie możemy mówić o przenośności, ponieważ dane logowania do WiFi są zakodowane w kodzie Arduino (szczegóły poniżej).
„gokux” miał również uprzejmość udostępnić pliki do wydruku obudowy Tiny Internet Clock, składającej się z trzech elementów, które powinny dobrze wyglądać nawet na najbardziej podstawowych drukarkach. Zdecydowanie najbardziej onieśmielającą częścią projektu jest wgranie kodu Arduino do ESP32, ale tak naprawdę interesują nas tylko cztery parametry:
- const char* ssid = "SSID"; — tutaj należy zastąpić „SSID” rzeczywistym SSID sieci WiFi (w cudzysłowie).
- const char* password = "Password"; — to samo, ale wpisujemy hasło.
- int GMTOffset = 19080; — tutaj wpisujemy ujemne lub dodatnie przesunięcie strefy czasowej w sekundach.
- int daylightOffset = 0; — podobnie jak powyżej, ale wpisujemy przesunięcie dla czasu letniego (jeśli to konieczne).
Jedyna dodatkowa linia kodu, na którą chciałbym zwrócić uwagę, to:
configTime(GMTOffset, daylightOffset, "0.in.pool.ntp.org","time.nist.gov");
Serwer 0.in.pool.ntp.org znajduje się w Indiach i być może wygodniej będzie użyć lokalnego serwera NTP.
Po wgraniu całego kodu pozostaje już tylko sprawdzenie fizycznych połączeń między ESP32 a wyświetlaczem, włączenie go i czekanie na synchronizację. Spróbuj!
Oficjalna strona: Kliknij tutaj