Делаем автополив растений с помощью Arduino. Автополив комнатных растений на Arduino Поливка цветов arduino
Хорошо известная пословица «Ничто не ново под луной» в случае применения автоматического полива растений работает на все сто. Ну чем не автомат марлевый жгут, который непрерывно «поливает» растение, если один конец в банке с водой, а другой закопан в грунт? Или совсем суперполив с помощью системы с хорошей электронной начинкой также охотно выполнит автоматический полив растений – она все может, все сделает, но… Нет же, находятся критиканы - жгут малоэффективный, электроника ценой кусается - дорого, да и не может электронный блок перенастраиваться – для каждого нового применения нужен свой. А здесь желательно что-то такое-эдакое...
Из чего состоит автомат полива?
Вот это «такое-эдакое» мы и попытаемся сделать. Оно будет дешевым, легко перенастраиваться и эффективным – дальше некуда. Логика его работы (говорят, алгоритм) следующая: если земля сухая – автомат поливает, если почва увлажнилась – полив прекращается до высыхания грунта. А сколько ждать? Да вопрос так даже не стоит. Правильным критерием будет «высыхание» грунта. Как только высохло, так и поливаем – в любое время дня и ночи...
А теперь разложим по полочкам наш автоматический полив растений с точки зрения разработчика «умной» поливалки:
- окружающая среда – условия квартиры, наполненный грунтом цветочный горшок, который и нужно поливать;
- блок управления – микроконтроллерная плата, в качестве которой считается наиболее приемлемым подключение ардуино;
- объект управления – банка с водой, исполнительный механизм - насос для перекачки воды;
- дополнительные элементы системы автоматического полива растений:
- ее «глаза» - датчики высыхания грунта и уровня воды в банке;
- «руки» - насос, который будет качать воду в зону полива;
- чистая техника - ключ коммутации, фактически выключатель насоса и два светодиода, зеленый и красный, для индикации «вода есть» и «воды мало».
Казалось бы, что вместо банки с водой нужно просто подключиться к водопроводной трубе, но шлангочки-трубочки по квартире – не очень украшают помещение, так что задача автоматического полива растений решается с использованием автономной емкости, которую надо ручками «заправлять» водичкой. А чтоб банка с водой не раздражала эстетические вкусы ее можно замаскировать декоративным рисунком, чтоб казалось, что так и надо.
Насос, выполняющий автоматический полив растений

Насос для перекачки воды – покупной. Его можно взять от стеклоомывателя, принтера или аквариумный. Любой из них легко справится с задачей, но проще применить от автомобиля. Все просто – пришел, увидел, купил, но перед применением нужно опытным путем подобрать напряжение питания, чтоб его струя меньше напоминала самодельный домашний гейзер. Спокойная водяная струя образуется при напряжении от 8 В до 9 В.
Более сложный вопрос - рабочий ток двигателя насоса. У разных образцов это может быть 2-3 и больше ампер, а допустимая токовая нагрузка по выходу контроллера значительно меньше – 10 - 20 мА. Поэтому необходимо увеличить коммутационную способность блока управления. Для этого к его выходу подключают мощный транзистор, который, благодаря подключению ардуино и обеспечивает включение насоса. Применим сборку транзисторов uln2003 (см. схему), каждый из которых может коммутировать ток 0,5 А. Если входы и выходы объединить параллельно, то допустимый нагрузочный ток будет равняться суммарному, т.е. 0,5 * N. Так и сделаем.
Подключение ардуино – блока управления

Блок управления – одноплатный микропроцессорный контроллер Arduino, который и предназначен для таких простеньких задач. Техника работы с ним простая – отлаживают программу на компьютере и после подключения ардуино «переганяют» ее в процессор. Если что-то нужно изменить, то программу переделывают на компьютере и переустанавливают в контроллер. И при этом ничего не нужно перепаивать, переделывать. Это как раз и есть то, что называют «возможностью перенастройки».
Следующим этапом подключения ардуино к устройству, которое непосредственно выполняет функции автоматического полива растений, заключается в соединение проводов датчиков и силового провода питания насоса с самим контроллером. В данном случае лучше всего для блока питания использовать аккумулятор – полив работает очень короткое время – буквально несколько секунд, и постоянное «дежурство» сетевого блока питания нецелесообразно.
Датчики – «глаза» автомата

Датчик влажности лучше всего сделать из материала не подверженного окислению, например, графитовых стержней. Если не мудрствовать, то пара гвоздей, забитых в изолирующую пластину, за несколько секунд превращаются именно в такой датчик (см. рисунок), который использует подключение ардуино, чтобы дать о себе знать системе автоматического полива растений, а установку графитовых стержней можно отложить на период «сдачи» нашей поливалки в постоянную эксплуатацию.

Датчик уровня воды легко реализуется таким же «гвоздиковым», как выше, но мы сделаем другой – поплавковый (см. рисунок). Его легко собрать из трубки 4, которая фиксируется на банке, а стержень 3 по ней легко перемещается. В нижней части стержня крепится поплавок 2, а в верхней его части находится перемычка 6. На верхнем конце трубки расположена диэлектрическая пластина с двумя контактами 5 провода от которых идут на подключение ардуино.
Принцип датчика прост, как мир: если воды много поплавок 2 поднимает стержень 3, замыкающая пластина поднимается вверх и контакты 5 размыкаются. При снижении уровня воды до метки и ниже, поплавок опускается, и пластина 6 замыкает контакты 5.
Алгоритм устройства управления

Самое важное при конструировании блоков управления на микропроцессорах – правильно построить алгоритм работы. Ведь подробное описание работы на специальном языке программ всех узлов, имеющих подключенный ардуино, определяет порядок опроса и анализа входных сигналов. Кроме того, для выполнения тех или иных действий заданных разработчиком (а это как раз мы с вами), контроллер должен учитывать отрезки времени работы исполнительных механизмов. И вот, что у нас получилось (см. рисунок). Рассмотрим по шагам.
После подключения ардуино в работу, он опрашивает состояние датчика уровня воды и отражает его светодиодами – это сигнализация для нас. Следующий датчик – влажности – может сказать «а почва-то влажная» и тогда блоку управления следует возвратиться в начало – его цикл работы завершился и так далее – без устали по циклу. Как только почва высохла контроллер, благодаря датчику, об этом узнает и начнет отрабатывать свою прямую задачу – полив.
Сначала будет включен насос, например, на 2 сек. А почему не на три-четыре-пять? Да потому, что эти 2 секунды мы определили экспериментально (а вполне могло быть и другое число – все зависит от насоса). Критерием служит количество перекачанной воды. Ее должно быть достаточно для полива в течение некоторого промежутка времени – час-два, может сутки. На смачивание грунта после полива отводится 30 сек (на ваш вкус). Только после отработки этого отрезка времени контроллер продолжит работу дальше, т.е. начнется новый цикл.
Новый цикл – это опять опрос датчика через подключение ардуино, анализ информации и т.д.
Алгоритм работы можно усложнять. Например, понадобится поливать не один горшок, а несколько – не ставить же контроллер на каждый. Для этого нужно использовать и его свободные входы/выходы куда и подсоединить датчики и насосы от каждого горшка, а в алгоритме предусмотреть дополнительные блоки их опроса.
После составления алгоритма работы устройства, на его основе пишут программу и моделируют на компьютере работу программы при помощи специальных отладчиков, которые всегда есть для конкретного контроллера – в нашем случае это ардуино. Отлаженная программа записывается в процессор ардуино, для этого там уже все есть, надо только включить с компьютера соответствующий блок отладчика.
Вариант такой программы приведен ниже (Вы можете скачать текст программы внизу статьи, вместе с чертежами устройства).
Код программы:
// константы
const int dw = 12; // датчик уровня воды на 12 пин
const int dg = 11; // датчик влажности почвы на 11 пин
const int nasos = 2; // управление насосом на 2 пин
const int ledG = 3; // зеленый светодиод на 3 пин
const int ledR = 4; // красный светодиод на 4 пин
// переменные
int dwS = 0; // состояние датчика уровня воды
int dgS = 0; // состояние датчика уровня влажности почвы
//установки void setup() {
// объявляем пины светодиодов и насоса как выходы: pinMode(nasos, OUTPUT); pinMode(ledG, OUTPUT); pinMode(ledR, OUTPUT);
// объявляем пины датчиков и насоса как входы: pinMode(dw, INPUT); pinMode(dg, INPUT);
}
// рабочий цикл void 1оор(){
// считываем состояния датчика уровня жидкости dwS = digitalRead(dw);
// если воды много - включаем зеленый, иначе красный if (dwS == LOW) { digitalWrite(ledG, HIGH); digitalWrite(ledR, LOW);
}
else {
digitalWrite(ledG, LOW); digitalWrite(ledR, HIGH);
}
// считываем состояния датчика влажности почвы dgS = digitalRead(dg);
// если почва сухая, включаем полив if (dgS == LOW) { digitalWrite(nasos, HIGH); delay(2000);
digitalWrite(nasos, LOW); delay(30000);
}
else {
digitalWrite(nasos, LOW);
}
}
Конструкция автомата полива
А теперь займемся размещением узлов нашего автомата. Датчик влажности располагается в грунте горшка на углублении 2-5 см (подбирается экспериментально). Трубка, подающая воду, находится рядом с одним из его электродов. Самый простой вариант емкости – стеклянная банка, а датчик воды с насосом крепятся на ее пластиковой крышке, причем насос можно разместить внутри банки.
Электронику, выполняющую автоматический полив растений – контроллер, блок питания, микросхему ключей uln2003 и резисторы прячем в стандартный корпус, которых сейчас в продаже можно подобрать - на любой вкус. На передней панели устанавливаем светодиоды и разъем, через который осуществляется подключение ардуино с насосом и датчиками.
Вот так в нашем доме может появиться еще один умный помощник, выполняющий автоматический полив растений, который будет следить за увлажнением грунта наших цветов и не скажет «да, знаешь, как то замотался в текучке, забыл». И если все так и случилось, то настоящий «самоделкин» посмотрит вокруг пристально, как будто с вопросом, «что бы еще сделать такое-эдакое?».
Всем доброго дня! Вот и настало лето, все уезжают из города, некоторые из страны, а дома есть какие-нибудь растения которые нужно поливать. В добавок ко всему теплая погода способствует более частому поливу растений. И для того что бы не брать свой любимый фикус на отдых, мы предлагаем собрать для него систему автоматического полива, об этом и будет наша сегодняшняя статья.
1. Об устройстве
Для создания системы полива нам понадобиться:
- Обрабатывающее устройство - по старой традиции у нас за него будет arduino uno
- Датчик влажности почвы - модуль arduino
- Помпа(Водяной насос) - водяной насос так же можно купить в Китае или сделать самому. По скольку напряжение помпы у меня 12 вольт включать буду с помощью реле.
- Другие важные мелочи - шланг меленького диаметра, емкость для воды, провода, источник питания.
Сразу что бы не питать иллюзий скажу, подключать к водопроводу все это дело мы не будем. Что бы избежать нештатных ситуаций, для простоты и удобства будем использовать резервуар(емкость с водой). Из резервуара воду будет качать насос(помпа), небольшой мощности будет достаточно, я буду использовать самодельную помпу с питанием 12 вольт. Хотя при подборе помпы стоит учесть: изгибы шланга, расстояние от насоса до поливаемого растения, тип насоса. В подборе шланга сложного ничего нет, выбираем по диаметру выходного отверстия помпы, но он должен быть не сильно широкий на выходе к растению. При построении системы нужно учесть тип полива, считается оптимальным капельный полив. Исходя из этого приспосабливают свободный конец шланга от помпы.
2. Датчик влажности почвы
Датчик влажности почвы измеряет влажность и выводит аналоговым сигналом от 0 до 1023 либо цифровым(0 или 1). Мы будем использовать аналоговый сигнал для большего контроля меняющейся влажности. Значение 0 это максимум влажности, 1023 максимум сухой. Мы будем использовать значение 200 - достаточная влажность, значение 600 - критическая сухость. Пороги влажности и сухости при необходимости можно изменить в скетче arduino. Сам датчик состоит из двух частей: щуп(опускается в землю) и компаратор. Записывается датчик от 3.3 до 5 вольт, можно использовать встроенный разъем arduino.
Схема компаратора на LM393:
Данные получаются по сигнальному проводу a0 и подключается следующим образом:
3. Практическая реализация
Логика работы: раз в секунду(можно сделать более долгие промежутки) 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++;
}
На сегодня всё, спасибо всем за внимание! Ждем ваших комментариев.
ArdСистема автополива автоматизирует работу по уходу за комнатным цветком. В тематических магазинах продают такую конструкцию по безбашенной цене. Однако вещь стоящая, так как машина самостоятельно регулирует «порции» влаги для растения.
В этой статье читателю предлагается создать собственный автополив на arduino. Микроконтроллер в данном случае выступает системой управления периферийных устройств.
Необходимые инструменты и периферия для реализации проекта «Автополив» на базе микроконтроллера 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
Ниже представлен алгоритм и схема подключения проекта на платформе arduino. Автополив строится следующим образом:
- Помещаем плату для сенсора на микроконтроллер.
- Подключаем анализатор влажности с помощью платы, описанной выше, к аналогичному пину – А0.
- Присоединяем сенсор к микроконтроллеру:
- Контакт CS подключается к пину № 9 на плате.
- Дисплейные контакты SPI соединяются с соответствующим разъемом на той же плате.
- Силовой ключ вставляем в пин №4.
- Коммутатор подводим к силовому ключу в разъемы, обозначаются буквами p+, p-.
- Теперь подключаем водяную помпу с трубкой с помощью клеммника в контакты с буквами l+ и l-. Постепенно перед конструирующим человеком построится схема.
- Втыкаем сенсорную панель, анализирующую влажность, в горшок с цветком.
- Конец трубки вставляем с водой в почву. В случае, если растение вместе с горшком по весу не превышает 2 кг, закрепляем шланг отдельно. Иначе водяная капель может опрокинуть цветок.
- Опускаем водяную помпу в бутылку, наполненную водой.
- Подключаем конструкцию к электрическому питанию.
Ниже предлагаем вам две альтернативные схемы для нашего устройства:
Датчик анализирует статус влажности путем определения кислотности земли. Перед вставкой ирригатора в систему необходимо протестировать и откалибровать оборудование:
- Записываем сведения, выведенные на дисплей. При этом сенсор воткнут в сухой горшок. Это обозначается, как min влажности.
- Поливаем землю с растением. Ждем, когда вода до конца пропитает почву. Тогда показания на сенсорном экране покажут один уровень. Необходимо записать полученные сведения. Это значит max влажности.
- В записном блокноте фиксируем константы HUM_MIN и HUM_MAX тем значением, которое было получено в результате калибровки. Прописываем значения в программе, которую переносим затем на микроконтроллер.
Выше описано конструирование автополива для одного цветка. Однако у любителей комнатных растений дом обставлен горшками с цветами. С одной стороны такой вопрос кажется сложным: необходимо подключить несколько помп и анализаторов увлажнения почвы. Но существует более дешевое и простое решение по конструированию автополива.
В шланге от помпы проделываются 25 сантиметровые отверстия с помощью шила. В полученные дырочки втыкаются кусочки стержней ручек шарикового формата. В итоге получается:
- горшки с растениями выстраиваются в ряд на подоконнике;
- трубка устанавливается на цветочный горшок так, чтобы вода из каждого отверстия лилась в отдельный горшок;
- вуаля: изобретение одновременно поливает все растения.
Пользователь самостоятельно выбирает время для полива, но только для одного цветка. Нередко цветки по массе и размерам одинаковы. Следовательно, почва в горшках сохнет за одинаковое время. Для этого придуман метод комбинации: количество горшков делится по группам равного веса и размера.
Пример кода для Arduino для проекта «Автополив»
Переходим к программированию кода:
//Скачиваем библиотеку для работы дисплея и подключаем к программе #include "QuadDisplay2.h"; //Создаем константу, обозначающую контакт, к которому подключена водяная //помпа #define VODPOMPA_PIN 4; // Создаем константу, обозначающую контакт, к которому подключили //анализатор влаги земли #define HUM_PIN A0; //Min по влажности #define HUM_MIN 200; // Max по влажности #define HUM_MAX 700; //Время между проверками полива #define INTER 60000 * 3; //Объявляем переменную, в которой будет храниться значение влажности unsigned int hum = 0; //В этой переменной будем хранить временной промежуток unsigned long Time = 0; // Объявляем объект из класса QuadDisplay, затем передаем номерной знак //контакта CS QuadDisplay dis(9); //Создаем метод, отвечающий за работу дисплея void setup(void) { //Запуск метода begin(); // Объявляем функцию, которая будет отвечать за выход водяной помпы из //контакта pinMode(VODPOMPA_PIN, OUTPUT); //На дисплее загорается число - 0 dis.displayInt(0); } //Создаем метод, отвечающий за показатель влажности на данный момент void loop(void) { //Рассчитываем показатель увлажнения на данный момент int humNow = analogRead(HUM_PIN); // Если значение показателя не равно предыдущему, то... if(humNow != hum) { //Сохраняем полученные сейчас значение hum= humNow; //Вывод значения на экран displayInt(humNow); } //Задаем условия: если прошел заданный пользователь промежуток времени и //статус влаги в почве меньше необходимого, то... if ((Time == 0 || millis() - Time > INTER) && hum < HUM_MIN) { // Даем сигнал о начале работы водяной помпы digitalWrite(VODPOMPA_PIN, HIGH); //Объявляем потом, длящийся 2 секунды delay(2000); // Завершаем работу помпы digitalWrite(POMP_PIN, LOW); // Ставим в значение переменной Time текущее время и добавляем 3 минуты Time = millis(); } }
Дополнительно вы можете посмотреть пару интересных видео от наших коллег.
На следующем рисунке приведена структурная схема комплексного решения для дистанционного управления и мониторинга системы полива.
Контроллер системы управления собирает данные с датчиков системы и с помощью GPRS-модема передаёт их на сервер. В ответ он получает от сервера команды для управления исполнительными устройствами системы (поливочными клапанами, насосом и клапаном блокировки долива воды в резервуар).
Пользователь имеет доступ на сервер через веб-приложение с ПК или мобильного устройства.
Шкаф управления системой
На следующем рисунке приведена структурно-функциональная схема шкафа управления.
Центром системы является контроллер Arduino Mega.


