Как стать автором
Обновить

Замкнутая экосистема по-русски

Время на прочтение 4 мин
Количество просмотров 120K
Здравствуй, Хабр!

Недавно наткнулся в интернете на интересную статью, с точки зрения садоводства, об англичанине, который 53 года назад посадил в банку традесканцию.Он закупорил бутылку и, после полива 40 лет назад, больше не открывал её. Идеи пришла ему из любопытства. И по сей день растение живет, растет и поглощает кислород. Традесканция образовала экосистему: при фотосинтезе образуется кислород, происходит увлажнение воздуха внутри сосуда и выпадает влага, опавшие листья перегнивают, выделяя CO2. Но для фотосинтеза нужен еще и свет, поэтому бутылку нужно постоянно пододвигать к окну и разворачивать, чтобы листья росли равномерно. Я добавил немного электроники для комнатного растения, и вот, что из этого получилось.

Этап Первый

Как уже говорилось, в процессе фотосинтеза самое важное это свет. Но не любой!

image

Для растений наиболее важным является сине-зеленый и желто-красный. Длины волн соответственно от 440 до 550 нм и от 600 до 650 нм. Я пошел в магазин и купил 4 красных, 2 синих и 2 зеленых светодиода (прочитав статью на «Радиокоте»). Далее, расположил их под крышкой банки, закрепив на картонке, и соединил параллельно (на 2 красных 1 синий и 1 зеленый).
Т. к. светодиоды разных цветов свечения имеют разное напряжение питания, поставил резисторы. В крышке сделал отверстие для проводов и укрепил картонку со светодиодами под крышкой, предварительно просунув провода в дырку. Для большей изоляции от внешнего мира дырку можно заклеить.
Ревизия модуля освещения от 01.07.13.
Модуль специально был покрыт толстым слоем Цапонлака для предотвращения коррозии выводов элементов и меди на плате.

Этап Второй

Основное, т. е. подсветку, я уже сделал, поэтому перехожу к полезным дополнениям.
1. Чтобы свет горел только тогда, когда растение находится в тени, нужно добавить фотоэлемент.
Схема подключения:

Чтобы сделать горшок совсем умным, подключим к нему Arduino. Analog InPut на схеме — любой аналоговый вход у Arduino. На ШИМ (или PWM) выход повесим светодиоды, яркость свечения которых будет изменяться в зависимости от освещенности фоторезистора. Но для начала выясним, какие значения будет выдавать делитель напряжения.
Код
 int sensor =0; // подключаем делитель к аналоговому входу Arduino A0 
 void setup() {
   
   Serial.begin(9600);
   
 }

 void loop() { 
   Serial.println(analogRead(sensor));
   delay(1000); // Отправляет значения с делителя раз в секунду
 }

В своей схеме я использовал фоторезистор из электронного конструктора ЗНАТОКа. У него теневое сопротивление 120 кОм. Расчет резистора R1 производится по формуле: R1=Vin*R2:Vout-R2; Vin на схеме — +5V, Vout — «к аналоговому входу Arduino» (Я надеюсь, все хорошо помнят порядок действий: сначала действия первой степени — умножение и деление, а потом второй — сложение и вычитание). Также, следует помнить, что сопротивление у фоторезистора может изменяться нелинейно.
Минимальное значение освещения с моего делителя — около 100 (назовём их условными единицами), максимальное — около 755 у.е.
Зная эти значения можно написать программу для Arduino — контроллера.
Код
 int sensor = 0; // Потенциометр к А0
 int ledPin = 9; //Светодиоды к выходу 9
 void setup ()
 {
   analogReference(DEFAULT);
   pinMode(ledPin, OUTPUT);
   //Serial.begin(9600); Раскомментируйте эту строку для отображения текущей 
   //освещенности в у.е. в Мониторе Порта.
 }

 void loop()
 { 
   int val = analogRead(sensor);
  
   val = constrain(val, 130, 755); //Выставляем значения освещенности.
                                   //Если < 130, то превращаем в 130, если > 755, то выставляем в 755.
   int ledLevel = map(val, 130, 755, 0, 255);  //Превращаем значения освещенности и у.е. 
   //в 8-битные значения для ШИМ.
  
   analogWrite(ledPin, ledLevel);
  
   // Serial.println(analogRead(ledLevel));  Раскомментируйте эту строку для отображения текущей 
   //освещенности в у.е. в Мониторе Порта.
 }
  


Также, обратите внимание на то, что максимальный ток через цифровые Входы/Выходы Ардуины не должен превышать 40мА.

2. Вместо цифрового метода определения уровня освещенности можно использовать аналоговый. Добавив к делителю стабилитрон и транзистор получим все тоже, что и с процессором, только в меньшем объеме. Схема:

Стабилитрон D1 — любой мощности на 3.6 В. Транзистор T1 — любой NPN.

P.S. Смотрелось бы намного лучше, если бы провода не торчали. Сама конструкция будет технологичнее, если на дно банки положить катушку и питать подсветку без проводов (по примеру беспроводной зарядки у телефонов).

На фото ниже представлена первая экспериментальная банка. Растение в нее было посажено 01.06.13.

Впоследствии, от этой банки решено было отказаться, т.к. растению в ней не хватало места для роста (также, стальная крышка, с большой долей вероятности, за 40 лет использования, заржавеет :)).

Взамен маленькой литровой банки, растения были посажены в большие — 3-ех литровые. Заменена была и крышка — на полиэтиленовую.
P.S.S. Дата посадки: 30.06.2013 (01.07.13 была открыта банка для замены модуля освещения).
Фото 1: 10.07.13

Фото 2: 17.07.13. На фото ниже видно как на стенках начала проявляться растительность. Это свидетельствует о том, что простейшие виды растений тоже чувствуют себя в системе хорошо.

Фото 3: 02.09.13
Также, для эксперимента, в банку с денежным деревом была посажена косточка мандарина (предварительно не выдерживавшаяся во влажной марле и т.п.). Как видно на фото выше, сейчас она проросла.
По мере накопления экспериментальный данных, информация будет выкладываться здесь.

Список источников
  1. Видео уроки по Arduino от Джереми Блума (Jeremy Blum) в переводе Амперки (amperka.ru).
  2. Фитолампа

Теги:
Хабы:
+37
Комментарии 46
Комментарии Комментарии 46

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн