NTP-часы на ESP32 и OLED дисплее

ntp 1Проект NTP-часов собран на модуле ESP32 module with OLED display в среде разработки PlatformIO.

PlatformIO

это среда разработки для IoT, построенная на основе редактора Atom:

platformio

Онра поддерживает разработку проектов на Arduino, а библиотека Arduino в совю очередь поддерживает ESP8266 и ESP32 (Список поддерживаемых модулей).

Создать новый проект очень просто – нужно выбрать плату ESP32:

platformio new project

Создается пустой проект:

platformio empty project

Так как мы хотим использовать NTP, открываем менеджер библиотек и ищем соответствующую библиотеку:

platformio lib ntp

Теперь ищем библиотеку NTP и устанавливаем

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

platformio upload

Здесь есть описание модуля с примерами. 

 

Большой шрифт для часов можно сгенерировать тут: http://oleddisplay.squix.ch.

После доведения программы до ума должно получиться как на картинке ниже:

esp32 oled

Исходник этого проекта можно скачать отсюда:
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/

Загрузка...