Разработка автоматизированной системы полива на Arduino

XXVI Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Разработка автоматизированной системы полива на Arduino

Аганичев И.К. 1
1КТ МТУСИ
Третьтякова К.А. 1
1КТ МТУСИ
Автор работы награжден дипломом победителя II степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Автоматизированные системы управления плотно входят в нашу жизнь. Нехватка свободного времени стимулирует современного человека к использовать автоматизированных систем, которые помогают избавиться от рутинных действий, облегчают жизнь, делают ее более комфортной.

Ежегодно в период отпусков возникает проблема с поливом комнатных растений: кто их будет поливать в наше отсутствие? Ведь уход за растениями требует постоянного присутствия человека.

Изучив функциональные возможности Arduino и язык программирования С#, было принято решение о создании собственной системы полива.

Итак, цель проекта: создание системы автоматизированного полива на базе Arduino.

Для реализации проекта необходимо решить следующие задачи:

  1. изучить принцип работы микроконтроллеров Arduino;

  2. построить электрическую схему системы полива;

  3. написать программное обеспечение;

  4. собрать и протестировать механизм.

Предполагаемый продукт проекта: прототип автоматизированной системы полива на 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р.

Заключение

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

На основе представленного в работе материала, данную систему полива может построить каждый желающий, учитывая свои потребности. В планах развития проекта – создание автоматизированной системы полива для большего количества растений.

Список использованных источников и литературы

  1. Блум Дж. Изучаем Arduino: инструменты и методы технического волшебства. 2-е изд.:пер. с англ. – СПб.: БХВ-Петербург, 2020.

  2. Васильев А.Н. Программирование на С# для начинающих. Основные сведения. – М.: Эксмо, 2022.

  3. Муромцев Д.И., Шматков В.Н. «Интернет Вещей: Введение в программирование на Arduino» – СПб: Университет ИТМО, 2018.

Просмотров работы: 54