Создать настольные часы, которые показывают точное время и работали от аккамулятора и от внешнего блока питания. Для точного времени нужен интернет для работы с NTP, выбор пал на ESP8266 потому что волялся под рукой. Поскольку есть желание работать от аккамулятора и учитывая что Wi-Fi кушает много энергии, нужен RTC SD1302 с целью не ходить в интернет каждую секунду, а только для периодической синхронизации времени. Выводить время каждую секунду на LCD 16x2 I2C с RTC SD1302 и сделать отдельную кнопку для отключения подсветки экрана в целях экономии.
Для подключения LCD 16x2 I2C задействуем всем известную схему:
ESP8266 | LCD 16x2 I2C |
---|---|
GND | GND |
VIN | VCC |
D2 | SDA |
D1 | SCL |
Для подключения RTC SD1302 следуем следующей схеме:
ESP8266 | SD1302 |
---|---|
3V | VCC |
GND | GND |
D5 | CLK |
D4 | DAT |
D0 | RST |
- RtcDS1302.h - Для модуля RTC DS1302.
- LiquidCrystal_I2C.h - Для экрана 16x2 I2C.
Что бы ESP8266 мог подключится к Wi-Fi и синхронизироваться с NTP сервером, задайте значения для SSID и PASSWORD.
const char *SSID = "R2-D2";
const char *PASSWORD = "1234567890QWERTY";
Можно указать любой, для этого измените значение у NTP_SERVER:
const char* NTP_SERVER = "pool.ntp.org";
Страна | Сервер |
---|---|
🇷🇺 Россия | ru.pool.ntp.org или ntp1.vniiftri.ru |
🇩🇪 Германия | de.pool.ntp.org или ntp.web.de |
🇺🇸 США | us.pool.ntp.org |
Ещё больший список можно найти тут: mutin-sa/Top_Public_Time_Servers.md