Как сделать электронные часы: Большие электронные настенные часы на Arduino и WS2811 своими руками

Собираем не совсем обычные настольные часы с цветным дисплеем / Своими руками (DIY) / iXBT Live

История создания этих часов довольно необычна и забавна. У меня есть знакомый, который занимается сьемкой всякого альтернативного кино в стиле «артхауc», «нуар», «ню» и так далее. Однажды он пришёл ко мне с проблемой – по сценарию, им в фильме нужны были электронные часы на 7-сегментных индикаторах, меняющих цвет, которые могут вести обратный отсчёт, типа бомбы с таймером. Готовых часов на 7-сегментных индикаторах полно, но практически у всех оказалась одна неприятная особенность – сегменты зажигаются попеременно, с достаточно низкой частотой, порядка 200-700 гц (так называемое мультиплексирование), и на видео это выглядит как сильное мерцание или вообще пропадание некоторых сегментов. Знакомый был настолько заинтересован часами с нужным функционалом, что пришёл ко мне не один, а в компании двух портретов Бенджамина Франклина, которые вскоре поменяли локацию с его бумажника на мой, и работа началась.

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

Схема, сборка и комплектующие

Схему отдельно не рисовал, начал сразу рисовать плату, так что схема – только словами.

  • В качестве «сердца» часов я применил МК PIC16F887 в DIP-40 корпусе.
  • Отсчёт времени обеспечивает микросхема DS3231.
  • Автономность хода часов при отсутствии питания обеспечивается ионистором на 0,47 ф, 5,5 вольт. Его хватает приблизительно на 3-4 суток без внешнего питания.
  • В качестве индикаторов применены двухцветные LED-модули KYX12101BHG (Ярко-красный и зелёный цвета, общий анод: https://item. taobao.com/item.htm?id=590631082765). Выбор этих индикаторов, как и максимально компактный размер платы был обусловлен желанием заказчика поместить «новые» часы в уже имеющийся корпус.
  • Аноды модулей через транзисторы 2SB772 включены на выход встроенного в МК ШИМ-генератора.
  • В качестве разделительных точек выступают 5мм светодиоды оранжевого цвета.
  • Для управления и настройки часов применены две кнопки, подключенные через резисторы разных номиналов к входу АЦП МК.
  • Так как оставались неиспользованные выводы МК, то я решил добавить функции будильника – реализована на «активном» бипере и транзисторе BC547 — и измерения температуры с применением DS18B20. Термометр подключается к ICSP-коннектору на контакты, помеченные как DAT, GND, VCC, при этом между VCC & DAT также подключается резистор на 4,7К.
  • Для упрощения сборки количество SMD компонентов сведено к одной микросхеме — DS3231. Эта микросхема довольно крупная, расстояние между ножками тоже приличное, так что её вполне можно припаять и обычным паяльником.
  • Питание на плату поступает по порту USB Type-C, и при максимальной яркости сегментов потребление составляет порядка 80 мА.

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

Двухцветные индикаторы выбранного типоразмера бывают как с параллельным включением светодиодов (редко), так и последовательным (часто). И если в случае с красно-зелёными индикаторами особых проблем при последовательном включении не возникает (да, зелёный чуть тускловат, но это малозаметно), то если применить, скажем, красно-синие индикаторы, то при питании от 5 вольт получим что, красные сегменты будут гореть на полную яркость, а синие – вообще не будут гореть. Это происходит из-за разного падения напряжения на светодиодах – 2 вольта на красных, 3,3 вольта на синих, что в случае с последовательным включением сегментов даст 4 и 6,6 вольт соответственно.

Для исключения таких проблем надо или использовать индикаторы с параллельным включением диодов, или делать другой вариант платы, чтобы на диоды подавалось напряжение чуть повыше, приблизительно 6.3 вольта. Напрямую повышать напряжение питание нельзя — МК и микросхема часов могут сгореть. Здесь придётся использовать внешний блок питания на, скажем, 6 вольт. При этом 5 вольт, нужные для работы красных сегментов, логики и микросхемы часов, получаются с использованием стабилизатора типа 7805, а «высокое» напряжение напрямую подаётся на транзистор, который управляет яркостью синих сегментов.

Так как изначально плата не предусматривала такой функционал, её пришлось немножко доработать. В «новом» варианте платы я оптимизировал и общую разводку – теперь колодка ICSP имеет «правильный» вид, а не раскидана по плате, бипер отодвинут чуть в сторону и не мешает крепежному винту. Однако первый вариант платы был собран в нескольких экземплярах и проблем при работе с ним не было обнаружено – на фото далее именно он, так что не надо удивляться, что на рисунке одна плата, а на фото – другая.

Все детали на плате подписаны своими номиналами, допустимы вариации в пределах ±10%. Как можно видеть по фото, у меня вообще не было 100-Омных резисторов, поставил два по 220 Ом параллельно. Резисторы – 0,125 Вт. Можно и 0,25 Вт, но их придётся ставить «боком».

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

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

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

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

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

Дочки попросили часы для своей комнаты – мол, неудобно каждый раз в смартфон или планшет смотреть, особенно, когда в кровати лежишь. Можно было купить что-то готовое, но комсомольцы не ищут простых путей, и я решил, раз «железо» есть, то можно написать обычную прошивку для обычных людей и сделать часам простой корпус. Прошивку писал в свободное время, по настроению, в результате чего этот процесс растянулся почти на три месяца – да и программист я так себе. Но наконец-то прошивка доведена до состояния «можно использовать», и часы готовы.

Прошивка, настройки, баги и фичи

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

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

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

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

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

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

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

  • «Американская» — 6, 7 и 9 не имеют хвостиков.
  • «Европейская» — 6 и 9 с хвостиками, 7 – без.
  • «Японская» — 6, 7 и 9 с хвостиками.

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

Для наглядности — фото вариантов.

Хотя прошивка в целом и работает стабильно, а все основные функции тоже без нареканий, есть некоторые недоработки. Хоть они и не влияют на функциональность часов, их все равно надо учитывать.

Например: текущее время 11:05. Вы зашли в меню настройки часов, пролистали пункты и дошли до установки минут. Часы покажут «05». Вы в это время отвлеклись и отошли от часов на пару минут. Вернувшись к часам, вы решили минуты не трогать и нажали на кнопку перехода в следующий пункт меню. В это время в часы будет записано значение 05. Это происходит из-за того, что в момент входа в пункт выбирается текущее значение, и оно же пишется в момент выхода, если вы не меняли настройку. Если между «входом» и «выходом» прошло несколько секунд, то изменения незаметны. Если же прошло больше времени, а мы записали в часы «старое» значение, может появиться ощущение, что часы отстают.

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

В целом, индивидуальное управление сегментами даёт много возможностей для творчества – можно написать код, чтобы все сегменты имели свой цвет, цифры «переливались» одна в другую и еще много чего интересного. Например, я уже реализовал функцию измерения относительной влажности, сейчас работаю над барометром — в итоге будет у меня мини-метеостанция).

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

