РадиоКот :: Первичные Часы на ESP32
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: ЧасыПервичные часыESP32Добавить тег

Первичные Часы на ESP32

Автор: LEVV2006
Опубликовано 20.03.2023
Создано при помощи КотоРед.

Коты привет!

Не отпускаем меня идея первичных часов. В этот раз решил сделать на контроллере ESP32.

Концепция проекта: «Уличные» часы для дачи с возможностью быстрого отключения и простой настройкой.

Расшифруем концепцию более детально!

Слово «Уличные» не зря в кавычках. По задумке часы не защищены от влаги. Они весят на открытой веранде с навесом и на них не попадает дождь. Я принял решения отказаться от дополнительной влагоизоляци, так как это бы усложнило проект. Что будет на практике посмотрим этим летом. НО в любой момент коробочку с электроникой можно промазать герметиком. Так что как говорится «Будем наблюдать» :).

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

«Простая настройка». Вообще с первичными часами всегда много возни с настройками. Особенно если хочешь воткнуть еще и подсветку. Настроек надо вводить масса, а для этого нужен дисплей, кнопки и прочее. Я решил отойти от этого и воспользоваться теми возможностями что дает нам ESP32. Это поднять Wi-Fi сеть и настроить часы используя мобильный телефон.

В целом идея (я надеюсь) понятна. Ничего сложного мудрить я не стал. Взял за основу предыдущий проект и немного его модернизировал.

Думаю, пора переходить к описанию конструкции. А то много букв получается а движухи пока нет :).

Железо:

Часы вторичные-советские. Главное обратить внимание на механизм! Их 2 вида. Один механизм «старый» (дрянь редкостная). Второй механизм «новый» (с ним и надо работать). В часах эти механизмы взаимозаменяемые. И если вы купли ретро «Стрелу», то смело старых мех выбрасывайте и вставляйте новый. Это убережет ваши нервы и силы!

Подсветка- обычная светодиодная лента на 12в

Кнопка- без фиксации с подсветкой на 2 цвета. Покупал в чип и дипе. Больше нигде подобного найти не смог.

Плата- Часы DS3231MZ+, память AT24C32, DC-DC с 12в до 3.3в LM2596SX-3.3, DC-DC с 12в до 24в MAX1771ESA, драйвер часов DRV8870DDA, транзистор подсветки IRLR8113, сама ESP32+COM порт к ней CH340C, датчик напряжения на стабилизаторе TPS70933DBVR.

Фото платы:

 

Фото блока питания. Покупал на алиэкспресс 12в 2А

На блоке питания размещен предохранитель по сети 220в, разъем DC и светодиод, сигнализирующий что на блоке питания есть напряжение.

 Фото часов в сборе:

Фото часов на стене (Повесил временно для теста):

 

Корпуса в проекте:

Корпус для рэа G1068G (95х48х38) / GAINTA

Корпус для рэа NUB505027WH (50x50.4x27) / GAINTA

Софт:

Сразу скажу, что я не программист, а электроника только мое хобби. Поэтому код не совершенен и профессионалу лучше не смотреть :) НО Я СТАРАЛСЯ! :)

Программа написана в среде VS code platformio на базе Framework: Arduino. Решил себя не истязать написанием на С, а поступить как все. Тем более проект крошечный.

Есть 2 режима работы Wi-Fi. Если есть домашняя сеть, то можно часы подключить к ней. Если сети нет, то переключаем режим, автоматически создается точка доступа с именем "Primary_Clock" и паролем "temp1234". Подключаемся к ней с мобильного устройства, и по адресу 192.168.4.1 будет доступна WEB морда устройства.

Настройки часов хранятся в файловой системе устройства. В файле config.json. При запуске устройства настройки считываются и контроллер производит конфигурацию.

В микросхеме памяти хранятся данные по вторичным часам. А именно часы, минуты, полярность и настройка режима Wi-Fi. Эти данные перезаписываются каждый раз, когда происходит любое действие с вторичными часами. Это важно делать всегда. Так как при пропадании электричества накопленного заряда в конденсаторах питания не хватает чтобы успеть записать данные в EEPROM. Ресурс микросхемы, конечно, тратится, но это лучше, чем каждый раз выставлять время при сбое питания.

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

Логика работы самих вторичных часов не поменялась с предыдущего проекта.

Больше по коду сказать особо нечего. Смотрите и читайте комментарии. Может что то будет для вас полезно, и вы позаимствуете :)

Управление:

На корпусе часов есть одна кнопка со сдвоенным светодиодом. 

Двойное нажатие: Прибавляет +1 минуту на вторичных часах. (Иногда бывает, что по какой-то причине. Механизм вторичных часов не срабатывает. Особенно это заметно на старых механизмах. Поэтому данная функция и была добавлена.)

Удержание в течении 5 секунд: Wi-Fi переключится в режим AP. Повторное удержание на 5 секунд вернет режим STA .

Светодиод:

  • В нормальном режиме (Когда нет ошибок и WI-FI в STA режиме) - светодиод не горит.
  • WI-FI в AP режиме - светодиод зеленый.
  • Если при включении есть проблемы с памятью или часами (не верные данные или не читаются параметры), то будет поднят флаг ошибки и светодиод загорится красным. Также он загорится красным при остановки вторичных часов (Кнопка "СТОП" на WEB морде). 

Настройка через WEB интерфейс.

Настройку постарался сделать интуитивно понятной. 

Блок "Настройка часов": Отображает время первичных и вторичных часов в реальном времени. Для настройки первичных часов нужно нажать на кнопку "Синхр.". На устройство отправится время, взятое из браузера вашего мобильного устройства. Для настройки вторичных часов необходимо их сперва остановить нажав на кнопку "Стоп!". Затем установить время в блоке часов и нажать кнопку "Сохранить". (При успешном выполнении действий будет появляться слово "ОК"). А затем запустить часы кнопкой "Пуск" (Появится вместо кнопки"Стоп").

Блок "Подсветка": В блоке настраивается интервал работы подсветки и её яркость. А также есть кнопка выключить/включить подсветку полностью.
После установки параметров необходимо нажимать кнопку "Сохранить".

Блок "Сеть": Здесь отображается "Имя" сети к которой подключается устройство, сила сигнала сети и кнопка с символом "Изменить". При нажатии на эту кнопку откроется дополнительное окно. В этом окне можно просканировать пространство и выбрать доступную сеть, к которой хотите подключиться и указать пароль. Не забывайте, что нужно нажимать на кнопку "Сохранить». Кроме того в блоке "Сеть" можно задать IP адрес устройства нажатием на кнопку с символом "Изменить". ГЛАВНОЕ! IP адрес задается статический! Поддержки DHCP нет!

Кнопка "Reboot" перезагрузит устройство.

Вот и весь проект. Берите, пользуйтесь, модернизируйте! Ведь в совершенстве нет придела!

Всем спасибо что дочитали. Всем пока!


Файлы:
Плата
Прошивка
Схема


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

21 4 5
0 1 0

Эти статьи вам тоже могут пригодиться: