Mały projekt zegarka, który pobiera dane z serwera NTP po czym wyświetla czas na wyświetlaczu OLED. Używamy WeMos D1 mini do łączenia się z siecią Wi-Fi, uzyskiwania czasu NTP i wyświetlania go na module OLED.
Aby zbudować ten projekt, potrzebujesz WeMos D1 mini lub pochodne która posiadają mikroukład ESP8266 oraz moduł wyświetlacza OLED.
Co nam będzie potrzebne:
– WeMos D1 mini / NodeMcu do nabycia tu
– Moduł wyświetlacza OLED 0.96 cala 128X64 do nabycia tu
– Arduino IDE
– przewody do połączenia całości
Opis połączeń:
Zegarek z NTP |
|
PIN ESP | PIN LCD |
GND | GND |
3,3V | Vcc |
GPIO5 | SCL |
GPIO4 | SDA |
Kod programu:
Do pobrania tu Zegarek NTP
Jest parę zmian które musisz dokonać przed wgraniem:
- w pliku credentials.h ustawić dane swojej sieci
char mySSID[]="nazwa sieci";
char myPASSWORD[]="hasło do sieci";
- w pliku zegarek-ntp.ino ustawić swoją strefę czasową, poniższa dla Polski
const char* TZ_INFO = „CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00”;
Źródło: hxxps://www.youtube.com/watch?v=r2UAmBLBBRM
Jeszcze przydało by się dodać jedną zmienną, aby ESP nie emitowało WiFi o nazwie „FaryLink-xxxx”. W tym celu dodajemy
WiFi.mode(WIFI_STA);
zaraz przed
WiFi.begin(ssid, password);
Witam, w OLED 128×28 przy wyświetlaniu tylko hh:mm:ss trzeba coś zmieniać w kodzie? Pytam jako amator . Dziękuję za odp.
Od linii ~158 poniżej tekstu //display on OLED
Doskonały przykład zastosowania modułu WeMos i wyświetlacza OLED.
Ja miałem wersję OLED z interfejsem SPI i zmieniłem definiowanie na:
#define OLED_MOSI D7
#define OLED_CLK D5
#define OLED_DC D3
#define OLED_CS D8
#define OLED_RESET D0
U8X8_SSD1306_128X64_NONAME_4W_SW_SPI u8x8(/* clock=*/ OLED_CLK, /* data=*/ OLED_MOSI, /* cs=*/ OLED_CS, /* dc=*/ OLED_DC, /* reset=*/ OLED_RESET);