Корпус

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

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

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

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

P.S. Некоторые читатели спрашивают, как я делаю фото для обзоров: какую аппаратуру и как использую? Для конкретного случая ответ на фото ниже. Используются:

  • фотоаппарат Sony A77Mk2 с китовым объективом (18-50 мм)
  • синхронизатор Godox
  • внешняя вспышка Godox TT685S+Бустер

Настройки фотоаппарата – ISO 400, 1/25, F9.0, Rear sync, WB – 4800K. Фотоаппарат установлен на штативе, и используется ИК ПДУ, чтобы меня не было видно в зеркале. Вспышка работает в режиме ADI, направлена в потолок и обеспечивает заполняющий свет.

 По вашим просьбам, заново выкладываю прошивку и герберы:

  • http://www.tiktoki.ge/bicolor.rar — Герберы, подготовленные для изготовления в JLCPCB
  • http://www. tiktoki.ge/bicolor.firmware.rar — прошивка

Кстати, я немножечко улучшил прошивку, и теперь в ней будильник играет известный ритм от Casio VL-1 — VL Rock (Trio — Da da da). По ссылке выше — старая прошивка. Как новую докончу, тоже выложу.

Как легко настроить электронные часы?

Сегодня все больше людей используют электронные часы. Они удобные и практичные, имеют стильный дизайн. Но не каждый пользователь умеет правильно настраивать такой аксессуар. Из-за большого количества функций трудно разобраться в управлении. В этой статье можно узнать, как правильно настроить электронные часы.

 

Электронные часы

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

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

Приобрести электронные часы на руку можно на нашем сайте. Здесь представлен большой ассортимент товара, в том числе последние новинки от мировых брендов. На что стоит обратить внимание при выборе аксессуара:

  1. Форма корпуса – существуют квадратные, прямоугольные, круглые модели.
  2. Цвет – мужские изделия сделаны в темных оттенках, в то время как женские и детские товары имеют яркие тона.
  3. Материал браслета – большинство электронных часов имеют силиконовый аксессуар. Можно найти модели из пластика.
  4. Защита – современные устройства защищены от воды, грязи, пыли.

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

Как настроить время на электронных часах?

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

Основными кнопками являются MOD и SET, они встроены в любое устройство. Благодаря им можно выставить время. Для этого нужно выполнить такие действия:

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

Это был пример настройки времени для устройств с 2 кнопками. Есть модели, которые имеют 4 клавиши. В этом случае необходимо выполнять процесс другим способом. Кроме стандартных клавиш есть 2 дополнительные, которые помогают переходить по пунктам меню на дисплее. Как перевести электронные часы с 4 кнопками:

  1. Нажать и удержать клавишу MOD, когда экран начнет мигать, выбрать необходимый пункт меню.
  2. Настройка времени проходит с помощью дополнительных кнопок. Верхняя клавиша отвечает за увеличение значения, нижняя – за изменение.
  3. После выставления правильного времени закройте меню нажатием кнопки MOD.

В современных аксессуарах нередко применяются системы на 5-6 клавиш. В таком случае процесс выставления времени осуществляется в аналогичном порядке с использованием кнопок MOD и SET, а также дополнительных элементов. Разработчики часто создают другие клавиши, которые могут быстро вызвать таймер, секундомер, будильник, они только визуализируют параметры, но не производят настройки.

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

Как настраивать электронные часы?

Кроме настройки времени есть другие параметры, которые также нуждаются в выставлении. Одним из таких элементов является будильник. Такая функция присутствует абсолютно в каждой электронной модели. Громкость не слишком большая, но звук все равно можно услышать. Функция пользуется популярностью среди пользователей, завести будильник можно за 1 минуту.

Настройка осуществляется так же, как и выставление времени. Для начала необходимо зажать кнопку MOD, а далее найти в меню пункт «alarm». С помощью клавиши SET можно выставить время срабатывания будильника. Когда заданный параметр установлен, нужно подтвердить действие и закрыть меню.

Электронные часы с 4-5 кнопками имеют специальные клавиши, которые моментально выводят на экран опции будильника. Включить таймер или секундомер можно в меню системы.

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

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

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

Стильные электронные часы по приемлемой цене

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

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

  1. Гарантия – действует при покупке любой модели. При обнаружении повреждений ремонт устройства осуществляется бесплатно.
  2. Скидки – на сайте опубликована информация об акциях, выгодных предложениях для клиентов.
  3. Цены – по сравнению с другими магазинами, у нас самая привлекательная стоимость товара.
  4. Помощь – при возникновении вопросов обращайтесь в службу поддержки.
  5. Доставка – приобретенный товар можно получить по указанному адресу.

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

Build the Internet Digital Clock


» Перейти к Дополнительному чтобы также иметь возможность получать из Интернета такие вещи, как погода или прогноз погоды, а также отчеты о фондовом рынке.

Введение

Я занимаюсь созданием цифровых часов дольше, чем хочу признаться. Мой первый был построен с более чем 20 микросхемами серии 7400 и (тогда) новыми семисегментными светодиодными дисплеями от Monsanto. Моя семья была очень впечатлена, особенно когда все эти нули в начале каждого часа. Затем последовала серия, состоящая из специальных микросхем цифровых часов, которые сканировали семисегментные дисплеи. Это значительно уменьшило количество микросхем и добавило переключающие транзисторы для управления током.

Совсем недавно я построил цифровые часы, используя семейство микроконтроллеров Arduino и высокоточные (около одной минуты в год) микросхемы часов реального времени, такие как DS3234 и DS3231. Они позволяют использовать календарь, а также время, и, добавив что-то вроде BME280, вы можете легко добавить температуру, влажность и атмосферное давление на восьмиразрядный семисегментный дисплей. DS3231 теперь доступен на красивой небольшой плате со встроенным резервным аккумулятором и простым I 2 Интерфейс С.

Установка правильного времени всегда была проблемой. Моим ранним подходом было использование переключателей. Мои последние версии добавили ИК-приемник, который позволяет вам изменять часы или минуты по мере необходимости для перехода на летнее время. Простая кнопка «кликер» используется с ИК-приемником для изменения настроек. Потеря питания с резервной батареей (или севшей) все равно означает перепрограммирование и заливку ПО в микроконтроллер.

При первоначальном программировании времени запуска в DS3231, как только правильное время установлено в работающем DS3231, программа запускается снова с закомментированной функцией установленного времени. Батарея теперь будет держать правильное время, даже если питание отключено.

Появление платы разработки ESP32 Wi-Fi позволяет еще больше усложнить цифровые часы. Не нужно большого воображения, чтобы представить цифровые часы с большим ЖК-дисплеем, которые не только показывают обычное время, дату, температуру и влажность, но и могут получать информацию из Интернета, например, погоду или прогноз погоды и отчеты фондового рынка, а также.

Почему время? Со временем, полученным из Интернета, ваши часы всегда будут точны примерно до секунды. Кроме того, вам никогда не придется сбрасывать часы при переходе на летнее время. Получение времени из Интернета сделает это за вас.

Мой дизайн начался с изучения больших семидюймовых ЖК-дисплеев с разрешением 800×480 пикселей. Между eBay, Amazon и другими дилерами есть много вариантов. Мне понравилась цена номера на eBay из Китая, но я не был уверен, какое программное обеспечение потребуется для их запуска. У них есть хороший набор монтажных отверстий в углах. Также оказалось, что многие из них были созданы для подключения к Arduino Mega 2650, и я думал использовать ESP32.

Вместо этого я решил использовать семидюймовый дисплей Adafruit с разрешением 800×480, подключенный к плате драйвера RA8875. К сожалению, дисплей Adafruit не имеет монтажных отверстий, поэтому его установка в коробку потребует дополнительных усилий. По сути, у вас есть кусок стекла, поэтому вам нужно сделать какую-то рамку, чтобы установить его.

Я знал, что RA8875 будет работать на Arduino, и программные пакеты Adafruit всегда работали на меня. RA8875 имеет интерфейс SPI, а ESP32 также имеет интерфейс SPI, так что может быть проще? Знаменитые последние слова! Я не смог заставить RA8875 работать с моим ESP32. Я купил свой ESP32 у Amazon — их плата для разработки HiLetgo ESP-WROOM-32 ESP32 с двухрежимным Wi-Fi 2,4 ГГц.

Я нашел этот ESP32 простым в использовании. Хорошее руководство по установке ESP32 Arduino IDE (интегрированной среды разработки) можно найти на странице 9.0032 https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions и другие, которые легко найти с помощью Google. После нескольких сообщений на форуме Adafruit с просьбой помочь использовать RA8875 с ESP32, Adafruit ответил сообщением: «Мы никогда не пробовали ESP32 с RA8875 — ESP32 также имеет всевозможные странности, которые делают его нестабильным и сложным в использовании. ”

Ну, я не нашел ESP32 сложным в использовании. Через час или два я установил свой на Arduino IDE и получил информацию о времени и погоде по Wi-Fi.

Изучив программное обеспечение RA8875, я обнаружил, что инициализация интерфейса SPI начинается с чтения регистра и проверки возвращаемого значения. Если это значение не соответствует тому, что возвращает Arduino, он просто завершает работу. Я открыл проблему с библиотекой RA8875, и, надеюсь, Adafruit решит эту проблему. Я также протестировал Teensy 3.1 с RA8875, и он работал нормально.

Итак, что делать? Мой дисплей не будет работать с ESP32. Мой ответ состоял в том, чтобы поместить ведомую плату Arduino Nano между ESP32 и RA8875. Немного излишество и настоящие хлопоты для формирования строк на ESP32, а затем отправки их в Arduino Nano, где он должен их проанализировать, а затем отправить необходимые команды на RA8875, но этот метод работает.

Рисунок 1 представляет собой блок-схему схемы, которую я построил. Arduino Nano выполняет большую часть работы. Он управляет ЖК-дисплеем и считывает показания часов реального времени DS3231, а также температуры и влажности BME280.

РИСУНОК 1. Блок-схема цифровых часов.


Конструкция

