Рубрики
Проекты на ESP32

Умная ирригационная система на ESP32 и приложении Blynk

В этом проекте мы рассмотрим систему орошения на базе Интернета вещей с использованием платы ESP32 и приложения Blynk. Это проект, основанный на концепции Интернете вещей (IoT), представляет собой интеллектуальную систему орошения и предлагает множество возможностей для автоматизации всего процесса орошения. Данная оросительная система построена с использованием таких компонентов как микроконтроллер ESP32, датчик влажности почвы, датчик уровня воды, модуль реле и датчик DHT22. Она будет отправлять данные в приложение Blynk. Также в составе системы есть водяной насос, который разбрызгивает воду в зависимости от состояния земли и таких факторов как влажность и температура. Эта система будет удобна для ферм и теплиц.

Ранее на нашем сайте мы уже рассматривали ряд аналогичных оросительных систем:

Как работает наша умная ирригационная система?

Мы будем использовать емкостный датчик влажности почвы для измерения содержания влаги в почве. Вы также можете использовать резистивный датчик влажности почвы. Также мы используем датчик уровня воды для измерения уровня воды внутри резервуара для воды. Аналогичным образом, для измерения температуры и влажности воздуха мы предпочитаем датчик температуры и влажности DHT22. Используя силовое реле 5 В, мы будем управлять водяным насосом.

При включении нашей системы плата ESP32 подключается к приложению и облаку Blynk через Интернет. Затем значения влажности почвы отображаются в интерфейсе приложения Blynk. Всякий раз, когда датчик обнаруживает низкое количество (менее 50%) влаги в почве, двигатель автоматически включается. Следовательно, будет автоматически орошаться поле. Если датчик воды обнаруживает низкий уровень воды (менее 20%) внутри резервуара для воды, в этом случае двигатель не включится автоматически. Как только почва становится влажной, двигатель отключается. Кроме того, с помощью кнопки, созданной в этом приложении Blynk, мы можем включать и выключать модуль реле в ручном режиме. Вы можете следить за всем этим удаленно через приложение blynk из любой точки мира.

Необходимые компоненты

Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158

Емкостный датчик влажности почвы

Этот датчик представляет собой аналоговый емкостной датчик влажности почвы, который измеряет уровень влажности почвы посредством емкостного измерения. Датчик регулирует свою емкость в зависимости от количества воды в почве. Вы можете перевести это изменение емкости в уровень напряжения в диапазоне от минимум 1,2 В до максимум 3,0 В. Одним из преимуществ емкостного датчика влажности почвы является его конструкция из устойчивых к коррозии материалов, обеспечивающая длительный срок службы.

Датчик температуры и влажности DHT22

DHT22 — это простой и очень дешевый датчик, который измеряет температуру и влажность. Он использует специальный датчик, чтобы узнать, сколько влаги в воздухе, и датчик температуры для измерения температуры. Датчик передает нам эту информацию в цифровом виде по одному проводу. Его легко использовать, но нужно набраться терпения, поскольку получение новой информации занимает около 2 секунд. В нашем проекте мы будем использовать этот датчик чтобы определить насколько горячий и влажный воздух.

Схема проекта

Схема ирригационной системы на основе модуля ESP32 и приложения Blynk представлена на следующем рисунке.

Подключите датчик влажности почвы к контакту D35 модуля ESP32, датчик уровня воды к контакту D34 и датчик DHT22 к контакту D4. Двигатель подключается к реле. Для управления реле мы используем контакт D5 модуля ESP32. Подключите светодиодную ленту RGB к контакту D21 модуля ESP32. Вы можете запитать двигатель и реле, используя напряжение 3,7 В от литий-ионного аккумулятора. Для датчика DHT22, емкостного датчика влажности почвы и датчика уровня воды требуется только питание 3,3 В.

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Настройка приложения Blynk

Встречайте новое приложение Blynk. После создания учетной записи посетите https://blynk.io. Затем введите идентификатор электронной почты и пароль и нажмите login («Войти»).

Сначала вам нужно создать новый шаблон в приложении Blynk. Чтобы создать новый шаблон в учетной записи приложения Blynk, выполните следующие действия. Перейдите в зону разработчика (Developer Zone) в меню слева. Нажмите меню My Template («Мой шаблон»). Создайте новый шаблон.

Из меню Widgets («Виджеты») вы можете добавить в интерфейс виджеты кнопок (Button Widgets) и Gauge Widgets (виджеты датчиков). Затем назовите его по своему усмотрению и выберите виртуальный вывод как V0. Затем измените значения с 1 на 0 и измените режим, поскольку переключатель виджетов «Датчик» (Gauge) меняет входные значения с 0 на 100. Наконец, настройте эти виджеты по своему усмотрению.

В информации об устройстве вы найдете свой Template ID (идентификатор шаблона), Template Name (имя шаблона) и AuthToken, скопируйте их и вставьте в код программы.

Объяснение кода программы

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В коде нашей программы анимация светодиодных лент RGB и датчиков, таких как DHT22, датчик влажности почвы и датчик уровня воды управляются и контролируются через приложение Blynk. Насос и светодиодный индикатор управляются в зависимости от влажности почвы и уровня воды. Дополнительно имеются функции изменения цветовой палитры и других визуальных эффектов RGB LED ленты.

Зададим идентификатор шаблона Blynk, имя шаблона, токен аутентификации и настроим последовательный вывод для Blynk.

В следующем фрагменте коды мы подключаем необходимые библиотеки (WiFi, Blynk, DHT, FastLED) и задаем детали аутентификации и учетные данные Wi-Fi.

Далее настраиваем параметры светодиодной матрицы, такие как  яркость, тип, порядок и расположение.

Затем настраиваем датчик DHT и определяем контакты для влажности почвы, уровня воды и светодиодов.

После этого устанавливаем пороговые значения влажности почвы, штифтов насоса и переменных, связанных с управлением насосом и уровнем воды.

Инициализируем последовательную связь, выходные контакты, соединение Blynk и светодиодную матрицу.

Также запрограммируем функции, запускаемые при взаимодействии с приложением Blynk, управления помпой, управления режимом (автоматический и ручной) и светодиодной лентой RGB.

Если система находится в автоматическом режиме (pumpMode == 0), она считывает уровень влажности почвы с помощью датчика влажности почвы. Значение датчика отображается в диапазоне от 0 до 100, а функция autoControlPump вызывается для управления насосом в зависимости от влажности почвы.

Считываем уровень воды с датчика уровня воды. Если уровень воды ниже порогового значения (450), то устанавливаем уровень воды равным 0. В противном случае он отображает значение уровня воды в диапазоне от 0 до 100.

Вызываем функцию controlLED для управления светодиодом на основе сопоставленного уровня влажности почвы. Затем он вызывает функцию readAndSendSensorData, чтобы считывать температуру и влажность с датчика DHT и отправлять данные в приложение Blynk. Кроме того, он отправляет уровень воды в Blynk.

Тестирование работы проекта умной ирригации на основе ESP32

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

Датчик влажности почвы вставляется в почву, а датчик уровня воды погружается в резервуар для воды. После включения устройства и открытия приложения Blynk ESP32 автоматически подключается к вашему Wi-Fi, предоставляя данные о влажности почвы, уровне воды, влажности и температуре воздуха в режиме реального времени непосредственно в приложении Blynk.

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

Исходный код программы

Все файлы для изготовления данного проекта можно скачать по следующей ссылке.

Видео, демонстрирующее работу проекта

Источник статьи

20 ответов к “Умная ирригационная система на ESP32 и приложении Blynk”

Здравствуйте, при попытке загрузить код на ESP32 wroom, пишет об отсутствии библиотек.Компилирую на Игуана IDE.Подскажите,как правильно устанавливать данные библиотеки.

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

Добрый день у меня есть пара вопросов по поводу этому проекту,вы еще активны тут?

Добрый. Да, я всегда активен если не в отпуске и отвечаю в течение 0,5-2 дней

Использовали ли вы повышающий преобразователь, чтобы поднять напряжение аккумулятора до 5 В, или ESP работает напрямую от 3,7 В?

ESP32 работает от 3.3 В, поэтому повышать напряжение от аккумулятора не нужно

Здравствуйте снова, у меня есть вопрос по проекту, у меня, когда я питаю все напрямую от 3.7V Li-ion аккумулятора (через TP4056), ESP запускается нормально, но при активации насоса происходит одно из следующего: Реле замыкается или насос не запускается; Иногда кажется, что ESP перезапускается. Что сделать, чтобы он работал стабильно, и еще я заметил одну вещь, что на видео подключение к реле одно, а на электрической схеме другое. Спасибо! Жду ответа

Добрый вечер. Попробуйте посмотреть с помощью мультиметра что происходит с подачей питания на ESP при включении реле

Так ведь blink уже давно не работает … или у вас свой сервер поднят ?

Добрый день. Купил все необходимое, плату esp32. Пробую её подключить к вай фай. Пробую повторить ваш проект. Но все равно не получается. Стою на месте. Может у вас есть возможность индивидуально объяснить что делаю не так?

Доброе утро. К сожалению, индивидуально вряд ли получится. Если у вас не получается подключить модуль ESP32 к сети WiFi я советую вам начать с более простого проекта (этот проект все таки сложноват для начинающих) — таких проектов на нашем сайте достаточно много. И этот проект я бы советовал вам пробовать в упрощенном варианте, например, без светодиодной ленты — в этом случае код данного проекта значительно упростится

ну тогда как будет без светодиодной лентой обьсните как все нужно делать

Замените ее на простой светодиод. Если хотите упростить данный проект в соответствии с вашими пожеланиями рекомендую использовать chat.deepseek.com — копируете ему туда адрес этой страницы и пишите словами что нужно сделать, он даст рекомендации по изменению схемы и перепишет код в соответствии с вашими пожеланиями

Можно использовать насос на 12 вольт и что для этого нужно ещё сделать?

Добрый день, да, можно. Необходимо использовать модуль реле на 12 В, а питание на остальную часть схемы подавать через понижающий стабилизатор напряжения, например, микросхему AMS1117, и в этом случае питание на модуль ESP32 необходимо подавать на его контакт Vin, чтобы не сжечь модуль

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

Добрый вечер. Да, реле нужно будет трехконтактное, каждым контактом будем управлять отдельно с контакта модуля ESP32. В автоматическом режиме нужно будет три раза повторить код:
int soilSensorValue = analogRead(soilMoisturePin);
Serial.println(soilSensorValue);
mappedSoilMoisture = map(soilSensorValue, 1023, 2750, 100, 0);
autoControlPump(mappedSoilMoisture);
В функцию analogRead при этом передавать номера контактов, к которым подключены датчики, а в функцию autoControlPump добавить в качестве аргумента номер контакта, с которого будем управлять реле, и все эти три раза передавать туда этих три разных контакта.

Добавить комментарий

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