Часы на ESP8266
После одного проекта, который я делал на заказ, осталась одна плата. Платы заказывал в Китае, а китайцы обычно делают + 1 шт. к заказу. Проект делался для соревнований, устройство должно отсчитывать время с момента старта и до конца заезда. В качестве отображения информации используется шесть семисегментных индикатора. Индикация статическая, реализована на сдвиговых регистрах 74HC595. Точность хода обеспечивает DS3231. И управляет всем этим ATMega8. При разработке прототипа, для согласования с заказчиком окончательных размеров, выяснилось, что у меня не хватает двух семисегментных индикаторов. Необходимых мне по размеру индикаторов купить где-то рядом не было возможности, а времени на заказ через интернет-магазин не было. Поэтому пришлось забрать у отца термометр, который я ему когда-то делал используя такие же индикаторы, но пообещав, что потом соберу новый. Через некоторое время, проект был успешно сдан заказчику и после нескольких напоминаний о моем обещании, решил взяться за разработку улучшенной версии, теперь уже часы-термометр.
И так, взяв за основу данную плату, начал обдумывать будущее устройство.
- Будущие часы-термометр, должны отображать текущее время и температуру :)
- Иметь регулировку яркости "день-ночь", а следовательно и измерять текущее освещение.
- Настройка устройства должна быть максимально простой и осуществляться через веб-интерфейс.
- Получать текущую уличную температуру или другую информацию от сервера УД.
- Иметь возможность обновление по воздуху.
Из интерфейсов потребуется:
- SPI - для управления индикацией,
- I2C - для часов DS3231,
- ШИМ (pwm) - для регулировки яркости индикаторов,
- АЦП (adc) - для измерения текущего уровня освещения.
Исходя из своего же технического задания, решил использовать в качестве "мозга" ESP8266. Его ресурсов вполне хватает для данной задачи, тем более написать прошивку и веб интерфейс, используя DoT, не составит большого труда.

Как я писал уже выше, заказывать плату я не стал, а использовал ту что была. По большей части все элементы и детали остались как есть, за исключением МК ATMega8 и некоторой обвязки по питанию. ESP8266 приклеил на двухсторонний (толстый) скотч и навесным монтажом подключился к плате, так же установил недостающие детали. Что из этого вышло можно посмотреть ниже.

Веб интерфейс реализован в виде плагина для DoT, это существенно сокращает разработку ПО и будущую его поддержку с обновлением.


Настройки делятся на две страницы. Это основные настройки в DoT, где можно выбрать тип индикаторов (с общим анодам или катодом) и их количество, скорость бегущей строки и переназначить некоторые порты (i2c, latch). Так и имеет свою страницу, где можно изменить текущее время или яркость подсветки индикаторов (день | ночь), посмотреть текущий уровень освещения и задать при каком уровне будет происходить переключение яркости между днем и ночью.
