Автоматизированная система полива растений на Raspberry Pi с веб-дашбордом
Создайте самополивающуюся систему, которая контролирует влажность почвы и автоматически поливает домашнее растение, всё управляемое через веб-интерфейс.
Обзор
Это руководство проведёт через каждый шаг — от выбора компонентов до пайки, программирования и запуска Flask-веб-дашборда. Результат — надёжное, малообслуживаемое решение для полива, работающее на Raspberry Pi.
Материалы
- Raspberry Pi 3 (любой Pi 2/4 подойдёт с незначительными изменениями пинов)
- Датчик влажности почвы (аналоговый выход)
- Релейный модуль 5 В (один канал)
- Мини погружной насос 3–6 В (≤ 200 мл/мин)
- Гибкий шланг (1 дюйм или меньше)
- Перемычки Dupont (многоцветный набор, 120 шт.)
- Блок питания 5 В (USB-кабель + зарядка или 5 В адаптер)
- Опционально: маленький потенциометр для калибровки датчика
Настройка питания
Используйте USB-кабель как источник 5 В. Срежьте кабель, припойте более толстые провода к жиле красному (+) и чёрному (–), и подключите их к 5-вольтовой зарядке. Проверьте напряжение мультиметром перед подключением к Pi.
GPIO-проводка (Pi 3)
- Датчик почвы: VCC к пину 2 (5 V), GND к пину 6 (GND), Сигнал (жёлтый) к пину 8 (GPIO 14).
- Реле: IN к пину 7 (GPIO 4), VCC к пину 2, GND к пину 5.
- Насос: питание насоса к нормально разомкнутому (NO) контакту реле; землю к общему (COM) контакту. Когда Pi опускает пин 1 (GPIO 5) в LOW, реле замыкается и насос включается.
Наденьте шланг на выход насоса и направьте другой конец к почве растения. Наполните резервуар шланга водой.
Сборка железа
Закрепите шланг к насосу изолентой для предотвращения утечек. Убедитесь, что все соединения изолированы, а Pi питается отдельно от насоса, чтобы избежать электрических помех.
Программная часть
Проект состоит из четырёх Python-скриптов и Flask-веб-интерфейса:
- water.py — GPIO-абстракция для чтения датчика и управления насосом.
- auto_water.py — логика запланированного полива.
- web_plants.py — Flask-приложение, выдающее статус датчика и ручное управление.
- main.html — простой шаблон дашборда.
Установка зависимостей
На Pi выполните:
$ python3 -m pip install RPi.GPIO flask psutil
Скрипт управления GPIO (water.py)
Скрипт предоставляет две ключевые функции: get_status() возвращает строку «Wet»/«Dry», а pump_on() включает насос на одну секунду. Интерактивный тест:
$ python3
>>> import water
>>> water.get_status()
'Dry'
>>> water.pump_on()
Pump activated for 1 s.
Если датчик показывает неверно, подкрутите маленький потенциометр на модуле, пока второй светодиод не загорится при влажной почве.
Запуск Flask-дашборда
Поместите web_plants.py в ту же папку, что и water.py, и создайте подкаталог templates с файлом main.html. Затем запустите сервер:
$ sudo python3 web_plants.py
Откройте в браузере IP-адрес Pi; вы увидите дашборд с текущим статусом влажности и кнопкой «Water Now». Страница работает на Flask и общается с GPIO-слоем через вспомогательные скрипты.
Автозапуск через Cron
Чтобы веб-сервер стартовал автоматически после перезагрузки, отредактируйте root crontab:
$ sudo crontab -e
Добавьте строку (замените /home/pi/project на реальный путь):
@reboot cd /home/pi/project && sudo python3 web_plants.py
Перезагрузите Pi и убедитесь, что дашборд загружается автоматически.
Дальнейшие шаги
С работающей системой можно добавить:
- Несколько модулей растений и единый дашборд.
- Логирование уровня влажности в CSV или базу данных.
- Email или push-уведомления при поливе.
Для углублённого изучения обратитесь к туториалам по Raspberry Pi GPIO и интеграции Flask с GPIO.
Производственный процесс
- Как считывать температуру с DS18B20 на Raspberry Pi 2
- Raspberry Pi управляемая аквапоника: гайд по сборке и код
- Измерение температуры на Raspberry Pi с датчиками Maxim 1-Wire и мостом DS2482 I2C
- Домашний энергетический центр: мониторинг солнечных панелей, тепловых коллекторов и температуры комнат на Ra…
- Точный мониторинг температуры в серверной на Raspberry Pi
- Как подключить однопроводный датчик температуры DS1820 к Raspberry Pi через GPIO
- Подключение ультразвукового датчика HC‑SR04 к Raspberry Pi 3 — полное руководство
- Датчик слежения за линией на Raspberry Pi — простой детектор двери/линии KY‑033
- Обнаружение молний с Raspberry Pi и AS3935: практическое руководство
- Чтение аналоговых датчиков на Raspberry Pi без встроенного АЦП