[Железо] Датчик количество осадков

Работа с конкретным оборудованием

Модераторы: immortal, newz20

Ответить
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

[Железо] Датчик количество осадков

Сообщение Ivan » Пт май 27, 2016 1:32 pm

Решил я продолжить автоматизировать огород. Хотел сделать более точное вычисление объёмов полива газона. Раньше я пытался привязаться к прогнозу OpenWeather на количество осадков. Но как показала практика прогноз и факт разные вещи особенно в осадках, даже если прогноз был правильный то но средний на большой участок территории. То есть не факт что дождь прошёл именно над моим газоном или наоборот что прошёлся пиком как раз в моём районе.

По этому решил приобрести датчик количество осадков.
Изображение
Данный датчик входит в состав погодной станции mi-sol
Купил вот здесь: http://ru.aliexpress.com/item/Spare-par ... 67349.html
На удивление дошёл до меня за 10 дней (Как сказал мой знакомый "Был попутный ветер")
Качество очень хорошее. Посмотрим как часто придётся его чистить (пыль всё равно будет попадать)

Принцип действия такой: Капли дождя попадают в верхнюю чашу сбора влаги, стекают по воронке и попадают в одну из чаш карамысла, как только чаша наполняется, карамысло опрокидывается выливая воду и подставляя вторую чашу. В середине карамысла находится магнитик который воздействует на геркон при перекидывании карамысла.

Дальше дело техники. Собрал погодную станцию на MySensors, в ней датчик DHT22 - влажность температура, датчик BMP180 - атмосферного давления. И сам датчик осадков.

На MySensors есть первопроходцы https://www.mysensors.org/build/rain
Там же в ролике я нашёл метод расчёта ММ осадков

Как расчитать
  • Вычислить площадь воронки.
    У нас получается прямоугольник. 5x11 см - площадь получается 55 см
  • Замерить количество срабатываний на количество воды
    Я делал несколько разных измерений по количеству воды и по скорости наливания в итоге получилось 50 тиков на 100 мл (Похоже что датчик делался не от фанаря, а довольно точно).
  • Далее считается по формулам
    Water Volume (ml)/Surface Area (cm^2) * 10 = Rain in mm
    Rain in mm / number of Tips = Calibrate factor
Делаем расчёты для mi-sol

Код: Выделить всё

100 мл / 55 см^2 * 10 = 18,181818181818181818181818181818 mm
18,181818181818181818181818181818 / 50 = 0,36363636363636363636363636363636
Получаем 0,36 мм за 1 срабатывание

Выводы
Достоинства:
  • Теперь зная сколько вылелось можно расчитать как поливать. Количество воды на ваш газон мину то что полил дождь (обезательно нужно учесть время просыхания)
  • Можно сэкономить воду
Недостатки:
  • Точность датчика 0,36 мм - получается если идёт слабый дождь то результат о 1 срабатывании мы получим примерно через 15 мин. Для оповещения о начале дождя лучше поставить ещё датчик капель.
P.S. Я специально не привязывался к датчику влажности почвы по следующим причинам:
  • Измерения делаются на поверхности. (Есть и глубокие датчики но они всё равно измеряют 3 зоны)
  • Количество влаги им рассчитать почти невозможно. (Даже калиброванный датчик получит приблизительное значение количества влаги)
  • Как только включится поливалка датчик будет показывать влажную почву (это можно избежать рассчитав время полива)
Как эти данные отправить на NarodMon.ru
СпойлерПоказать
Создаём объект со свойствами: value, TickFactor
Отключаем оптимизацию присвоения значения в объект

Код: Выделить всё

if (!function_exists('GetSum'))
{
 function GetSum($pvalid, $start_time, $end_time)
 {
   $rez = 0;

   $data=SQLSelect("SELECT VALUE FROM phistory WHERE VALUE_ID='".$pvalid."' AND ADDED>=('".date('Y-m-d H:i:s', $start_time)."') AND ADDED<=('".date('Y-m-d H:i:s', $end_time)."') ORDER BY ADDED");   
 
   $total=count($data);
   for($i=0;$i<$total;$i++)
     $rez += (float)$data[$i]['VALUE'];   
 
   return $rez;
 }
}

// TickFactor
$TickFactor = $this->getProperty("TickFactor");

// Popr id
$prop_id=$this->getPropertyByName("value", $this->class_id, $this->id);

// Val id
$pvalue=SQLSelectOne("SELECT * FROM pvalues WHERE PROPERTY_ID='".$prop_id."' AND OBJECT_ID='".$this->id."'");

//=== Narod mon
$lastSend = $this->getProperty("NarodMonLastSend");
if (time()-(15*60) > $lastSend)
{
 $val = GetSum($pvalue['ID'], $lastSend, time());
 DebMes("Narodmon.ru val:".$val);
 
 $val = round($val*$TickFactor,2);
 $vals[] = array("MAC"=>"R01", "VALUE"=>$val, "TITLE"=>"Rain per 15 min");

 include_once(DIR_MODULES . 'narodmon2/narodmon2.class.php');
 $notify = new narodmon2();
 $notify->sendVals($vals); 
 $this->setProperty("NarodMonLastSend", time());
}
За это сообщение автора Ivan поблагодарили (всего 2):
triada13 (Пт май 27, 2016 2:06 pm) • Pacific (Пт янв 18, 2019 3:10 pm)
Рейтинг: 2.33%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Датчик количество осадков

Сообщение Jager » Пт май 27, 2016 2:14 pm

Ivan писал(а):Решил я продолжить автоматизировать огород. Хотел сделать более точное вычисление объёмов полива газона. Раньше я пытался привязаться к прогнозу OpenWeather на количество осадков. Но как показала практика прогноз и факт разные вещи особенно в осадках, даже если прогноз был правильный то но средний на большой участок территории. То есть не факт что дождь прошёл именно над моим газоном или наоборот что прошёлся пиком как раз в моём районе.
Я тоже экспериментировал с таким датчиком, результат отрицательный.
Чисто механически, если неделю нет дождя сама воронка покрывается пылью, паучки плетут свою сеть, наносит ветром мусор как результат забивается отверстие.
С практической точки зрения знание уровня осадков мало чего дает, от внешних факторов сильно зависит испаряемость и впитываемость в почву воды.
Сейчас поливом я управляю так, в поле зрения камеры попадает газон и на ней хорошо видно почва влажная или сухая. Рано утром если не было дождя ночью включаю автополив на 20 минут. Если день жаркий смотрю в камеру и вижу в каком состоянии земля, если высохла то удаленно еще раз включаю автополив. Вот и вся автоматика, газон чувствует себя хорошо :)
Изображение
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Датчик количество осадков

Сообщение Ivan » Пт май 27, 2016 2:18 pm

Jager писал(а):
Ivan писал(а): если высохла то удаленно еще раз включаю автополив
Хотелось исключить этот пункт
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Датчик количество осадков

Сообщение Jager » Пт май 27, 2016 2:21 pm

Ivan писал(а):
Jager писал(а):
Ivan писал(а): если высохла то удаленно еще раз включаю автополив
Хотелось исключить этот пункт
Как вариант можно включать в полдень по таймеру на 5 минут, даже если был дождь то не навредит.
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Датчик количество осадков

Сообщение Ivan » Пт май 27, 2016 2:25 pm

У нас в полдень нельзя, сгорит всё нафиг.

И потом всё делается для экономии
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Ответить