По этому решил приобрести датчик количество осадков.
Данный датчик входит в состав погодной станции 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
Код: Выделить всё
100 мл / 55 см^2 * 10 = 18,181818181818181818181818181818 mm
18,181818181818181818181818181818 / 50 = 0,36363636363636363636363636363636
Выводы
Достоинства:
- Теперь зная сколько вылелось можно расчитать как поливать. Количество воды на ваш газон мину то что полил дождь (обезательно нужно учесть время просыхания)
- Можно сэкономить воду
- Точность датчика 0,36 мм - получается если идёт слабый дождь то результат о 1 срабатывании мы получим примерно через 15 мин. Для оповещения о начале дождя лучше поставить ещё датчик капель.
- Измерения делаются на поверхности. (Есть и глубокие датчики но они всё равно измеряют 3 зоны)
- Количество влаги им рассчитать почти невозможно. (Даже калиброванный датчик получит приблизительное значение количества влаги)
- Как только включится поливалка датчик будет показывать влажную почву (это можно избежать рассчитав время полива)
СпойлерПоказать
Создаём объект со свойствами: 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());
}