☰ Оглавление

Система полива растений на Ардуино Уно

В этом уроке объясняется как сделать систему полива растений с сенсорным датчиком и датчиком влажности на основе Arduino Uno. Датчик влажности почвы измеряет влажность почвы, которую вы можете прочитать на ЖК-дисплее. Одним касанием сенсора вы обеспечите растение пресной водой.

Шаг 1. Комплектующие

Для проекта системы полива растений на Ардуино Уно вам понадобится:

  • Резистор 10к
  • Реле
  • Потенциометр
  • Перемычки
  • Сенсорный датчик
  • Датчик влажности почвы
  • 5В водяной насос
  • ЖК-дисплей LCD 16x2

Вам также понадобится:

  • Макет
  • Arduino Uno
  • Скотч
  • Кусок картона

Шаг 2. Подключение компонентов

При установке компонентов не забывайте использовать макет стандартного формата, чтобы все поместилось в корпусе.

Шаг 3. Код системы полива

Для этого шага вам нужно скачать прикрепленный ниже файл и открыть код в редакторе Arduino IDE. Наряду с кодом вы найдете комментарии, которые разъясняют каждую часть кода. Например: вы можете легко изменить текст на ЖК-дисплее на свой собственный текст. Также в разделе Библиотеки нужно скачать и установить библиотеку LiquidCrystal.h, это нужно сделать до начала работы с кодом.

#include <LiquidCrystal.h> // импорт LCD библиотеки

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // LCD соединения

byte heart[8] = { 0b00000, 0b01010, 
                  0b11111, 0b11111, 
                  0b11111, 0b01110, 
                  0b00100, 0b00000 
                 };                 // Специальный символ сердца для дисплея

int sensorPin = A0; // датчик почвы
int sensorValue = 0;
int percentValue = 0;
int TouchSensor = 13; // сенсорный датчик
int pomp = 12; // 5В водяной насос

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2); // LCD 
  lcd.createChar(1, heart); // Специальный символ для дисплея
  pinMode(pomp, OUTPUT);
  pinMode(TouchSensor, INPUT);
}

void loop() {
  if(digitalRead(TouchSensor)==HIGH)       //Считать сигнал сенсорного датчика
   { 
    digitalWrite(pomp, HIGH);   // если сенсорный датчик HIGH (ВЫСОКИЙ), то включить помпу
    Serial.println("Pomp ON"); // Это для проверки показаний элемента
    lcd.clear();
    lcd.setCursor(4, 0); // курсор 1-я строка вверху слева
    lcd.print("WATERING"); //Печать на ЖК-дисплее при нажатии сенсорного датчика (растение получает воду)
    lcd.setCursor(4, 1); // курсор 2-я строка слева 
    lcd.write(1); // Специальный значок сердца для ЖК-дисплея
    lcd.print("SERGE"); //Печать на ЖК-дисплее при нажатии сенсорного датчика (растение получает воду)
    lcd.write(1); // Специальный значок сердца для ЖК-дисплея
    delay(100); 
    lcd.clear(); // После того, как сенсор запущен, очистить текст на ЖК-дисплее
   }
  else
   {
    digitalWrite(pomp, LOW);    // если сенсорный датчик LOW (НИЗКИЙ, не нажат), помпа выключена
    Serial.println("Pomp OFF"); // Это для проверки показаний элемента
    sensorValue = analogRead(sensorPin); // прочитать датчик почвы
    Serial.print("\n\nAnalog Value: "); // Это для проверки показаний элемента
    Serial.print(sensorValue); // Это для проверки показаний элемента
    percentValue = map(sensorValue, 1023, 200, 0, 100); // Калибровка датчика почвы
    Serial.print("\nPercentValue: "); // Это для проверки показаний элемента
    Serial.print(percentValue); // выводить Значение влажности в %
    Serial.print("%"); //Это для проверки показаний элемента
    lcd.setCursor(0, 0); // курсор установлен на первой строке
    lcd.print("Serge's grond"); // Вывод на ЖК-дисплей LCD
    lcd.setCursor(0, 1); // курсор установлен на второй строке
    lcd.print("bevat:"); // Вывод на ЖК-дисплей LCD
    lcd.print(percentValue); // Вывод на ЖК-дисплей LCD значение влажности в %
    lcd.print("%"); // Вывод на ЖК-дисплей LCD
    lcd.print(" water"); // Вывод на ЖК-дисплей LCD
    delay(500); //задержка перед началом цикла
    lcd.clear(); // в конце цикла очистить текст на LCD
   }
  
}

Шаг 4. Создание корпуса

Ниже вы найдете в архиве 3D-модель корпуса этой системы полива растений. Все перечисленные выше компоненты должны идеально поместиться внутри. Если вы хотите создать свой собственный корпус, убедитесь, что вы очень хорошо измерили размеры ЖК-дисплея и сенсорного датчика, чтобы можно было сделать корпус, который подходит им без проблем. Надеемся, что вы знакомы с 3D-печатью.

После того, как вы закончите распечатывать корпус, вы готовы все установить. Сначала мы делаем нижнюю часть, на которой мы прикрепляем все компоненты. Обрезаем картон по размерам основания корпуса. Следующим шагом является размещение ЖК-дисплея и сенсорного датчика в специальных вырезах в корпусе. Если вы использовали прикрепленный файл для 3D-модели, компоненты будут идеально вписываться в вырез. В некоторых случаях вам придется подрихтовать края выреза, корпус слишком жесткий. Убедитесь, что соединительные провода достаточно длинные, чтобы не допустить вытягивания ЖК-дисплея.

Используйте скотч, чтобы закрепить сенсорный датчик на внутренней стороне корпуса. Используйте достаточное количество клейкой ленты, чтобы при прикосновении к ней датчик не ослабел. Теперь мы ставим водяной насос и датчик влажности почвы. Отсоедините перемычки от датчика и насоса и протяните их через отверстие в верхней части. Убедитесь, что у вас достаточно провода для датчика влажности почвы, чтобы вы могли поместить его в почву. Не забудьте приклеить/установить отверстие, через которое проходят провода. Вы не хотите проливать воду на свой макет внутри корпуса.

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

Шаг 5. Итоговый результат (видео)

На этом всё. Желаем вам успехов и новых изобретений.

23.01.2019 | Умный дом | Теги статьи |
Ардуино+