Система индикации полива цветка на Arduino

Система индикации полива растения предназначена для визуализации состояния почвы, сухая или мокрая. Визуализация происходит при помощи обычного светодиода. Это  довольно простой проект, но его можно модернизировать добавив помпу для  полива растения. И слегка изменив программу добавив нее  условие для полива.

Почва в зависимости от ее состояния имеет разную проводимость. Под состоянием понимается влажная она или cухая. Сухая почва имеет сопротивление порядка 50-100 кОм, а мокрая порядка 10 кОм. Конечно сопротивление зависит не только от того мокрая она или сухая но и от расстояния между электродами. В нашем случае расстояние порядка 5-10 см. Сопротивление также зависит и от химического состава, степени солености и т.д. но про эти свойства мы говорить не будем. Так как на показания Омметра они влияют не сильно.

Схема подключения системы индикации полива растения на Arduino

Cистемы индикации полива растения на Arduino

Схема включаем всего один резистор, который вместе с двумя электродами образует делитель напряжения. Номинал сопротивления определяется опытном путем после сборки схемы и загрузки программы в Arduino. В этом случае вместо сопротивления подключается переменное сопротивление, номинал которого можно изменять вручную.

Последовательность настройки такая:

  • собираем схему с переменным сопротивлением;
  • вставляем электроды в сухую землю;
  • настаиваем порог срабатывания, для этого вращаем потенциометр до тех пор пока он не загорится;
  • после вращаем потенциометр в обратную сторону до тех пор пока светодиод он не потухнет;
  • измеряем значение потенциометра, и заменяем его на сопротивление схожего номинала.

Код программы Arduino для полива растения

int VAL_PROBE = 0; // Analog pin 0
const int MOISTURE_LEVEL = 250; // the value after the LED goes ON
 
void setup() {
    Serial.begin(9600);
}
 
void LedState(int state) {
    digitalWrite(13, state);
}
 
void loop() {
    int moisture = analogRead(VAL_PROBE);
 
    Serial.println(moisture);
 
    if(moisture > MOISTURE_LEVEL) {
        LedState(HIGH);
    } else   {
        LedState(LOW);
    }
    delay(100);
}

Добавить комментарий


Защитный код
Обновить

Последние комментарии

Последнии темы форума

  • Нет сообщений для показа