Введение
Автоматизированные системы управления плотно входят в нашу жизнь. Нехватка свободного времени стимулирует современного человека к использовать автоматизированных систем, которые помогают избавиться от рутинных действий, облегчают жизнь, делают ее более комфортной.
Ежегодно в период отпусков возникает проблема с поливом комнатных растений: кто их будет поливать в наше отсутствие? Ведь уход за растениями требует постоянного присутствия человека.
Изучив функциональные возможности Arduino и язык программирования С#, было принято решение о создании собственной системы полива.
Итак, цель проекта: создание системы автоматизированного полива на базе Arduino.
Для реализации проекта необходимо решить следующие задачи:
изучить принцип работы микроконтроллеров Arduino;
построить электрическую схему системы полива;
написать программное обеспечение;
собрать и протестировать механизм.
Предполагаемый продукт проекта: прототип автоматизированной системы полива на Arduino.
Подготовка материалов
Первоначально необходимо выяснить какие компоненты используются в системе полива, чтобы это понять необходимо решить ряд вопросов:
Какое устройство будет управлять схемой?
Чем наливать воду?
Как понять, когда нужно долить воды?
Как «питать» схему?
Для управления всей системой нам понадобится Arduino, которая будет считывать показатели с датчика влажности почвы, и давать сигнал помпе, которая будет подавать воду. «Питаться» это всё будет от розетки с блоком на 5 вольт. Также из-за того, что насос потребляет 5 вольт, что для Arduino много, будем использовать реле для защиты контроллера от перепадов тока. И конечно, чтобы соединить всю схему воедино, нужна макетная плата.
Общий список всех компонентов:
Arduino UNO (или Arduino Nano)
Помпа 5В
Реле
Датчик влажности
Макетная плата
Блок питания 5В
Шланг
Построение электрической схемы механизма
Итак, начнём построение электрической схемы. В данном проекте будет реализована одиночная система полива для растения.
Условные обозначения:
GND (“Земля”)
VIN (“Напряжение”)
D0, D1, D2 и т.д. (Digital – цифровые пины)
A0, A1, A2 и т.д. (Analog – аналоговые пины)
Рис. 1. Схема электрической цепи
Сама схема довольно простая: блок питания подключается к Arduino (на пин GND и VIN), реле и помпе. К микроконтроллеру подключается датчик влажности (пин A0, D2 и GND) и реле (пин D3). Реле же, соединяется с помпой.
Разработка ПО
Алгоритм работы пишется через программу Arduino IDE на языке программирования C#. Выбор этого языка обусловлен его удобством и быстродействием. Но если вы никогда не занимались программированием, можно выбрать блочный язык программирования Scratch.
С# («Си Шарп») – один из наиболее быстро растущих, востребованных и при этом «удобных» языков программирования. Является модификацией фундаментального языка С от компании Microsoft, призванная создать наиболее универсальное средство для разработки программного обеспечения для большого количества устройств и операционных систем.
Ниже приведён код с объяснением работы в комментариях:
#define diod 4 //реле подключается к выводу D3
#define soil A0 //сигнальный контакт с датчика подключается к A0
unsigned long f = 0; //переменная таймера
unsigned long y = 10000; //период включения датчика в мс
int z = 270; //пороговое значение влажности почвы (от 0 до 1023)
unsigned long t = 5000; //время работы насоса в мс
void setup()
{
pinMode (diod, OUTPUT); //реле в режиме работы "выход"
pinMode (2, OUTPUT); //контакт для подачи питания на датчик в режиме "выход"
digitalWrite(diod, LOW);//размыкаем контакты реле
}
void loop()
{
digitalWrite (2, HIGH); //включаем питание на датчик
delay (200); //ждем 200 милисекунд
int x = analogRead(soil); //считываем значение и записываем в х
digitalWrite (2, LOW); //выключаем датчик
if ((millis() - f) >= y) //каждые минут
{
g = millis();
if (f <= z) //если значение меньше больше порога
{
digitalWrite(diod, HIGH); //реле замыкает контакты, включается насос
delay (t); //проходит 5 секунд работы насоса
}
digitalWrite(diod, LOW); //реле замыкает контакты, включается насос
return;
}
}
Логика работы программы заключается в проверке влажности почвы каждые y миллисекунд. Если значение пороговой влажности (z) меньше текущего значения, то включается помпа.
Рис. 2. Прототип системы полива
Себестоимость проекта
Весь проект обошёлся примерно в 1500 рублей:
Провода ~ 58р;
Датчик влажности ~ 54р;
Трубка 7мм ~ 156р;
Макетная плата ~ 81р;
Помпа 5v ~ 81р;
Реле ~ 739р;
Arduino Uno ~ 200р.
Заключение
Опыт создания данного проекта был довольно трудный, но цель проектной работы достигнута и со всеми поставленными задачами мы справились.
На основе представленного в работе материала, данную систему полива может построить каждый желающий, учитывая свои потребности. В планах развития проекта – создание автоматизированной системы полива для большего количества растений.
Список использованных источников и литературы
Блум Дж. Изучаем Arduino: инструменты и методы технического волшебства. 2-е изд.:пер. с англ. – СПб.: БХВ-Петербург, 2020.
Васильев А.Н. Программирование на С# для начинающих. Основные сведения. – М.: Эксмо, 2022.
Муромцев Д.И., Шматков В.Н. «Интернет Вещей: Введение в программирование на Arduino» – СПб: Университет ИТМО, 2018.