Оповіщення про необхідність поливу датчиків вологості. Таймер поливу для самопливних систем

Про розумні будинкиви, мабуть, чули. Багато ідей у ​​цьому напрямку дуже футуристичні, але це не повинно зупиняти.

Деякі здавалися фантастикою лише 20 - 25 років тому, а зараз застосовуються повсюдно. Найближчим часом усі будинки сильно «розумніють» або хоча б почнуть «розумнішати». Напрямок це не тільки перспективний, але й цікавий, тому не варто залишатися осторонь.

Взагалі, розумний будинок- це дуже складна система датчиків, механічних та електронних компонентів, керована за закладеною програмою. Ця система стежить за витратою (і витіканням) води, газу, електрики. Керує освітленням. Включає в себе протипожежні елементи. Забезпечує віддалене керування різними пристроями за телефоном або СМС. Включає елементи захисту від крадіжок та несанкціонованого доступу. Містить устрою безперебійного живлення життєво важливих для всієї системи блоків.

Основне завдання таких систем – полегшити життя людям, переклавши частину турбот на автоматику. За цим принципом ми і працюватимемо, доручивши частину домашньої роботи мікроконтролеру. Почнемо, як завжди, із простого.

Існує безліч поливальних пристроїв, від примітивних, на кшталт марлі, одним кінцем закопаною в горщик з рослиною, а іншим зануреною в ємність з водою до високотехнологічних систем поливу з електронним управлінням. У перших якість та ККД поливу невисока, у других висока ціна, а працюють вони за своїм алгоритмом, який міняти не можна.

Ми розроблятимемо пристрій універсальний, з можливістю функціонального розширення, але при цьому недорогий і ефективний.

Алгоритм роботи автомата поливу рослинпростий: висохла земля в горщику - поливаємо, полили - чекаємо, поки висохне. Начебто все просто на перший погляд. Складаємо список необхідних компонентів: мікроконтролерна плата, насос, силовий ключ керування двигуном насоса, датчик вологості грунту, ємність з водою (насправді добре підключитися до водопроводу, але краще не будемо:-) Щоб система була повністю автономною, необхідно її оснастити пристроєм оповіщення про витрату води, наприклад, зелений світлодіод – води достатньо, червоний – води залишилося мало, треба долити. Значить, потрібний ще датчик рівня води.

Насос для поливу рослин

З перерахованого вище все, крім насоса, виготовимо самостійно. Насос підійде будь-який малопотужний. Можна пошукати в старих і зламаних струменевих принтерах або купити в автозапчастинах насос для склоомивача, найпростіший я знайшов за 90 рублів.

Важливо: перш ніж підключати насос до готового пристрою, перевірте його у роботі. Автомобільний насос може видати фонтан за кілька метрів; вдома таке «поливання» можуть не зрозуміти та заборонити на корені. Підберіть досвідченим шляхом оптимальну напругу. Автонасос розрахований на живлення від бортової мережі 12 В, на моєму екземплярі достатній напір з'являється вже при напрузі 8…9 В. Насос від принтера напору в кілька метрів не дасть, але з ним інша проблема: у принтері він качав чорнило, а вони дуже важко відмиваються, і такий насос найакуратніше необхідно буде промити.

Про датчики

Датчик вологості ґрунту найкраще зробити графітовим, металевий схильний до електролізу та корозії, у зв'язку з чим його властивості з часом погіршуються. Хоча в нашій експериментальній установці нормально працюють датчики із цвяхів та мідного дроту.

Датчик із цвяхів - найпростіша конструкція. Для його виготовлення потрібен шматок пластику або гуми, два цвяхи, дроти та кембрик (ізоленту).

Датчик рівня рідини можна зробити так само, як датчик вологості грунту, а можна придумати конструкцію поплавкового типу. Другий варіант кращий. На малюнку 3 варіант такого датчика, де 1 - ємність з водою для поливу та відміткою мінімуму, 4 - трубка з будь-якого матеріалу та стрижень 3, який вільно ходить у трубці. Трубку та стрижень можна взяти від старої кулькової ручки. Внизу на стрижень кріпиться поплавець 2 (шматок пінопласту). У верхній, надводній частині конструкції на трубці розміщуємо на пластиковій пластині контакти 5, це і будуть контакти датчика. Зверху на стрижень кріпимо струмопровідну пластину 6. Хід стрижня в трубці 1...2 см. До контактів 5 припаюємо дроти для підключення до Arduino. Трубка 4 нерухомо кріпиться усередині ємності.

Принцип роботи датчика є наступним. Коли води багато, поплавок 2 виштовхує стрижень 3 до упору вгору, при цьому пластина 6 не стосується контактів 5. Коли рівень води опускається нижче за позначку МІН, поплавок опускається разом з рівнем води і опускає стрижень з пластиною б, яка, у свою чергу, стосується контактів 5 та замикає їх між собою. Контролеру залишається тільки зчитувати стан контактів 5. Якщо ліньки возитися, можна купити схожі в автозапчастинах, вони там продаються як датчики рівня рідини, що охолоджує, ціна найпростіших 100 - 150 рублів.

Управління довіримо Arduino

Для неї це тривіальне завдання. Датчики одним контактом підключаємо до піна Arduino і через високоомний резистор підтягуємо до «землі», іншим контактом - до +5 живлення Arduino. Для вибору способу підключення насоса потрібно знати струм, який він споживає в режимі роботи, причому обов'язково при перекачуванні води; на холостому ході струм може бути меншим. Якщо струм менше 3,5 А, можна для підключення насоса застосувати транзисторну збірку uln2003.

Кожен вихід uln2003 може керувати навантаженням 0,5 А. Я підключив паралельно всі сім входів і виходів для збільшення струму навантаження: 7×0,5=3,5 А. Якщо струм насоса більший за 3,5 А, то можна поставити польовий транзистор, наприклад, irf630 (але до нього потрібні додаткові елементи). Цей транзистор витримує струм до 9 А. Якщо вашому насосу потрібен більший струм, то змінюйте насос, а то в нас вийде не поливалка, а брандспойт:-)

Для харчування автомата поливу рослинможна використовувати акумулятори від радіокерованих іграшок або мережевий блок живлення. Вибране джерело живлення має бути розраховане на струм, необхідний для насосів. Я зупинився б на акумуляторному живленні, насоси включаються не часто і на короткий час, тому в блоці живлення, включеному в мережу постійно, немає необхідності. Крім того, згодом можна додати до програми контроль заряду акумулятора та сигналізацію необхідності заряджання.

Блок-схема алгоритму, що управляє, представлена ​​на малюнку нижче. Після запуску пристрою в безперервному робочому циклі опитуються датчики і виходячи зі стану кожного датчика виконуються дії. Датчик рівня води керує світлодіодами. Датчик вологості ґрунту керує насосом.

Програма проста, але потребує коригування у кожному конкретному випадку. Особливо потрібно приділити увагу паузі між включенням і вимкненням насоса: чим менше горщик для квітів і чим більша продуктивність насоса, тим менше повинна бути пауза. Також від розмірів горщика залежить і пауза після вимкнення насоса. Після поливу земля має просочитися, інакше, якщо волога до датчика не дійде, система включить полив ще раз. Оптимальний варіант - трубку подачі води розмістити поруч із датчиком, щоб земля в районі датчика просочувалася відразу. Тут же наголошу: рівень вологості для включення поливу можна регулювати самим датчиком, занурюючи його на різну глибину.

Код програми

// Константи
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);
}
}

Щодо коду хочу сказати таке. Для його спрощення я поставив команди delay, на які сам лаявся. Через delay одночасно наш пристрій застигає на 30 секунд (а може, доведеться поставити і більше). Але в даному пристрої це не критично. Якщо в результаті пристрій буде поливати 10 рослин і відбудеться збіг, що все треба полити одночасно, думаю, 300 секунд, які доведеться чекати останній рослині, не так вже й важливі.

А ось для джерела живлення таке рішення відіграє позитивну роль: воно не дозволить включити 10 насосів одночасно. Перший delay(2000) включає на 2 секунди насос, якщо у вас велика рослина у великому горщику, то час треба збільшити, якщо насос дуже продуктивний, то навпаки зменшити. Другий delay(30000) дає ґрунту 30 секунд просочитися водою, про це я писав раніше. Можливо, цей час також потрібно регулювати.

Конструктивно пристрій складається з двох частин – електронної та механічної. Електронну частину та елементи живлення бажано помістити в корпус, щоб випадкові бризки не вивели електроніку з ладу. Можна задіяти не всю Arduino, а мікроконтролер, кварц з конденсаторами та стабілізатор живлення на 5 В. У цей же корпус поміщаємо мікросхему uln2003, резистори, виводимо на лицьову панель світлодіоди та встановлюємо роз'єм для підключення датчиків та насоса. Якщо насос потужний і uln гріється, то в корпусі свердлимо отвори для вентиляції. Додатковий індикатор увімкнення пристрою встановлювати не потрібно, один із світлодіодів рівня води завжди включений, він і виконає цю функцію.

Корпус для електронної частини можна виготовити із будь-якого матеріалу або підібрати готовий. Для ємності можна застосувати пластикову пляшку або скляну банку відповідного розміру, а можна склеїти із пластику. Кріпимо датчик рівня рідини та встановлюємо насос. Якщо насос доведеться занурювати на дно (а бувають і такі), то дуже акуратно ізолюємо всі його проводи. Від насоса до горщика з рослиною проводимо трубку відповідного діаметра. Купити таку можна в магазині автозапчастин разом із насосом або підібрати відповідну гумову чи силіконову. На обід горщика вигадуємо кріплення для трубки таким чином, щоб при подачі води не було бризок. Датчик вологості встановлюємо у безпосередній близькості до трубки. Щоб скляна або пластикова посудина, що стоїть поряд з рослиною, не лякала оточуючих своїм виглядом, можна за допомогою акрилових вітражних фарб надати їй авторський дизайнерський стиль.

Далі випробування. Не забувайте: від роботи пристрою залежить благополуччя рослини. Перед проведенням практичних випробувань проведіть стендові випробування, потестувавши кілька днів пристрій з горщиком без рослини. Земля в ньому не повинна бути залита або пересушена. У разі потреби датчик вологості поглибіть більше або, навпаки, підніміть вище. Регулюйте тривалість роботи насоса в програмі. Він не повинен кожні п'ять хвилин видавати по краплі, але й не повинен щотижня заливати землю. Під час експерименту слідкуйте за температурою електронних компонентів.

