Окисление датчика влажности почвы

Датчики влажности почвы для Ардуино имеют скверную привычку быстро окисляться. Физика процесса понятна со школы, если забыли - гуглите слово "анод". Я по неопытности думал, что процесс будет протекать медленно, но первый датчик сдох уже через две недели.

Чтобы процесс окисления проходил медленнее, можно подключить питание датчика на цифровой вход Ардуино и подавать напряжение только на время измерения. Схема подключения:

Пример кода для снятия показаний:

int moisture = 0; // показания датчика влажности
unsigned long moisture_time = 0; // таймер датчика влажности
unsigned long time_abs = 0; // Разница во времени


void setup() {
  pinMode (8, OUTPUT); // Датчик влажности - питание
  digitalWrite (8, LOW);
}


void loop() {
  time_abs = millis() - moisture_time; // Сколько времени прошло
  time_abs = abs(time_abs);
  if (time_abs > 3600000) { // Раз в час
    get_moisture(); // Снимаем показания датчика влажности
    moisture_time = millis();
  }
}


void get_moisture() {
  digitalWrite (8, HIGH); // Включаем датчик влажности
  delay (3000);
  moisture = analogRead(A0); // получение значения влажности с аналогового вывода датчика
  digitalWrite (8, LOW);
}

При снятии показаний раз в час датчик способен прожить до трех месяцев. Сделаете снятие показаний раз в четыре часа - может и год протянет.

Постоянно заказывать датчики лень, поэтому можно сделать датчик самому - для этого нужно два гвоздя и клеммная колодка, можно обойтись без пайки:

А вот так он будет выглядеть через три месяца:

Показания самоделка снимает чуть хуже, но в принципе, это вполне рабочее решение.

Тэги: 
05.07.2017 09:08