- Датчик влажности почвы
- Практическая реализация
- Arduino — автономный автополив на 1-12 комнатных растений
- Gsm модуль
- Видео, демонстрирующее работу схемы
- Исходный код программы
- Необходимые инструменты и периферия для реализации проекта «автополив» на базе микроконтроллера arduino
- Необходимые компоненты
- Объяснение работы проекта
- Полив комнатных растений автоматически с помощью arduino
- Работа схемы
- Схема подключения и алгоритм работы в проекте «автополив» на базе мк arduino
Датчик влажности почвы
Датчик влажности почвы измеряет влажность и выводит аналоговым сигналом от 0 до 1023 либо цифровым(0 или 1). Мы будем использовать аналоговый сигнал для большего контроля меняющейся влажности. Значение 0 это максимум влажности, 1023 максимум сухой. Мы будем использовать значение 200 — достаточная влажность, значение 600 — критическая сухость.
Схема компаратора на LM393:
Данные получаются по сигнальному проводу a0 и подключается следующим образом:
Практическая реализация
Логика работы: раз в секунду(можно сделать более долгие промежутки) arduino получает значение влажности с датчика. При получении значения больше 550 и если помпа не работала ближайшие 15 минут arduino включает реле(к которому подключен насос) на время time_work.
Задержка 15 минут между поливами сделана для того что бы влага успела впитаться в почву и помпа перекачала больше воды чем надо. Переменная time_work устанавливает время работы помпы, это время за которое ваш насос успеет выкачать нужное количество воды вашему растению.
После полива устанавливается задержка 15 минут для работы помпы, при этом arduino продолжает следить за влажностью. А дальше все циклично. Со временем сделаю датчик уровня воды, что бы помпа не включалась если в резервуаре мало воды и выдавалась индикация.
Схема подключения:
Собственно сам код:
int minv = 600;//малая влажность
int maxv = 220;//полный полив
int normv = 500;//чуть влажная
int value = 0;//полученное значение
int last_value = 0;//последнее значимое изменение
int value_sdvig =50;//значимое изменение
int ralay = 6; //пин реле
int time_work = 10;//время работы помпы в сек
int analogPin = A0;//пин датчика
//Переменные таймаута
int second = 0; // секунды
int time_off = 0; // счетчик оставшегося времени
int pause_time = 15; // время отдыха после полива в минутах
void setup() { // put your setup code here, to run once:
Serial.begin(9600); pinMode(ralay,HIGH);//настройка реле digitalWrite(ralay, HIGH);
}
void poliv()
{ int time_tmp; time_tmp=time_work; digitalWrite(ralay, LOW); while(time_tmp>0 && value>normv){// ждем истечения времени time_work или нормальной влажности почвы delay(1000); value=analogRead(analogPin);//обновляем значение влажности time_tmp--; } digitalWrite(ralay, HIGH); second=0; // сбрасываем секунды на ноль time_off=pause_time;// устанавливаем задержку между поливами
}
void loop() { // put your main code here, to run repeatedly:
value=analogRead(analogPin);
if (value>(last_value value_sdvig)||value<(last_value-value_sdvig)){// если last_value отклонился на value_sdvig выводим value в uart Serial.println(value); last_value=value;
}
if ((value>(minv-value_sdvig)) && time_off<1) poliv();//если значение влажности > критическая влажность - 50 и не было недавних поливов
// временные функции что бы не играться с таймерами
if (second>59)
{ second=0; if (time_off>0) time_off--;
}
delay(1000);//пауза 1 сек
second ;
}На сегодня всё, спасибо всем за внимание! Ждем ваших комментариев.
Arduino — автономный автополив на 1-12 комнатных растений
Всем привет!
Сегодня я закончил сборку автономной системы автополива для комнатных растений, чем и спешу поделиться. В последнее время участники форума мало своих проектов выкладывают, решил это немного поправить.
Видео по моим системам автополива:
Первая система:


Если интерес остался, то дальше, собственно говоря, буду излагать свои мысли на тему систем автополива и опишу свой проект.
Мысли на тему концепции системы
У AlexGyvera было 2 проекта, связанных с автополивом: простейшая система на Digspark на 1 помпу и многоканальная система с дисплеем и кучей наворотов. Начал я с копирования простой системы. Мой опыт изложен в соответствующем разделе форума, повторяться не буду, вот ссылка:
https://dachniymir.ru/threads/Простой-автополив.35/
Многоканальную систему реализовывать не стал, т.к. для меня важным моментом была автономность. Не хочу что-то оставлять включенным в розетку на несколько недель, когда уезжаю в командировку или в отпуск. Супергибкие настройки через энкодер лично мне не особо нужны. Потратить пару минут несколько раз в год, чтобы перепрошить Ардуину для меня не проблема. Регулярно менять настройки у меня нет необходимости. В то же время мне понравилась идея системы с дисплеем. В простой системе на Digispark как раз не хватало информации о текущих настройках и оставшемся времени до ближайшего срабатывания.
Я решил сделать что-то среднее между этими 2-мя системами.
Многие добавляют в системы автополива датчики влажности почвы. В моем понимании такие датчики должны быть в системах полива для открытого грунта, чтобы не поливать растения, если недавно был дождь. В квартире можно подобрать оптимальные интервалы и продолжительность полива и нет необходимости усложнять систему лишними элементами.
В итоге родились следующие требования к системе:
- Автономная работа минимум 1 месяц
- Должна быть возможность настраивать количество поливаемых растений
- Время срабатывания помп должно настраиваться с точностью до часа
- Должно быть информирование:
- Текущие настройки для каждой помпы
- Сколько дней осталось до срабатывания каждой помпы
- Уровень заряда аккумулятора
- Индикация, что идет зарядка аккумулятора от солнечной батареи
Мой проект
Система состоит из 3х помп. Настройки работы каждой помпы задаются отдельно. Маленькие помпы можно использовать с гребенками — разветвителями на 3-4 крана. В итоге можно поливать до 12 растений. Помимо программных настроек работы помп, дополнительные настройки делаются кранами.
На дисплей выводится следующая «таблица»: строки – номера помп, столбцы информация по каждой помпе.
- ПР – период работы. Раз в сколько дней будет срабатывать помпа.
- ЧР- час работы. Указывается час (например «19» — помпа сработает в 19:00), кода сработает помпа.
- ВР – время работы помпы. Указывается в секундах на сколько включится помпа.
- ДО – дней осталось. Через сколько дней произойдет ближайший полив.
- Также выводится текущие время и дата
Можно программно отключить 2 и/или 3 помпу, тогда выводится информация только по активным помпам.
Меры по обеспечению автономности:
- 3 аккумулятора 18650
- Питание от солнечной батареи
- Ардуино уходит в Powerdown и просыпается по Watсhdog
- У Ардуино выпаял стабилизатор напряжения
- Дисплей Nokia
- Дисплей находится в выключенном состоянии, включается только после удержания кнопки, после этого через некоторое время опять выключается
- Все индикаторы либо выпаяны с модулей, либо вынесены на панель и включаются только при удержании кнопок.
Детали:
- Корпус из коробки для еды за 40р из Ашана
- Arduino nano
- Дисплей Nokia
- Модуль часов DS3231
- Аккумуляторы 18650 в холдере
- Повышающий модуль до 5В
- Понижающий модуль до 3,3В для дисплея
- Модуль зарядки аккумулятора TP4056
- Индикатор зарядки аккумулятора
- Солнечная батарея
- Электролитические и керамические конденсаторы, резисторы, светодиоды, полевые транзисторы
- Кнопки и выключатели
Схема
Сначала использовал Мосфет модули с Али, но они много места занимали, решил сделать батарею из Мосфетов с обвязкой из резисторов разъемы для крепления проводов винтами.
В целях энергосбережения отпаял у модуля DS3231 светодиод Power (1). Также конструкция модуля предполагает, что будут использованы аккумуляторные батарейки CR2032. Если вы используете обычные, то нужно отпаять резистор (2), иначе модуль будет постоянно заряжать обычную батарейку, тем самым убивая её.
Общий алгоритм работы программы:
- Просыпаемся по Вотчдогу
- Снимаем текущие данные по времени и дате
- Если дата изменилась, считаем количество прошедших дней для каждой помпы
- Если число прошедших дней совпадает с периодом работы в настройках — проверяем час.
- Если час с модуля времени равен часу указанному в настройках для помпы, подаем напряжение на Пин помпы далее задержка кода (равная интервалу полива из настроек), отключаем напряжение на Пине, сбрасываем счетчик прошедших дней для данной помпы.
- В каждом цикле уходим в сон
- При удержании кнопки активизируется дисплей и отображает информацию. При смене минуты в модуле времени дисплей отключается.
Хотел бы услышать ваши рекомендации по доработке.
Скетч и библиотеки
§
Всем привет!
Сегодня я закончил сборку автономной системы автополива для комнатных растений, чем и спешу поделиться. В последнее время участники форума мало своих проектов выкладывают, решил это немного поправить.
Видео по моим системам автополива:
Первая система:


Если интерес остался, то дальше, собственно говоря, буду излагать свои мысли на тему систем автополива и опишу свой проект.
Мысли на тему концепции системы
У AlexGyvera было 2 проекта, связанных с автополивом: простейшая система на Digspark на 1 помпу и многоканальная система с дисплеем и кучей наворотов. Начал я с копирования простой системы. Мой опыт изложен в соответствующем разделе форума, повторяться не буду, вот ссылка:
https://dachniymir.ru/threads/Простой-автополив.35/
Многоканальную систему реализовывать не стал, т.к. для меня важным моментом была автономность. Не хочу что-то оставлять включенным в розетку на несколько недель, когда уезжаю в командировку или в отпуск. Супергибкие настройки через энкодер лично мне не особо нужны. Потратить пару минут несколько раз в год, чтобы перепрошить Ардуину для меня не проблема. Регулярно менять настройки у меня нет необходимости. В то же время мне понравилась идея системы с дисплеем. В простой системе на Digispark как раз не хватало информации о текущих настройках и оставшемся времени до ближайшего срабатывания.
Я решил сделать что-то среднее между этими 2-мя системами.
Многие добавляют в системы автополива датчики влажности почвы. В моем понимании такие датчики должны быть в системах полива для открытого грунта, чтобы не поливать растения, если недавно был дождь. В квартире можно подобрать оптимальные интервалы и продолжительность полива и нет необходимости усложнять систему лишними элементами.
В итоге родились следующие требования к системе:
- Автономная работа минимум 1 месяц
- Должна быть возможность настраивать количество поливаемых растений
- Время срабатывания помп должно настраиваться с точностью до часа
- Должно быть информирование:
- Текущие настройки для каждой помпы
- Сколько дней осталось до срабатывания каждой помпы
- Уровень заряда аккумулятора
- Индикация, что идет зарядка аккумулятора от солнечной батареи
Мой проект
Система состоит из 3х помп. Настройки работы каждой помпы задаются отдельно. Маленькие помпы можно использовать с гребенками — разветвителями на 3-4 крана. В итоге можно поливать до 12 растений. Помимо программных настроек работы помп, дополнительные настройки делаются кранами.
На дисплей выводится следующая «таблица»: строки – номера помп, столбцы информация по каждой помпе.
- ПР – период работы. Раз в сколько дней будет срабатывать помпа.
- ЧР- час работы. Указывается час (например «19» — помпа сработает в 19:00), кода сработает помпа.
- ВР – время работы помпы. Указывается в секундах на сколько включится помпа.
- ДО – дней осталось. Через сколько дней произойдет ближайший полив.
- Также выводится текущие время и дата
Можно программно отключить 2 и/или 3 помпу, тогда выводится информация только по активным помпам.
Меры по обеспечению автономности:
- 3 аккумулятора 18650
- Питание от солнечной батареи
- Ардуино уходит в Powerdown и просыпается по Watсhdog
- У Ардуино выпаял стабилизатор напряжения
- Дисплей Nokia
- Дисплей находится в выключенном состоянии, включается только после удержания кнопки, после этого через некоторое время опять выключается
- Все индикаторы либо выпаяны с модулей, либо вынесены на панель и включаются только при удержании кнопок.
Детали:
- Корпус из коробки для еды за 40р из Ашана
- Arduino nano
- Дисплей Nokia
- Модуль часов DS3231
- Аккумуляторы 18650 в холдере
- Повышающий модуль до 5В
- Понижающий модуль до 3,3В для дисплея
- Модуль зарядки аккумулятора TP4056
- Индикатор зарядки аккумулятора
- Солнечная батарея
- Электролитические и керамические конденсаторы, резисторы, светодиоды, полевые транзисторы
- Кнопки и выключатели
Схема
Сначала использовал Мосфет модули с Али, но они много места занимали, решил сделать батарею из Мосфетов с обвязкой из резисторов разъемы для крепления проводов винтами.
В целях энергосбережения отпаял у модуля DS3231 светодиод Power (1). Также конструкция модуля предполагает, что будут использованы аккумуляторные батарейки CR2032. Если вы используете обычные, то нужно отпаять резистор (2), иначе модуль будет постоянно заряжать обычную батарейку, тем самым убивая её.
Общий алгоритм работы программы:
- Просыпаемся по Вотчдогу
- Снимаем текущие данные по времени и дате
- Если дата изменилась, считаем количество прошедших дней для каждой помпы
- Если число прошедших дней совпадает с периодом работы в настройках — проверяем час.
- Если час с модуля времени равен часу указанному в настройках для помпы, подаем напряжение на Пин помпы далее задержка кода (равная интервалу полива из настроек), отключаем напряжение на Пине, сбрасываем счетчик прошедших дней для данной помпы.
- В каждом цикле уходим в сон
- При удержании кнопки активизируется дисплей и отображает информацию. При смене минуты в модуле времени дисплей отключается.
Хотел бы услышать ваши рекомендации по доработке.
Скетч и библиотеки
Gsm модуль
В этом проекте мы использовали TTL SIM800 GSM модуль. SIM800 представляет собой четырех диапазонный GSM/GPRS модуль, способен работать в диапазонах частот 850/900/1800/1900 МГц и обеспечивать передачу голоса, SMS, данных с низким энергопотреблением. Внешний вид SIM800 показан на рисунке ниже – он достаточно компактный и не займет много места в ваших устройствах. Модуль SIM800 включает:
- четырех диапазонный GSM/GPRS модуль компактного размера;
- возможность задействования GPRS;
- выход TTL.
Более подробно изучить работу с GSM модулем можно в статье про автоматическую доску объявлений на Arduino. Также можно посмотреть все статьи на нашем сайте, использующие технологию GSM.
Видео, демонстрирующее работу схемы
2 375 просмотров
Исходный код программы
В программе нам сначала необходимо подключить библиотеку последовательной связи (SoftwareSerial library) чтобы задействовать последовательную связь на контактах 2 и 3 платы Arduino, а также подключить библиотеку для работы с ЖК дисплеем.
#include<SoftwareSerial.h>SoftwareSerial Serial1(2,3);#include<LiquidCrystal.h>LiquidCrystal lcd(14,15,16,17,18,19);int led=13;int flag=0;String str=»»;#define motor 11#define sensor 7
https://www.youtube.com/watch?v=5uKY27BFYbY
Затем в функции void setup () последовательная связь инициализируется на скорость 9600 бод/с и задаются режимы работы (на ввод или вывод данных) для используемых контактов. Функция gsmInit вызывается для инициализации GSM модуля.
Serial1.begin(9600);Serial.begin(9600);pinMode(led, OUTPUT);pinMode(motor, OUTPUT);pinMode(sensor, INPUT_PULLUP);lcd.print(«Water Irrigaton»);lcd.setCursor(4,1);delay(2000);lcd.clear();lcd.
Затем в функции void loop () считывается значение с выхода датчика измерения влажности и в зависимости от этого значения включается/выключается мотор водяного насоса и пользователю передаются SMS с помощью функции sendSMS.
void loop(){lcd.setCursor(0,0);lcd.print(«Automatic Mode «);if(digitalRead(sensor)==1 && flag==0){delay(1000);if(digitalRead(sensor)==1){digitalWrite(led, HIGH);sendSMS(«Low Soil Moisture detected.
Необходимые инструменты и периферия для реализации проекта «автополив» на базе микроконтроллера arduino
Ирригатор – устройство, контролирующее влажность почвы. Приспособление передает данные на датчик влажности, который укажет сконструированному автополиву на начало работы. Для составления программы используется язык программирования С .
Таблица с требуемыми материалами:
| Компонент | Описание |
| Микроконтроллер Arduino Uno | Платформа соединяет периферийные устройства и состоит из 2 частей: программная и аппаратная. Код для создания бытовых приборов программируется на бесплатной среде – Arduino IDE. Чтобы составить и внедрить программу на микроконтроллер, необходимо приобрести usb-кабель. Для автономной работы следует купить блок питания на 10 В. На платформе располагаются 12 пинов, роль которых заключается в цифровом вводе и выводе. Пользователь индивидуально выбирает функции каждого пина. |
| USB-кабель | Обязателен в конструировании системы «автополив на ардуино» для переноски кода. |
| Плата для подключения сенсора – Troyka Shield | С помощью платы подключается сенсорная периферия посредством обычных кабелей. По краям располагаются контакты по 3 пина — S V G. |
| Нажимной клеммник | Служит фиксатором для пучковых проводов. Конструкция фиксируется с помощью кнопки на пружине. |
| Блок питания, оснащенный usb-входом Анализатор влажности почвы | Идеальное средство для подключения платформ. В конструкции предусмотрен фонарик, который говорит о начале работы. Приспособление подает сигналы, если почва чрезмерно или недостаточно увлажнена. Подключение к плате производится с помощью 3 проводков. ● MAX глубины для погружения в землю – 4 см; ● MAX потребление электроэнергии – 50 мА; ● Напряжения для питания – до 4 В. |
| Помпа с трубкой для погружения в воду | Управление осуществляется с помощью коммутатора. Длина кабеля достигает 2 метров. |
| Силовой ключ | Создан для замыкания и размыкания электрической цепи. Если использовать приспособление при конструировании автополива ардуино, не потребуется дополнительных спаек. Подключение к основной панели осуществляется также 3 проводами. |
| Соединительный провод – «отец-отец» | Несколько проводов соединяют периферийные устройства. |
| Соединительный провод – «мать-отец» | Проводки также соединяют устройства периферии. |
| Комнатный цветок | Система пригодна для разного типа комнатных растений. |
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- GSM модуль SIM800 (купить на AliExpress).
- Транзистор BC547 (2 шт.) (купить на AliExpress).
- ЖК дисплей 16х2 (опционально) (купить на AliExpress).
- Реле на 12v.
- Водяной насос (купить на AliExpress).
- Датчик влажности почвы (Soil Moisture Sensor) (у нас он самодельный, но при желании его можно купить на AliExpress).
- Резисторы (1 кОм, 10 кОм) (купить на AliExpress).
- Переменные резисторы (10 кОм, 100 кОм) (купить на AliExpress).
- Регулятор напряжения (микросхема LM317) (купить на AliExpress).
- Источник питания 12v 1A.
- Соединительные провода и концевой соединитель.
Объяснение работы проекта
Спроектированная нами система автоматического полива растений не требует никакого участия человека в своей работе, весь процесс управляется платой Arduino, а GSM модуль используется для передачи сообщений на ваш сотовый телефон. Внешний вид собранной системы показан на следующем рисунке.
Если влага присутствует в почве, то тогда сопротивление между двумя контактами зонда для измерения влажности мало, транзистор Q2 остается в открытом состоянии и на контакт D7 платы Arduino подается напряжение низкого уровня. И когда на контакте D7 напряжение низкого уровня плата Arduino передает пользователю SMS “Soil Moisture is Normal. Motor turned OFF” (уровень влаги в норме, насос выключен), водяной насос при этом остается в выключенном состоянии.
А когда влаги в почве становится очень мало, то транзистор Q2 запирается и на контакт D7 платы Arduino подается напряжение высокого уровня. Как только плата Arduino обнаруживает это, она включает водяной насос и передает пользователю сообщение “Low Soil Moisture detected.
На следующем рисунке приведена структурная схема работы нашего проекта.
Полив комнатных растений автоматически с помощью arduino
// установим все датчики влажности PIN ID
intmoisture1=A0;
intmoisture2=A1;
intmoisture3=A2;
intmoisture4=A3;
// объявим значения влажности
intmoisture1_value=0;
intmoisture2_value=0;
intmoisture3_value=0;
intmoisture4_value=0;
// установим выход реле для клапанов
intrelay1=3;
intrelay2=4;
intrelay3=5;
intrelay4=6;
// установим выход реле на насос
intpump=2;
voidsetup(){
// Объявим реле, как выход
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
pinMode(relay3,OUTPUT);
pinMode(relay4,OUTPUT);
// Объявим насос, как выход
pinMode(pump,OUTPUT);
// Откроем порт для мониторинга
Serial.begin(9600);
}
voidloop(){
// читаем значения с датчиков влажности
moisture1_value=analogRead(moisture1);
moisture2_value=analogRead(moisture2);
moisture3_value=analogRead(moisture3);
moisture4_value=analogRead(moisture4);
// проверяем, какое растение нуждается в воде
// и расскоментируйте нужную строчку для конкретного клапана
// установите значение требуемой влажности
//if(moisture1_value<=450){
// digitalWrite(relay1, HIGH);
//}
//if(moisture2_value<=450){
// digitalWrite(relay2, HIGH);
//}
//if(moisture3_value<=450){
// digitalWrite(relay3, HIGH);
//}
//if(moisture4_value<=450){
// digitalWrite(relay4, HIGH);
//}
digitalWrite(pump,HIGH);
digitalWrite(relay1,HIGH);
delay(500);
digitalWrite(relay2,HIGH);
delay(500);
digitalWrite(relay3,HIGH);
delay(500);
digitalWrite(relay4,HIGH);
delay(500);
digitalWrite(relay1,LOW);
delay(500);
digitalWrite(relay2,LOW);
delay(500);
digitalWrite(relay3,LOW);
delay(500);
digitalWrite(relay4,LOW);
digitalWrite(pump,LOW);
delay(500);
// убедитесь, что есть хотя бы одно растение, которое нуждается в воде
// если есть, включите насос
//if(moisture1_value<=450 || moisture2_value<=450 || moisture3_value<=450 || moisture4_value<=450){
// digitalWrite(pump, HIGH);
//}
// Оросите растение в течении 5 с
//delay(5000);
// Выключите насос
//digitalWrite(pump, LOW);
// Пройдитесь по каждому клапану и выключите их
//digitalWrite(relay1, LOW);
//digitalWrite(relay2, LOW);
//digitalWrite(relay3, LOW);
//digitalWrite(relay4, LOW);
// Подождите 5 минут и повторите процесс
//Serial.println(moisture1_value);
//delay(10000);
//delay(300000);
}
Работа схемы
В этом проекте мы использовали самодельный датчик влажности почвы на основе зонда, который будет использоваться для измерения уровня влажности почвы. Для изготовления зонда мы использовали доску, покрытую медью как показано на рисунке ниже (можно использовать ненужный кусок печатной платы).
Плата Arduino будет управлять всем процессом работы нашей системы. Выход схемы измерения влажности непосредственно подсоединен к цифровому контакту D7 платы Arduino. Светодиод, присутствующий в схеме датчика, показывает наличие влаги в почве, когда он горит – влаги достаточно, а когда он выключен – это свидетельствует об отсутствии влаги в почве.
GSM модуль используется для передачи SMS пользователю. Мы использовали TTL SIM800 GSM модуль, который имеет выход непосредственно в TTL модуль, но можно использовать и любой другой GSM модуль. Регулятор напряжения LM317 используется для подачи питания на SIM800 GSM модуль.
LM317 очень чувствителен к максимально допустимому напряжению и перед его использованием рекомендуется прочитать даташит на него. Его рабочее напряжение составляет от 3.8v до 4.2v (более предпочтительно использовать 3.8v). На следующем рисунке показана схема подачи питания на TTL sim800 GSM модуль:
Если вам нужно использовать SIM900 TTL модуль, то вы должны использовать 5V, а если вы хотите использовать SIM900 модуль, то вы должны подключить 12v в DC Jack slot платы.
Реле 12V используется для управления небольшим водяным насосом, работающим от 220VAC. Реле управляется с помощью транзистора BC547, который в дальнейшем подсоединен к цифровому контакту 11 платы Arduino.
ЖК дисплей (опционально) используется для отображения статуса устройства и сообщений. Управляющие контакты ЖК дисплея RS и EN подключены к контактам 14 и 15 платы Arduino, а контакты данных D4-D7 непосредственно подключены к контактам 16, 17, 18 и 19 платы Arduino. ЖК дисплей используется в 4-битном режиме и управляется встроенной библиотекой Arduino.
Полная схема устройства представлена на следующем рисунке.
Схема подключения и алгоритм работы в проекте «автополив» на базе мк arduino
Ниже представлен алгоритм и схема подключения проекта на платформе arduino. Автополив строится следующим образом:
- Помещаем плату для сенсора на микроконтроллер.
- Подключаем анализатор влажности с помощью платы, описанной выше, к аналогичному пину – А0.
- Присоединяем сенсор к микроконтроллеру:
- Контакт CS подключается к пину № 9 на плате.
- Дисплейные контакты SPI соединяются с соответствующим разъемом на той же плате.
- Силовой ключ вставляем в пин №4.
- Коммутатор подводим к силовому ключу в разъемы, обозначаются буквами p , p-.
- Теперь подключаем водяную помпу с трубкой с помощью клеммника в контакты с буквами l и l-. Постепенно перед конструирующим человеком построится схема.
- Втыкаем сенсорную панель, анализирующую влажность, в горшок с цветком.
- Конец трубки вставляем с водой в почву. В случае, если растение вместе с горшком по весу не превышает 2 кг, закрепляем шланг отдельно. Иначе водяная капель может опрокинуть цветок.
- Опускаем водяную помпу в бутылку, наполненную водой.
- Подключаем конструкцию к электрическому питанию.
Ниже предлагаем вам две альтернативные схемы для нашего устройства:
Датчик анализирует статус влажности путем определения кислотности земли. Перед вставкой ирригатора в систему необходимо протестировать и откалибровать оборудование:
- Записываем сведения, выведенные на дисплей. При этом сенсор воткнут в сухой горшок. Это обозначается, как min влажности.
- Поливаем землю с растением. Ждем, когда вода до конца пропитает почву. Тогда показания на сенсорном экране покажут один уровень. Необходимо записать полученные сведения. Это значит max влажности.
- В записном блокноте фиксируем константы HUM_MIN и HUM_MAX тем значением, которое было получено в результате калибровки. Прописываем значения в программе, которую переносим затем на микроконтроллер.
Выше описано конструирование автополива для одного цветка. Однако у любителей комнатных растений дом обставлен горшками с цветами. С одной стороны такой вопрос кажется сложным: необходимо подключить несколько помп и анализаторов увлажнения почвы. Но существует более дешевое и простое решение по конструированию автополива.
В шланге от помпы проделываются 25 сантиметровые отверстия с помощью шила. В полученные дырочки втыкаются кусочки стержней ручек шарикового формата. В итоге получается:
- горшки с растениями выстраиваются в ряд на подоконнике;
- трубка устанавливается на цветочный горшок так, чтобы вода из каждого отверстия лилась в отдельный горшок;
- вуаля: изобретение одновременно поливает все растения.
Пользователь самостоятельно выбирает время для полива, но только для одного цветка. Нередко цветки по массе и размерам одинаковы. Следовательно, почва в горшках сохнет за одинаковое время. Для этого придуман метод комбинации: количество горшков делится по группам равного веса и размера.
