Автономное устройство для передачи показаний импульсных счётчиков воды по bluetooth le (ble)

Тема в разделе "Проводная и беспроводная связь", создана пользователем Slacky, 20 сен 2022.

  1. Slacky

    Slacky Гик

    Дистанционное снятие показаний счетчиков воды по Bluetooth LE с последующей передачей их в Home Assistant.

    Подробности тут - https://slacky1965.github.io/watermeter_ble/
     
    parovoZZ нравится это.
  2. Slacky

    Slacky Гик

    BTHome изменил формат сообщений. Теперь это версия 2.0, которая сильно отличается от первоначальной.

    В общем так.

    * Рассчитано на два счетчика воды.
    * Не работает с системой namur, только замыкание-размыкание (сухой контакт).
    * Ведет подсчет замыканий-размыканий, увеличивая каждый раз количество литров на заданное значение от 1 до 10 литров (по умолчанию 10 литров на один импульс).
    * Сохраняет показания в энергонезависимой памяти модуля.
    * Передает показания по Bluetooth LE в рекламном пакете в формате BTHome V2.0.
    * Данные датчиков в пакете могут быть зашифрованы AES-CCM.
    * Первоначальная настройка происходит через WEB-интерфейс.
    * Соединиться с модулем можно только с того устройства, с которого производили первое соединение. Первый раз соединиться можно с любого устройства. Чтобы сбросить whitelist, нужно замкнуть контакт SWS на землю более, чем на 5 секунд (или через WEB-интерфейс, если первоночальное устройство соединения доступно).

    Если кому-то еще интересно, то все подробности тут
     
  3. parovoZZ

    parovoZZ Гуру

    WEB страница откуда грузится?
     
  4. Slacky

    Slacky Гик

    С хитхаба.
     
  5. Slacky

    Slacky Гик

    Добавил автоматизацию для Home Assistant.

    Данная автоматизация отправляет время (в виде таймстампа) и значение счетчика при его изменении (увеличении) в mqtt-топик '/watermeter/14_412445/hotwater' (или в '/watermeter/14_483595/coldwater') вот в таком виде '1672665759 230'

    Топики для примера, вы должны указать свои.

    Подробности тут.
     
  6. Slacky

    Slacky Гик

    Подстава нарисовалась, откуда меньше всего ожидал. На стенде все работает великолепно. Но на реальных счетчиках воды происходит наводка и при срабатывании счетчика холодной воды, автоматом увеличивается счетчик горячей. Программно это обойти не получилось. Уменьшение длины (допустимое уменьшение) проводов от счетчиков тоже не помогло. Буду плату разводить по-новой, скорей всего возьму бокс на 4хАА, сделаю плату чуть крупней, на два сегмента АА. Так-что пока сорри, но вот так. Ссылки на плату и фото уберу пока.
     
  7. parovoZZ

    parovoZZ Гуру

    проблема решается очень просто:
    1. увеличением тока в цепи.
    2. модуляцией канала
     
    Slacky нравится это.
  8. Slacky

    Slacky Гик

    Увеличивать ток нельзя, это же BLE устройство, работающее от батарейки.

    Про модуляцию, можете на пальцах сам принцип объяснить, помня, что замыкаем мы канал на землю?

    Спасибо.
     
  9. parovoZZ

    parovoZZ Гуру

    всё можно, если очень хочется.

    в один канал посылаем 10101010
    во второй канал посылаем 10010010
     
  10. parovoZZ

    parovoZZ Гуру

    я тут что подумал - скорее всего, подсчёт импульса ведётся в прерывании и поэтому наведённый импульс также считается. Я бы в прерывании запускал таймер, а уже по окончании подсчёта интервала таймером проверял бы состояние входа - если изменений нет, то засчитываем импульс.
     
  11. Slacky

    Slacky Гик

  12. Slacky

    Slacky Гик

    В общем пришла вторая версия платы. И она заработала также криво. В общем это я лашпед, не проверил.

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

    Короче, никаких наводок нет. Ошибка была в коде. Поправил. Двухдневное тестирование пока глюков не выявило.

    Зато теперь есть два варианта схемы и платы :))