Представляю вам образовательный проект — “Автоматизированная система полива” разработанный в рамках учебно-методического комплекса на базе одноплатного компьютера Repka PI 4.
Этот проект представляет собой автоматическую систему полива для растений, которая управляет поливом на основе показателей влажности почвы, времени или заданного интервала. Система использует различные датчики и устройства для контроля за состоянием почвы и управления насосом.
Проект будет собираться с использованием “Учебно-методический комплекс REPKA”. Схему сборки можно найти в разделе "Примеры готовых проектов" учебного пособия УМК “REPKA”.
Также все необходимые материалы и схемы подключения доступны в репозитории на платформе Gitflic.
Компоненты проекта
- Потребуется аналогово-цифровой преобразователь (далее АЦП) модели ADS1115, см. рисунок 1.
2. Датчик влажности почвы (FC-28) для мониторинга уровня влаги в почве, см. рисунок 2.
3. Часы (DS3231) требуются для реализации функционала полив по времени или каждые N секунд, см. рисунок 3.
4. Дисплей 1602 I2C для отображения показаний с датчика влажности почвы и времени.
5. Помпа 5 вольт для полива растения.
6. Реле модуль 3v для запуска помпы.
Вы можете приобрести все необходимые компоненты отдельно от "Учебно-методический комплекс REPKA". Ссылки на модули приведены в таблице ниже.
Компонент | Ссылка на приобретение |
---|---|
Монтажная/макетная плата | Ссылка |
Шлейф | Ссылка |
Переходник с шлейфа на макетную плату | Ссылка |
Соединительные провода | |
АЦП (ADS1115) | Ссылка |
Часы (DS3231) | Ссылка |
Дисплей 1602 I2C | Ссылка |
Помпа 5 вольт | Ссылка |
Реле модуль 3v | Ссылка |
Датчик влажности почвы (FC-28) | Ссылка |
Подготовительный этап
1. Подключим дополнительное питание 5V к макетной плате:
2. После чего выведем дополнительное питание на макетную плату:
3. Подключим переходник с шлейфа на макетную плату:
4. Соединим шлейф с переходником для подключения к макетной плате и Repka Pi 4:
5. Итоговый результат должен выглядеть таким образом:
Сборка проекта
Во время сборки проекта будем регулярно обращаться к электрической принципиальной схеме и монтажной схеме, представленными в учебном пособии (см. рисунки 7 и 8). Эти схемы будут служить основным ориентиром на всех этапах подключения компонентов, обеспечивая точность и правильность сборки устройства.
Для разработки кода будет использоваться текстовый редактор Geany, котороый входит в состав стандартного ПО Репка ОС.
Электрическая принципиальная схема #
Монтажная схема
1. Подключение АЦП (ADS1115).
Как видно из рисунков 7 и 8 АЦП подключается через интерфейс I2C и питается от 5V.
1.1. Подключим АЦП (ADS1115) к макетной плате согласно таблице 1:
Макетная плата | АЦП (ADS1115) |
---|---|
5V | V |
GND | G |
SCL1 | SCL |
SDA1 | SDA |
Таблица 1. Подключение АЦП (ADS1115) к макетной плате.
1.2. Результат подключения будет выглядеть следующим образом, см. рисунок 9:
Проверку работоспособности АЦП будем проводить после подключения датчика влажности почвы, чтобы убедиться в правильности считывания аналогового сигнала и корректности преобразования данных о влажности в цифровую форму.
2. Подключение датчик влажности почвы (FC-28).
Как видно из рисунков 7 и 8, плата датчика FC-28 подключается к АЦП через пин A0 и получает питание от 5V.
2.1. Подключим плату FC-28 к макетной плате согласно таблице 2:
Макетная плата | FC-28 | АЦП (ADS1115) |
---|---|---|
5V | VCC | |
GND | GND | |
A0 | A0 |
Таблица 2. Подключение платы датчика влажности почвы (FC-28) к макетной плате.
2.2. Результат подключения будет выглядеть следующим образом, см. рисунок 10:
2.3. После чего подключаем сам датчик к плате согласно схемам выше, результат на рисунке 11. Тут все просто плюс к плюсу, минус к минусу.
3. Выполним проверку подключения устройств АЦП и датчика влажности. Для этого будем использовать python скрипт из репозитория repka-pi_iot-examples.
3.1. Клонируем репозиторий:
git clone git@gitflic.ru:repka_pi/repka-pi_iot-examples.git
3.2. Переходим в репозиторий:
cd repka-pi_iot-examples/
3.3. Выполним установку зависимостей.
3.3.1. Если хотите установить зависимости только для датчика влажности, выполните:
make setup-fc-28
3.3.2. Если хотите установить зависимости для всех датчиков и проектов, выполните:
make setup-all
3.4. Запускаем скрипт для проверки работоспособности прибора:
make fc-28
3.5. Если на этапе 3.4 возникает ошибка, необходимо внести изменения в Python-скрипт, расположенный по пути devices/sensors/FC-28_example/py, корректируя номер – i2c = I2C("/dev/i2c-1") и адрес шины – ADS1115_ADDR. В случае отсутствия ошибок, данный шаг можно пропустить.
Адрес ADS1115 на шине I2C
ADS1115_ADDR = 0x48
# Подключение к I2C
i2c = I2C("/dev/i2c-1")
3.6. Из рисунка 12 видим, что скрипт успешно выполнился, и данные о влажности выводятся в консоль.
4. Подключение часов (DS3231).
Как видно из рисунков 7 и 8 часы подключаются через интерфейс I2C и питаются от 5V.
4.1. Подключим DS3231 к макетной плате согласно таблице 3:
Макетная плата | DS3231 |
---|---|
5V | VCC |
GND | GND |
SDA1 | SDA |
SCL1 | SCL |
Таблица 3. Подключение DS3231 к макетной плате.
При использовании модуля часов форм-фактора, как у меня, подключение может быть затруднено из-за отсутствия полноценных подписей на разъёмах. Для удобства прилагаю изображение, которое поможет вам правильно осуществить подключение.
5. Аналогично пункту 4 выполним проверку подключения датчика.
5.1. Установите зависимости для часов, если ранее не устанавливали все зависимости.
make setup-ds3231
5.2. После выполним python скрипт, расположенный по пути: /devices/input-output/ds3231_example, используя команду:
make ds3231
5.3. После успешного выполнения скрипта в консоли должна появится информация о времени, см. рисунок 14.
6. Подключение реле модуля 3V.
Как видно из рисунков 7 и 8, реле подключается к 5V и управляется через GPIO.
6.1. Подключим реле модуля 3V к макетной плате согласно таблице 4.
Макетная плата | Реле |
---|---|
3V | VCC |
GND | GND |
GPIO17 | IN |
GND | NO |
Таблица 4. Подключение реле модуля 3V к макетной плате.
6.2. Результат подключения будет выглядеть следующим образом, см. рисунок 15:
Проверку работоспособности реле осуществим после подключения помпы, так как именно реле подает на нее напряжение.
7. Подключение помпы 5V.
Как видно из рисунков 7 и 8, помпа подключается плюсом к 5V макетной платы, а минусом к реле.
7.1. Подключаем помпу к макетной плате согласно таблице 5.
Макетная плата | Помпа | Реле |
---|---|---|
5V | VCC | |
GND | GND |
Таблица 5. Подключение помпы к макетной плате.
7.2. Результат подключения будет выглядеть следующим образом, см. рисунок 16:
8. Выполним проверку подключения аналогично пункту 3.
8.1. Установите зависимости для помпы, если ранее не устанавливали все зависимости.
make setup-pump
8.2. После выполним python скрипт, расположенный по пути: /devices/executive/pump_example/py, используя команду:
make pump
8.3. После успешного выполнения скрипта помпа должна издавать звук, характерный для её работы.
9. Подключение ЖК дисплея (1602 I2C).
Как видно из рисунков 7 и 8, дисплей подключается по интерфейсу I2c и питается от 5V.
9.1. Выполним подключение к макетной плате согласно таблице 2.
Макетная плата | 1602 I2C |
5V | VCC |
GND | GND |
SCL1 | SCL |
SDA1 | SDA |
Таблица 6. Подключение ЖК дисплея (1602 I2C) к макетной плате.
9.2. Результат подключения будет выглядеть следующим образом, см. рисунок 17:
10. Выполним проверку подключения аналогично пункту 3.
10.1. Установим зависимости для ЖК дисплея (1602 I2C), выполнив:
make setup-display-1602-i2c
10.2. Выполните команду:
make display-1602-i2c
10.3. Как видно из рисунка 18 дисплей успешно подключен.
Запуск проекта
Теперь, когда все компоненты подключены, можно запустить проект "Автоматическая системы полива". Для этого в репозитории repka-pi_iot-examples выполняем команду:
make automatic-irrigation-system
Мы можем увидеть консольный интерфейс приложения и выбрать нужный пункт:
Практическая значимость проекта
Проект "Автоматизированная система полива" представляет собой практическое решение для автоматизации процесса полива растений, что значительно упрощает уход за растениями и повышает эффективность использования воды. Система позволяет автоматизировать процесс полива на основе различных параметров: уровня влажности почвы, времени или заданных интервалов. Это не только экономит ресурсы, но и позволяет обеспечить растения необходимым уходом в зависимости от их потребностей. Применение данной системы может быть полезным как для домашних пользователей, так и для небольших аграрных хозяйств, где требуется автоматизация полива для оптимизации труда и использования воды.
Кроме того, проект способствует развитию навыков в области программирования, работы с датчиками и микроконтроллерами, а также применению теоретических знаний в реальных задачах. Он может быть использован в образовательных целях, помогая студентам и специалистам познакомиться с основами автоматизации и интернета вещей (IoT).
Расширение проекта
Расширение проекта может включать внедрение дополнительных функций и возможностей для улучшения работы системы полива. Некоторые идеи для расширения:
-
Интеграция с мобильным приложением: Возможность управления системой полива через смартфон или планшет. Пользователи смогут настраивать параметры полива, проверять состояние датчиков и получать уведомления о статусе полива.
-
Использование солнечных панелей: Для автономной работы системы полива можно добавить солнечные панели для питания помпы и других компонентов, что сделает систему более экологичной и экономичной.
-
Интеграция с погодными сервисами: Система может учитывать данные о погодных условиях, такие как дождь или температура, чтобы регулировать полив, снижая расход воды в случае дождя или повышая его в сухую погоду.
-
Подключение дополнительных датчиков: Например, датчики температуры и влажности воздуха, что позволит точнее контролировать климатические условия для растений.
-
Использование более сложных алгоритмов: Внедрение алгоритмов машинного обучения для предсказания потребностей растений в поливе на основе собранных данных, что повысит эффективность системы.
-
Интеграция с другими системами умного дома: Система полива может быть интегрирована с другими устройствами умного дома, такими как умные термостаты или освещение, для создания комплексного решения по автоматизации домашнего ухода за растениями.
Видеообзор проекта
Для более детального ознакомления с проектом, вы можете посмотреть видеообзор на платформе Rutube.
Пример использования с Python
Проект полностью реализован на языке Python. Код для работы с автоматической системой полива можно найти в репозитории на платформе Gitflic.