Не допускайте перегрівання!

Коли все налагоджено, переходьте до практичних випробувань, взявши саму невибагливу рослину. Уважно стежте за станом рослини, якщо щось негаразд, зупиняйте експеримент до з'ясування причин. Якщо все нормально, підключайте Arduino ще один датчик і насос, дописуйте код і автоматизуйте полив ще однієї рослини. Без додаткового розширення портів Arduino подолає десяток рослин.

Додаток. Код без коментарів:
const int dw = 12;
const int dg = 11;
const int nasos = 2;
const int ledG = 3;
const int ledR = 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 loop()( 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); ))

Попередня стаття: Наступна стаття:

Якийсь час тому я прикинув, що було б непогано автоматизувати полив на дачі. Огляди деяких користувачів муськи також відіграли не останню роль у ухваленні цього рішення. Але оскільки електроніка - це не мій профіль, вирішено було робити апаратну частину проекту максимально спрощеною, і якомога обійтися без ЛУТ, травлення плат та інших складнощів. Коротше, хотілося реалізувати свою систему як конструктор, зібраний зі стандартних компонентів, а вийшло це чи ні - вирішувати вам.

UPD: додано скетч для Ардуїно.

1. Осмислення хотілок та впорядкування думок проекту
Проект спочатку замислювався приблизно в такому вигляді: 4 потужні розбризкувачі (у перспективі 8), стільки ж електромагнітних клапанів, релейний модуль для них, екран 16x2 символів, годинник реального часу та Arduino як мозок.
Я розраховував, що для керування клапанами буде достатньо якогось простого меню, через яке можна задавати поточний час, час початку поливу та тривалість роботи.
Потім прикинув, що вісім входів ардуїни віддавати на клавіатуру – це надто. І взагалі, не всі клавіатури однаково корисні скрізь виправдане використання цифрового блоку; адже потрібно не тільки вводити циферки, але і реалізувати навігацію по меню.
А якщо так, то краще використовувати джойстик - це більш універсальне рішення, ніж цифрова клавіатура, та й управління стає «інтуїтивним»… зрозуміло, якщо його вдасться таким зробити… Взимку були куплені релюшки, один 12-вольтовий клапан, один розбризкувач, ардуїн і екран, і в лютому-березні я почав налагоджувати скетч для поливалки.
У процесі розробки програмної частини було внесено ще кілька змін до початкового проекту. Зокрема, я додав кілька датчиків температури-вологості та блок ручного керування клапанами. Крім того, для захисту від роботи двигуна вхолосту я вирішив поставити на вхід датчик витрати води, щоб аварійно відключати двигун у разі тривалої відсутності потоку.
Для чого стільки датчиків? Та просто стоять вони не дуже дорого, порожні входи на платі залишалися, а знати температуру та вологість на різних частинах ділянки корисно. Датчики я планував поставити в теплиці, на вулиці та в приямці для насосної станції, а також десь на городі розмістити датчик вологості ґрунту та датчик температури ґрунту.
А взагалі - покажу я краще таблицю датчиків та пінів ардуїни

2. Закупівля необхідних компонентів
Наводжу список компонентів системи, куплених у Китаї (більшість придбав на AliExpress, але кілька лотів узяв на Ebay - там було дешевше). Два лоти вже знято з продажу, тож замість посилань на них будуть снапшоти – аби зацікавлені люди знали що шукати.
1, ціна 6,36 $ (лот у іншого продавця, т.к. мій продавець зняв цей датчик з продажу)
1 , ціна 0,74$
1 , ціна 0,63$
1 , ціна 1,16$
1 , ціна 0,56$
1 , ціна 1,79$
1 , ціна 1,1$
1 , ціна 0,66$
1 , ціна 0,5$
1 , ціна 1,35$
1 , ціна 3,56$
1 , ціна 0,84$
3 , ціна 0,99$ за штуку, всього 2,97$
4 , ціна 5,59$ за штуку, всього 22,36$
4, ціна 3,62 $ за штуку, всього 14,48 $. Аналоги легко шукаються
4 , ціна 0,95$ за пару, всього 1,9$
Підсумкові витрати в інтернетах - 60,96 $

У місцевому будівельному магазині було куплено такі речі:
2 бухти поливального шланга 5/8 (по 30м) - 540000 бел.рублей, або приблизно 28$
8 муфт 1/2 - 112000 бел.рублей, або приблизно 5,8 $
3 трійника 1/2 - 60000 бел.рублей, або приблизно 3$
8 штуцерів 15 * 16 - 92000 бел.рублей, або приблизно 4,8 $
Підсумкові витрати в офлайні - 804000 бел.рублей, або 41,2 $

Не увійшло в цей перелік - деякі речі з цього переліку дісталися мені умовно-безкоштовно (стара мотлох), на якісь речі я просто забув ціни. Це:
40 метрів 4-жильного сигнального кабелю для підключення температурних датчиків;
40 метрів найдешевшого 2-жильного мідного кабелю для передачі 12 вольт на електромагнітні клапани;
2 розгалужувачі RJ-11, які були використані як виходи для підключення датчиків температури та вологості, і 4 конектори для кабелів з датчиками;
2 розгалужувачі RJ-45, для зв'язку блоку управління, що знаходиться в будинку, з блоком реле і датчиків ґрунту, що знаходяться на вулиці поруч із насосом, і 4 конектори для кабелів;
старий кабель (кручена пара) - метрів 30-40, для з'єднання ардуїни з релюшками;
конектор для підключення дисководу, випаяний зі старої материнської плати, та шлейф від дисковода;
старий блок живлення на 24 вольти;
обрізання меблевого щита завтовшки 12-16 мм для виготовлення коробок для системи.

Фотки розгалужувачів до застосування не зробив, виглядають приблизно так:

3. Виготовлення того, що не було куплено
Деякі речі з тих чи інших причин довелося робити самостійно із підручних матеріалів. Постараюся тут описати, що і як було зроблено, і чому саме так не інакше.

3.1 Датчик вологості ґрунту(Сподіваюся, довгоживучий)
Як ви можете помітити, у списку покупок відсутній датчик вологості ґрунту, хоча в проекті він заявлений. Справа в тому, що сама ідея закопувати в землю шматок текстоліту з тоненькими смужками металу мені здалася досить маячною, тому я вирішив знайти спосіб краще. Подивившись по інтернету, я знайшов на тематичному форумі, там є хороші поради та приклади. Загалом, вирішив зробити так само, як там і написано: 2 провідники, резистори та 3-жильний провід. Як катод і анод була використана одна велосипедна спиця, безжально покусана на частини. Ось для порівняння шматки донора та ціла спиця


Паяємо дроти, резистори та шматки спиці - загалом, робимо все так, як написано на форумі


Потім тимчасово фіксуємо анод і катод на пластилін, щоб закласти наше рукоділля термоклеєм


Далі як форму було взято маленький стаканчик від дитячого йогурту, в ньому я зробив отвір для дроту, акуратно встановив конструкцію всередину і залив анкерним складом Ceresit СХ-5






Форумчани рекомендують гіпс, але під рукою його не виявилося, думаю що цемент, що швидко схоплюється, буде не гірше.
Висохло - розкриваємо






По готовому датчику про всякий випадок пройшовся масляною фарбою в пару шарів, щоб датчик вимірював саме вологість грунту, а не вологість шматка бетону.

Для використання цього мегадевайсу потрібне попереднє калібрування. Робиться це елементарно: беремо сухий ґрунт, у нього тикаємо саморобний датчик, перевіряємо та записуємо отримане значення вологості. Потім ллємо туди стільки води, щоб вийшло невелике болотце і знову знімаємо значення з датчика.
Швидко відкалібрувався ось цим скетчем з форуму:
#define PIN_SOIL_LEFT 6 #define PIN_SOIL_RIGHT 7 #define PIN_SOIL_HUMIDITY 0 void setup()( Serial.begin(9600); pinMode(PIN_SOIL_LEFT, OUTPUT); pinMode(PIN_SOIL_RIGID) ; ) void setSensorPolarity(boolean flip)( if(flip)( digitalWrite(PIN_SOIL_LEFT, HIGH); digitalWrite(PIN_SOIL_RIGHT, LOW); )else( digitalWrite(PIN_SOIL_LEFT, LOW); digitalWrite(PIN_SOIL_RIGHT, HIGH); ) ) void loid delay(1000);int val1 = analogRead(PIN_SOIL_HUMIDITY);delay(1000);setSensorPolarity(false);delay(1000); ; ) void reportLevels(int val1,int val2)( int avg = (val1 + val2) / 2; String msg = "avg: "; msg += avg; Serial.println(msg); )
У моєму випадку значення на датчику було трохи більше 200 у сухому грунті, і трохи менше 840 у вологому.
Тепер у нас є мінімальний та максимальний рівні вологості конкретно взятого ґрунту, їх потрібно буде внести у відповідні константи в основному скетчі. От і все!

3.2 Блок живлення клапанів
Можна було, звичайно, купити в Китаї звичайний блок живлення на 12 вольт, що видає хоча б 1 ампер, але в засіках Батьківщини купі старого барахла знайшовся зарядник від дохлого шуруповерта, що видає полампера при напрузі 24 вольти. Тому був куплений понижувальний перетворювач на LM2596, а потім успішно вбудований у старий блок. Окремих фоток процесу я не робив, бо не про це огляд… Ось модифікований блок разом із клапаном, зійде за приклад


У корпусі блоку було зроблено отвір, зручне регулювання напруги. Тепер за допомогою викрутки та мультиметра можна виставити будь-яку напругу від 5 до 24 вольт. Вийшло досить непогано, як мені здається. На жаль, я пролуг Aloha_ про знижувальні перетворювачі ... Але в моєму випадку все начебто нормально, перегріву не помічено.

3.3 Тримачі для розбризкувачів
Ось цю штуку купити точно не вийде! Бо зроблена вона в кількості 4 одиниць за спецзамовленням:) Хоча тут все просто: напівдюймова труба заввишки один метр, знизу зроблений вигин під 90 градусів і приварений куточок довжиною 30-40 см, щоб утримувач можна було встромити в землю в потрібній частині ділянки. Вгорі різьблення має бути внутрішнє на півдюйма (у моєму випадку там просто наварена муфта), внизу - кому як зручніше. У моєму випадку там зовнішня півдюймова різьба, але як показала практика - краще було б внутрішнє, тоді не довелося б нагвинчувати спочатку муфту, потім у неї штуцер або клапан ... Загалом, не продумав заздалегідь, тому отримав додаткові витрати на муфти:(
Наочні фото власника - ось:




І ще трохи далі буде фотографія тримача в процесі експлуатації.

3.4 Коробки для блоку керування та реле
Спочатку я планував розмістити всі частини поливатора в одній коробці, та оснастити її виходами на клапани (12 вольт), насос (220 вольт) та власне на датчики. Однак потім вирішив рознести силову та слаботочну частини поливатора, та й клацання реле рано вранці буде дуже сумнівним задоволенням. Відповідно, плата з ардуїною, джойстик, кнопки, екран і годинник реального часу залишаються в «домашній» коробочці, а реле будуть винесені в коробку на вулицю, ближче до двигуна та клапанів.
Для складання керуючого блоку мені знадобився шматок меблевого щита, пір'яні свердла для отворів під кнопки і під джойстик, і лобзик, для отвору під екран

Під спойлером свердлимо, пилимо і збираємо коробочку













Далі розгалужувачі (телефонні та під кручені пари) розкриваємо, паяємо до них дроти і садимо на термоклей. Тут видно більш детально






Екранчик і годинник реального часу були об'єднані в одне ціле таким чином


І далі ця конструкція була урочисто закріплена шурупами в коробці. Також був прикручений джойстик. Тепер зовні блок управління виглядає так:


Залишилося закинути в коробку мізки - і блок керування готовий.
Тепер увага. Естетам, дітям та вагітним жінкам наполегливо не рекомендується відкривати наступний спойлер… Тому що красивих плат, які вміють робити Yurok, ksiman та інші відомі тут особи, ви не побачите. Зате ви побачите монтаж плати в найкращих традиціях КитайПідвалПрому: проводки замість доріжок, і термоклей, щоб це все не розвалилося. Тому ще раз попереджаю: не треба відчиняти спойлер! Повірте на слово, ця плата працює, але краще її не бачити :)

Спойлер, не відкривайте його, там ужес і кишмар!

Ось навіщо ви відкрили, га? Ну й гаразд, милуйтеся… Помідорами не кидати!









Блок управління з'єднаний з блоком реле двома крученими парами. Для взаємодії "мозків" з клапанами і мотором достатньо 5 керуючих ліній і ще 2 лінії для живлення реле (5 вольт і земля), але є ще витратомір (живлення вже є, значить потрібна всього 1 лінія), датчик вологості грунту (3 лінії ) та 4 світлодіоди, що відображають поточний стан клапанів. Разом - використовується 15 ліній із 16 доступних.
У блоці реле крім самих релюшок вбудовані розетки для мотора та блоку живлення клапанів, а також звичайний вимикач для примусового запуску мотора. Сам блок зроблений з тих же обрізків меблевого щита, що і блок керування, а виглядає як звичайна коробочка. На вході дві виті пари розведені на платі за конекторами на реле мотора, реле клапанів, світлодіоди, датчик вологості та датчик витрати води. У стіні передбачено отвори під проводи на клапани, на вимикач і на розетку, керовану через реле двигуна.


На клемнику виведені дроти до електромагнітних клапанів


Зовні я прикрутив розетку для двигуна, керовану ардуїною, і вимикач для ручного вмикання двигуна


Всі дроти розведені та виведені куди потрібно… начебто б


На внутрішній стінці з'явилася розетка для 12-вольтового блоку живлення, він також тут видно


У готовому вигляді все це виглядає приблизно так:


Трохи поясню, що і як. У коробку заведено живлення, всередині захований блок для 12-вольтових клапанів, реле двигуна та реле клапанів. Зовні виходить живлення на мотор (розетка), а також виведено вимикач для ручного керування мотором (він запаралелен з релюшкою). Крім того, є можливість підключення датчиків вологості ґрунту та витрати води, але вони порожні. Чому розповім трохи далі.
4. Опис функціоналу
Власне, ось неповний набір електронних компонентів для збирання


Спочатку було зібрано приблизно ось такий «восьминіг» з ардуїни та невеликого набору периферії, саме це диво я використав для налагодження скетчу


Мінімальний, як я вже казав, було вирішено зробити управління джойстиком, і вимальовувався наступний мінімально необхідний набір пунктів меню:
1. Налаштування дати та часу
2. Налаштування розкладу поливу
3. Інформація з датчиків
4. Можливість примусового перезавантаження

Реалізувати його мені вдалося, причому вдалося навіть обійтися англомовним дисплеєм 1602 - допомогла бібліотека LCD_1602_RUS, яка дозволила «зробити» 8 кириличних символів. Після цього впереміш з англійськими літерами можна було скласти цілком зрозумілі для людей похилого віку (моїх батьків) російські назви пунктів меню. Кінцевий розмір скетчу – трохи менше 1400 рядків, втиснутих у 45 кілобайт.
Результат компіляції:
Скетч використовує 19626 байт (63%) пам'яті пристрою. Усього доступно 30 720 байт.
Глобальні змінні використовують 1316 байт (64%) динамічної пам'яті, залишаючи 732 байт для локальних змінних. Максимум: 2048 байт.

Жодних попереджень про брак пам'яті, на щастя, вже немає.
Самого скетчу поки що тут немає, згодом викладу. Хочу трохи «зачесати» код
Що вийшло і що не вийшло? На восьминозі вийшло все:) На жаль, життя вносить свої корективи, і після рознесення мізків, релюшок і сенсорів дещо працювати перестало ... По-перше, аналогові датчики. На жаль, але зараз через довжину кабелів вони у мене не працюють - відповідно, пункт меню «Грунт» показує нульову температуру та вологість. Є певні думки, як це виправити, але поки що - ніколи. У батьків на дачі буваю не надто часто і займаюся не тільки поливатором, а тут ще чергове відрядження… У будь-якому разі - я буду радий слушним порадам від читачів.
По-друге, відразу не вдалося підключити витратомір - цього разу зовсім не через довжину кабелів. Я згаряча поставив його на вхід у мотор, одразу після зворотного клапана, як виявилося – йому там не місце. Датчик, мабуть, не зовсім герметичний, і при підйомі води йде підсмоктування повітря через мікрощілини в корпусі, як результат - насос не тягне воду. Поки зняв його, потім спробую поставити на вихід насоса - має працювати, але можливо - трохи підтікатиме.
Тепер по працюючому функціоналу. Ну, з розкладом зрозуміло - це саме те, заради чого затівався проект. Але іноді потрібно просто включити ненадовго поливалку, і для цього я зробив два режими примусового поливу: обмежений та нескінченний. Обмежений режим увімкнеться коротким натисканням на кнопку, тривалість такого поливу можна вказати в налаштуваннях. Якщо натиснути кнопку ще раз - полив буде припинено достроково. По довгому натисканні включається нескінченний полив - вимкнути його можна знову натисканням на кнопку.
Ну і приємне доповнення – перегляд температури у приямці з насосною станцією, у теплиці та на вулиці.
Раз на добу заплановано примусове перезавантаження ардуїни.

5. Збираємо поливатор
Тут я зроблю невеликий відступ та наведу технічні характеристики водонапірних компонентів.
Насос JY1000 польської фірми Omnigena, згідно з твердженнями виробника, має такі характеристики:
Продуктивність: 60 л/хв;
Максимальна висота підйому: 50 м;
Потужність: 1100 Вт;
Максимальна глибина самоусмоктування: 8 м.

Крім того, виявився такий корисний графік

ось


Ну і звичайно, не варто забувати, що продуктивність дуже залежить від глибини свердловини і забитості фільтрів.

Електромагнітний клапанбезіменний, але я знаходив на безлічі сторінок (наприклад ) приблизно такі характеристики:
Напруга: DC 12 В;
Струм: 0.5A;
Тиск: 0.02-0.8 МПа;
Продуктивність 3-25 л/хв.
Крім того, трапляється оптимістичне твердження: Water pressure: hydrostatic pressure of 1.2 MPa, які останні 5min, не rupture, deformation, leakage.. Тобто. протягом 5 хвилин клапан витримує навіть значно більш високий тиск, ніж стандартне «не більше 0.8 МПа».
Ось тут можна розглянути клапан у різних ракурсах


Також можу відзначити, що тестував клапан на слабшому блоці живлення, і він без проблем відкрився за 9 вольтів.
А щоб клапани без проблем працювали в умовах городньої вогкості, мені довелося включити кмітливість і знайти застосування старим пластиковим пляшкам.
Привіт, бонаква!


Ось - один клапан у такому одязі, може тут видно краще

Продуктивність розбризкувача, За даними , становить 700 - 1140 л/год, або приблизно 11.7-19 л/хв при тиску рідини 0,21-0,35 МПа відповідно.
Як видно, в ідеальних умовах насос видає занадто великий потік, який просто фізично не здолає ні клапан, ні тим більше розбризкувач. Забігаючи наперед, скажу, що свердловина в моєму випадку далеко не ідеальна і до 60 л/хв вона не дотягувала. Потім я прикинув, що напір впаде також і через довжину шланга від мотора до найдальшого розбризкувача (майже 30 метрів), вирішив сильно не морочитися з цього приводу. Потім, під час «виробничих випробувань», підключив до двигуна одночасно три розбризкувачі. Виявилося, що вони ллють дуже слабо, та ще й тиску не вистачає на те, щоб змінилося напрямок обертання. Виглядало так: розбризкувач крутиться доти, доки не впирається в обмежувач сектора, і обертання припиняється. Якщо усунути обмежувач сектора, то по колу обертання більш-менш без проблем, але радіус поливу - метра 2-3. Відкинув один розбризкувач - стало трохи краще і вони навіть намагалися крутитися, але радіус все одно був максимум метра 4. А ось один розбризкувач працює чудово - б'є дуже далеко (заміряв рулеткою, на 9 метрів бризкає тільки в дорогу), і жодних проблем із обертанням .
Самі розбризкувачі можна регулювати під свої потреби:
- розбити струмінь, викрутивши гвинт навпроти сопла;
- Змінити кут і відповідно дальність струменя, піднімаючи або опускаючи пластину навпроти сопла;
- Змінити сектор поливу за допомогою обмежувачів, або взагалі прибрати фіксатор обмежувача.
Ось фотографії «елементів управління» зблизька








Бризгалка на тримачі та з підведеним шлангом/проводом виглядає ось так:

6. Робота
Блок управління, крім поточного часу, вміє показувати будь-яку корисну інформацію на кшталт температури та вологості. Там задається початок і тривалість поливу за розкладом, і тривалість поливу при активації кнопкою.
Коротким натисканням однієї з 4 кнопок можна включити полив на певний час (задається в налаштуваннях), довге натискання включає нескінченний режим, тобто. відключити полив на заданій лінії можна буде лише цією ж кнопкою, або він відключиться, якщо за розкладом лінію необхідно вимкнути. Хоча навіщо я повторююсь? Даєш слайди!
Ось тут видно налаштування:











Ось тут - дивимося температуру та вологість






Інформацію отримуємо звідси

Ось так, власне, виглядає колгоспинг датчиків у дачних умовах. Ганок


Приямок


Теплиця


Ці датчики поки що нічого не говорять, чому - пояснював вище



І, нарешті… Сім бід - один ресет:

А тепер – відео, куди ж без нього.
1. Міні-екскурсія – що є у меню поливатора. Датчики не були підключені, тому всі показують по нулях.


2. Налаштування поливатора на включення 2 та 3 лінії тривалістю по одній хвилині


3. Як виглядає полив за розкладом, який було задано для тесту


4. Як виглядає полив за розкладом на екрані поливатора


5. Тестовий полив з кнопки - увімкнення та вимкнення. Роботу розбризкувача не показую, але чесло - все працює


6. Розбризкувач та його налаштування: що де крутиться, повертається та фіксується


7. Робота розбризкувача на невеликому секторі зблизька

7. Порівняння з ринковими пропозиціями
Доступний варіант на російському ринку – системи Gardena, продається в OBI. Можна взяти блок управління за 13590 рублів і ще по 3990 рублів, підсумкова ціна буде всього 29550. Здорово, звичайно, і виглядає красиво. Але віддавати майже 500 американських грошей… І наскільки я розумію – тут у комплекті немає розбризкувачів, з'єднувачів та шлангів! Гаразд, дивимось далі.
Знову Gardena у тому самому магазині, але тут вже система на 6 ліній. Складається з таймера подачі води за 11190 рублів і за 6990 рублів - всього 18180, або майже 300 бакінських ... Шланги та розбризкувачі, як і в попередньому випадку, потрібно купувати окремо.
Ebay відразу запропонував блок керування разом із клапанами приблизно за 60 доларів, плюс ~35$ коштує доставка - у результаті майже сотня. Як варіант, доступні контролери (без клапанів) Rain Bird ESP-RZX Series 4 і Hunter XC 400i за цінами не нижче 75 доларів, крім доставки. Клапани окремо; для хантера, наприклад, вони йдуть від 22 баксів за штуку, оптом дешевше.

І замість післямови. Чи мало сенс мені морочитися винаходом велосипеда, якщо він уже є на ринку? Думаю що так. Що я особисто від цього отримав? По-перше, суттєву економію, по-друге, можливість реалізувати систему так, як це потрібно саме мені, по-третє, мені це просто було цікаво. Реалізуйте свої проекти та не бійтеся робити помилки. Не помиляється лише той, хто нічого не робить!

Тепер обіцяний код для Ардуїн.Завантажити його можна, коментарі в тексті я по можливості додав, але конкретно в цьому коді можливо не працює (або неправильно працює) витратомір.

Планую купити +101 Додати в обране Огляд сподобався +128 +247

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 метрів.
Силовий ключ Створений для замикання та розмикання електричного ланцюга. Якщо використовувати пристосування для конструювання автополиву ардуїно, не потрібно додаткових спайок. Підключення до основної панелі здійснюється також трьома проводами.
З'єднувальний провід - "батько-батько" Декілька проводів з'єднують периферійні пристрої.
З'єднувальний провід – «матір-батько» Проведення також з'єднують пристрої периферії.
Кімнатна квітка Система придатна різного типу кімнатних рослин.

Схема підключення та алгоритм роботи у проекті «Автополів» на базі мк Arduino

Нижче наведено алгоритм і схема підключення проекту на arduino платформі. Автополив будується так:

  1. Розміщуємо плату для сенсора на мікроконтролер.
  2. Підключаємо аналізатор вологості за допомогою плати, описаної вище, до аналогічного піна – А0.
  3. Приєднуємо сенсор до мікроконтролера:
    1. Контакт CS підключається до піну № 9 на платі.
    2. Дисплейні контакти SPI з'єднуються з відповідним роз'ємом на тій самій платі.
  4. Силовий ключ вставляємо в пін №4.
  5. Комутатор підводимо до силового ключа роз'єми, позначаються буквами p+, p-.
  6. Тепер підключаємо водяну помпу з трубкою за допомогою клемника в контакти з літерами l+ та l-. Поступово перед людиною, що конструює, побудується схема.
  7. Встромляємо сенсорну панель, що аналізує вологість, у горщик з квіткою.
  8. Кінець трубки вставляємо з водою у ґрунт. Якщо рослина разом з горщиком за вагою не перевищує 2 кг, закріплюємо шланг окремо. Інакше водяна крапель може перекинути квітку.
  9. Опускаємо водяну помпу у пляшку, наповнену водою.
  10. Підключаємо конструкцію до електричного живлення.

Нижче пропонуємо вам дві альтернативні схеми для нашого пристрою:

Датчик аналізує статус вологості шляхом визначення кислотності ґрунту. Перед вставкою іригатора в систему необхідно протестувати та відкалібрувати обладнання:

  1. Записуємо відомості, що виведені на дисплей. При цьому сенсор встромлять у сухий горщик. Це позначається як min вологості.
  2. Поливаємо землю із рослиною. Чекаємо, коли вода до кінця просочить ґрунт. Тоді показання на сенсорному екрані покажуть один рівень. Необхідно записати отримані відомості. Це означає max вологості.
  3. У блокноті фіксуємо константи 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(); } }

Додатково ви можете переглянути пару цікавих відео від наших колег.

Всім доброго дня! Ось і настало літо, всі їдуть із міста, деякі з країни, а вдома є якісь рослини, які потрібно поливати. На додаток до всього тепла погода сприяє більш частому поливу рослин. І для того щоб не брати свій улюблений фікус на відпочинок, ми пропонуємо зібрати для нього систему автоматичного поливу, про це і буде наша сьогоднішня стаття.

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 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 Mega).
Для складання поливалки вам знадобиться кілька компонентів і не більше 30 хвилин вільного часу.

Використовувані компоненти:

  • Arduino Mega (вона просто була під рукою, але будь-яка інша підійде)
  • Насос і силіконова трубка (підійде насос омивача автомобільного скла - можна купити в будь-яких автозапчастинах або можна купити маленький занурювальний насос на ebay)
  • Блок живлення
  • Два змінних резистора для регулювання (будь-які)
  • Транзистор IRL3705N
  • Два резистори (100 Ом та 100 кОм)
  • Діод (будь-який)
  • Резервуар для води (у моєму випадку пластикова коробочка з Ikea)
  • Макетка

Збираємо все за такою схемою:

Або наочніше:

Ось що вийшло у мене:

Спочатку протестуємо насос. Подамо на нього 5В. Якщо він задзижчав, все гаразд, рухаємося далі.

Тепер підключимо насос Arduino. Зробимо для керування насоса з ардуїно невелику обв'язку на макетці.

Спробуємо покерувати насосом із Ардуїно. Заллємо такий код

int pumpPin = 5; void setup() ( pinMode(pumpPin, OUTPUT); digitalWrite(pumpPin, LOW); ) void loop() ( digitalWrite(pumpPin, HIGH); delay(1000 ); digitalWrite(pumpPin, LOW); delay(1000 ); );

Якщо він періодично дзижчить, значить, знову все гаразд.

Тепер нам залишилося додати два регулятори. Підчепимо до нашого пристрою змінні резистори, і перевіримо їхню працездатність.

Заллємо такий код на Ардуїно

int volumePin = A0; void setup() ( pinMode(volumePin, INPUT); Serial.begin(9600 ); ) void loop() ( Serial.println(analogRead(volumePin)); delay(100 ); )

Зайдемо до Serial Monitor і переконаємося, що є реакція на поворот регулятора. Він повинен змінюватись приблизно від 0 до 1024

Тепер лишилося змусити заробити все це разом.

Ось безпосередньо код поливалки:

// Перший регулятор керує часом, який буде литися вода (від 4 до 15 секунд) #define MAX_FLOWTIME 15 // seconds #define MIN_FLOWTIME 4 // seconds // Другий регулятор управляє частотою поливу від одного разу на день до одного разу на тиждень#define MAX_PERIOD 7 // days #define MIN_PERIOD 1 // days #define MAX 1015 #define MIN 0 int volumePin = A0; // Пін, до якого підчеплений регулятор, що відповідає за обсяг води, що поливається int periodPin = A1; // Пін, до якого підчеплений регулятор, що відповідає за період між поливами int pumpPin = 5; // Пін, до якого підключено керування насосом int volume; int period; // Процедура, що включає насос на час, заданий volume void water() (digitalWrite(pumpPin, HIGH); // Включаємо насос delay (volume); digitalWrite(pumpPin, LOW); // вимикаємо насос delay (period); ) void setup() ( pinMode(pumpPin, OUTPUT); digitalWrite(pumpPin, LOW); ) void loop() ( // Зчитуємо значення регуляторів (змінних резисторів) і наводимо їх до заданих меж volume = map (analogRead(volumePin), MIN, MAX, MIN_FLOWTIME, MAX_FLOWTIME) * 1000; period = map (analogRead (periodPin), MIN, MAX, MIN_PERIOD, MAX_PERIOD) * 1000 * 60 * 60 * 24; water(); )

Ось усе готове. Насолоджуємося відпочинком. і ви завжди будете знати, що ваші рослини отримують воду.



Loading...Loading...