Автоматический полив комнатных растений на M5Stack (ESP32).

Наверное, каждый сталкивался с проблемой полива комнатных растений во время отпуска, когда вы запланировали поездку на 1-2 неделю. На данное время приходиться искать того, кто мог бы поливать ваши растения. Я сталкивался с такой проблемой и поэтому решил сделать автоматический полив комнатных растений на M5Stack (ESP32). Данное устройство оснащено дисплеем, на котором отображается влажность почвы и состояние работы помпы полива. Но не всегда удобно смотреть на двухдюймовый дисплей. Поэтому я сделал приложение для телефона, которое позволит информировать о процессе полива и отследить, когда нужно добавлять воду в резервуар.


Что понадобиться для системы автоматического полива растений?

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

Что понадобиться для системы автоматического полива растений?

Полив и контроль влажности почвы будет осуществлять юнит «Watering», в комплекте с которым поставляются все необходимые провода для подключения и капиллярные шланги. Датчик измерения влажности почвы емкостной, поэтому он не окисляется, что обеспечит точность измерения на долгое время.

Купить все для данного проекта со скидкой можно на сайте https://m5stack.pro. Для моих читателей предусмотрена скидка 10% в данном магазине, которая действует до 31.12 2021. Купон на сидку: PORTAL.

Купить все для данного проекта со скидкой можно на сайте https://m5stack.pro.

На сайте m5stack.pro также идет предновогодняя акция на новогодние наборы. Подробнее смотрите тут.

На сайте m5stack.pro также идет предновогодняя акция на новогодние наборы.

Схема подключения системы автополива комнатных растений.

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

Как показала практика, они ошибались, поэтому пришлось подключать к пиннам основной колодки контактов, соответствующим порту В. Как показано ниже на схеме подключения.

Схема подключения системы автополива комнатных растений.

Также можно оставить питание в разъёме порта А, а информационные контакты подключить в основную колодку, как показано на схеме ниже.

Также можно оставить питание в разъёме порта А, а информационные контакты подключить в основную колодку

Калибровка датчика влажности почвы.

Калибровка датчика влажности почвы.

Так как датчик влажности аналоговый его нужно откалибровать. Взять диапазон чувствительности и перевести в процент (%) влажности. Для этого я написал небольшую программу, которая считывает показания и выводит данные значения на дисплей. Внизу статьи вы можете скачать данную программу для UIFlow и среды разработки Arduino IDE.

Калибровка датчика влажности почвы.

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

Первое калибровочное значение нужно замерять, когда датчик сухой.

Затем производим замеры при погруженном в воду датчике. Полученные значения также указываем в программе.

На этом калибровка завершена, осталось перевести показания в процент (%) влажности

На этом калибровка завершена, осталось перевести показания в процент (%) влажности, что мы и сделаем в программе.

Программа полива комнатных растений в среде UIFlow.

Сделать систему полива в среде разработки UIFlow достаточно просто. Самый сложный момент — это перевод полученных значений при калибровки в процент (%) влажности почвы. И тот факт, что при погружении в воду значение минимальное, потребуется применение некоторых математических знаний. Но вам не нужно писать формулы и разбираться, что к чему. Я уже все прописал, а вам достаточно в программе указать минимальное и максимальное значения при калибровке, загрузить программу в M5Stack. Программу постарался сделать максимально универсальную: её можно использовать не только для M5Stack Core 2, но и для M5Stack GRAY, M5Stack FIRE и других базовых моделей с двухдюймовыми дисплеями и тремя кнопками.

Программа полива комнатных растений в среде UIFlow.

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

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

Помпа автоматически включается и работает до тех пор, пока влажность почвы не поднимется до указанного значения. Регулируемое значение влажности почвы можно указать то, которое необходимо поддерживать для вашего растения.

Для комфортной работы вывел следующую информацию на дисплей:

  • Уровень влажности почвы;
  • Состояние помпы: включена или выключена;
  • Уровень заряда батареи – полив может работать от встроенного аккумулятора и даже, если выключат электричество, устройство будет работать автономно ещё некоторое время.

Для комфортной работы вывел следующую информацию на дисплей:

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

В программе добавил принудительное включение и выключение помпы при нажатии кнопки «А»

Также добавил регулировку яркости подсветки дисплея, при нажатии на сенсорную кнопку «С» яркость изменяется от 20 до 100 %.

Также добавил регулировку яркости подсветки дисплея, при нажатии на сенсорную кнопку «С»

Интерфейс получился достаточно красивый, но вот вывести текст на русском языке нельзя. Для Arduino IDE есть пример «Display_Unicode», который позволяет вывести текст на русском. Сейчас проверим так ли это.

Программа автоматического полива комнатных растений в среде Arduino IDE.

Для начала проверил вывод русского текста на дисплей M5Stack. Да, действительно, текст выводится на русском языке, но есть небольшая проблема: использовать можно только подгруженный шрифт в определенной кодировке. При работе с динамическим обновлением значений происходит наложение символов. Похоже, фон текста не поддерживается. Решил использовать костыль, а именно: закрашивать область прямоугольником и затем выводить текст. Но предыдущий текст также не закрывается. В чём проблема и как её решить пока не знаю. Если у вас есть предложения по решению данной проблемы, пишите их в комментариях.

вывести текст на русском языке нельзя. Для Arduino IDE есть пример «Display_Unicode», который позволяет вывести текст на русском.

Как и писал раннее, для Arduino IDE написал скетч калибровки датчика влажности. Скачать его можно внизу статьи в разделе «файлы для скачивания».

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

В среде Arduino IDE сделать красивый интерфейс сложнее.

Программа по функциональности получилась точно такая же, как и в UIFlow. И на дисплей выводится аналогичная информация. С помощью сенсорных кнопок можно управлять яркостью подсветки дисплея, узнать IP адрес устройства, принудительно включить помпу.

управление устройством по Wi-Fi сети с помощью приложения для телефона на операционной системе Android

Так как растение может стоять в труднодоступном месте, я решил сделать управление устройством по Wi-Fi сети с помощью приложения для телефона на операционной системе Android.

Настройка среды Arduino IDE для работы с платой M5Stack Core 2.

Для того, чтобы начать программировать M5Stack Core 2 в среде Arduino IDE необходимо установить драйвера и добавить плату в среду разработки. Об этом подробно рассказано на официальном сайте. Все по аналогии с настройкой платы ESP32.

Настройка среды Arduino IDE для работы с платой M5Stack Core 2.

После этого можно загрузить скетч в устройства.

После этого можно загрузить скетч в устройства.

Внимание! Скетч нужно обязательно разархивировать. Запускаем нужный файл «WATERING_1.1.ino». После этого должно открыться несколько вкладок, как показано на картинке ниже.

Скетч нужно обязательно разархивировать. Запускаем нужный файл «WATERING_1.1.ino»

Что нужно настроить в прошивке автоматического полива?

Скетч нужно обязательно разархивировать. Запускаем нужный файл «WATERING_1.1.ino»

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

 Это процент поддерживаемой влажности почвы и калибровочные данные.

Затем настроить подключение к вашей Wi-Fi сети. Если данные не указывать, устройство поднимет свою точку доступа с именем «ATPomp» и паролем по умолчанию «012345678». В таком случае в приложении нужно указать IP «192.168.4.1».

 Это процент поддерживаемой влажности почвы и калибровочные данные.

Приложение для телефона для управления поливом комнатных растений.

После того, как всё настроено и прошивка загружена в M5Stack, нажимаем на кнопку «В», которая располагается по середине. После чего на экране выше кнопки увидим IP – адрес устройства. Если вам выдаст одни нули, это означает, что устройство не подключилось к вашей Wi-Fi сети и подняло свою точку доступа. Как подключиться к ней я рассказывал ранее.

Сейчас можно перейти к приложению, скачать которое можно внизу статьи в разделе «файлы для скачивания».

В приложении на странице настроек указываем полученный IP- адрес.

В приложении на странице настроек указываем полученный IP- адрес.

На основной странице приложения отображается точно такая же информация, что и на дисплее.

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

Одна кнопка включает помпу, а вторая выключает, поэтому нужно быть внимательнее, чтобы не оставить включённым насос полива.

Тут есть особенность в управление помпой с приложения. Одна кнопка включает помпу, а вторая выключает, поэтому нужно быть внимательнее, чтобы не оставить включённым насос полива.

Проверка работоспособности системы полива растений.

Все подключено и запрограммировано. Далее подключаем капиллярные шланги к помпе, наливаем воды в резервуар. Я буду использовать стеклянную банку объёмом 1 литр.

Подопытное растение у меня будет каланхоэ, которое раньше у меня цвело, но последние 2 года не цветет.

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

Установил измерительный зонд в почву рядом с растением.

Установил измерительный зонд в почву рядом с растением. После этого проверил, как работает программа, написанная в UIFlow. Полив работает отлично.

Затем проверил скетч, написанный в среде Arduino IDE.

Затем проверил скетч, написанный в среде Arduino IDE. Результат аналогичный. Теперь пришло время проверить работу приложения. Как я и ожидал, информация отображается, помпа включается и выключается.

проверить работу приложения.

Пришло время поставить растение на место и забыть про полив. Главное не забыть про то, что нужно добавлять воду в резервуар.

Пока делал данную самоделку, придумал несколько доработок которые можно сделать, если данная тема будет интересна:

  • Звуковое уведомление, если помпа работает, а влажность не меняется, что в свою очередь сигнализирует от том, что вода закончилась.
  • Настройка с дисплея и приложения поддерживаемого процента влажности.

Полезные ссылки:

  1. Онлайн компилятор UIFlow
  2. Англоязычный сайт
  3. Полезные видеоматериалы, русскоязычные описания устройств линейки M5Stack
  4. Настройка UIFlow - M5Core2
  5. Настройка Arduino IDE
  6. Описание Watering
  7. LCD Screen Arduino IDE

Если у вас есть предложения по данному проекту, пишите их в комментарии.

Понравился проект Автоматический полив комнатных растений на M5Stack? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

программу UIFlow для калибровки программу UIFlow для калибровки.zip2 Kb 515 Скачать
программу Arduino для калибровки программу Arduino для калибровки.ino1 Kb 569 Скачать
Программа полива комнатных растений в среде UIFlow Программа полива комнатных растений в среде UIFlow.zip4 Kb 535 Скачать
Программа полива комнатных растений в среде Arduino IDE Программа полива комнатных растений в среде Arduino IDE.zip6 Kb 552 Скачать
Приложение для телефона для управления поливом комнатных растений Приложение для телефона для управления поливом комнатных растений.apk19938 Kb 570 Скачать

Комментарии

Ваше Имя*


Разработка проектов