Оглавление:

Сделай сам - Автоматизированное орошение сада - (Arduino / IOT): 9 шагов (с изображениями)
Сделай сам - Автоматизированное орошение сада - (Arduino / IOT): 9 шагов (с изображениями)

Видео: Сделай сам - Автоматизированное орошение сада - (Arduino / IOT): 9 шагов (с изображениями)

Видео: Сделай сам - Автоматизированное орошение сада - (Arduino / IOT): 9 шагов (с изображениями)
Видео: Автоматическая система полива растений с использованием Raspberry Pi Pico с датчиком влажности почвы 2024, Ноябрь
Anonim
Сделай сам - Автоматизированное орошение сада - (Arduino / IOT)
Сделай сам - Автоматизированное орошение сада - (Arduino / IOT)
Сделай сам - Автоматизированное орошение сада - (Arduino / IOT)
Сделай сам - Автоматизированное орошение сада - (Arduino / IOT)
Сделай сам - Автоматизированное орошение сада - (Arduino / IOT)
Сделай сам - Автоматизированное орошение сада - (Arduino / IOT)

Этот проект покажет вам, как построить контроллер полива для домашнего сада. Способен измерять показания влажности почвы и активировать полив из садового крана, если почва становится слишком сухой. В контроллер также входит датчик температуры и влажности. Контроллер не активирует садовый кран, если температура слишком низкая. Показания датчиков и статистика об использовании воды / времени работы записываются на ThingsBoard IOT для визуализации и аналитики. Оповещения и электронные письма отправляются, если контроллер орошения прекращает передачу данных, почва становится слишком сухой или слишком насыщенной.

Предпосылки

  • Знание Arduino, включая как минимум базовое кодирование для Arduino и пайку.
  • 1x садовый кран под давлением

Ведомость материалов

  • Полимерные трубы для орошения сада, форсунки, капельницы и т. Д.
  • Электронный таймер с двумя циферблатами (например, электронный цифровой таймер Aqua Systems)
  • Редуктор давления крана 300кПа
  • Ардуино Уно
  • Лора Ардуино Щит
  • Lora Gateway (не требуется, если у вас есть шлюз локальной сети Things Network в пределах досягаемости)
  • Датчик влажности DHT11
  • Реле 5в
  • Телефонный кабель
  • Кабельные стяжки
  • Автомобильные гофрированные трубы с разъемом
  • Автомобильные клеммные колодки
  • 2x оцинкованные гвозди
  • 1x резистор
  • Кремний / герметик
  • ПВХ Цемент
  • Грунтовка ПВХ
  • Труба из ПВХ шириной 32 мм и длиной 60 мм
  • Труба ПВХ ширина 90 мм x длина 30 см
  • 3x заглушки из ПВХ 90 мм
  • 1x винтовая заглушка из ПВХ 90 мм
  • 1x резьбовая вставка из ПВХ, 90 мм
  • 1x ПВХ заглушки 32 мм
  • 1x источник питания 3,2 В (таймер крана) [батареи, мультивольтный адаптер переменного тока]
  • 1x источник питания 6–12 В (arduino) [батареи, USB, USB-адаптер переменного тока]
  • лента для уплотнения резьбы
  • электроизоляционная лента

Шаг 1: Установите систему полива сада

Установить орошение сада
Установить орошение сада
Установить орошение сада
Установить орошение сада

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

Эти настройки можно изменить на Arduino и сохранить в памяти EPROM. Настройки также могут быть обновлены за счет интеграции IOT. Этот проект будет запускать контроллер каждые четыре часа и включать кран на 3 минуты, если почва слишком сухая. Он может работать несколько раз подряд, если он сухой / горячий, или один или два раза в противном случае.

Шаг 2: установите таймер касания

Таймер Fit Tap
Таймер Fit Tap

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

Шаг 3: Сборка Arduino

Сборка Arduino
Сборка Arduino
Сборка Arduino
Сборка Arduino
Сборка Arduino
Сборка Arduino
Сборка Arduino
Сборка Arduino

Используйте электрическую схему как руководство для сборки. На фотографиях использована разводка телефонного кабеля и клеммные колодки с винтовыми зажимами для точек соединения. Требуется некоторая пайка.

Нажмите Изменение таймера

Осторожно снимите таймер крана. Мы жестко подключим два регулируемых диска, чтобы ими можно было управлять с помощью Arduino, а не вручную. Левый регулятор частоты будет жестко привязан к положению сброса, так что правый диск может переключаться между положением включения / выключения. Правый циферблат будет иметь один провод, идущий от центрального правого контакта и внешнего правого контакта, как показано. По умолчанию таймер будет выключен. Если два провода соприкоснутся, таймер включится. С двумя проводами, подключенными к реле 5 В, Arduino может замкнуть / разомкнуть контакт между двумя проводами. Подключив один провод к общей клемме реле, а другой к нормально закрытой клемме, мы обеспечим отключение таймера при выключении Arduino. Установка контакта реле на ВЫСОКИЙ включит таймер; установка значения LOW отключит таймер.

Почвенный зонд

Для этого проекта два гвоздя припаиваются к проводу, подключенному к винтовым клеммам. Клемма одного гвоздя идет прямо на землю. Другой подключается к аналоговому входу в Arduino и резистору. Резистор подключается к сигналу Arduinos 5v. Показано на схеме отжима.

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

Датчик температуры / влажности DHT11 подключен к 5V, заземлению и цифровому контакту Arduino.

Лора щит

В этом проекте также использовался Dragino Lora Shield (не показан на схеме подключения).

Основа из ПВХ

Основание из ПВХ для Arduino, используемое в этом проекте, было спроектировано таким образом, чтобы датчик температуры / влажности мог быть открыт, а все остальные компоненты были закреплены внутри водонепроницаемого корпуса из ПВХ. Для датчика просверливается / вырезается небольшое отверстие, и используется силикон, чтобы удерживать его на месте, предотвращая попадание влаги на Arduino. Показано на схеме.

Шаг 4: Программирование Arduino

Программирование Arduino
Программирование Arduino

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

Конфигурация EPROM

Сначала нам нужно записать переменные конфигурации в память EPROM. Запустите следующий код на вашем Arduino:

Код доступен на Github

Здесь DRY_VALUE установлено на 960. 1024 означает, что почва полностью высохла, 0 означает полное насыщение, 960 - хороший уровень насыщения для резистора, длины кабеля и используемых гвоздей. Это может варьироваться в зависимости от вашей собственной конфигурации.

VALVE_OPEN установлен на 180000 миллисекунд (3 минуты). Когда / если таймер крана включен, он будет открыт на 3 минуты.

RUN_INTERVAL установлен на 14400000 миллисекунд (4 часа). Это означает, что контроллер будет проверять влажность почвы каждые четыре часа и включать таймер крана на 3 минуты, если насыщение низкое (более 960).

Приведенный выше код можно изменить и эти значения изменить в любое время.

Программный код

Код доступен на Github

Зависимости:

  • TimedAction
  • Радио Голова

В этом примере использовался щит Драгино Лора и, в частности, параллельный пример Лора с щитом, подключенным непосредственно к шлюзу Драгино Лора.

Это можно адаптировать для использования сети Things Network, удалив код в разделе «BEGIN: lora vars» и изменив программу, включив в нее следующий пример Dragino или адаптировав ее для работы с другими радиопередатчиками / Wi-Fi экранами и т. Д.

Прилагаемый код предполагает, что DHT11_PIN - это цифровой контакт 4, RELAY_PIN - это цифровой контакт 3, а аналоговый контакт влажности почвы - это аналоговый вход 0.

Для переменной отладки можно задать значение true, чтобы сообщения отладки последовательного интерфейса могли регистрироваться на скорости 9600 бод.

Шаг 5: Сборка корпуса

Сборка корпуса
Сборка корпуса

Отрежьте трубу из ПВХ в соответствии с таймером крана и базой Arduino. Просверлите отверстия для штуцера крана таймера и штуцера шланга. Просверлите в трубе отверстия достаточной ширины для автомобильного кабелепровода, проденьте в отверстия 10-сантиметровую трубу, вытащите провода из Arduino и нажмите таймер. Это должно включать:

Из Ардуино

  • Провода питания и / или USB-кабель от USB-порта Arduino.
  • Кабели для измерения влажности почвы (VCC, GND, A0)
  • Два провода от NC и Common винтовых клемм реле

От таймера крана

  • Кабели питания
  • Два провода от контактов правого циферблата

Шаг 6: Контроллер тестирования перед приклеиванием

Контроллер тестирования перед приклеиванием
Контроллер тестирования перед приклеиванием
Контроллер тестирования перед приклеиванием
Контроллер тестирования перед приклеиванием

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

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

К таймеру отвода была прикреплена одна капельница.

Это был хороший способ проверить, не находится ли установка над или под водой над растением.

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

Шаг 7: клей / водонепроницаемые корпуса

Клей / водонепроницаемые корпуса
Клей / водонепроницаемые корпуса

Используйте грунтовку для ПВХ и цемент для закрепления заглушек и муфты.

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

