Открытая платформа для создания заботливой квартиры
Что может быть приятнее свежей зелени, срезанной только что с вашего домашнего огорода, в осенне-зимне-весенний период? Вырастить полезные травы (салат, щавель и т.п.) в домашних условиях, в кабинете или на балконе, можно вполне традиционным образом - при помощи почвы и семян.
Если вы просто так посадите семена, разместите горшок на подоконнике и будете аккуаратно поливать, то скорее всего у вас почти ничего не вырастет. Причина этому - недостаточное количество света. Особенно в средней полосе, где пасмурных дней очень много.
Фокус заключается в досветке растений светодиодными светильниками. Они достаточно эффективны и не повлияют существенно на стоимость расходов за электроэнергию.
Все что вам остается - ежедневно включать досветку, отключать ее на ночь и не забывать поливать растения. А эта задачка как раз для домашней автоматизации.
Конструкция
Сборку домашнего огорода начните с каркаса. Для наших квартир наилучшим образом подходит вертикальное расположение ящиков с землей, друг под другом, так они занимают существенно меньше места. Поскольку используется искусственная подсветка, то горизонтальное расположение не дает значительного выигрыша.
В качестве каркаса можно использовать:
- Металлический стеллаж, на полках которого размещаются ящики с землей;
- Металлический профиль, из которого можно собрать арку, на которой подвесить горшки с землей друг под другом.
Каркас нужен металлический, поскольку светодиодные светильники будут нагреваться, а металл лучше всего справляется с отведением лишнего тепла.
На нижней стороне полок разместите светильники из расчета не менее 2000 люменов (Лм) на один горшок длинной 60 см. Вы можете использовать:
- Линейные светодиодные светильники по 1000 Лм, без рассеивателя;
- Обычные бытовые светодиодные лампы по 1000 Лм, предварительно удалив у них пластиковый кожух (рассеиватель).
Соедините параллельно все светильники при помощи клемм, аккуратно проложив провод по каркасу.
Автоматизация
- Включение освещения утром и отключение вечером;
- Измерение уровня влажности почвы в ящиках с растениями;
- Автоматический полив почвы при достижении пороговых значений влажности.
Для решения этих задач вам потребуются следующие элементы:
Название | Назначение | Цена, руб. |
---|---|---|
BLE JDY-08 | Радиомодуль Bluetooth LE, если заботу об огороде вы возложите на контроллер Home Assistant | 140 |
Arduino Pro Mini | Микроконтроллер для управления автоматизацией | 135 |
YL-38 | Датчик влажности почвы | 3 x 40 |
Помпа DC 3-6v 120L/H | Помпа для полива | 3 x 85 |
Hi-Link HLK PM-01 5V | Изолированный модуль питания 5В | 150 |
G3MB-202P DC-AC 5V | Твердотельное реле | 56 |
ACS712 | Модуль измерения силы тока в цепи, для организации обратной связи при управлении через Home Assistant | 90 |
Еще вам потребуется три маломощных транзистора (например, BC327), три резистора на 10 КОм, соединительные провода и макетная плата 7x9см.
Программируем
О том как настроить Arduino IDE и подключить микроконтроллер к ПК читайте в этой коротенькой инструкции. Для компиляции программы необходимо загрузить библиотеки и добавить их в Arduino IDE через меню Sketch - Install library:
#include <jdy8.h>
#include <LowPower.h>
#include <ACSensor.h>
#define BOX_NUMBER 3
#define SENSOR_VCC_PIN 12
#define AC_SENSOR_PIN A3
#define WAIT_SECONDS 600 // send data every 10 mins
#define WATERING_SECONDS 20 // how long watering a box
JDY8 ble(11, 4, 10); // RX, TX, Reset
ACSensor currentSensor(AC_SENSOR_PIN, 185.0, 21.0); // sensor pin, ACS sensitivity (mV/A), ACS noise level (mV)
int sensorPins[] = {A0, A1, A2}; // moisture, moisture2, moisture3
int blePins[] = {5, 2, 3};
int pumpPins[] = {13, 9, 8};
int secondsPassed = WAIT_SECONDS;
int currentValue = 0;
void setup()
{
currentSensor.calibrate();
ble.configure("Garden-1");
}
void loop()
{
// measure AC sensor
unsigned int value = currentSensor.getWatt();
if ( value != currentValue ) {
currentValue = value;
ble.major(value);
}
// read moisture sensors
if ( secondsPassed >= WAIT_SECONDS ) {
secondsPassed = 0;
pinMode(SENSOR_VCC_PIN, OUTPUT);
digitalWrite(SENSOR_VCC_PIN, HIGH);
delay(200);
ble.setData(
100 - (short) (((float) analogRead(sensorPins[2]) / 1024) * 100),
currentSensor.getWatt(),
100 - (short) (((float) analogRead(sensorPins[0]) / 1024) * 100),
100 - (short) (((float) analogRead(sensorPins[1]) / 1024) * 100)
);
digitalWrite(SENSOR_VCC_PIN, LOW);
}
// control water pumps
for( int i = 0; i < BOX_NUMBER; i++ ) {
pinMode(blePins[i], INPUT);
if ( digitalRead(blePins[i]) == HIGH ) {
// reset IO pin
ble.setIOPin(i + 1, 0);
// water a box
digitalWrite(pumpPins[i], HIGH);
delay(WATERING_SECONDS * 1000);
digitalWrite(pumpPins[i], LOW);
}
}
LowPower.powerDown(SLEEP_1S, ADC_OFF, BOD_OFF);
secondsPassed += 1;
}
Собираем по схеме
Посадка растений
Купите землю, внесите простые органические удобрения, засыпьте это все в горшки и посадите семена трав, которые вы хотите вырастить.
Запуск огорода
Устройство полива состоит из резервуара с водой, помпы и трубки от капельницы. Капельница продается в любой аптеке и стоит около 15 рублей, вам нужно купить 3 штуки.
Поскольку помпа будет погружаться в резервуар с водой, необходимо герметизировать место пайки провода, подводящего напряжение к помпе. Это можно сделать обычным герметиком, либо купить специальные термоусадочные трубки.
В капельнице по всей длине той части, что будет размещаться в ящике, нужно проделать небольшие отверстия (1-2 мм в диаметре), через которые будет осуществляться полив. Отверстия не должны быть большими, но и через мелкие вода не будет проходить. Отверстия можно проделать щипчиками или маленькими ножницами. Расстояние между отверстиями - 3-4 см.
Установите датчики влажности в почву и проложите капельницу посередине вдоль ящика. Один конец капельницы (выход) подключите к помпе и разместите помпу в резервуаре с водой.
Все, ваш домашний огород готов!
Настраиваем HASS
Файл: /config/configuration.yaml
sensors:
- platform: cutecare
scan_interval: 60
mac: 7C:01:0A:3A:12:37
monitored_conditions:
- moisture
- moisture2
- moisture3
name: garden
type: jdy8
light:
- platform: cutecare
mac: 7C:01:0A:3A:12:37
name: garden_pump_1
pin: 1
- platform: cutecare
mac: 7C:01:0A:3A:12:37
name: garden_pump_2
pin: 2
- platform: cutecare
mac: 7C:01:0A:3A:12:37
name: garden_pump_3
pin: 3
switch
- platform: cutecare
name: garden_light
mac: 7C:01:0A:3A:12:37
threshold: 5
pin: 4
Файл: /config/automations.yaml
- alias: 'Turn On Garden Light'
trigger:
platform: time
hours: 8
minutes: '/10'
seconds: 0
condition: []
action:
service: homeassistant.turn_on
entity_id: switch.garden_light
- alias: 'Turn Off Garden Light'
trigger:
platform: time
hours: 20
minutes: '/10'
seconds: 0
condition: []
action:
service: homeassistant.turn_off
entity_id: switch.garden_light
- alias: 'Garden Box 1'
trigger:
platform: time
minutes: 0
seconds: 0
condition:
condition: numeric_state
entity_id: sensor.garden_moisture
above: 0
below: 20
action:
service: homeassistant.turn_on
entity_id: light.garden_pump_1
- alias: 'Garden Box 2'
trigger:
platform: time
minutes: 0
seconds: 0
condition:
condition: numeric_state
entity_id: sensor.garden_moisture2
above: 0
below: 40
action:
service: homeassistant.turn_on
entity_id: light.garden_pump_2
- alias: 'Garden Box 3'
trigger:
platform: time
minutes: 0
seconds: 0
condition:
condition: numeric_state
entity_id: sensor.garden_moisture3
above: 0
below: 30
action:
service: homeassistant.turn_on
entity_id: light.garden_pump_3
Преимуществом такой настройки является возможность индивидуально подобрать (и легко поменять) значение нижнего порога влажности, ведь каким-то растениям требуется более влажная почва, а другим менее.
Ниже представлен опытный образец, на котором была отлажена технология выращивания полезного салата, щавля, лука и травы для кошки. Вы можете также поэкспериментировать с красно-синей досветкой, однако в моем эксперименте значительного влияния она не оказала.