Съдържание:

Автоматизирана саксия за растения - Малка градина: 13 стъпки (със снимки)
Автоматизирана саксия за растения - Малка градина: 13 стъпки (със снимки)

Видео: Автоматизирана саксия за растения - Малка градина: 13 стъпки (със снимки)

Видео: Автоматизирана саксия за растения - Малка градина: 13 стъпки (със снимки)
Видео: Indoor Salad Garden Part 2 | 6 New Colorful Greens You Can Grow in the House! 2024, Юли
Anonim
Автоматизирана саксия за растения - Малка градина
Автоматизирана саксия за растения - Малка градина

Аз съм студент по мултимедийни и комуникационни технологии в Howest Kortrijk. За окончателното ни задание трябваше да разработим IoT проект по наш избор.

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

Основните задачи за тази автоматизирана саксия за растения, Little Garden, са:

  • Измерете

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

Запазете измерванията в база данни

Подобрете условията за растеж на растенията, ако определена стойност е твърде ниска

Нека устройството се наблюдава и управлява чрез уебсайт

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

Стъпка 1: Консумативи

Консумативи
Консумативи
Консумативи
Консумативи
Консумативи
Консумативи

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

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

  • Raspberry Pi 4 модел B
  • Захранване на Raspberry Pi
  • Малина Pi T-обущар
  • 16GB micro SD карта
  • Захранване на платка с 3.3V и 5V
  • Платка
  • 12V захранване

Сензори:

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

Компоненти на задвижването:

  • 220V водна помпа
  • 12V LED лента
  • Реле модул Velleman
  • СЪВЕТ 50: NPN транзистор
  • 16X2 LCD модулен дисплей
  • PCF8574a

Резистори:

  • 3 x 330 ома резистори
  • 1 x 5k Ohm резистор
  • 2 x 10k Ohm резистора
  • 1 x 1k Ohm резистор
  • 1 x 10k Potentio резистор

Материали:

  • Сглобяема оранжерия/саксия за растения
  • Разклонителна кутия
  • Пластмасова бутилка за вода
  • Въртящи се
  • Джъмперни проводници + обикновен проводник
  • Скрюз
  • Спояваща калай + термоусадочни тръби
  • Двустранна касета
  • Боядисване

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

  • Пистолет за лепило
  • Пробивна машина
  • Острие на трион
  • Поялник
  • Фреза за кутии
  • Четка за боядисване

Хубавото на този проект е, че той може да бъде разширен или опростен, чрез добавяне/премахване на компоненти и леко промяна на кода. Например, като замените 220V помпата с 12V помпа, можете да извадите захранващия адаптер от устройството.

Стъпка 2: Схема на оформяне

Схема на фризиране
Схема на фризиране
Схема на фризиране
Схема на фризиране

Основните схеми и електрическите схеми за устройството са показани по -горе. Тук можете да видите как всички компоненти са свързани заедно.

Общо обяснение как работят компонентите:

  • DHT11 измерва влажността на въздуха в % и температурата в ° C. Комуникацията с него се управлява от I2C bu.
  • BH1750 измерва интензитета на светлината в лукси. Комуникацията се управлява от I2C шина
  • Сензорът за влажност на почвата създава цифров сигнал, който се преобразува от MCP3008 в четим цифров сигнал за Raspberry Pi
  • 16x2 LCD модулът показва IP адресите от Pi, един след друг. Той е свързан към PCF8574a, който получава сигнал от Raspberry Pi, който ще го преобразува в редица сигнали за битовите щифтове на дисплея. Пиновете E и RS от LCD са свързани директно към Pi. Потенциозният резистор определя яркостта на екрана.
  • Водната помпа е свързана към реле, което е между нея и нейното 220V захранване/контакт. Raspberry Pi може да изпрати сигнал към релето, за да затвори електрическата верига и да включи помпата.
  • LED лентата е свързана към 12V захранване и TIP 50 (NPN транзистор), който превключва електрическия ток. Резисторът 1k Ohm се използва за ограничаване на изтеглената мощност от Raspberry Pi, в противен случай ще се пържи допълнително хрупкаво.

Стъпка 3: Подгответе Raspberry Pi

Пригответе Raspberry Pi
Пригответе Raspberry Pi

Ако все още нямате такъв, ще трябва да поставите едно от изображенията на Raspberry Pi OS на SD картата. Не препоръчвам използването на Lite, тъй като това ми причини проблеми в началото. След това ще трябва да се уверите, че вашият Pi е актуален, като използвате следните команди, докато Pi е свързан с интернет:

  1. sudo apt-get update
  2. sudo apt-get надстройка

След това можете да активирате или инсталирате пакетите, за да може проектът да работи, или чрез raspi-config, или чрез команди.

  • SPI
  • I2C
  • MySQL: следваща стъпка
  • SocketIO: pip install flask-socketio

След настройката можете да добавите необходимите файлове, написани на html, CSS, Javascript и Python. Целият ми код може да бъде намерен в моето хранилище на github.

Стъпка 4: Модел на база данни - MySQL

Модел на база данни - MySQL
Модел на база данни - MySQL

По -горе можете да видите ERD диаграмата, която се хоства чрез MariaDB. Препоръчвам да следвате това ръководство за инсталиране на MariaDB, не само за да инсталирате MariaDB, но и за да сте сигурни, че вашият Pi е защитен.

За хора, които биха искали да разберат, базата данни работи по следния начин:

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

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

    • сензор: стойност на измерването в съответните единици
    • задвижвания: 0 = OFF и 1 = ON
  • коментар = коментари, използвани за добавяне на допълнителна информация, например грешки
  • дата = датата и часът, в които е извършено измерването/превключването

Настройките за устройството се съхраняват в Настройки.

  • settingId = ИД на този ред и стойността на настройката
  • deviceID = ИД на съответното устройство/сензор
  • waarde = стойността на настройката
  • type = тип на настройката, максимална ли е или минимална?

Не на последно място, таблицата „Устройства“съдържа информация за сензорите и задвижванията.

  • deviceId = ИД на устройството в тази таблица
  • naam = име на устройството/компонента
  • merk = марка
  • prijs = цена на компонента
  • beschrijving = обобщение на компонента
  • eenheid = единица за измерените стойности
  • typeDevice = указва дали компонентът е сензор или задвижващ механизъм

Стъпка 5: Frontend: Настройка на уеб сървъра

Frontend: Настройка на уеб сървъра
Frontend: Настройка на уеб сървъра

Pi ще изисква да инсталирате уеб сървъра Apache, за да стартирате уеб сървъра за това устройство. Това може да стане със следната команда:

sudo apt-get инсталирайте apache2.

След като това стане, можете да отидете в папката:/var/www/html. Тук ще трябва да поставите целия код на интерфейса. След това можете да получите достъп до уебсайта, като прегледате IP адреса.

Стъпка 6: Бекенд

За да стартирате бекенда, ще трябва да стартирате файла app.py, ръчно или чрез създаване на услуга за него на Pi, така че да се стартира автоматично.

Както може да забележите, има доста файлове. Разделих кода, доколкото мога, за да имам ясен преглед и организация на кода.

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

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

config.py: Конфигурационният файл за databaseRepositories

Хранилища: За достъп до хранилището на данни

  • Помощник

    • devices_id: класове, които помагат да се идентифицира информацията за устройството в базата данни
    • lcd: за стартиране на PCF и LCD
    • Задвижващи механизми: класове за работа на изпълнителните механизми
    • Сензори: класове за управление на сензорите

Стъпка 7: Поставяне на LED лентата

Поставяне на LED лентата
Поставяне на LED лентата

Нарязах парче от LED лентата и я залепих в горната част на оранжерийната кутия. Лентата, която използвах, можеше да се отреже на няколко позиции и да се свърже отново, така че можете да поставите няколко ленти и след това да ги свържете отново чрез проводници, което позволява да се освети повече място.

Стъпка 8: Поставяне на тръбите

Поставяне на тръбите
Поставяне на тръбите

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

Стъпка 9: Поставяне на LCD дисплея

Поставяне на LCD дисплея
Поставяне на LCD дисплея

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

LCD дисплеят показва IP адресите на Raspberry Pi, което ви позволява да знаете кой адрес можете да използвате, за да сърфирате в уебсайта.

Стъпка 10: Поставяне на сензорите и свързване на LED лентата

Поставяне на сензорите и свързване на LED лентата
Поставяне на сензорите и свързване на LED лентата
Поставяне на сензорите и свързване на LED лентата
Поставяне на сензорите и свързване на LED лентата

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

В страничните части на капака и дъното на оранжерията бяха изрязани дупки за закрепване на въртящите се елементи, през които издърпах проводниците за сензорите и LED лентата.

Групирах проводниците по функция. Напрежението от жиците и свиващите се тръби задържа сензорите. Трябваше да използвам само лепило върху проводниците за DHT11, тъй като това се разшири допълнително.

Стъпка 11: Окабеляване на Pi

Окабеляване на Pi
Окабеляване на Pi
Окабеляване на Pi
Окабеляване на Pi
Окабеляване на Pi
Окабеляване на Pi

Изрязах дупки отстрани на разпределителната кутия, за да позволя на проводниците да преминат по -късно.

След това поставих макетната платка (с T-cobbler, PCF8574a, MCP3008, регулируемо съпротивление и TIP50), реле и Raspberry Pi на дъното на разпределителната кутия, която беше покрита с двустранна лента. Захранващият блок не се побираше на макета, затова трябваше да го сложа отстрани и използвах джъмперни проводници, за да го свържа с дъската.

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

Стъпка 12: Изработка на контейнер за вода

Изработка на контейнер за вода
Изработка на контейнер за вода

Направих контейнер за вода от пластмасова бутилка за вода от 1 литър, като отрязах горната част с кутийка и я нарисувах за по -добър поглед. След това водната помпа беше поставена вътре. Поради правилото за комуникация на съдовете, водата потенциално може да тече през тръбите сама, но задържането на тръбата отстранява проблема.

Стъпка 13: Краен резултат

Краен резултат
Краен резултат
Краен резултат
Краен резултат

Моментът, който сте чакали. Сега можете да поставите мръсотията и семената в оранжерийната кутия и да оставите устройството да поеме. Можете да наблюдавате състоянието на устройството от уебсайта и да задавате оптималните стойности за осветлението и почвените условия.

Препоръчвам първо да поливате почвата ръчно, тъй като в началото някои замърсявания могат да бъдат доста сухи. Някои помпи също се поливат доста бавно, но трябва да бъдете много внимателни, тъй като ще се напълнят по -бързо, отколкото бихте очаквали. Наситеността над 80% може да направи почвата много намокрена. Уверете се, че сензорът за влажност на почвата е достатъчно дълбок.

Препоръчано: