Модернизация модуля ТМ1637 и его применение в WiFi – часах

Широко известный модуль ТМ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. Скетч полностью работоспособен и компилируется с пол-оборота, за что респект его автору.

Функционал часов:

  1. Настройка Wi-Fi с помощью WiFiManager (без жесткого кодирования)

  2. Синхронизация времени NTP

  3. При необходимости обновляет RTC (DS3231)

  4. Отображает время непрерывно.

  5. Синхронизация происходит один раз в день.

  6. Автоматическое снижение яркости в темное время суток

  7. Работает в автономном режиме после синхронизации.

Поскольку в публикации на 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 в милливольтах при изменении освещенности.

4 лайка

Простите за не скромный вопрос: А модернизация модуля TM1637 в чём всё-таки заключалась то?
Простую смену семисегментника сложно назвать «модернизацией»…

Так вон же ж, провод ещё “аккуратненько” припаян, резистор… Мало?

Мне вот тоже непонятно, в чем суть проекта.
И при чем здесь модуль tm1637?
Можно было взять микросхему tm1637 и собрать на ней то, что хочется.
Можно было вообще не использовать tm1637, а слелать просто ногодрыг на esp8266, благо, ее производительности хватит за глаза.
Если изюминка в том, что часы синхронизируются по ntp, то, как указывает ТС

Так в чем суть проекта?
А то складывается впечатление, что:
“Схема - стандартная, скетч - стандартный, корпус - тоже стандартный, но у меня не было сверл на 3,2 и поэтому я просверлил отверстия сверлом 3,5 - в этом и состоит новизна”.

1 лайк

Уже года два, как сделал себе часы к рабочему столу с заменой модуля 0,36 на 0,8, но оформлять это проектом как-то даже не подумал )))

ЗЫ: но желание похвастать тем, что получилось, понимаю. Без стеба :+1:
Просто повод мелковат ))

1 лайк

Кстати, продаются модули и с индикаторами 0,56 дюйма

А отдельно индикаторы и гораздо больше бывают. Я тут как-то выкладывал ссылки вплоть до 5-тидюймовых.

1 лайк

Пральна! И шоб не менее 6.7"


@Vladnur Всё норм. И переделка, и пример использования завсегда домохозяйкам пригодятся. Уж вред то точно не нанесут(в отличии от других проектов)!

3 лайка

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

1 лайк

Там ножек больше и распиновка чуть-чуть, но отличается

Да, я знаю. Но, припаять можно было бы покрасивше. И что бы не торчало.

Тогда на уровень «проект» не будет дотягивать )))

  1. У крупного индикатора расстояние между рядами пинов на 11 мм больше, чем у родного, а длины ножек просто не хватило для впайки всех пинов в прежние габариты.
  2. А использовать шлейф для соединения индикатора с основной платой на 4 линии вместо 14 есть разница при работе “на коленке”? Да что и говорить, если делать по уму, и сам индикатор, и ИМС ТМ1637 надо монтировать прямо на основной печатке часов, тем более обвязки там минимум. Но это для выставки или серийного производства, мне оно надо?

Жидковато у вас получилось. Я делал бутербродом - индикатор запаял на кусок макетки, соединения между макеткой и модулем - шлейфом, после чего посадил модуль на макетку термоклеем. Так неосторожным движением пальца ничего не сломать ))


Понятно, если для выставки не надо, то можно тяп-ляп. Однако ж ты выставляешь?)
Я мог бы предложить конструкцию с твоим индикатором.) Но это при желании.
Как вариант от @v258. Ну а вообще, это от тебя зависит. Кто то старается выложить на публику что бы не стыдно было, а кто то “да и так сойдёт”.

Поскольку индикатор в Вашей конструкции расположен в торце корпуса, понятно желание вписаться в габариты индикатора. Отсюда и “бутерброд” с макеткой. У меня такой задачи не было. Ну а жёсткости, как и эстетики, в наших вариантах примерно поровну, ИМХО :slight_smile:

Я точно так же вписывал бы в габариты в любом случае. Чисто технически так надежнее

Пины на индикаторе тонкие, гнутся от малейшего дыхания. В моем случае они все у основания припаяны к жесткой макетке, т.е. сместить или погнуть их уже не получится при всем желании. В вашем случае модуль с одной стороны просто висит на пинах. Понятно, что если не трогать, никуда не денется, но враг силен… (с)

Это понятно. Как вариант, изогнуть на 90° выводы индикатора, а с платы вывести проводниками аналогично. И торцы спаять.
Когда плата не торчит, даже самому приятно. И от корпуса не зависишь.

В своих самоделках я размещал контроллер между ног индикатора, располагая 5-ти пинный фрагмент (для обмена и ICSP) на краю индикатора.