Оглавление:

IoT APIS V2 - автономная автоматизированная система полива растений с поддержкой Интернета вещей: 17 шагов (с изображениями)
IoT APIS V2 - автономная автоматизированная система полива растений с поддержкой Интернета вещей: 17 шагов (с изображениями)

Видео: IoT APIS V2 - автономная автоматизированная система полива растений с поддержкой Интернета вещей: 17 шагов (с изображениями)

Видео: IoT APIS V2 - автономная автоматизированная система полива растений с поддержкой Интернета вещей: 17 шагов (с изображениями)
Видео: Вебинар цифровое сельское хозяйство 27 февраля 2020 2024, Июль
Anonim
IoT APIS V2 - автономная автоматизированная система полива растений с поддержкой Интернета вещей
IoT APIS V2 - автономная автоматизированная система полива растений с поддержкой Интернета вещей
IoT APIS V2 - автономная автоматизированная система полива растений с поддержкой Интернета вещей
IoT APIS V2 - автономная автоматизированная система полива растений с поддержкой Интернета вещей

Этот проект является развитием моего предыдущего руководства: APIS - Автоматизированная система полива растений.

Я использую APIS почти год и хотел улучшить предыдущий дизайн:

  1. Возможность удаленного наблюдения за заводом. Так этот проект стал доступен для Интернета вещей.
  2. Легко заменяемый датчик влажности почвы. Я испытал три различных конструкции датчика влажности, и независимо от того, какой материал я использовал, он рано или поздно разрушился. Таким образом, новая конструкция должна была прослужить как можно дольше и ее можно было быстро и легко заменить.
  3. Уровень воды в ведре. Я хотел иметь возможность определять, сколько воды еще осталось в ведре, и останавливать полив, когда ведро пустое.
  4. Лучше выглядит. Серая рамка проекта была хорошим началом, но я хотел создать что-то, что выглядело бы немного лучше. Вы будете судьей, если мне удастся достичь этой цели …
  5. Автономность. Я хотел, чтобы новая система была автономной с точки зрения мощности и / или доступности Интернета.

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

Я также хотел использовать свой недавно приобретенный 3D-принтер, поэтому некоторые детали придется распечатать.

Шаг 1. Аппаратное обеспечение

Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение

Для создания IoT APIS v2 вам потребуются следующие компоненты:

  1. NodeMcu Lua ESP8266 ESP-12E WIFI Development Board - на banggood.com
  2. SODIAL (R) 3-контактный модуль измерения расстояния ультразвукового датчика, двойной датчик, трехконтактный на плате - на amazon.com
  3. DC 3V-6V 5V Маленький погружной водяной насос Насос для аквариума - на ebay.com
  4. Трехцветный светодиод - на amazon.com
  5. Доска Vero - на amazon.com
  6. Транзистор PN2222 - на amazon.com
  7. Пластиковые винты, болты и гайки
  8. Паяльное оборудование и принадлежности
  9. Провода, резисторы, разъемы и другие разные электронные компоненты
  10. Пустая банка Tropicana OJ 2.78 QT
  11. 2 оцинкованных гвоздя

Шаг 2: Общий дизайн

Общий дизайн
Общий дизайн
Общий дизайн
Общий дизайн

Общий дизайн состоит из следующих компонентов: 1. Датчик влажности почвы и корпус для полива растений (комбинированный - 3D печать) 2. Трубки и проводка 3. Датчик утечки воды из лотка (напечатан на 3D-принтере) 4. Модуль управления, установленный на верхней части банки OJ (помещен и заключен в корпус с 3D-печатью) 5. Погружной водяной насос 6. NodeMCU sketch7. Конфигурация IoT 8. Электропитание: USB через розетку -ИЛИ- солнечная панель (автономный режим) Давайте обсудим каждый компонент индивидуально

Шаг 3: погружной водяной насос

Погружной водяной насос
Погружной водяной насос
Погружной водяной насос
Погружной водяной насос

Погружной водяной насос расположен под ручкой сосуда OJ (чтобы не мешать измерению уровня воды). Насос размещен таким образом, чтобы он «зависал» примерно на 2-3 мм над дном емкости, чтобы вода могла свободно стекать в приемное отверстие.

Поскольку для нормальной работы насос должен быть полностью погружен, минимальный уровень воды в кувшине должен составлять около 3 см (около 1 дюйма).

Шаг 4: Модуль управления, устанавливаемый на верхнюю часть банки OJ

Модуль управления, установленный на крышке OJ Jar
Модуль управления, установленный на крышке OJ Jar
Модуль управления, установленный на крышке OJ Jar
Модуль управления, установленный на крышке OJ Jar
Модуль управления, установленный на крышке OJ Jar
Модуль управления, установленный на крышке OJ Jar

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

После снятия исходного крана модуль управления помещается на верхнюю часть емкости.

Платформа, на которой расположен модуль управления, напечатана на 3D-принтере. Файл STL представлен в разделах «Файлы и эскизы» данного руководства.

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

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

Модуль управления и датчик US закрыты напечатанным на 3D-принтере «куполом». Файл STL купола представлен в разделе файлов и эскизов данного руководства.

Шаг 5: Модуль управления - Схема

Модуль управления - схема
Модуль управления - схема
Модуль управления - схема
Модуль управления - схема

Схемы для модуля управления (включая список компонентов) и файлы макета платы представлены в разделе файлов и эскизов данного руководства.

ПРИМЕЧАНИЕ. Работа с NodeMCU оказалась сложной задачей с точки зрения доступных контактов GPIO. Почти все GPIO выполняют ряд функций, что делает их либо недоступными для использования, либо невозможными для использования в режиме глубокого сна (из-за специальных функций, которые они играют во время процесса загрузки). В конце концов, мне удалось найти баланс между использованием GPIO и моими требованиями, но потребовалось несколько разочаровывающих итераций.

Например, некоторые GPIO остаются «горячими» во время глубокого сна. Подключение светодиода к таковым с целью снижения энергопотребления во время глубокого сна.

Шаг 6: Датчик утечки воды из лотка

Датчик утечки воды из лотка
Датчик утечки воды из лотка
Датчик утечки воды из лотка
Датчик утечки воды из лотка
Датчик утечки воды из лотка
Датчик утечки воды из лотка

Если у вашего горшка есть переливное отверстие на дне, есть риск, что вода выльется из нижнего поддона и выльется на пол (полку или другое место, на котором находится ваше растение).

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

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

В конце концов вода испаряется, и провода отсоединяются.

Нижний лоток напечатан на 3D-принтере. Файл STL доступен в разделе файлов и эскизов данного руководства.

Шаг 7: Датчик влажности почвы и поливочный шкаф

Image
Image
Датчик влажности почвы и поливочный шкаф
Датчик влажности почвы и поливочный шкаф
Датчик влажности почвы и поливочный шкаф
Датчик влажности почвы и поливочный шкаф

Я разработал корпус из шестиугольника, напечатанный на 3D-принтере, как комбинированный датчик влажности почвы и поливочный корпус.

Файл для 3D-печати (STL) доступен в разделе файлов и эскизов данного руководства.

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

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

3D-дизайн выполняется с помощью www.tinkercad.com, который представляет собой отличный и простой в использовании, но мощный инструмент для 3D-дизайна.

ПРИМЕЧАНИЕ. Вы можете спросить, почему я просто не использовал один из предварительно изготовленных датчиков почвы? Ответ таков: фольга на них растворяется в течение нескольких недель. Фактически, даже при ограниченном времени, когда гвозди находятся под напряжением, они все равно разрушаются, и их необходимо заменять не реже одного раза в год. Вышеупомянутая конструкция позволяет заменять ногти в считанные секунды.

Шаг 8: трубки и проводка

Трубки и проводка
Трубки и проводка

Вода подается на объект через сверхмягкие латексные полупрозрачные трубки (с внутренним диаметром 1/4 дюйма и внешним диаметром 5/16 дюйма).

Для выхода насоса требуются трубки большего размера и переходник: химически стойкий полипропиленовый зазубренный фитинг, переходной прямой для трубы с внутренним диаметром 1/4 "x 1/8".

Наконец, химически стойкий полипропиленовый фитинг с зазубринами, прямой для трубки с внутренним диаметром 1/8 дюйма, служит в качестве соединителя с поливочной камерой.

Шаг 9: эскиз NodeMCU

Эскиз NodeMCU
Эскиз NodeMCU

Скетч NodeMCU реализует несколько функций IoT APIS v2:

  1. Подключается к существующей сети Wi-Fi -ИЛИ- работает как точка доступа Wi-Fi (в зависимости от конфигурации)
  2. Запрашивает NTP-серверы для получения местного времени
  3. Реализует веб-сервер для мониторинга растений и настройки параметров полива и сети.
  4. Измеряет влажность почвы, утечки воды в нижнем лотке, уровень воды в банке и обеспечивает визуальную индикацию с помощью 3-х цветного светодиода.
  5. Реализует режимы работы онлайн и энергосбережение
  6. Сохраняет информацию о каждом поливе локально во внутренней флеш-памяти.

Шаг 10: эскиз NodeMCU - Wi-Fi

Эскиз NodeMCU - Wi-Fi
Эскиз NodeMCU - Wi-Fi

По умолчанию IoT APIS v2 создает локальную точку доступа Wi-Fi под названием «Plant_XXXXXX», где XXXXXX - это серийный номер микросхемы ESP8266 на плате NodeMCU.

Вы можете получить доступ к встроенному веб-серверу через URL: https://plant.io внутренний DNS-сервер подключит ваше устройство к странице статуса APIS.

Со страницы состояния вы можете перейти на страницу параметров полива и страницу параметров сети, где вы можете подключить IoT APIS v2 к вашей сети Wi-Fi и начать отправлять отчеты о состоянии в облако.

IoT APIS поддерживает режимы работы в режиме онлайн и энергосбережение:

  1. В онлайн-режиме IoT APIS постоянно поддерживает соединение Wi-Fi, поэтому вы можете в любое время проверить состояние своего предприятия.
  2. В режиме энергосбережения IoT APIS периодически проверяет влажность почвы и уровень воды, переводя устройство в режим «глубокого сна», что значительно снижает его энергопотребление. Однако устройство не всегда доступно в сети, и параметры можно было изменить только во время включения устройства (в настоящее время каждые 30 минут, в соответствии с часами / получасовыми часами реального времени). Устройство будет оставаться в сети в течение 1 минуты каждые 30 минут, чтобы можно было изменить конфигурацию, а затем перейдет в режим глубокого сна. Если пользователь подключается к устройству, время работы увеличивается до 3 минут для каждого подключения.

Когда устройство подключено к локальной сети Wi-Fi, его IP-адрес передается на облачный сервер IoT и отображается на мобильном устройстве мониторинга.

Шаг 11: эскиз NodeMCU - NTP

Эскиз NodeMCU - NTP
Эскиз NodeMCU - NTP

IoT APIS v2 использует протокол NTP для получения местного времени от серверов времени NIST. Правильное время используется для определения того, должно ли устройство переходить в «ночной» режим, т.е. избегать включения насоса или мигания светодиода.

Ночное время настраивается отдельно для рабочих дней и утра выходных.

Шаг 12: эскиз NodeMCU - локальный веб-сервер

NodeMCU Sketch - локальный веб-сервер
NodeMCU Sketch - локальный веб-сервер
NodeMCU Sketch - локальный веб-сервер
NodeMCU Sketch - локальный веб-сервер
NodeMCU Sketch - локальный веб-сервер
NodeMCU Sketch - локальный веб-сервер

