badenbaden / Waterius-Attiny84-ESP12F

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Датчики протечки: алгоритм

dontsovcmc opened this issue · comments

Предлагаю обсудить, как должен работать алгоритм датчиков протечки.

Вопросы:

  1. Читать как дискретный или аналоговый вход?
    дискретный:
  • нельзя будет обрыв детектировать
  • меньше потребление
  • уже так сделал @OloloevReal
    аналоговый:
  • больше потребление (хотя раз в 15 сек не сильно повлияет)
    надо проверить, что компаратор показывает при воде
  1. Как часто опрашивать вход?
    предлагаю раз в ~30 сек

  2. Что делать при детектировании?
    Будим ESP, отправляем данные.
    а. Нужно ли убеждаться, что данные отправлены?
    б. Что делать ,если ошибка отправки данных?
    в. Как сбросить тревогу? Иначе он будет отправлять данные бесконечно, пока вода на датчике.

  3. Как должен работать пин "тревога"?

  4. Нужно ли статус датчика показывать в веб интерфейсе?

Думаю нужно делать как аналоговый вход, опрос раз в 10 секунд (для начала). Детектировать обрыв нужно, иначе нет от датчика нет смысла. Вот только как правильно сделать это детектирование. Сейчас выводы датчика подключены через резисторы к + и - соответственно. При стандартном подключении без контроля обрыва на входе АЦП будет 1023, при намокании значение будет падать, на сколько - проверим опытным путем.
При изменении значения (протечки) включаем порт ALARM. При возврате значения в норму выключать порт ALARM. Это главное, что нужно сделать. Уведомление на разные сервисы это хорошо, но он должен дать команду на закрытие кранов/зуммер/лампа/сигнализация, а уже потом стучаться до пользователя.

Будить есп надо, она должна отправить значения на сервер/mqtt/Blynk. Проверка отправки желательна, но это не первоочередная задача, а вот если ошибка отправки - то повторять попытки пока не будет успешна. Думаю при протечке смысла экономить батарейки нет. Ну а после отправки сам сервис уже пусть связывается с пользователем.