Я использовал двухточечное соединение на макетной плате размером 3,75 x 2,25 дюйма. Вполне подходит ко всему. Я использовал четырехконтактный разъем для подключения небольшой коммутационной платы BME280 через восьмидюймовую перемычку. Это защищает датчик температуры и влажности от тепла, выделяемого платой-прототипом.

Пара шестиконтактных разъемов с соединительными кабелями соединяет плату-прототип с RA8875. Использовался настенный блок питания на девять вольт / один ампер, который подключался к плате через ответный разъем. Блок питания на девять вольт подает на плату около 200 миллиампер.

Обычный пятивольтовый стабилизатор 7805 подает пять вольт на все пять небольших плат: Arduino Nano; ЕСП32; ДС3231; БМЭ280; и RA8875 с ЖК-дисплеем. Небольшой радиатор размером 1 x 1,25 дюйма на 7805 работает хорошо. Он теплый на ощупь, но не настолько горячий, чтобы на нем нельзя было удержать пальцы (это мое измерение по месту штанов для оценки размера радиатора). Полная схема показана на Рисунок 2 .

РИСУНОК 2. Схема прототипа.


РИСУНОК 3. Полный прототип.


РИСУНОК 4. Прототип платы с компонентами.


РИСУНОК 5. Плата RA8875.


Программное обеспечение

Основой этого проекта является программное обеспечение, учитывая, что аппаратное обеспечение в основном представляет собой набор коммутационных плат, которые просто соединены друг с другом.

Есть несколько определенных библиотек, которые необходимо добавить в папку библиотек Arduino. Проверьте различные операторы #include , чтобы идентифицировать эти библиотеки в программах, представленных в области загрузки для этой статьи. Эти библиотеки были найдены в Интернете в разных местах, и поиск в Google имени приведет вас к их источникам. Конкретные местоположения могут меняться со временем. Если вам нужна помощь в установке библиотек, перейдите по адресу https://www.arduino.cc/en/Guide/Libraries 9.0033 .

Были написаны две программы: одна для Arduino Nano в качестве ведомого; и еще один для ESP32, который используется только для подключения к Интернету и получения времени и внешней погоды, а затем передает их в Nano. Плата BME280 измеряет внутреннюю температуру и влажность.

Программное обеспечение ESP32 обращается к двум серверам через Интернет: pool.ntp.org (протокол сетевого времени) для получения текущего времени; и openweathermap.org для получения информации о погоде. (См. www.ntppool.org/en для получения дополнительной информации.)

РИСУНОК 6. Выход ЖК-дисплея.


Использовать pool.ntp.org довольно просто. Вам необходимо зарегистрироваться для доступа к серверу openweathermap. org. Оба эти сервиса являются бесплатными, и оба сайта предоставляют информацию о том, как пользоваться их сервисом.

Сервер NTP предоставит вам текущее время с точностью до секунды при каждом опросе. Бесплатный сервер openweathermap.org можно опрашивать раз в секунду, но имейте в виду, что служба обновляет информацию о погоде только раз в два часа. Похоже, на этот раз время меняется. Мое программное обеспечение опрашивало эти два сервера каждые 10 секунд. Это было сделано для тестирования, и достаточно опроса каждые 10 минут.

Блок-схема программного обеспечения ESP32 в Рисунок 7 описывает основные операции. Программа сначала подключается к Интернету через Wi-Fi. Ваше локальное имя SSID и пароль Wi-Fi должны быть вставлены в программу, чтобы она подключалась к вашей конкретной сети Wi-Fi. Если по какой-либо причине сигнал Wi-Fi пропал, программа обнаружит это и попытается восстановить соединение.

РИСУНОК 7. Блок-схема программного обеспечения ESP32.


После подключения к Wi-Fi программа просто считывает данные о времени и погоде с серверов, а затем отправляет информацию двумя отдельными строками через порт Serial2 в Arduino Nano. Синий светодиод на контакте 2 ESP32 загорится при подключении Wi-Fi и погаснет, если Wi-Fi потерян. Зеленый светодиод (установленный отдельно на плате) загорается на одну секунду, когда порт Serial2 отправляет свои строки. После того, как зеленый светодиод погаснет, программа задержится на девять секунд, а затем зациклится.

При подключении к серверу pool.ntp.org ваше смещение в секундах от GMT (среднего времени по Гринвичу) указывается вместе со смещением летнего времени в секундах. Что касается погоды, существуют разные способы указать, какое место погоды вы хотите сообщить серверу openweathermap.org.

Я выбираю, используя почтовый индекс и указав британские единицы измерения, которые затем сообщают температуру в градусах Фаренгейта. Вы можете обратиться к программному обеспечению в области загрузки для получения более подробной информации. Программное обеспечение ESP32 было протестировано на плате для разработки ESP-WROOM-32 и плате для разработки модуля WLAN Wi-Fi AZDelivery ESP32 Nodemcu CP2102 — обе доступны на Amazon. Он также был протестирован на оригинальной плате ESP32 DevKitC. Только на плате HiLetgo синий светодиод подключен к контакту 2.

На рис. 8 показана блок-схема программного обеспечения Arduino Nano. Он не только получает строки данных от ESP32, но также содержит схему часов реального времени DS3231 и схему температуры/влажности/давления BME280 вместе с платой RA8875 для управления ЖК-дисплеем.

РИСУНОК 8. Блок-схема программного обеспечения Arduino Nano.


Хотя схема DS3231 сохраняет время достаточно точно, оно сбрасывается каждые 10 секунд для поддержания точности и автоматической настройки на летнее время. Как часто мы сбрасываем время и обновляем погоду определяется программой, работающей на ESP32.

Nano сбрасывает настройки всякий раз, когда получает строку от ESP32.

BME280 работает независимо и выдает температуру и влажность в месте, близком к печатной плате, т. е. внутреннюю температуру и влажность. Наружная температура, влажность и условия получаются из Интернета, когда Nano получает строку погоды от ESP32.

Я хотел, чтобы время отображалось большими цифрами, чтобы их было видно по всей комнате. Программная библиотека Adafruit для RA8875 весьма ограничена, когда дело доходит до вывода текста, поэтому я написал собственную функцию для рисования больших семисегментных чисел размером 80×160 пикселей.

Список деталей

  • Adafruit RA8875 и семидюймовый ЖК-дисплей с разрешением 800×480 пикселей
  • Плата разработки HiLetgo ESP-WROOM-32 ESP32 ESP-32S
  • Ардуино Нано
  • Разделительная плата DS3231 с аккумулятором
  • Разделительная плата BME280
  • Штифты жатки
  • Перемычки коллектора
  • Гнездо 5,5 x 2,1 мм
  • Настенный блок питания 9 вольт/1 ампер
  • LM7805 пятивольтовый регулятор
  • Радиатор для LM7805
  • Зеленый светодиод
  • Резистор 100 Ом
  • Плата прототипа 3,75 x 2,25 дюйма
  • Проволока, припой, винт, гайки

 

Нужно помнить, что каждый раз, когда рисуется число, нужно очищать область под ним, иначе рисунки накладываются друг на друга. Я чувствовал, что вывод текста было трудно читать на любом расстоянии, даже с большими шрифтами на RA8875. Я утолщал шрифт после того, как нарисовал его один раз, нарисовав его снова с местоположением на один пиксель выше и ниже от первого местоположения. Закрашенный кружок темно-желтого цвета для утра и темно-серого цвета для дня. разделяет часы, минуты и секунды.

Хотя мне нравится интерфейс I 2 C на плате DS3231, RTClib (библиотека часов реального времени), которая использует этот интерфейс, имеет особенность, которая мне не нравится. Он настроен только на 24-часовой формат. Большинство цифровых часов используют 12-часовой режим, поэтому вам необходимо проверить нулевой час и часы, превышающие 12, и соответствующим образом настроить час.

Регистры DS3231 позволяют использовать как 12-, так и 24-часовые часы. Кроме того, RTClib не выполняет запись в регистр дня недели в DS3231; вместо этого он использует свой собственный алгоритм для расчета дня недели.

Я подготавливаю время в DS3231, устанавливая текущее время и дату с помощью ). rtc.adjust(DateTime(год, месяц, день, час, минута, секунда) ). Как только DS3231 запустится с правильным временем, я закомментирую эту строку, снова скомпилирую и загружу программу. Батарея на плате DS3231 теперь будет поддерживать работу часов при отключении питания, а при перезапуске программы она не будет устанавливать время, а просто продолжит считывать его с DS3231. Обе программы доступны в загружаемом материале.

