Широко известный модуль ТМ1637, построенный на 4-разрядном 7-сегментном цифровом индикаторе с высотой знакоместа 0.36 дюйма и микросхеме ТМ1637, давно оценен любителями цифровых самоделок за простоту его подключения к различным устройствам, так как является полноценным блоком индикации. Для его подключения требуется всего четыре провода. Пожалуй, его единственным недостатком можно назвать малый размер знаков для применения в более или менее серьезных устройствах, например в настольных часах.
Для меня было заманчиво попробовать заменить индикатор на плате на более крупный, используя все преимущества микросхемы ТМ1637. Следует отметить, что питание модуля осуществляется напряжением 3.3 в. Хотя, по паспортным данным напряжение питания лежит в диапазоне 3.3-5.5 в, питание модуля напряжением 5 в приводит к паразитной засветке сегментов и полной неработоспособности. Искать замену индикатора пришлось в той же номенклатуре низковольтных индикаторов, каким и был родной. Дискретные индикаторы от 1 дюйма и выше не годятся, так как требуют питания от 5.8 до 9в. У них каждый сегмент состоит из 2-4 последовательно соединенных светодиодов. Мой выбор остановился на индикаторе 0.84 дюйма 8402BS-1F с общим анодом (https://aliexpress.ru/item/1005001923228159.html). Существенная разница в размерах индикаторов видна на следующем фото.
А вот существенным плюсом такого выбора стала практически одинаковая цоколевка индикаторов, позволившая напаять замену прямо на плату ТМ1637, с которой предварительно был выпаян родной индикатор. Правда у большего индикатора 14 пинов, а у малого 12, но их чередование совпадает, кроме последней пары 7-8 у 8402BS-1F, на которую выведены светодиоды двоеточия, полностью независимые от внутренней схемы индикатора. Эта пара выводов при пайке отгибается в сторону и потом соединяется с платой отдельными проводками.
При помощи термофена родной индикатор выпаивается из платы, в гнезда 1-6 впаивается Г-образная гребенка, и на плату ставится новый индикатор следующим образом:
Сначала в отверстиях платы пропаиваются выводы 9-14, затем к гребенке напрямую «мостиком» паяются выводы 1-6 и, наконец, выводы «двоеточия»7-8 поверх платы навесным монтажом. Обращаю внимание на то, что двоеточие подключается через резистор 220 ом, светодиоды в нем соединены параллельно и при подаче излишнего напряжения быстро перегорают. Убедился в этом на своем опыте, уже «поджарив» один такой индикатор. В результате подобных манипуляций получаем готовый индикаторный блок, копию ТМ1637, но с индикаторами большего размера.
Теперь о WiFi-часах. В доме на дачном участке хотелось иметь полностью автономные часы, к которым не надо подходить для проверки правильности показаний. Тем более, что бывают хоть и не частые, отключения электроэнергии, да и мобильный интернет бывает на 2-3 часа прерывает работу, особенно в грозовую погоду.
Сразу оговорюсь, что скетч не мой, а найден на сайте Github, вот ссылка для желающих его испробовать https://github.com/jvanshika2603/smart_IoT_clock/tree/main . Правда к скетчу схема часов не прилагается, но я привожу свою макетную, где для наглядности показаны соединения нового индикатора с платой ТМ1637. Скетч полностью работоспособен и компилируется с пол-оборота, за что респект его автору.
Функционал часов:
-
Настройка Wi-Fi с помощью WiFiManager (без жесткого кодирования)
-
Синхронизация времени NTP
-
При необходимости обновляет RTC (DS3231)
-
Отображает время непрерывно.
-
Синхронизация происходит один раз в день.
-
Автоматическое снижение яркости в темное время суток
-
Работает в автономном режиме после синхронизации.
Поскольку в публикации на Github комментариев немного, должен объяснить порядок работы часов. После прошивки, во время первой загрузки часы включают WiFi локальную АР точку свободного доступа, которая позволяет ввести SSID и password Вашей WiFi-сети, а также поправить часовой пояс. Интерфейс конфигурации на подключенном мобильном устройстве появится автоматом, либо при обращении из веб-браузера по адресу 192.168.4.1 После перезагрузки часы последовательно выводят на индикатор четырехзначные коды успешных этапов подключения:
· 1000 – начало соединения к WiFi
· 1111 – успешное соединение с WiFi
· 2000 – проверка присоединения к модулю RT C
· 2222 –успешное соединение к R TC
· 3000 – соединение с сервером NTP
· 3333 – успешное соединение с сервером NTP
· 4000 – сравнение значения времени RTC и NTP
· 4444 – корректировка времени модул я RTC
· 4666 – корректное время установлено
Часы начинают свою работу, сверяя время один раз в сутки, и при отключении интернета продолжат работу от модуля RTC, регулярно проверяя соединение с WiFi.
И несколько слов об автоматическом переключении яркости индикаторов в темное время суток. Эта функция реализована с помощью фоторезистора, присоединенного к выводу А0 платы ESP8266. Я воспользовался первым попавшимся под руку фоторезистором, поэтому при повторении вам возможно придется поиграться с настройкой в скетче переменной ldrStatus. Логика работы скетча такова. Если на аналоговом пине А0 значение ldrStatus > 600, яркость дисплея переключается до минимальной setBrightness=1 (ночной режим). Если значение ldrStatus < 400, яркость дисплея переключается до setBrightness=5 (дневной режим). Перед каждым переключением происходит десятикратная перепроверка ldrStatus, чтобы исключить случайные изменения освещенности. До математического смысла значений этой переменной я докапываться не стал, решив для себя, что это уровень напряжения на А0 в милливольтах при изменении освещенности.










