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


Гетало Данил
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