Датчики влажности почвы для Ардуино имеют скверную привычку быстро окисляться. Физика процесса понятна со школы, если забыли - гуглите слово "анод". Я по неопытности думал, что процесс будет протекать медленно, но первый датчик сдох уже через две недели.
Чтобы процесс окисления проходил медленнее, можно подключить питание датчика на цифровой вход Ардуино и подавать напряжение только на время измерения. Схема подключения:
Пример кода для снятия показаний:
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);
}
При снятии показаний раз в час датчик способен прожить до трех месяцев. Сделаете снятие показаний раз в четыре часа - может и год протянет.
Постоянно заказывать датчики лень, поэтому можно сделать датчик самому - для этого нужно два гвоздя и клеммная колодка, можно обойтись без пайки:
А вот так он будет выглядеть через три месяца:
Показания самоделка снимает чуть хуже, но в принципе, это вполне рабочее решение.
Алексей
А можно ли использовать место гвоздей контакты которые менее всего подвержены корозии во влажной земле? И какие например, подскажите пожайлуста
20.03.2022 11:58
Max
Тут электрохимическая коррозия, будет есть любой метал. Ничего не поделаешь.
20.03.2022 19:41