Возникают случаи, когда модем может попасть в «сложную ситуацию». Иногда для того, чтобы восстановить его нормальную работу требуется аппаратная перезагрузка. Для этого в систему добавлен модуль перезагрузки модема, представляющий собой электромагнитное реле, через которое скоммутировано питание модема.
Сигналы от датчиков уровня воды в резервуаре принимает модуль ввода дискретных сигналов. Датчики имеют выход типа «сухой контакт». Подробнее о них можно почитать . Для того чтобы завести дискретные сигналы от датчиков в контроллер, пропитываем их напряжением 24 В от блока питания. Модуль ввода представляет собой дискретные входы с опторазвязкой, преобразующие входной уровень напряжения в 24 В в уровень 5В, понятный контроллеру.
Для измерения температуры на улице к контроллеру подключен датчик DS18B20. Контроллер производит с ним обмен по интерфейсу OneWire.
В данной статье мы не будем приводить электрическую схему шкафа управления, код программы Arduino и подробно рассказывать о работе веб-сервера, т.к. это тема для отдельного разговора. Для тех, кто хочет углубиться в эту тему мы подготовили .
WEB приложение для управления поливом через интернет
Через веб-приложение пользователь:
- отслеживает текущее состояние системы: уровень воды в баке, температуру на улице, состояние линий полива(полив идёт/полив остановлен).
- управляет поливом (включает и выключает необходимые линии) в ручном режиме
- составляет расписание для полива в автоматическом режиме
- получает оповещение о важных событиях в системе (потеря связи, низкий уровень воды в баке и т.д.)
- анализирует график изменения температуры на улице за время работы системы
- просматиривает события, происходящие на объекте, пользуясь журналом событий
Главный экран управления и мониторинга состояния системы
На главном экране веб-приложения отображаются текущие состояния всех узлов системы: показания датчиков уровня воды в резервуаре и датчика температуры (таблица слева), а также состояние электромагнитных клапанов всех контуров полива (таблица справа).
На этом же экране пользователь может вручную включить или выключить любую из линий полива.
В нижней части экрана отображаются последние события, произошедшие на станции.
Экран управления расписанием полива в автоматическом режиме
На данном экране пользователь может создать расписание для работы системы в автоматическом режиме, чтобы сервер включал и выключал полив на станции без участия пользователя.
Журнал событий
В журнал заносятся важные события на станции: включение/выключение линий полива, обрыв связи со станцией, восстановление связи со станцией, температура на улице ниже заданного уровня, резервуар пуст, резервуар почти пуст.
Оповещение пользователя
В настройках станции пользователь может назначить некоторые события как «предупредительные» или «аварийные». При возникновении этих событий сервер будет оповещать пользователя по электронной почте и (или) СМС. Это могут быть события обрыва связи со станцией, низкий уровень воды в резервуаре или низкая температура на улице.
Нижний предел температуры и время таймаута, после которого система регистрирует обрыв связи, — задаются в настройках.
График уличной температуры
На этом экране отображается график изменения температуры в течение заданного промежутка времени (10 мин., 30 мин., час, 12 часов, сутки, неделя, месяц).
Дальнейшее развитие системы
В дальнейшем планируется повысить информативность системы, дополнив её счётчиками воды. Показания счётчиков будут видны пользователю через веб приложение. На основании этих данных можно будет строить графики расхода воды за длительный период времени.
Кроме того, планируется оборудовать линии полива датчиками влажности почвы и управлять поливом, руководствуясь их показаниями. Это позволит создать ещё более комфортные условия для роста растений и повысить экономию воды.
Заключение
Для тех, кто хочет более подробно изучить технологию обмена данными с удалённым сервером с помощью Arduino и модема SIM900, мы подготовили серию уроков на эту тему. Вот .
На этом пока всё! Надеемся, что было интересно! До новых встреч на LAZY SMART ! Чтобы не пропустить новую статью, вступай в нашу
Для реализации проекта нам необходимо установить библиотеку:
- Библиотека iarduino_4LED (для работы с четырёхразрядным LED индикатором).
О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki - Установка библиотек в Arduino IDE .
Видео:
Схема подключения:
В данном уроке, LED индикатор подключён к цифровым выводам 2 и 3, кнопки подключены к цифровым выводам 11 и 12, силовой ключ к цифровому выводу 10 (с ШИМ), датчик влажности почвы к аналоговому входу A0.
Алгоритм работы:
- При подаче питания
, устройство не активно (на индикаторе мигает текущее значение влажности почвы).
- Если однократно нажать на обе кнопки «A» и «B», то текущее состояние влажности почвы будет сохранено как пороговое (то при котором требуется начать полив) и устройство перейдёт в рабочий режим. Пороговое значение влажности почвы можно изменить в режиме ввода значений.
- Если нажать и удерживать обе кнопки «A» и «B» дольше 2 секунд, то устройство перейдёт в режим ввода значений.
- В рабочем режиме устройство выводит на индикатор показания: текущей влажности почвы, пороговой влажности почвы и времени прошедшего с момента последнего полива. (Пороговая влажность почвы отображается тусклее чем остальные показания). Если устройство находится в рабочем режиме и значение текущей влажности почвы упадёт ниже значения пороговой влажности почвы, то устройство перейдёт в режим полива.
- В режиме полива устройство выводит на индикатор количество секунд до окончания полива и мигает точками, а также подаёт сигнал ШИМ на силовой ключ , который включает насос . Значение ШИМ (скорость мотора насоса) указывается в скетче . Длительность полива устанавливается в режиме ввода значений. По окончании полива, устройство переходит в режим ожидания.
- В режиме ожидания устройство выводит на индикатор надпись STOP и мигает точками. Данный режим предусмотрен для того, что бы влага равномерно распределилась по грунту до перехода устройства в рабочий режим. Время нахождения в режиме ожидания указывается в скетче . По истечении времени режима ожидания, устройство перейдёт в рабочий режим.
- В режим ввода значений можно перейти из любого режима, удерживая обе кнопки «A» и «B» дольше 2 секунд. Данный режим состоит из двух пунктов: установка пороговой влажности почвы (при котором требуется начать полив) и установка длительности самого полива. Вначале отобразится значение пороговой влажности, которое можно изменить нажатием или удержанием кнопки «A» (уменьшение), или кнопки «B» (увеличение). Если однократно нажать на обе кнопки «A» и «B», то значение изменится на текущую влажность почвы. После того как пороговая влажность задана, нужно нажать и удерживать дольше 2 секунд обе кнопки «A» и «B», на экране отобразится длительность полива, которую можно изменить нажатием или удержанием кнопки «A» (уменьшение), или кнопки «B» (увеличение). После того как длительность полива задана, нужно нажать и удерживать дольше 2 секунд обе кнопки «A» и «B», устройство перейдёт в рабочий режим.
- Если в режиме полива нажать любую кнопку , устройство прекратит полив и перейдёт в режим ожидания.
- Если в режиме ожидания нажать любую кнопку , устройство перейдёт в рабочий режим.
Код программы:
#includeПопулярное
- Создаём винные дрожжи своими руками в домашних условиях
- Для православных христиан наступает неделя, предшествующая великому посту
- Значение водных богатств и их охрана презентация
- Соотношение российских и американских званий
- Люди, изменившие ход мировой истории
- Храм Живоначальной Троицы на Воробьёвых горах
- Кто должен сдавать декларацию по налогу на имущество?
- Классическая вероятность и ее свойства
- Население и культура Австрии - сообщение (3 класс Окружающий мир)
- Гонорея в раннем детском возрасте