Мне понравилось собирать эти цифровые часы. Теперь все, что мне нужно сделать, это спроектировать «подходящую» коробку, в которую ее можно будет установить.
исходный код

Руководство: Как построить 24-часовые цифровые часы

Соглашение

  1. Предложение

  2. ВВЕДЕНИЕ

  3. Дизайн

  4. 3

  5. 3

    9

  6. . 0157
  7. Заключение

  8. Процитированные работы

Предложение

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

Наши эксперты могут предоставить индивидуальное эссе
, адаптированные к вашим инструкциям
только для $ 13,00 $ 11,05/Page

308 Квалифицированные специалисты онлайн

Узнание более

Введение

Difture Online

. повседневная жизнь. Хотя аналоговые часы все еще используются, хотя в основном в декоративных целях, можно констатировать, что с точки зрения точности цифровые часы более распространены. Идея цифровых часов как коммерческого продукта восходит к 19 веку.50-х годов, а точнее, в 1957 году, когда «[t]he Hamilton Watch Co из Ланкастера, штат Пенсильвания, выпустила первые в мире электрические часы» (Руководство BBC). С того времени цифровые часы претерпели множество доработок, хотя основной принцип их работы остался прежним. Принцип в значительной степени основан на функциях обычных аналоговых часов, просто заменяя механические компоненты электроникой. В этом отношении функции цифровых часов состоят из электронной базы времени, имеющей регулярный сигнал, повторяющийся каждую секунду, минуту и ​​час, счетчика и цифрового дисплея (Мозг).

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

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

Общая схема часов будет выглядеть так, как показано на Рис. 1.

Рис. 1: Общая конструкция цифровых часов.

Общий принцип работы цифровых часов можно объяснить разделением часов на 4 отдельные части: источник питания, счетчики, преобразование и выход. Блок питания будет обеспечивать выходы, 5 В для питания часов и сигнал 60 Гц, который будет использоваться в качестве базы времени для часов. Сохранение синусоидальной частоты 60 Гц будет осуществляться через трансформатор переменного тока, а мостовой выпрямитель будет преобразовывать переменное напряжение в постоянное. Соответственно на выходе блока питания получится волна 60 Гц и линия 5 В. Для целей данного отчета подразумевается, что линия 5 В будет подключена к каждому элементу часов, и соответственно то же самое можно сказать и о заземлении.

Секция счетчика цифровых часов будет использовать несколько счетчиков для последовательного преобразования сигналов 60 Гц в секунды, минуты и часы. Поскольку встроенные цифровые часы не будут отображать секунды, такая секция будет напрямую подключена к следующим счетчикам без вывода на дисплей. Принцип счетчиков заключается в последовательном делении на 10 и на шесть, при этом двоичный вывод последовательно представляет секунды, минуты и часы (Мозг). Для часовой секции при делении на 3 максимальное двоичное число десятичасовой секции будет равно двум. Часы должны быть сброшены путем подключения выхода счетчиков часов через логический логический элемент И, который сбрасывает счетчики часов на нули как 24 (Мозг).

Своевременная доставка! Получите ваш Бумага на 100% настроена
Сделано в
всего за 3 часа

Начнем

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

Прототипы

Следуя вышеупомянутой структуре цифровых часов, в настоящем отчете предлагается прототип, в котором реализованы части, описанные в документе. Отличительной чертой прототипов является объединение функций цифровых часов в единую схему, при этом все функции встроены. Функции включают счетчики и преобразователи двоичного кода в 7-сегментный. Схема является модификацией схемы, предложенной на сайте How Stuff Works, с измененными оттуда номерами основных деталей и характеристиками. Схему ИС можно увидеть на графике 2, где все выводы этой схемы должны быть подключены к светодиодам.

График 2: Прототип интегральной схемы для цифровых часов.

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

График 3: Прототип.

Другие компоненты схемы должны включать в себя кнопку настройки и сброса, при этом она может быть дополнительно модифицирована для работы от других источников питания, напр. батареи. В последнем случае следует использовать кварцевый генератор. Соответственно, следует отметить, что колебание 60 Гц в этой схеме подразумевает использование линии электропередачи 110 В, а не 220 В, используемой во многих европейских странах. Корпус часов должен иметь размеры, указанные в разделе дизайна, хотя они могут быть изменены в соответствии с такими параметрами, как размер используемых светодиодов, проводка и любые личные предпочтения.

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *