Система полива на ардуино

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

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

Описание системы полива

Определимся с техническим заданием на проект.

  • Управлять будем с помощью платы ардуино;
  • Для полива будем использовать помпу/насос на ;
  • Использовать данную систему будем для полива домашнего цветка;
  • Вывод необходимых данных будем производит на экран.
  • Время полива составляет 10 секунд, а время ожидания — 15 с. Данное время меняется в скетче и выбрано для демонстрации работы системы.

Подбор комплектующего

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

В проекте будем использовать отладочную плату Arduino Mega 2560 R3. Выбрал ее, так как она имеет достаточно большое количество портов ввода вывода. При необходимости расширения проекта и добавления новых модулей наличие свободных портов будет диктовать свои условия.

Для прокачки воды выбрал погружной насос от компании Pixiuonline DS766b с рабочим напряжением 5В.

Далее добавим в проект реле для подключения насоса к плате ардуино. Можно, конечно, и напрямую, но так как у насоса относительно большой ток потребления, чтобы не сжечь ножки порта, лучше подключить через реле. Возьмем модуль реле SRD-05VDC-SL-C.

Выводить все будем на LCD экран Nokia 5110. Так же необходимо питать нашу систему от отдельного блока питания, так как питание от USB не вытягивает нагрузку по току и система перезагружается. По этому добавим адаптер питания на и модуль преобразователя. Все ссылки на компоненты будут в конце статьи.

НаименованиеКоличествоНазначение
Arduino Mega 2560 R31Управляет всех системой
Насос Pixiuonline DS766b1Качает воду для полива
Реле SRD-05VDC-SL-C1Подключает насос к плате ардуино
LCD Nokia 51101Выводит данные о поливе
Адаптер питания 9В1Запитывает систему
Соединительные провода20штИспользуются для соединения модулей

Описание компонентов системы полива

Arduino Mega 2560 R3

Отладочная плата ардуино на базе микроконтроллера ATMega2560. Ниже приведены краткие

  • Напряжение питания: ;
  • Рекомендуется использовать напряжение 7-12В;
  • Имеет 54 порта ввода-вывода. 15 из них предназначены так же для PWM (ШИМ);
  • Аналоговых входов: 16;
  • Максимальный ток на один вывод 40 мА;
  • Flash-памяти 256 КБ;
  • Загрузчик использует 8КБ;
  • SRAM 8 КБ;
  • EEPROM 4 КБ;
  • Тактовая частота кварцевого резонатора 16 МГц.

Насос Pixiuonline DS766b

Насос для системы полива ардуино Pixiuonline DS766b
  • Напряжение питания 3-5В;
  • Прокачка воды 80-100 л/ч;
  • Имеет 2 провода подключения. Питание VCC и земля GND.

Nokia 5110

LCD дисплей размером 84 на 48 точек. Полная информация о работе с дисплеем находится на этой странице.

Модуль реле SRD-05VDC-SL-C

Модуль реле ардуино

Реле имеет три контакта на подключение к ардуино.

  • VCC — напряжение от 3В до 5В;
  • GND — земля;
  • Управляющий сигнал (S) — цифровой выход контроллера.

Более подробно о реле читайте на этой странице.

Cхема системы полива на ардуино

Схема автоматического полива на ардуино

Описание и исходный код программы

#include <Nokia_LCD.h>
#include "Small_LCD_Fonts.h"
#define Pompa_PIN 51
#define TimerWork     10
#define TimerNotWork  15

bool flag_Work = false;

static const char platis_solutions_logo[504] PROGMEM =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x0C, 0x8C, 0x4E, 0x3F, 0x0F, 0x0F, 0x3F, 0x4E, 0x8C, 0x08,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xFC, 0xFE, 0x20, 0x30, 0x1C,
  0x0E, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
  0x02, 0x0C, 0x10, 0x20, 0xFE, 0xFC, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00,
  0x00, 0x00, 0xFF, 0xFF, 0x01, 0x01, 0x71, 0x71, 0x71, 0x03, 0x0E, 0xFC,
  0x60, 0x00, 0x03, 0x1F, 0x7D, 0xE3, 0x1E, 0x3E, 0xCF, 0x71, 0x1F, 0x03,
  0x01, 0x0F, 0x0D, 0xFD, 0xFD, 0x01, 0xFD, 0xFD, 0x0D, 0x0F, 0x00, 0x03,
  0x0F, 0x3D, 0xE3, 0xDE, 0x3C, 0xCF, 0xF1, 0x3F, 0x0F, 0x01, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x3F, 0x02, 0x04, 0x08,
  0x30, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
  0x70, 0x38, 0x0C, 0x06, 0x7F, 0x3F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00,
  0x00, 0x00, 0xFF, 0xFF, 0x80, 0x80, 0xF8, 0x08, 0xF8, 0x84, 0xBE, 0xF3,
  0x00, 0x80, 0xF0, 0xF8, 0x8E, 0xF3, 0x3C, 0x3C, 0xF3, 0xCE, 0xFC, 0xF0,
  0x80, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xC0,
  0xF8, 0x8E, 0xF7, 0x79, 0x3E, 0x79, 0xC7, 0xBC, 0xF0, 0xC0, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x10, 0x31, 0x72, 0xFC, 0xF0, 0xFC, 0x7E, 0x71, 0x31, 0x10,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

unsigned  int Counter = 0;
Nokia_LCD lcd(8 /* CLK */, 9 /* DIN */, 10 /* DC */, 11 /* CE */, 12 /* RST */, 7 /* BL */);

void setup() {
  pinMode(Pompa_PIN, OUTPUT);
  digitalWrite(Pompa_PIN, LOW);
  // Initialize the screen
  lcd.begin();
  // Turn on the backlight
  lcd.setBacklight(true);
  // Set the contrast
  lcd.setContrast(60);  // Good values are usualy between 40 and 60
  // Clear the screen by filling it with black pixels
  lcd.clear(true);
  delay(2000);
  lcd.draw(platis_solutions_logo,
           sizeof(platis_solutions_logo) / sizeof(platis_solutions_logo[0]),
           true);
  delay(3000);
  // Clear the screen by filling it with white pixels
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.setDefaultFont();
  lcd.print("Pompa: Off");
  lcd.setCursor(0, 1);
  lcd.print("Timer on: 10s");
    lcd.setCursor(0, 2);
  lcd.print("Timer off: 15s");
  digitalWrite(Pompa_PIN, LOW);
}

void loop() 
{
    Counter++;
    lcd.setCursor(0, 3);
    lcd.print("Time = ");
    lcd.print(Counter);
    if ((Counter == TimerNotWork) && (flag_Work == false))
    {
      flag_Work = true;
      digitalWrite(Pompa_PIN, HIGH);
      Counter = 0;
      lcd.setCursor(0, 0);
      lcd.print("Pompa: On ");
      lcd.setCursor(0, 3);
      lcd.print("Time = 0 ");
    }
    if ((Counter == TimerWork) && (flag_Work == true))
    {
      flag_Work = false;
      digitalWrite(Pompa_PIN, LOW);
      Counter = 0;
      lcd.setCursor(0, 0);
      lcd.print("Pompa: Off");
      lcd.setCursor(0, 3);
      lcd.print("Time = 0 ");
    }
    delay(1000);  
}
Демонстрация работы программы полива на ардуино

Документы

Где купить

  • Arduino Mega 2560 R3
  • Насос Pixiuonline DS766b
  • Модуль реле SRD-05VDC-SL-C
  • Nokia 5110
  • Макетная плата, модуль питания макетной платы и провода
  • Адаптеры питания
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии