"Smart" датчик движения

"Smart" датчик движения

MrSyabro

Всем здоровья! Началось все, как всегда, с лени. Как говорится: "лень - двигатель прогресса!" Первым делом я собрал и написал прошивку для устройства управляющего светом в комнате и считывающего данные с датчика, который к нему приставлен. это не сложно и даже разбирать там нечего. Дальше, после того, как мне надоело включать/выключать свет не вставая с кровати, я решил, все таки обуздать датчик движения.

Инструменты


  • NodeMCU (ESP8266) - мозги
  • RCWL-o516 - датчик движения

Прошил себе NodeMCU для простоты написания алгоритма, подкинул датчик и заставил плату посылать сигнал датчика в mqtt... и-и ничего.. ничего хорошего с датчика, сбрасывающего триггер через 2 секунды, естественно, не вышло.

К сути

На самом деле все очень просто. Естественно ничего умного в моем алгоритме нет. Расходимся.

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

Алгоритм

  1. Когда датчик срабатывает, алгоритм: если (свет выключен) { включает свет; запускает таймер на выставленное опытным путем время; если (счетчик < порога) { счетчик += 1 }};
  2. Когда таймер срабатывает {счетчик -= 1; если (счетчик == 0) { таймер останавливается }; если (свет включен){ свет выклчюается }; если (счетчик > 0) { таймер перезапускается }};

Для теста я ставил время на 1 шаг счетчика в 30 секунд. Этого оказалось много и время включенного света перевалило за 15 минут. Установив ограничение в 6 шагов и время 1 шага в 20 секунд продолжаю тестирование. На данный момент я нахожусь рядом с атчиком (лежит на столе где я пишу статью) и свет не погас ниразу, время задержки: 100с. (Таким же было несколько минут назад)

Чем алгоритм лучше обычной задержки?

Датчик может срабатывать раз в 2-5 секунд. Я могу сидеть и залипать в монитор и свет будет мигать с задержкой в 5 секунд - плохи. Датчик может срабатывать на минуту-пять, я пройду по комнате и свет будет гореть в ней еще ~297 секунд.

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

Исходник

Как и сказал, ничего умного.
Спасибо, что дочитали до конца! Всех благ, удачи! ☺️

Report Page