Надоело постоянно подстраивать время на настольных часах в спальне. Едва ли не самые важные часы в квартире постоянно уходили и вообще сбрасывались при отключении электричества.
Решил сделать собственные часы, подключенные к сети по Wi-Fi и получающие время по NTP.
Железо
В качестве управляющего модуля я выбрал ESP8266, для которого уже была заточенная Arduino IDE и некоторый опыт разработки.
Для разработки и отладки использовал удобную SDK плату для ESP8266. Несколько LED матриц 8*8 были в наличии. Собирался в них поиграть с детьми, поэтому заказывал с запасом. Матрицы используют микросхему MAX7219 для управления светодиодами. Информация передаётся последовательно, и возможно подключение нескольких модулей последовательно. В интернете есть масса библиотек для таких матриц, в том числе с готовыми шрифтами. Но для этого проекта я сделал свой шрифт, лучше подходящий именно для часов.
Ниже показана сборка из трёх матриц, соединённых последовательно.
Я использовал разборные соединения между основными модулями, чтобы упростить сборку/разборку и замену деталей.
Вот как выглядел весь стенд. Блок питания компьютерный, на нём были необходимые 3 и 5 Вольт с запасом по мощности. Полностью включенные три матрицы потребляют приличный ток, и от компьютерного USB порта работать не будут.
Софт
Программа достаточно простая. У меня уже были готовые примеры: работа с LED матрицами для Arduino, и отправка запроса / разбор ответа NTP для ESP8266. Оставалось слить это в одну работающую программу и кое что добавить:
- Присоединение к моей домашней Wi-Fi сети, + пересоединение если что-то не работает. Аналогично, несколько NTP серверов, запрашиваемых по кругу.
- Поскольку внутренних часов у ESP8266 нет, то настройку задержек для удовлетворительной точности автономного хода в течение ~15 минут, после чего делается новый NTP запрос.
- Новый шрифт (только цифры), максимально использующий экран и видимый близорукими людьми с нескольких метров.
- Некоторую дополнительную индикацию в нижней строке (есть ли связь с сетью и т.д.)
Прототип
После создания софта и нормальной работы устройства на стенде, я перешёл к созданию более портативного блока питания для собственно прототипа. Для получения 5 Вольт я использовал зарядку от мобильного телефона с испорченным мини-USB разъёмом. LED матрицы запитаны напрямую от 5 Вольт, а для работы ESP модуля использован настраиваемый DC-DC конвертер в 3.3 Вольта.
Вместе сборки соединил жёсткой проволокой, просто припаянной к макетной плате. Была идея напечатать какой-то каркас на 3D принтере, но руки не дошли. Окончательный вид:
Всё вместе просто замечательно влезает в бережно хранимую несколько лет коробку от конфет:
Результат
Конечно, это было краткое изложение истории. В реальности пришлось пару раз переделать девайс, немного пободаться с Wi-Fi и списать один DC-DC конвертер, из которого вышел весь магический синий дым, на котором он работал.
Но получилось очень симпатично:
P.S.
В принципе у идеи есть большой потенциал, ведь практически ничего не стоит добавить индикатор для, например, новой почты, погоды бегущей строкой, состояния вверенных серверов, да что угодно. Может, удастся напрячь ребёнка для развития системы 🙂
Leave a Reply
You must be logged in to post a comment.