Проект NTP-часов собран на модуле ESP32 module with OLED display в среде разработки PlatformIO.
PlatformIO
это среда разработки для IoT, построенная на основе редактора Atom:
Онра поддерживает разработку проектов на Arduino, а библиотека Arduino в совю очередь поддерживает ESP8266 и ESP32 (Список поддерживаемых модулей).
Создать новый проект очень просто – нужно выбрать плату ESP32:
Создается пустой проект:
Так как мы хотим использовать NTP, открываем менеджер библиотек и ищем соответствующую библиотеку:
Теперь ищем библиотеку NTP и устанавливаем
Устанавливаем ее. В ней содержится пример работы, поэтому просто копируем его и вставляем в свой main.cpp. Следующий шаг - подключение драйвера дисплея. Для этого нужна вот эта библиотека:
https://github.com/squix78/esp8266-oled-ssd1306
Библиотека устанавливается командой
platformio lib install 562
в консоли PlatformIO.
Прописываем в настройках драйвера адрес дисплея и команду на сброс при старте:
SSD1306 display(0x3c, 4, 15); pinMode(16,OUTPUT); digitalWrite(16, LOW); // set GPIO16 low to reset OLED delay(50); digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in high
Затем подсоединяем свой модуль через USB к компьютеру. Должно появитсья устройство /dev/ttyUSB0. Компилируем проект и жмем Upload.
Здесь есть описание модуля с примерами.
Большой шрифт для часов можно сгенерировать тут: http://oleddisplay.squix.ch.
После доведения программы до ума должно получиться как на картинке ниже:
Исходник этого проекта можно скачать отсюда:
https://github.com/danielkucera/esp32-oled-clock
Проект также работает на “ESP32 Bluetooth WIFI Kit Blue OLED 0.96 inch Display Module CP2102 32M Flash 3.3V-7V Internet Development Board for Arduino” ( https://www.aliexpress.com/item/ESP32-Bluetooth-WIFI-Kit-0-96-inch-Blue-OLED-Display-Module-CP2102-32M-Flash-IOT-Internet/32825725963.html )
Переведено с английского: https://blog.danman.eu/esp32-ntp-oled-clock/