АЭРО
Кибер-сарай
Проект автономного устройства для выращивания растений
Команда
Егоров Юрий
Автор идеи проекта
Ответственный за соблюдение общей концепции проекта и за работоспособность кода


Гетало Данил
3D-моделлер
Ответственный за проектирование 3D-модели корпуса и его печать




Проблематика проекта
Кибер-сарай является автономным устройством для выращивания растений.
Он позволяет не следить за растением долгое время, если вы уехали на дачу или в отпуск. Кроме того, можно задать определенный режим для разных растений.
Аналоги
Гроутент Homebox Ambient Q30 (30х30х60)
5 395р
Относительно небольшой размер
отсутствуют системы климат-контроля.
Полностью герметичен после закрытия.

Гроутент на 4 растения: PROBOX BASIC 80 (80*80*160 см)
24 698р

В комплекте вентиляция и угольный фильтр. Светильник в комплект не входит.
Работает от 220в. Есть программатор для управления включением и выключением всей системы.

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

Схема элементов Кибер-сарая
Цели и задачи проекта
Основной целью проекта было сделать систему, которая будет обеспечивать необходимые условия для роста растения без участия человека.
Задачи:
- Создать дизайн корпуса
- Смоделировать систему климат-контроля
- Провести тесты
Этапы выполнения проекта
- Моделирование корпуса
- Моделирование отдельных элементов управления и датчиков в Tinkercad
- Сборка физического прототипа на макетной плате
- Установка электроники в корпус
- Тесты
Прототип электроники Кибер-сарая, собранный на макетной плате.
Результаты проекта
На данный момент удалось создать полностью рабочий прототип. В нем есть датчик температуры, управляющий вентилятором охлаждения. Датчик уровня воды в баке и светодиод, сигнализирующий о ее недостатке. Датчик влажности почвы, управляющий сервой.
В проекте можно доделать систему подачи воды и подсветку, после чего провести испытания.
Работа датчика влажности почвы
Работа датчика температуры
Экономика проекта
Arduino Uno - 1500р
Пластик для печати корпуса - 1500р
Датчики, сервопривод, светодиоды - 2000р
Вентилятор охлаждения из старого блока питания - 0р
int water; // присваиваем имя датчику уровня воды на A0

#include <DHT.h> // подключаем библиотеку (надо скачать, если не установлена)
#define DHTPIN 3 // подключаем сигнальный провод датчика для считывания сигнала
#define DHTTYPE DHT11 // ?
DHT dht(DHTPIN, DHTTYPE); // ?

#define rainPin A1 //пин датчика влажности почвы А1
#define yellowLED 7 //пин желтого светодиода
#define thresholdValue 800 //обозначаем порог сухости (можно изменить для регулировки)
#include <Servo.h> // подключаем библиотеку для управления сервой
int servoPin = 11; // подключаем серву к 11 пину
Servo servo; // вводим переменную типа серво

void setup() // процедура setup
{
pinMode(2, OUTPUT); // пин 2 со светодиодом будет обозначать низкий уровень воды в баке
pinMode(A0, INPUT); // к входу A0 подключим датчик уровня воды
Serial.begin(9600); // подключаем монитор порта (чтобы вызвать его и откалибровать)

Serial.begin(9600); // протокол связи в диапазоне?
dht.begin(); // понятия не имею что это
pinMode(8, OUTPUT);

pinMode(rainPin, INPUT); // обозначаем А1 как вход
pinMode(yellowLED, OUTPUT); // обозначаем 7 пин как выход
Serial.begin(9600); // не уверен что он тут нужен
servo.attach(servoPin); // подключаем переменную к порту сервы
}

void loop() // процедура loop
{
water = analogRead(A0); // переменная "water" находится в интервале от 0 до 1023

if (water < 540) { digitalWrite(2, HIGH); } // включаем светодиод если значение датчика < 540
if (water > 540) { digitalWrite(2, LOW); } // выключаем светодиод если значение датчика > 540

Serial.println(water); // выводим значение датчика на монитор (чтобы откалибровать)
delay(1000); // задержка в одну секунду

float h = dht.readTemperature(); // вводим переменную h, она берет данные с термометра

if (h>30) // если температура выше 30
{
digitalWrite(4, HIGH); // включаем светодиод
delay(250);
digitalWrite(8, HIGH); // включаем вентилятор
}
else // иначе
{
digitalWrite(4, LOW); // выключаем светодиод
delay(250);
digitalWrite(8, LOW); // выключаем вентилятор
}
int sensorValue = analogRead(rainPin); // вводим переменную, которая читает значения с датчика влажности
Serial.print(sensorValue); // выводим данные на монитор порта
if(sensorValue < thresholdValue) // если значение датчика меньше порога сухости
{
Serial.println("Полив не нужен"); // если будет дисплей, то пригодится
digitalWrite(yellowLED, LOW); // выключить светодиод
servo.write(0); // оставить серво в 0 градусов
}
else // иначе
{
Serial.println("Пора полить"); // если будет дисплей, то пригодится
digitalWrite(yellowLED, HIGH); // включить светодиод
servo.write(90); // повернуть серву на 90 градусов
}
delay(500);

}
Заинтересовал проект ?
По вопросам сотрудничества звоните +7-960-970-93-74
Е-mail: ivan500@yandex.ru
Made on
Tilda