Оглавление:

Автоматический горшок для растений - Маленький сад: 13 шагов (с изображениями)
Автоматический горшок для растений - Маленький сад: 13 шагов (с изображениями)

Видео: Автоматический горшок для растений - Маленький сад: 13 шагов (с изображениями)

Видео: Автоматический горшок для растений - Маленький сад: 13 шагов (с изображениями)
Видео: 💧Система автоматического полива растений своими руками 2024, Ноябрь
Anonim
Автоматический горшок для растений - Маленький сад
Автоматический горшок для растений - Маленький сад

Я учусь на факультете мультимедийных и коммуникационных технологий в Howest Kortrijk. Для нашего последнего задания нам пришлось разработать проект Интернета вещей по нашему собственному выбору.

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

Основные задачи автоматизированного горшка Little Garden:

  • Измерьте

    • Температура
    • Интенсивность света
    • Влажность
    • Влажность почвы

Сохраните измерения в базе данных

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

Позвольте устройству контролировать и управлять через веб-сайт

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

Шаг 1. Расходные материалы

Запасы
Запасы
Запасы
Запасы
Запасы
Запасы

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

Основные компоненты:

  • Raspberry Pi 4 модель B
  • Блок питания Raspberry Pi
  • Т-сапожник Raspberry Pi
  • Карта памяти Micro SD на 16 ГБ
  • Блок питания макета с 3,3 В и 5 В
  • Макетная плата
  • Блок питания 12 В

Датчики:

  • DHT11: Датчик влажности и температуры
  • BH1750: Датчик интенсивности света
  • Датчик влажности почвы
  • MCP3008

Компоненты привода:

  • 220V Водяной насос
  • Светодиодная лента 12В
  • Релейный модуль Velleman
  • СОВЕТ 50: транзистор NPN
  • ЖК-дисплей с модулем 16X2
  • PCF8574a

Резисторы:

  • 3 резистора по 330 Ом
  • 1 резистор 5 кОм
  • 2 резистора по 10 кОм
  • 1 резистор 1 кОм
  • 1 х 10 кОм резистор

Материалы:

  • Сборная теплица / цветочный горшок
  • Распределительная коробка
  • Пластиковая бутылка для воды
  • Вертлюги
  • Провода-перемычки + штатный провод
  • Skrews
  • Паяльное олово + термоусадочная трубка
  • Двусторонняя утиная лента
  • Покрасить

Инструменты:

  • Клей-пистолет
  • Дрель
  • Лезвие пилы
  • Паяльник
  • Канцелярский нож
  • Кисть

Отличительной особенностью этого проекта является то, что его можно расширить или упростить, добавляя / удаляя компоненты и слегка изменяя код. Например, заменив насос 220 В на насос 12 В, вы можете отключить адаптер питания от устройства.

Шаг 2: Схема фритзинга

Схема Fritzing
Схема Fritzing
Схема Fritzing
Схема Fritzing

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

Общее объяснение того, как работают компоненты:

  • DHT11 измеряет влажность воздуха в% и температуру в ° C. Связь с ним осуществляется буфером I2C.
  • BH1750 измеряет интенсивность света в люксах. Связь осуществляется по шине I2C.
  • Датчик влажности почвы создает цифровой сигнал, который MCP3008 преобразует в читаемый цифровой сигнал для Raspberry Pi.
  • ЖК-модуль 16x2 отображает IP-адреса от Pi, один за другим. Он подключен к PCF8574a, который получает сигнал от Raspberry Pi, который преобразует его в ряд сигналов для битовых контактов дисплея. Контакты E и RS ЖК-дисплея подключены непосредственно к Pi. Резистор потенциометра определяет яркость экрана.
  • Водяной насос подключается к реле, которое находится между ним и источником питания / розеткой 220 В. Raspberry Pi может послать сигнал на реле, чтобы замкнуть электрическую цепь и включить насос.
  • Светодиодная лента подключена к источнику питания 12 В и к TIP 50 (транзистор NPN), который переключает электрический ток. Резистор на 1 кОм используется для ограничения потребляемой мощности от Raspberry Pi, иначе он будет очень хрустящим.

Шаг 3: подготовьте Raspberry Pi

Подготовьте Raspberry Pi
Подготовьте Raspberry Pi

Если у вас его еще нет, вам нужно будет поместить один из образов ОС Raspberry Pi на SD-карту. Я не рекомендую использовать Lite, так как это вызывало у меня проблемы с самого начала. После этого вам нужно будет убедиться, что ваш Pi обновлен, используя следующие команды, пока Pi подключен к Интернету:

  1. sudo apt-get update
  2. sudo apt-get upgrade

