Наверное, каждый сталкивался с проблемой полива комнатных растений во время отпуска, когда вы запланировали поездку на 1-2 неделю. На данное время приходиться искать того, кто мог бы поливать ваши растения. Я сталкивался с такой проблемой и поэтому решил сделать автоматический полив комнатных растений на M5Stack (ESP32). Данное устройство оснащено дисплеем, на котором отображается влажность почвы и состояние работы помпы полива. Но не всегда удобно смотреть на двухдюймовый дисплей. Поэтому я сделал приложение для телефона, которое позволит информировать о процессе полива и отследить, когда нужно добавлять воду в резервуар.
Для того, чтобы проект можно было легко повторить, я буду использовать M5Stack Core 2 на базе микроконтроллера ESP32. Обзор на данное устройство можно посмотреть тут.
Полив и контроль влажности почвы будет осуществлять юнит «Watering», в комплекте с которым поставляются все необходимые провода для подключения и капиллярные шланги. Датчик измерения влажности почвы емкостной, поэтому он не окисляется, что обеспечит точность измерения на долгое время.
Купить все для данного проекта со скидкой можно на сайте https://m5stack.pro. Для моих читателей предусмотрена скидка 10% в данном магазине, которая действует до 31.12 2021. Купон на сидку: PORTAL.
На сайте m5stack.pro также идет предновогодняя акция на новогодние наборы. Подробнее смотрите тут.
Несмотря на то, что M5Stack Core 2 и юнит «Watering» соединяются между собой одним проводом, тут ожидал меня один сюрприз. «Watering» нужно подключать к Порту В, но у Core 2 есть только порт А. А при подключении к порту А показания с датчика не считываются. Можно купить модуль основания для расширения портов, но в магазине меня уверили, что все будет работать и от порта А.
Как показала практика, они ошибались, поэтому пришлось подключать к пиннам основной колодки контактов, соответствующим порту В. Как показано ниже на схеме подключения.
Также можно оставить питание в разъёме порта А, а информационные контакты подключить в основную колодку, как показано на схеме ниже.
Так как датчик влажности аналоговый его нужно откалибровать. Взять диапазон чувствительности и перевести в процент (%) влажности. Для этого я написал небольшую программу, которая считывает показания и выводит данные значения на дисплей. Внизу статьи вы можете скачать данную программу для UIFlow и среды разработки Arduino IDE.
Первое калибровочное значение нужно замерять, когда датчик сухой. Полученные данные указываем в программе как максимальное значение.
Затем производим замеры при погруженном в воду датчике. Полученные значения также указываем в программе.
На этом калибровка завершена, осталось перевести показания в процент (%) влажности, что мы и сделаем в программе.
Сделать систему полива в среде разработки UIFlow достаточно просто. Самый сложный момент — это перевод полученных значений при калибровки в процент (%) влажности почвы. И тот факт, что при погружении в воду значение минимальное, потребуется применение некоторых математических знаний. Но вам не нужно писать формулы и разбираться, что к чему. Я уже все прописал, а вам достаточно в программе указать минимальное и максимальное значения при калибровке, загрузить программу в M5Stack. Программу постарался сделать максимально универсальную: её можно использовать не только для M5Stack Core 2, но и для M5Stack GRAY, M5Stack FIRE и других базовых моделей с двухдюймовыми дисплеями и тремя кнопками.
Написал алгоритм контроля влажности почвы, если значение падает ниже, чем прописано тут.
Помпа автоматически включается и работает до тех пор, пока влажность почвы не поднимется до указанного значения. Регулируемое значение влажности почвы можно указать то, которое необходимо поддерживать для вашего растения.
Для комфортной работы вывел следующую информацию на дисплей:
В программе добавил принудительное включение и выключение помпы при нажатии кнопки «А». Помпа работает пока кнопка находится в нажатом состоянии, при отпускании кнопки помпа отключается. Это функция необходима для продувки капиллярах шлангов и при смене резервуара с водой.
Также добавил регулировку яркости подсветки дисплея, при нажатии на сенсорную кнопку «С» яркость изменяется от 20 до 100 %.
Интерфейс получился достаточно красивый, но вот вывести текст на русском языке нельзя. Для Arduino IDE есть пример «Display_Unicode», который позволяет вывести текст на русском. Сейчас проверим так ли это.
Для начала проверил вывод русского текста на дисплей M5Stack. Да, действительно, текст выводится на русском языке, но есть небольшая проблема: использовать можно только подгруженный шрифт в определенной кодировке. При работе с динамическим обновлением значений происходит наложение символов. Похоже, фон текста не поддерживается. Решил использовать костыль, а именно: закрашивать область прямоугольником и затем выводить текст. Но предыдущий текст также не закрывается. В чём проблема и как её решить пока не знаю. Если у вас есть предложения по решению данной проблемы, пишите их в комментариях.
Как и писал раннее, для Arduino IDE написал скетч калибровки датчика влажности. Скачать его можно внизу статьи в разделе «файлы для скачивания».
В среде Arduino IDE сделать красивый интерфейс сложнее. У меня получился вот такой результат.
Программа по функциональности получилась точно такая же, как и в UIFlow. И на дисплей выводится аналогичная информация. С помощью сенсорных кнопок можно управлять яркостью подсветки дисплея, узнать IP адрес устройства, принудительно включить помпу.
Так как растение может стоять в труднодоступном месте, я решил сделать управление устройством по Wi-Fi сети с помощью приложения для телефона на операционной системе Android.
Для того, чтобы начать программировать M5Stack Core 2 в среде Arduino IDE необходимо установить драйвера и добавить плату в среду разработки. Об этом подробно рассказано на официальном сайте. Все по аналогии с настройкой платы ESP32.
После этого можно загрузить скетч в устройства.
Внимание! Скетч нужно обязательно разархивировать. Запускаем нужный файл «WATERING_1.1.ino». После этого должно открыться несколько вкладок, как показано на картинке ниже.
Перед тем, как загрузить код в плату необходимо настроить несколько параметров. Это процент поддерживаемой влажности почвы и калибровочные данные. Про то, как их узнать, рассказывал ранее.
Затем настроить подключение к вашей Wi-Fi сети. Если данные не указывать, устройство поднимет свою точку доступа с именем «ATPomp» и паролем по умолчанию «012345678». В таком случае в приложении нужно указать IP «192.168.4.1».
После того, как всё настроено и прошивка загружена в M5Stack, нажимаем на кнопку «В», которая располагается по середине. После чего на экране выше кнопки увидим IP – адрес устройства. Если вам выдаст одни нули, это означает, что устройство не подключилось к вашей Wi-Fi сети и подняло свою точку доступа. Как подключиться к ней я рассказывал ранее.
Сейчас можно перейти к приложению, скачать которое можно внизу статьи в разделе «файлы для скачивания».
В приложении на странице настроек указываем полученный IP- адрес.
На основной странице приложения отображается точно такая же информация, что и на дисплее. Однако тут добавлено поле «яркость». Это позволит проконтролировать, чтобы дисплей не светился ярко, когда этого не нужно.
Тут есть особенность в управление помпой с приложения. Одна кнопка включает помпу, а вторая выключает, поэтому нужно быть внимательнее, чтобы не оставить включённым насос полива.
Все подключено и запрограммировано. Далее подключаем капиллярные шланги к помпе, наливаем воды в резервуар. Я буду использовать стеклянную банку объёмом 1 литр.
Подопытное растение у меня будет каланхоэ, которое раньше у меня цвело, но последние 2 года не цветет. Возможно, как раз ему нахватает влаги. Вот заодно и проверю.
Установил измерительный зонд в почву рядом с растением. После этого проверил, как работает программа, написанная в UIFlow. Полив работает отлично.
Затем проверил скетч, написанный в среде Arduino IDE. Результат аналогичный. Теперь пришло время проверить работу приложения. Как я и ожидал, информация отображается, помпа включается и выключается.
Пришло время поставить растение на место и забыть про полив. Главное не забыть про то, что нужно добавлять воду в резервуар.
Пока делал данную самоделку, придумал несколько доработок которые можно сделать, если данная тема будет интересна:
Полезные ссылки:
Если у вас есть предложения по данному проекту, пишите их в комментарии.
Понравился проект Автоматический полив комнатных растений на M5Stack? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
![]() |
программу UIFlow для калибровки.zip | 2 Kb | 408 | Скачать |
![]() |
программу Arduino для калибровки.ino | 1 Kb | 466 | Скачать |
![]() |
Программа полива комнатных растений в среде UIFlow.zip | 4 Kb | 426 | Скачать |
![]() |
Программа полива комнатных растений в среде Arduino IDE.zip | 6 Kb | 446 | Скачать |
![]() |
Приложение для телефона для управления поливом комнатных растений.apk | 19938 Kb | 480 | Скачать |
Проекты на ESP8266, ESP32
20 декабря , 2021
Комментариев:0
Файлов для скачивания:5
Фото:9
Понравилась статья? Нажми
Cлучайные товары
Матричная клавиатура
CNC shield v3
Читайте также
Мы в соц сетях
Комментарии