Часы с синхронизацией своими руками

Добавил пользователь Дмитрий К.
Обновлено: 04.10.2024

Корпус, платы, софт — всё это он спроектировал и сделал сам. А потом ещё и опубликовал материалы для создания в открытом доступе.

Итогом работы стало устройство, которое держит заряд больше недели и показывает время и уведомления. На подробное описание создания часов обратил внимание журналист Андрей Бродецкий.

Форма корпуса зависела от выбранной формы экрана, в нижней части инженер оставил место для батареи и других необходимых деталей. Параметры экрана — TFT LCD с разрешением 240x240.

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

Давно хотел завести дома большие часы, так как зрение не очень хорошее. Обязательных условий было всего два: я без очков должен с большого расстояния видеть цифры и должна автоматически регулироваться яркость (чтобы ночью эти часы не превращались в люстру).

Ни на одном сайте я не нашел готового решения, которое бы меня устроило. Либо не нравился дизайн, либо была неполная информация, либо слишком много ненужных мне функций.

Решил делать свой проект. Через некоторое время конструкция была нарисована.

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

Дальше была печать и сборка.

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

Все элементы напечатались довольно точно, и почти вся конструкция держится за счет соединения элементов между собой.

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

Для уменьшения влияния длины ленты на яркость свечения, питание ленты подключено в двух местах. Так как используется адресная лента, то большое значение имеет порядок расположения и подключения сегментов.

У меня используется такой порядок:

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

Электрическая схема простейшая:

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

Модуль Wemos D1 mini, фоторезистор, резистор 10 кОм и модуль часов DS3231.

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

Модуль часов сначала не предусматривался, поэтому штатного места крепления я не сделал (лежит внутри в пакетике :).

Изначально планировалось постоянно синхронизировать время с интернетом, но решил немного пожалеть свой роутер, которому и так не сладко. Теперь часы подключаются к сети WiFi только для синхронизации времени и записи его в модуль DS3231, после отключаются и не занимают канал. Модуль довольно точный и я поставил синхронизацию раз в неделю.

Фоторезистор закреплен в корпусе горячим клеем.

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

После того, как прошивка была загружена и часы начали светиться, выявился один недостаток. Так как вставка в корпус, для равномерности свечения, была напечатана белым цветом, то происходила паразитная засветка соседних сегментов. Пришлось закрасить перемычки черным цветом. Не очень эстетично, но внутри это никто не увидит. После этого свечение стало равномерным и без засветки.

В итоге часы были собраны и поставлены на антресоль, где их отлично видно и где они работают уже почти год.

Часы на адресной ленте WS2812b с синхронизацией по WiFi.

Если кого-то заинтересует, то проект со всеми исходниками можно скачать с моего яндекс диска:

Так как было нужно чтоб ничего не мерцало, надо делать статическую индикацию. Для этого можно применить что-то классическое, типа CD4511, SN74LS47, но так как эти чипы поддерживают отображение только цифр, а знакомому были нужны и другие символы, этот вариант не подходил. По этой же причине, решил взять обычный МК, но в 40 ножечном корпусе, и управлять сегментами напрямую, а для регулировки яркости и цветов, использовать встроенный в МК ШИМ генератор, который будет работать на частоте 32 кГц, и тем самим, будет исключено мерцание.


Питание на плату поступает по порту USB C, и при максимальной яркости сегментов, потребление составляет порядка 80мА.

Плату заказал в Китае, и она позволяет работать с индикаторами в двух вариантах – как с индикаторами с параллельным включением светодиодов, так и с последовательным. Такой подход обусловлен разным напряжением зажигания светодиодов разного типа, и об этом чуть детальней – в следующем абзаце.

Если будете собирать вариант с точно теми же индикаторами что я использовал, то микросхему 7805 ставить не надо, и вместо неё надо поставить перемычку на плату в отверстия для ножек 1 и 3 (крайние слева и справа) этой микросхемы. Если же применяем скажем, индикаторы с сегментами с красным и синим свечением, с последовательным включением диодов, то микросхему уже придётся ставить, а на часы подавать питание в пределах 6-7 вольт.