После этого вы можете включить или установить пакеты для работы проекта с помощью raspi-config или команд.

  • SPI
  • I2C
  • MySQL: следующий шаг
  • SocketIO: pip install flask-socketio

После настройки вы можете добавить необходимые файлы, написанные на HTML, CSS, Javascript и Python. Весь мой код можно найти в моем репозитории на github.

Шаг 4: Модель базы данных - MySQL

Модель базы данных - MySQL
Модель базы данных - MySQL

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

Для тех, кто хочет разобраться, база данных работает следующим образом:

Измерения и переключатели приводов хранятся в виде строк в таблице Метингена.

  • metingId = идентификатор строки измерения / переключения
  • deviceId = ID устройства, ответственного за эту строку в таблице
  • waarde = значение измерения датчика или переключателя исполнительного механизма

    • датчик: значение измерения в соответствующих единицах
    • приводы: 0 = ВЫКЛ и 1 = ВКЛ
  • commentaar = комментарии, используемые для добавления дополнительной информации, например ошибок
  • datum = дата и время, когда произошло измерение / переключение

Настройки устройства хранятся в разделе «Настройки».

  • settingId = ID этой строки и значение настройки
  • deviceID = ID соответствующего устройства / датчика
  • waarde = значение настройки
  • type = тип настройки, максимальное или минимальное?

И последнее, но не менее важное: таблица Devices содержит информацию о датчиках и исполнительных механизмах.

  • deviceId = ID устройства в этой таблице
  • naam = имя устройства / компонента
  • merk = бренд
  • prijs = цена компонента
  • beschrijving = краткое описание компонента
  • eenheid = единица измерения измеренных значений
  • typeDevice = указывает, является ли компонент датчиком или исполнительным механизмом

Шаг 5: Интерфейс: настройка веб-сервера

Frontend: настройка веб-сервера
Frontend: настройка веб-сервера

Pi потребует от вас установить веб-сервер Apache, чтобы запустить веб-сервер для этого устройства. Это можно сделать с помощью следующей команды:

sudo apt-get install apache2.

Как только это будет сделано, вы можете перейти в папку: / var / www / html. Здесь вам нужно будет разместить весь код фронтенда. После этого вы можете получить доступ к веб-сайту, перейдя по IP-адресу.

Шаг 6: бэкэнд

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

Как вы могли заметить, файлов довольно много. Я разделил код настолько, насколько мог, чтобы иметь четкий обзор и организацию кода.

Краткое объяснение:

app.py: основной файл, в котором объединены база данных, код оборудования и код серверной части

config.py: файл конфигурации для репозиториев базы данных

Репозитории: для доступа к репозиторию данных

  • Помощник

    • devices_id: классы, помогающие идентифицировать информацию об устройстве в базе данных
    • lcd: для запуска PCF и LCD
    • Приводы: классы для работы приводов
    • Датчики: классы для запуска датчиков

Шаг 7: Размещение светодиодной ленты

Размещение светодиодной ленты
Размещение светодиодной ленты

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

Шаг 8: Размещение трубок

Размещение трубок
Размещение трубок

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

Шаг 9: Размещение ЖК-дисплея

Размещение ЖК-дисплея
Размещение ЖК-дисплея

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

На ЖК-дисплее отображаются IP-адреса Raspberry Pi, что позволяет узнать, какой адрес вы можете использовать для перехода на веб-сайт.

Шаг 10: Размещение датчиков и подключение светодиодной ленты

Размещение датчиков и подключение светодиодной ленты
Размещение датчиков и подключение светодиодной ленты
Размещение датчиков и подключение светодиодной ленты
Размещение датчиков и подключение светодиодной ленты

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

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

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

Шаг 11: Подключение Pi

Подключение Pi
Подключение Pi
Подключение Pi
Подключение Pi
Подключение Pi
Подключение Pi

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

После этого я поместил макетную плату (с T-cobbler, PCF8574a, MCP3008, регулируемое сопротивление и TIP50), реле и Raspberry Pi на дно распределительной коробки, которое было прикрыто двусторонней утиной лентой. Блок питания не помещался на макетной плате, поэтому мне пришлось положить его сбоку и использовать перемычки, чтобы подключить его к макетной плате.

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

Шаг 12: Изготовление емкости для воды

Изготовление емкости для воды
Изготовление емкости для воды

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

Шаг 13: окончательный результат

Конечный результат
Конечный результат
Конечный результат
Конечный результат

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

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

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