main:projects:watering

Автополив

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

Соберите все компоненты по схеме:

Загрузите на контроллер скетч:

const int posw = 9; //пин подключения силового ключа
const int BUT = 8; //пин подключения кнопки
const int HUM = A0; //пин подключения датчика влажности почвы
int humidity = 0; //переменная для хранения количества влаги
 
void setup() {
  pinMode(posw, OUTPUT); //назначение пина силового ключа выходным
  Serial.begin(9600); //инициализация монитора Serial-порта
}
 
void loop() {
  
  //Включение по кнопке
  if (digitalRead(BUT) == HIGH) { //если кнопка нажата
    digitalWrite(posw, HIGH); //полить
  } else { //если не нажата
    digitalWrite(posw, LOW); //остановить полив
  }

  //Включение по датчику
  humidity = analogRead(HUM); //измерение влажности
  Serial.println(humidity); //вывод значения в монитор порта
  if (humidity < 300) { //проверка значения влажности
    digitalWrite(posw, HIGH); //полить
    delay(3000); //подождать 3 секунды
    digitalWrite(posw, LOW); //остановить полив
  }
}

Для начала проведите тест работоспособности по нажатию кнопки. Так мы сможем поливать цветок вручную, если показалось что надо бы полить. Затем проверьте какое значение влажности показывает датчик если его поместить в сухую почву, и определите границу, после которой должен срабатывать полив. Для этого в скетче предусмотрен вывод информации и влажности в монитор порта. После определения порогового значения, замените значение в строке скетча

if (humidity < 300)
на то, которое требуется.

А теперь можно смело ехать на дачу, в отпуск или в дальние путешествия.

  • main/projects/watering.txt
  • Последнее изменение: 2025/01/20 09:55
  • 127.0.0.1