Последовательность сборки платы такая:

  1. Припаиваем DS3231
  2. Припаиваем все остальные компоненты, кроме индикаторов
  3. Продеваем в угловые отверстия 4 винта М3 с плоской головкой
  4. Припаиваем индикаторы

Я вот не последовал этой последовательности, забыл вставить винты до индикаторов, и надо было либо выпайвать индикаторы, либо вклеить проставки в плату — я выбрал второе:


Программно, часы работают следующим образом:


При нажатии правой (зеленной) кнопки (если смотреть на часы спереди) отображается год и дата, и если будильник включён, то отображается и время его срабатывания (разделительные точки при этом быстро мерцают)

При нажатии же левой (красной) кнопки, попадаем в меню настроек. Слева, двумя буквами латинского алфавита, отображается название пункта меню, а справа – текущее значение выбранного параметра. Всего, в меню 13 пунктов:

  • Yr (year) — Установка года, можно выбрать в диапазоне 2021-2099 годов.
  • tH(month) – Установка текущего месяца.
  • dt (date) – Установка даты.
  • dY (day) –Установка дня недели. 0 – Понедельник, 7 – Воскресение.
  • Hr (hour) – Установка часов.
  • Ut (minute) – Установка минут.
  • dF (display format) – Выбор формата отображения времени, 12 или 24 часовой формат.
  • AH (alarm hour) – Установка часов срабатывания будильника.
  • At (alarm minute) – Установка минут срабатывания будильника.
  • AE (Alarm enable) – Выбор режима будильника: 00 –выключено. 01 – работает всю неделю, 02 – работает только по рабочим дням.
  • Tr (time readjust) – Корректор времени (об этом подробнее ниже).
  • Dh (display hue) – Выбор цвета дисплея часов, всего доступно 16 значении, начиная от чистого зеленного, с проходом через лимонно-желтый и оранжевый, до ярко-красного.
  • tF (temperature format) — Формат отображения температуры, в Цельсиях или в Фаренгейтах.
  • Ft (font type) – Выбор типа шрифта (подробнее – ниже).
  • Rt (Return) – Выход в основной режим.

А теперь про Tr и Ft. Многие китайские клоны микросхемы DS3231 страдают проблемой отставания – такие микросхемы считают время хотя и стабильно, но медленно, так что такие часы могут за сутки отставать на несколько секунд, что в итоге даёт заметное отставание за неделю и месяц. Значение Tr прибавляет к показаниям часов от 1 до 15 секунд в 23:59:30 каждый вечер, тем самим, компенсируя отставание часов. Если же у вас нормальный чип, то этот параметр можно не трогать и оставить на дефолтном значении (30).

Настройкой Ft можно выбирать очертание отображаемых цифр. Многие, наверное, не знают, но для 7 сегментных индикаторов, существуют 3 разных начертания отображения цифр:

Соответственно, при настройке данного параметра, в меню в качестве пунктов отображаются ключевые символы данного очертания букв. Это 79 для “US”, 67 — “EU”, 76 — “JP” (Была идея для “US” писать 69, но решил отказаться, дабы избежать ненужных ассоциаций.

Для наглядности, привожу картинку, как выглядят цифры на 7 сегментном индикаторе в указанных стилях.





И да, на счёт отставания. Учтите, если будете подавать питание с ПК, и программа-прошивальшик на ПК будет в этот момент активна (PicKit standalone softwareб MPLAB IDE) Часы будут сильно отставать – это фича самого режима ICSP, а не баг прошивки. В свое время, пока не догадался об причине, много нервов потратил. С обычным питанием, естественно, никаких проблем не будет.

Корпус часов был изготовлен из 3мм фанеры и прозрачного оргстекла, с использованием лазерного резака. После того как корпус был собран и склеен (использовал прозрачный эпоксидный клей), внешние поверхности обработал наждачной бумагой, скруглив углы и обклеил самоклеящееся синтетической кожей розовато-красного цвета – всё-таки часы делаются для девичьей комнаты, там похожие цвета уже применены в дизайне (по идее, светло-розовый бы подошёл больше, но кожзама такого цвета не было у меня в наличии). Корпус с внутренней стороны пришлось зачернить маркером, так как свет от сегментов индикатора подсвечивал корпус изнутри и выглядело всё неряшливо. Также пришлось чернить и боковины индикаторов, они белые, и тоже неплохо отражали свет.






Передняя панель часов была изготовлена из дымчатого оргстекла толщиной 3мм, из этого же материала, но цвета слоновой кости, были изготовлены боковые ножки-упоры. Узел крепления ножек к корпусу получился несложным, но тем не менее, он одновременно обеспечивает и плотный прижим, чтоб под своими весами часы не прокручивались, так и возможность плавной регулировки угла наклона по необходимости. Конструктивно, этот узел состоит из нейлоновой шайбы, которая зажата между ножками-упорами и корпусом часов с помощью декоративного винта с круглой головкой. Сам винт вкручивается в предварительно вклеенную в фанеру граверную гайку, и зафиксирован каплей эпоксидного клея, чтоб конструкция не раскручивалась.




На обратной стороне (тоже вырезана из 3мм оргстекла) размещены кнопки управления, порт USB C и также имеется несколько вентиляционных вырезов. Основная плата часов крепится именно к задней панели, которую в случае необходимости можно быстро демонтировать, открутив четыре крепежных шурупа по углам.

Вроде все, часы собраны, фото сделаны, статья написана :)


Все чертежи, схемы и прошивки бесплатны – пишите, если заинтересовались, выложу в открытый доступ.




Содержание / Contents

↑ Схема часов на вакуумных индикаторах с GPS


Питание часов у меня от сетевого адаптера 12 Вольт 1А . Для получения 5 Вольт применён модуль DC-DC на базе LM2596 .


Если не стремиться к миниатюризации, и чтобы не размещать антенну снаружи корпуса, лучше приобрести корпус G1034B с размерами побольше. В этом случае необходимо соответственно откорректировать печатную плату по посадочным размерам.

В DC-DC преобразователе 5→200 Вольт использован дроссель CD127 150 мкГн 12.8×12.8 мм .

Вариант датагорских часов Nixie Tube Clock (JGL) с GPS-синхронизацией

Для подсветки колб индикаторов ИН-12 применены SMD светодиоды типоразмера 0805 по четыре светодиода каждого цвета. Поскольку справочных данных по ним нет, то ограничительные резисторы подбирались по яркости свечения и так чтобы не превысить ток 15 мА.

В качестве разделительной точки используется миниатюрная неоновая лампа, извлечённая из неисправного рокерного выключателя сетевого питания.

На AliExpress такие лампы Neon lamp 4 mm можно приобрести по невысокой цене.

Выключатель в цепи питания 12 Вольт позволяет отключать преобразователь 200 Вольт и светодиодную подсветку. В таком экономичном режиме часы продолжают идти, но не создают иллюминации. Это бывает полезно в некоторых бытовых ситуациях, например при усыплении детей.

↑ Конструкция и детали часов



Основная плата часов

Для часов были изготовлены три платы: основная, плата преобразователя 200 Вольт и плата кнопок и светодиода. Толщина основной платы 1,5 мм, остальные 1,0 мм.

Основная плата и плата преобразователя двухсторонние, плата кнопок односторонняя. Фольга второй стороны преобразователя 200 Вольт используется для отвода тепла от корпуса транзистора IRF840, для этого выполнено несколько переходных отверстий. Нагрев транзистора незначительный.

Применялась лазерно-утюжная технология с термотрансферной бумагой для изготовления печатных плат (PCB thermal transfer paper) , она даёт стабильные результаты с минимальной шириной дорожек/зазоров до 0,2 мм и не требует размачивания в воде.

Сверление выполнялось твёрдосплавными свёрлами на миниатюрном станке.


Для индикаторов ИН-12 панельки не применялись, выводы впаяны в плату, диаметры отверстий 1,2 мм. При пайке выводов индикаторов нельзя применять активные флюсы типа ортофосфорной кислоты, иначе возникнут паразитные засветки катодов. В крайнем случае после пайки такими флюсами необходимо выполнить отмывку платы в ультразвуковой ванночке с дистиллированной водой.

Травление плат выполнено в растворе персульфата аммония (250 г/литр) при температуре +40 С. Лужение сплавом Розе в кипящей воде с добавлением лимонной кислоты.

Данные по корпусам использованных компонентов
1. Компоненты поверхностного монтажа SMD:
— резисторы и конденсаторы типоразмера 0805;
— перемычки (SMD резисторы 0 Ом) типоразмера 1205;
— микроконтроллер PIC16F876А — SOIC 28;
— транзисторы BC817, BC857 — SOT23;
— диоды 1N4148 — miniMELF;
— микросхема MC34063 — SO8;
— транзистор IRF840 — D2PAK (TO-263);
— диод US1M — SMA.

2. Выводные компоненты:
— транзисторы KSP42, MPSA92 — TO-92;
— конденсатор 4,7 мкФ 400 Вольт — ? 8, высота 11 мм, расстояние между выводами 3,5 мм.;
— разъём внутрисхемного программирования и джампер — вилка PLS, шаг выводов 2,54 мм.

Модули GPS, преобразователя 12 → 200 Вольт, преобразователя 12 → 5 Вольт закреплены на внутренней поверхности задней крышки корпуса.

Основная плата также закреплена на крепёжных выступах задней крышки с помощью шурупов через втулки.
Плата кнопок и светодиода закреплена на внутренней поверхности передней части корпуса, в которой просверлены отверстия для толкателей кнопок и светодиода. Светодиод не должен выступать над поверхностью передней части корпуса.

Также на передней панели корпуса вырезано прямоугольное отверстие под индикаторы. Длиной втулок крепежа основной платы можно отрегулировать величину выступания индикаторов из корпуса.


Верхняя часть передней панели закрыта декоративной накладкой. Рисунок создавался в графическом редакторе и печатался на цветном струйном фотопринтере на обычной бумаге. После обрезки бумаги, с помощью просечки в рисунке вырублено отверстие под светодиод и рисунок заламинирован. Полученная накладка обрезана по контуру с небольшим запасом во избежание расслоения. Готовую накладку приклеваем к корпусу с помощью тонкой клейкой ленты или двухстороннего скотча, совмещая отверстия под светодиод и кнопки.
Толкатели кнопок должны выступать не более чем на 0,5 мм. В зависимости от длины толкателей применяемых кнопок, их необходимо укоротить либо удлинить, в последнем случае удобно использовать в качестве удлинителей отрезки пластмассовых трубок от ватных палочек. При этом в переднем панели необходимо просверлить отверстия? примерно 2,7 мм.

Как уже упоминалось ранее, GPS антенна закреплена снаружи корпуса на задней крышке. При использовании других корпусов и размещении антенны внутри необходимо правильно выбрать для неё место. Крепить антенну к корпусу нужно стороной экрана, наличие перед антенной металлических поверхностей и проводов ослабляет принимаемый сигнал.

↑ Возникшие проблемы и их преодоление

1) В модуле GPS были установлены резисторы 4,7 кОм последовательно в шинах приёма и передачи данных RXD и TXD, а в купленном раньше модуле эти резисторы были по 220 Ом. Сигнал с выхода модуля был ослаблен, данные микроконтроллером читались неустойчиво. Поэтому резисторы 4,7 кОм были заменены на 220 Ом.

3) Не смотря на применение SMD компонентов, внутренний объём корпуса был практически полностью занят. Место, в котором была первоначально закреплена антенна оказалось неудачным. Её экранировала основная плата. Другого места внутри корпуса не нашлось, поэтому антенну пришлось закрепить на задней крышке корпуса.

↑ Итого

Читайте также: