На данный момент разработано множество различных модулей и датчиков, на основе которых можно легко построить домашнюю систему полива на ардуино. В данной статье мы рассмотрим проект “Автоматический полив на ардуино”.
Обратите внимание, здесь и далее мы будем рассматривать не коммерческий проект, а опытный образец. Далее его можно дополнять и развивать.
Описание системы полива
Определимся с техническим заданием на проект.
- Управлять будем с помощью платы ардуино;
- Для полива будем использовать помпу/насос на 5В;
- Использовать данную систему будем для полива домашнего цветка;
- Вывод необходимых данных будем производит на экран.
- Время полива составляет 10 секунд, а время ожидания – 15 с. Данное время меняется в скетче и выбрано для демонстрации работы системы.
Подбор комплектующего
Определившись с техническим заданием, необходимо подобрать модули и датчики для работы всей системы полива.
В проекте будем использовать отладочную плату Arduino Mega 2560 R3. Выбрал ее, так как она имеет достаточно большое количество портов ввода вывода. При необходимости расширения проекта и добавления новых модулей наличие свободных портов будет диктовать свои условия.
Для прокачки воды выбрал погружной насос от компании Pixiuonline DS766b с рабочим напряжением 5В.
Далее добавим в проект реле для подключения насоса к плате ардуино. Можно, конечно, и напрямую, но так как у насоса относительно большой ток потребления, чтобы не сжечь ножки порта, лучше подключить через реле. Возьмем модуль реле SRD-05VDC-SL-C.
Выводить все будем на LCD экран Nokia 5110. Так же необходимо питать нашу систему от отдельного блока питания, так как питание от USB не вытягивает нагрузку по току и система перезагружается. По этому добавим адаптер питания на 9В и модуль преобразователя. Все ссылки на компоненты будут в конце статьи.
| Наименование | Количество | Назначение |
| Arduino Mega 2560 R3 | 1 | Управляет всех системой |
| Насос Pixiuonline DS766b | 1 | Качает воду для полива |
| Реле SRD-05VDC-SL-C | 1 | Подключает насос к плате ардуино |
| LCD Nokia 5110 | 1 | Выводит данные о поливе |
| Адаптер питания 9В | 1 | Запитывает систему |
| Соединительные провода | 20шт | Используются для соединения модулей |
Описание компонентов системы полива
Arduino Mega 2560 R3
Отладочная плата ардуино на базе микроконтроллера ATMega2560. Ниже приведены краткие
- Напряжение питания: 5В;
- Рекомендуется использовать напряжение 7-12В;
- Имеет 54 порта ввода-вывода. 15 из них предназначены так же для PWM (ШИМ);
- Аналоговых входов: 16;
- Максимальный ток на один вывод 40 мА;
- Flash-памяти 256 КБ;
- Загрузчик использует 8КБ;
- SRAM 8 КБ;
- EEPROM 4 КБ;
- Тактовая частота кварцевого резонатора 16 МГц.
Насос 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
- Макетная плата, модуль питания макетной платы и провода
- Адаптеры питания