В IoT APIS v2 реализован локальный веб-сервер для отчетов о состоянии и изменения конфигурации. Домашняя страница содержит информацию о текущей влажности и уровне воды, наличии перелива воды в нижнем лотке и статистику последнего цикла полива. Страница конфигурации сети (доступна с помощью кнопки настройки сети) обеспечивает возможность подключения к локальной сети Wi-Fi и переключения между режимами онлайн и энергосбережения. (Изменения в конфигурации сети приведут к сбросу устройства) Страница конфигурации полива (доступная с помощью кнопки настройки воды) предоставляет возможность изменять параметры полива (влажность почвы для начала / остановки полива, продолжительность цикла полива и пауза насыщения между циклами, количество циклов и т. д.) HTML-файлы веб-сервера находятся в папке данных эскиза IoT APIS Arduino IDE. Они должны быть загружены во флэш-память NodeMCU как файловая система SPIFF с помощью расположенного здесь инструмента «ESP8266 Sketch Data Upload».

Шаг 13: эскиз NodeMCU - локальный журнал полива и доступ к внутренней файловой системе

NodeMCU Sketch - локальный журнал полива и доступ к внутренней файловой системе
NodeMCU Sketch - локальный журнал полива и доступ к внутренней файловой системе

В случае, если подключение к сети недоступно, система IoT APIS v2 регистрирует все действия по поливу локально.

Чтобы получить доступ к журналу, подключитесь к устройству и перейдите на страницу «/ edit», затем загрузите файл watering.log. Этот файл содержит историю всех поливов с момента начала регистрации.

Пример такого файла журнала (в формате, разделенном табуляцией) прилагается к этому шагу.

ПРИМЕЧАНИЕ. Страница загрузки недоступна, когда IoT APIS v2 работает в режиме точки доступа (из-за зависимости от онлайн-библиотеки Java Script).

Шаг 14: эскиз NodeMCU - влажность почвы, протечка воды из нижнего лотка, уровень воды, 3-х цветный светодиод

Image
Image
Эскиз NodeMCU - влажность почвы, протечка воды из нижнего лотка, уровень воды, 3-х цветный светодиод
Эскиз NodeMCU - влажность почвы, протечка воды из нижнего лотка, уровень воды, 3-х цветный светодиод
Эскиз NodeMCU - влажность почвы, протечка воды из нижнего лотка, уровень воды, 3-х цветный светодиод
Эскиз NodeMCU - влажность почвы, протечка воды из нижнего лотка, уровень воды, 3-х цветный светодиод

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

Утечки из поддона для воды обнаруживаются путем кратковременного приложения напряжения к проводам, расположенным под горшком, с помощью внутренних резисторов PULLUP. Если результирующее состояние ПИН-кода НИЗКОЕ, значит, в лотке есть вода. Состояние PIN ВЫСОКИЙ означает, что цепь "разорвана", поэтому в нижнем лотке нет воды.

Уровень воды определяется путем измерения расстояния от верха банки до поверхности воды и сравнения его с расстоянием до дна пустой емкости. Обратите внимание на использование 3-х контактного датчика! Они дороже четырехконтактных датчиков HC-SR04. К сожалению, у меня закончились GPIO на NodeMCU, и мне пришлось отрезать все провода, которые я мог, чтобы проект работал только на одном NodeMCU без дополнительных схем.

3-х цветный светодиод используется для визуальной индикации состояния APIS:

  1. Умеренно мигает ЗЕЛЕНЫМ - подключение к сети Wi-Fi
  2. Быстро мигающий ЗЕЛЕНЫЙ - запрос сервера NTP
  3. Кратковременно горит ЗЕЛЕНЫЙ - подключен к Wi-Fi и успешно получил текущее время от NTP.
  4. Кратковременное свечение БЕЛЫМ цветом - инициализация сети завершена.
  5. Быстро мигающий БЕЛЫЙ - переход в режим точки доступа
  6. Быстро мигающий СИНИЙ - полив
  7. Умеренно мигает СИНИЙ - насыщающий
  8. На короткое время горит ЖЕЛТЫЙ, а затем на короткое время горит КРАСНЫЙ - не удается получить время от NTP.
  9. На короткое время горит БЕЛЫЙ при доступе к внутреннему веб-серверу

Светодиод не работает в «ночном» режиме. Ночной режим мог быть надежно определен только в том случае, если устройство могло получить местное время от серверов NTP хотя бы один раз (локальные часы реального времени будут использоваться до тех пор, пока не будет установлено следующее соединение с NTP)

Пример функции светодиода доступен на YouTube здесь.

Шаг 15: Солнечная энергия, Power Bank и автономная работа

Солнечная энергия, Power Bank и автономная работа
Солнечная энергия, Power Bank и автономная работа
Солнечная энергия, Power Bank и автономная работа
Солнечная энергия, Power Bank и автономная работа
Солнечная энергия, Power Bank и автономная работа
Солнечная энергия, Power Bank и автономная работа

Одна из идей, лежащих в основе IoT APIS v2, заключалась в возможности автономной работы.

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

  1. Солнечная панель доступна на amazon.com
  2. Power Bank также доступен на amazon.com.

В солнечную панель встроен аккумулятор емкостью 2600 мАч, но он не может поддерживать 24-часовую работу APIS даже в режиме энергосбережения (я подозреваю, что батарея плохо справляется с одновременной зарядкой и разрядкой). Кажется, что комбинация двух батарей обеспечивает достаточную мощность и позволяет подзаряжать обе батареи в течение дня. Солнечная панель заряжает внешний аккумулятор, а внешний аккумулятор включает устройство APIS.

Пожалуйста, обрати внимание:

Эти компоненты не являются обязательными. Вы можете просто подключить устройство к любому USB-адаптеру, который обеспечивает ток 1А.

Шаг 16: Интеграция IoT - Blynk

Интеграция Интернета вещей - Blynk
Интеграция Интернета вещей - Blynk
Интеграция Интернета вещей - Blynk
Интеграция Интернета вещей - Blynk
Интеграция Интернета вещей - Blynk
Интеграция Интернета вещей - Blynk

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

Я выбрал Blynk (www.blynk.io) в качестве платформы Интернета вещей из-за ее простоты использования и привлекательного визуального дизайна.

Поскольку мой скетч основан на кооперативной многозадачной библиотеке TaskScheduler, я не хотел использовать библиотеки устройств Blynk (они не включены для TaskScheduler). Вместо этого я использовал Blynk HTTP RESTful API (доступно здесь).

Настройка приложения настолько интуитивна, насколько это возможно. Пожалуйста, следите за прикрепленными скриншотами.

Шаг 17: эскизы и файлы

Эскизы и файлы
Эскизы и файлы

Скетч IoT APIS v2 находится на github здесь: Sketch

Здесь расположены несколько библиотек, используемых в скетче:

  1. TaskScheduler - совместная библиотека многозадачности для Arduino и esp8266
  2. AvgFilter - целочисленная реализация фильтра Average для сглаживания данных датчика
  3. RTCLib - реализация аппаратно-программных часов реального времени (модифицирована мной)
  4. Время - Модификации библиотеки времени
  5. Timezone - библиотека, поддерживающая вычисления часовых поясов

ЗАМЕТКА:

Таблицы данных, документация по выводам и 3D-файлы находятся в подпапке «файлы» основного эскиза.

HTML-файлы для встроенного веб-сервера должны быть загружены во флеш-память NODE MCU с помощью arduino-esp8266fs-plugin (который создает файл файловой системы из подпапки «data» основной папки скетча и выгружает его во флеш-память)

Конкурс садоводства 2016
Конкурс садоводства 2016
Конкурс садоводства 2016
Конкурс садоводства 2016

Финалист конкурса по садоводству в закрытых помещениях 2016

Рекомендуемые: