Оглавление:

Беспроводная садовая система: 7 шагов
Беспроводная садовая система: 7 шагов

Видео: Беспроводная садовая система: 7 шагов

Видео: Беспроводная садовая система: 7 шагов
Видео: Студенты российского вуза разработали вечный двигатель #вечныйдвигатель #изобретения 2024, Ноябрь
Anonim
Беспроводная садовая система
Беспроводная садовая система

Этот проект основан на Arduino и использует «модули», которые помогут вам поливать растения и отслеживать температуру, почву и дождь.

Система является беспроводной через 2,4 ГГц и использует модули NRF24L01 для отправки и получения данных. Позвольте мне немного объяснить, как это работает, PS! Извините, если английский не на 100% правильный, я из Швеции.

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

Датчики почвы, которые считывают влажность и температуру почвы (работают от батареи), проверяют каждый час и передают данные базовой машине, имеющей соединение Wi-Fi. Данные загружаются на сервер в моем доме и регистрируются на веб-странице.

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

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

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

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

Моя страница GitHub, где вы все загружаете:

Шаг 1: датчики почвы

Датчики почвы
Датчики почвы
Датчики почвы
Датчики почвы
Датчики почвы
Датчики почвы
Датчики почвы
Датчики почвы

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

Для этой сборки вам понадобится:

  • 1x чип Atmega328P-PU
  • 1x модуль nRF24L01
  • 1x 100 мкФ конденсатор
  • 1x NPN BC547 транзистор
  • 2x 22 пФ конденсатора
  • 1x кристалл 16,000 МГц
  • 1x датчик влажности почвы
  • 1x датчик температуры DS18B20
  • 1x RGB светодиод (я использую общий анод)
  • 3 резистора по 270 Ом
  • 1x резистор 4,7 кОм
  • Аккумулятор (я использую Li-Po аккумулятор 3,7 В)
  • А если используется li-po, модуль зарядного устройства для аккумулятора.

Чтобы датчики работали долгое время, не используйте заранее изготовленные платы Arduino, они быстро разрядят аккумулятор. Вместо этого используйте чип Atmega328P.

Подключите все, как показано в моем электрическом листе. (См. Изображение или файл PDF) Рекомендуется также добавить выключатель питания, чтобы вы могли отключить питание во время зарядки.

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

Чтобы датчики почвы оставались живыми в течение длительного времени, я использую транзистор NPN для их включения, только когда начинается считывание. Таким образом, они не активируются постоянно. Каждый датчик имеет идентификационный номер от 45XX до 5000 (это можно изменить), поэтому каждый датчик должен иметь уникальные номера, все, что вам нужно сделать, это указать в коде.

Датчики перейдут в спящий режим для экономии заряда батареи.

Шаг 2: датчик животных

Датчик животных
Датчик животных
Датчик животных
Датчик животных
Датчик животных
Датчик животных
Датчик животных
Датчик животных

Датчик животных - это простой пир-датчик. Он ощущает тепло от животных или людей. Если датчик обнаруживает движение. Они отправят на базовую станцию.

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

Если база получит сигнал движения от датчика животного, она передаст его датчику сирены и (я надеюсь) отпугнет животное. Моя сирена на 119 дБ.

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

Для этого датчика вам потребуется:

  • Микросхема ATMEGA328P-PU
  • 1 x 16 000 МГц кристалл
  • Конденсатор 2 x 22 пФ
  • 1 x модуль датчика Pir
  • 1 х 100 мкФ конденсатор
  • 1 x модуль NRF24L01
  • 1 светодиод (здесь я не использую RGB-светодиоды)
  • 1 резистор 220 Ом
  • Если вы будете работать от батареи, вам это понадобится (я использую Li-Po)
  • Модуль зарядного устройства, если у вас есть перезаряжаемый аккумулятор.
  • Какой-то выключатель питания.

Подключите все, как вы видите на электрическом листе. Убедитесь, что вы можете питать свой пир-датчик от батареи (некоторым для работы требуется 5 В).

Получите код с моего GitHub и определите датчик ведьмы, который вы собираетесь использовать (например, SENS1, SENS2 и т. Д.), Чтобы они получали уникальные номера.

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

Вот и все, что касается датчика животных, мы идем дальше.

Шаг 3: Контроллер водяного насоса

Контроллер водяного насоса
Контроллер водяного насоса
Контроллер водяного насоса
Контроллер водяного насоса
Контроллер водяного насоса
Контроллер водяного насоса
Контроллер водяного насоса
Контроллер водяного насоса

Контроллер водяного насоса предназначен для запуска насоса или водяного клапана для полива ваших полей. Для этой системы вам не нужна батарея, вам нужно питание для работы вашего насоса. Я использую модуль от AC 230 до DC 5 В для запуска Arduino Нано. Также у меня есть типы насосов, один из которых использует водяной клапан, работающий от 12 В, поэтому у меня есть модуль от 230 до 12 В постоянного тока на релейной плате.

Другой - 230 В переменного тока для реле, поэтому я могу запитать насос 230 В переменного тока.

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

Вы можете установить, как долго он должен работать на веб-странице (например, 5 минут), так как датчики проверяют только каждый час. Кроме того, когда насос останавливается, он сохраняет время в системе, поэтому автоматическая система не запустит насос в ближайшее время. (Также возможно настроить на веб-странице).

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

Надеюсь, вы понимаете:)

Для этого проекта вам понадобятся:

  • 1 х Arduino Nano
  • 1 x модуль NRF24L01
  • 1 х 100 мкФ конденсатор
  • 1 светодиод RGB (я использую общий анод)
  • 3 резистора по 270 Ом
  • 1 х релейная плата

Подключите все как электрический лист (см. Файл в формате pdf или изображение). Загрузите код с GitHub и не забудьте указать номер датчика.

А теперь у вас есть контроллер насоса, система может обрабатывать больше, чем один.

Шаг 4: датчик дождя

Датчик дождя
Датчик дождя
Датчик дождя
Датчик дождя
Датчик дождя
Датчик дождя
Датчик дождя
Датчик дождя

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

Датчик дождя использует аналоговые и цифровые контакты. Цифровой вывод предназначен для проверки, идет ли дождь (только цифровой дисплей показывает да или нет), и вы должны включить горшок на модуле датчика дождя, когда можно предупредить о «дожде» (уровень воды на датчике, который указывает на дождь.)

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

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

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

Для этого датчика вам потребуется:

  • Микросхема ATMEGA328P-PU
  • 1x 16 000 МГц кристалл
  • 2x 22 пФ конденсатор
  • 1x модуль датчика дождя
  • 1x 100 мкФ конденсатор
  • 1x модуль NRF24L01
  • 1x RGB светодиод (я использовал общий анод, это VCC вместо GND)
  • 3 резистора по 270 Ом
  • 1x NPN BC547 транзистор
  • 1x аккумулятор (я использую Li-Po)
  • 1x модуль зарядного устройства Li-Po (если используется Li-Po аккумулятор)

Подключите все, как вы видите на электрическом листе (в формате PDF или на изображении). Затем загрузите код в чип ATMEGA, как вы можете найти на моей странице GitHub в разделе Датчик дождя. Не забудьте определить датчик, чтобы получить правильный идентификационный номер.

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

В функции counterHandler () вы можете установить время пробуждения для чипа. Вы рассчитываете так: Чипы просыпаются каждые 8 секунд и каждый раз, когда они увеличивают значение. Таким образом, за 30 минут вы получите 225 раз, прежде чем он должен будет выполнить какие-либо действия.. Итак, в получасе 1800 секунд. Разделите его на 8 (1800/8), и вы получите 225. Это означает, что датчик не будет проверять датчик, пока он не запустится 225 раз, а это займет около 30 минут. То же самое проделайте и с датчиком почвы.

Шаг 5: Сирена животных

Сирена животных
Сирена животных
Сирена животных
Сирена животных
Сирена животных
Сирена животных
Сирена животных
Сирена животных

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

В этом проекте я использую Arduino nano и питаю его от напряжения 12 В. Сирена также на 12 В, поэтому вместо реле я буду использовать транзистор 2N2222A для включения сирены. Если вы используете реле с таким же заземлением, вы можете повредить Arduino. Вот почему я использую транзистор, чтобы включить сирену.

Но если ваша сирена и Arduino не используют одно и то же заземление, вы можете вместо этого использовать реле. Откажитесь от транзистора и резистора 2,2 кОм и используйте вместо них плату реле. А также изменение кода Arduino, когда активируется изменение с HIGH на LOW, а при неактивном изменении с LOW на HIGH или цифровое чтение для контакта 10, потому что реле использует LOW для активации, а транзистор использует HIGH, поэтому вам нужно переключить это.

Для этой сборки вам понадобится:

  • 1x Arduino nano
  • 1x резистор 2,2 кОм (пропустите при использовании релейной платы)
  • 1x 2N2222 транзистор
  • 1x сирена
  • Резистор 3x 270 Ом
  • 1x RGB светодиод (я использую общий анод, VCC вместо GND)
  • Модуль 1X NRF24L01
  • 1x 100 мкФ конденсатор

Подключите все, как вы видите на электрическом листе в PDF или на изображении. Загрузите код в Arduino, который вы найдете на моей странице GitHub в разделе Animal Siren. Не забудьте определить датчик для правильного идентификационного номера.

И теперь у вас есть работающая сирена.

Шаг 6: Основная система

Основная система
Основная система
Основная система
Основная система
Основная система
Основная система

Основная система - самый важный из всех модулей. Без него вы не сможете использовать эту систему. Основная система подключена к Интернету с помощью модуля ESP-01, и мы используем контакты Arduino Megas Serial1 для его подключения. RX на Mega на TX на ESP, но нам нужно пройти через два резистора, чтобы снизить напряжение до 3,3. И от TX на Mega до RX на ESP.

Настройте модуль ESP

Чтобы использовать ESP, вам сначала нужно установить на нем скорость передачи 9600, это то, что я использовал в этом проекте, и я обнаружил, что ESP работает лучше всего. Из коробки он установил скорость 115200 бод, вы можете попробовать, но мой был не таким стабильным. Для этого вам понадобится Arduino (Mega работает хорошо), и вам нужно подключить TX ESP (через резисторы, как вы видите на листе) к Serial TX (не Serial1 при использовании Mega) и RX на ESP к Arduino Serial RX.

Загрузите эскиз мигания (или любой эскиз, который не использует последовательный порт), откройте монитор последовательного порта и установите скорость передачи данных 115200 и NR & CR в строках.

В командной строке напишите AT и нажмите Enter. Вы должны получить ответ «ОК», так что теперь мы знаем, что ESP работает. (Если нет, проблема с подключением или неисправный модуль ESP-01)

Теперь в командной строке напишите AT + UART_DEF = 9600, 8, 1, 0, 0 и нажмите Enter.

Он ответит OK, и это означает, что мы установили скорость передачи на 9600. Перезапустите ESP с помощью следующей команды: AT + RST и нажмите Enter. Измените скорость передачи в последовательном мониторе на 9600, введите AT и нажмите Enter. Если вы получите ответ «ОК», значит ESP настроен для 9600, и вы можете использовать его для проекта.

Модуль SD-карты

Я хочу, чтобы было легко изменить настройки WIFI для системы, если будет изменен новый пароль или имя Wi-Fi. Вот почему нам нужен модуль SD Card. Внутри SD-карты создайте текстовый файл с именем config.txt, и мы используем JSON для чтения, поэтому нам нужен формат JSON. Итак, текстовый файл должен иметь следующий текст:

}

Измените текст БОЛЬШИМИ буквами, чтобы исправить вашу сеть Wi-Fi.

Грехи, которые мы используем NRF24L01, который использует SPI, и SD Card Reader также использует SPI, нам нужно использовать библиотеку SDFat, чтобы мы могли использовать SoftwareSPI (мы можем добавить устройство чтения SD-карт на любые контакты)

Датчик DHT

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

Для этой сборки вам понадобится:

  • 1x Arduino Mega
  • 1x модуль NRF24L01
  • 1x модуль ESP-01
  • 1x модуль карты SPI Micro SD
  • 1x датчик DHT-22
  • 1x RGB светодиод (я использовал общий анод, VCC вместо GND)
  • 3 резистора по 270 Ом
  • 1x резистор 22 кОм
  • 2x резистора 10 кОм

Обратите внимание, что если вы не получите стабильный модуль ESP-01, попробуйте запитать его от внешнего источника питания 3,3 В.

Подключите все, как вы видите на электрическом листе в файле PDF или на изображении.

Загрузите код в Arduino Mega и не забудьте проверить весь код на предмет комментариев, потому что вам нужно установить хост на сервер в нескольких местах (это не лучшее решение, которое я знаю).

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

Шаг 7: Веб-система

Веб-система
Веб-система
Веб-система
Веб-система
Веб-система
Веб-система
Веб-система
Веб-система

Для использования системы вам также потребуется веб-сервер. Я использую Raspberry Pi с Apache, PHP, Mysql, Gettext. Веб-система является многоязычной, поэтому вы можете легко сделать ее на своем языке. Он поставляется со шведским и английским языками (английский может быть неправильным, мой перевод не 100%). Таким образом, вам необходимо установить Gettext для вашего сервера, а также локали.

Я показываю вам несколько скриншотов из системы выше.

Он поставляется с простой системой входа в систему, и основной логин: admin в качестве пользователя и вода в качестве пароля.

Чтобы использовать его, вам необходимо настроить три задания cron (вы найдете их в папке cronjob)

Файл timer.php нужно запускать каждую секунду. В нем содержится вся автоматизация системы отверстий. Имя файла temperatur.php используется для указания системе считывать температуру воздуха и регистрировать ее. Итак, вам нужно настроить задание cron на то, как часто вы собираетесь его запускать. У меня это происходит каждые 5 минут. Тогда файл с именем dagstatistik.php должен запускаться только один раз до полуночи (например, 23:30, 23:30). Он принимает значения, полученные от датчиков в течение дня, и сохраняет их для статики за неделю и месяц.

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

В файле db.php вы настраиваете соединение с базой данных mysql для системы.

Сначала добавьте датчики в систему. А потом делайте зоны, а к зонам добавляйте датчики.

Если у вас есть вопросы или вы обнаружите ошибки в системе, сообщите о них на странице GitHub. Вы можете использовать веб-систему, и вам не разрешается ее продавать.

Если у вас есть проблемы с локали для gettext, помните, что если вы используете raspberry в качестве сервера, они часто называются как en_US. UTF-8, поэтому вам необходимо внести эти изменения в файл i18n_setup.php и в папку локали. В противном случае вы застрянете на шведском языке.

Вы скачиваете его на странице GitHub.

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