watermeter_ble

Watermeter Bluetooth LE Telink TLSR8253 (Ai-Thinker TB-04)

Сразу хочу выразить благодарность Виктору pvvx за его работу ATC_MiThermomete. Это мне помогло разобраться в нюансах программирования BLE на TLSR8253 (хотя не факт, что я написал полностью правильный код :)). Ну и еще он отвечал на мои глупые вопросы на форуме. Спасибо.

А также моему сыну Алексею, который помог мне со стилями в html, чтобы все выглядело так, как я хотел. Спасибо.

Repository watermeter_ble


Описание


Железо

Выбор пал на недорогой модуль от Ai-Thinker TB-04 (чуть больше 120 рублей)

Ai-Thinker TB-04

Испытывалось все на вот таком модуле от Ai-Thinker TB-04-KIT

Ai-Thinker TB-04-KIT

Чтобы в этот модуль залить прошивку нужно 2-ю ножку микросхемы CH340 соединить с выводом SWS.

Ai-Thinker TB-04-KIT

Саму программу заливки можно скачать у pvvx - TlsrComProg. Спасибо ему еще раз. По большому счету нужны всего два файла TlsrComProg.py и floader.bin


Корпус

Решение самодостаточного модуля было подсмотрено в проекте waterius. Чтобы не изобретать, куда это потом все прятать, берем, так называемый, Battery Holder Box на 3 батарейки АА. Переделываем на 2 батарейки и получаем питание 3 вольта и один сегмент под плату. BOX 3AA BOX 3AA BOX 3AA BOX 3AA


Плата

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

В общем есть два варианта платы. Выбирайте любой. Все работает.

Схема и плата (версия 1)

PCB_V1

Схема и плата (версия 2)

PCB_V2


Готовое устройство

PCB_V1


Софт

Прошивку нужно залить в модуль с помощью github.com/pvvx/TLSRPGM или github.com/pvvx/TlsrComProg825x. Это уж как кому нравится. Затем соедиться с ним через Web-интерфейс и настроить начальные данные - количество литров горячей воды, количество литров холодной воды и количество литров на один импульс (смотрите документацию на ваш счетчик). А также обновить прошивку “по воздуху”. Если нужно шифрование передаваеммых данных, вводим ключ длиной 16 байт, например ‘231d39c1d7cc1ab1aee224cd096db932’, и отправляем его, нажав на кнопку ‘Set BindKey’.

Web flasher

Первое соединение происходит достаточно быстро, потому что период обнаружения выбран малый, 250 мсек. После первого соединение этот период увеличивается до 2.5 секунд для экономии батарейки. Потому на последующие соединения, если таковые будут нужны, понадобится больше времени (не пугайтесь, все работает).


Вроде все. Будут вопросы, задавайте, если смогу, отвечу.

Скриншот из Home Assistant

Home Assistant

Пример автоматизации для Home Assistant


История версий