Здесь для удобства на корпусе Arduino используется заглушка с винтом.

Шаг 8: Установите

Установить
Установить
Установить
Установить
Установить
Установить

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

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

Установите таймер крана и убедитесь, что он обесточен, пока установка не будет завершена.

Установите датчик почвы.

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

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

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

Подключите таймер к источнику питания 3,2 В. Либо аккумулятор, либо адаптер переменного тока 3,2 В постоянного тока, подключенный к сетевой розетке.

Подключите Arduino к источнику питания 6-12 В постоянного тока. Либо батарейный блок, либо адаптер USB / DC-AC, подключенный к сетевой розетке.

Включите питание и проверьте!

Шаг 9: Интеграция ThingsBoard - Мониторинг и отчетность

Интеграция ThingsBoard - Мониторинг и отчетность
Интеграция ThingsBoard - Мониторинг и отчетность

В этом примере использовался щит Драгино Лора, подключенный к шлюзу Драгино Лора. Независимо от того, используете ли вы эту настройку, другую настройку Lora или любое другое подключение к IOT, данные, собранные контроллером орошения, могут быть перенаправлены на платформу IOT, такую как Thingsboard. По умолчанию программа передает следующую строку данных, в которой каждый байт символа закодирован в шестнадцатеричном формате:

TXXXHXXXSXXXXRX

Где за T следует температура, за H следует влажность, за S следует уровень насыщения, а за R следует одна цифра, относящаяся к тому, какое действие было выполнено в последнем интервале запуска. Это может быть 0-5, где каждая цифра означает:

0: Программа инициализируется 1: Неисправность датчика температуры 2: Температура слишком низкая для работы 3: Влажность почвы слишком сухая, поэтому был активирован таймер крана 4: Влажность почвы низкая, поэтому таймер крана не был активирован 5: Контроллер полива был деактивирован

Есть несколько способов установить копию Thingsboard на вашем собственном оборудовании, или вы можете создать бесплатную учетную запись в нашей установке ThingsBoard здесь.

Настройте свое устройство в Thingsboard

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

Отправка данных телеметрии с устройства

Следуйте этим инструкциям, чтобы настроить метод отправки данных телеметрии с устройства на Thingboard через MQTT, HTTP или CoAp.

На нашем сервере мы отправляем следующий JSON на https://thingsboard.meansofproduction.tech/api/v1/… каждые четыре часа при запуске устройства (с данными в реальном времени):

Также мы периодически добавляем следующие атрибуты в https://thingsboard.meansofproduction.tech/api/v1/… с данными о том, когда узел был в последний раз виден:

Это используется для предупреждений, которые запускаются, если устройство перестает передавать данные.

Создать информационную панель

Создайте информационную панель, как описано здесь. Наши виджеты включают:

Простой виджет карточки, созданный из поля телеметрии lastRunResult. Вертикальный цифровой индикатор для поля телеметрии температуры. Таблица Timeseries, созданная из поля телеметрии lastRunResult, показывающая данные за последние дни. Горизонтальная полоса, показывающая поле телеметрии насыщения. Здесь используется функция постобработки данных:

вернуть значение 1024;

И устанавливает минимальное и максимальное значение 0-100. Таким образом, уровень насыщения может быть выражен в процентах. Шкала для отображения значения влажности. Гистограмма временного ряда, которая включает в себя температуру, влажность и результат прогона, сгруппированные в 5-часовые периоды за последнюю неделю, агрегированные для отображения максимальных значений.. Это дает нам одну полосу для четырехчасового бега. Функция постобработки данных используется для выражения результата цикла как 0 или 120 в зависимости от того, была ли проведена вода. Это дает легкую визуальную обратную связь, чтобы увидеть, как часто течет вода в неделю. Статическая карточка HTML, которая показывает изображение сада.

Оповещения по электронной почте

Мы использовали правила для настройки оповещений по электронной почте для контроллера полива. Все используют фильтры сообщений и действие плагина «Отправить почту».

Чтобы отправить уведомление по электронной почте, если контроллер орошения не может отправить данные, мы использовали «Фильтр атрибутов устройства» со следующим фильтром:

typeof cs.secondsSinceLastSeen! == 'undefined' && cs.secondsSinceLastSeen> 21600

Чтобы отправить электронное письмо, если почва станет слишком сухой, используйте следующий фильтр телеметрии

typeof saturation! = "undefined" && насыщенность> 1010

Чтобы отправить электронное письмо, если почва становится слишком влажной, используйте следующий фильтр телеметрии

typeof saturation! = "undefined" && насыщенность

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