Для клубнички Arduino+DHT11+реле.
- Войдите на сайт для отправки комментариев
Идея заключается в следующем:
Необходимо создать микро климат для выращивания клубники, т.е.
1. При понижении температуры включается обогрев, а при понижении влажности включается орошитель воздуха на форсунках.
2. При повышении температуры включается охладитель воздуха, а при повышении влажности канальный вентилятор.
Имеется: arduino, датчик влажности и температуры DHT11, 8-и релейный модуль.
Так как для выращивания клубники все параметры: влажность (70-80%) и температура (20-25°С) известны, то и регулировать эти параметры не будем, а просто зададим их в программе.
#include <DHT.h> // Подключаем библиотеку для работы с датчиком #define DHTPIN 12 // Считывающий пин с датчика #define DHTTYPE DHT11 // Модель датчика #define tPIN 4 // Пин управления температурой //#define t2PIN 5 // Пин управления температурой #define hPIN 6 // Пин управления влажностью //#define h2PIN 7 // Пин управления влажностью DHT dht(DHTPIN, DHTTYPE); // Создаем объект dht int tStatus = HIGH; // определяем переменную, отвечающую за состоянеие нагревателя HIGH=выкл, LOW=вкл int temp = 30; // Желаемая температура в градусах Цельсия (изменить на нужную) int hStatus = HIGH; // определяем переменную, отвечающую за состоянеие увлажнителя HIGH=выкл, LOW=вкл int hum = 45; // Желаемая влажность (изменить на нужную) void setup() { Serial.begin(9600); // Инициализируем COM-порт dht.begin(); // Инициализируем датчик pinMode(tPIN, OUTPUT); // Определяем пин для управления температурой как Вывод digitalWrite(tPIN, tStatus); // Притягиваем пин к начальному статусу (Выкл) pinMode(hPIN, OUTPUT); // Определяем пин для управления температурой как Вывод digitalWrite(hPIN, tStatus); // Притягиваем пин к начальному статусу (Выкл) } void loop() { int h = dht.readHumidity(); // Считываем влажность int t = dht.readTemperature(); // Считываем температуру tStatus = (t < temp) ? LOW:HIGH; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл digitalWrite(tPIN, tStatus); //hStatus (h < hum) hStatus ? LOW:HIGH; if (h < hum) hStatus = LOW; else hStatus = HIGH; // Если влажность меньше желаемой, то статус увлажнителя=Вкл, в противном случае Выкл digitalWrite(hPIN, hStatus); delay(1000); // Задержка в 1 секунду Serial.print("t="); Serial.print(t); Serial.print(" h%="); Serial.println(h); // Отправляем информацю о климате на COM-порт }
Уважаемые гуру, подскажите пожалуйста по пункту №2. Никак не могу разобраться.
Хочу довести проект до логического конца, и опубликовать с фото-отчетом.
А что вас в этом пункте смущает?
Не могу разобратся как задействовать еще два реле на повышение темпиратуры и влажности.
Можно ли эти пораметры в две строчки исполнить (не принципиально)
дык, создайте граф состояния вашей системы и условия перехода из одного состояния в другое - из этого всё станет ясно.... ну, типа - когда чо делать :)
При повышении температуры включается охладитель воздуха
чо за охладитель ?
дык, создайте граф состояния вашей системы и условия перехода из одного состояния в другое - из этого всё станет ясно.... ну, типа - когда чо делать :)
Задействовать как и предыдущие, только с другими условиями.
Это ко 2 посту
SU-27-16, охладитель воздуха - в отдельную комнату (аккумулятор) поступает воздух с улицы (теплый - холодный). Если холодный, то через обагреватель, если теплый то через радиатор (автомобильный) по которому самотеком идет в ванную комнату холодная вода. (вся система в подвале). Если интересно могу набросать схему (план) сооружения.
Задействовать как и предыдущие, только с другими условиями.
задействуйте как и предыдущие, только с другими условиями !
тока Ифами резведите по нормальному, по понятиям.... :)
SU-27-16, охладитель воздуха - в отдельную комнату (аккумулятор) поступает воздух с улицы (теплый - холодный). Если холодный, то через обагреватель, если теплый то через радиатор (автомобильный) по которому самотеком идет в ванную комнату холодная вода. (вся система в подвале). Если интересно могу набросать схему (план) сооружения.
вообще нормально это - схема, код, пояснения
SU-27-16, охладитель воздуха - в отдельную комнату (аккумулятор) поступает воздух с улицы (теплый - холодный). Если холодный, то через обагреватель, если теплый то через радиатор (автомобильный) по которому самотеком идет в ванную комнату холодная вода. (вся система в подвале). Если интересно могу набросать схему (план) сооружения.
по этой схеме - неопрадованный расход воды будет !
При темпиратуре 19 градусов включается вентилятор с обагревателем и выключается при t 23 , при темпиратуре 25 включается вентилятор охладителя и выключается при t 23 .
При влажности воздуха меньше 70% включаются форсунки на 1 сек. до тех пор пока влажность не достигнет 70 - 80%, если влажность более 85% то включается дополнительная вытяжка.
Как то так.
Схему с пояснениями счас сделаю, код в первом посте.
Воды много уходить не будет. Форсунки использую десперсные (туманом экономично распыляют (самодельные) )
охладитель воздуха - в отдельную комнату (аккумулятор) поступает воздух с улицы (теплый - холодный). Если холодный, то через обагреватель, если теплый то через радиатор (автомобильный) по которому самотеком идет в ванную комнату холодная вода.
ток воды - постоянный, или я не так понял ?
из #10 - у вас два канала = греть/неГреть , увлажнять/неУвлажнять ? так ?
При влажности воздуха меньше 70% включаются форсунки на 1 сек. до тех пор пока влажность не достигнет 70 - 80%, если влажность более 85% то включается дополнительная вытяжка.
не до тех пор "сразу".... а с задержкой анализа на 3......5 мин - иначе будет тропический дождь :(
состояние влажности и температуры определённого объёма воздуха невозможно изменить за 1....4 сек !
При влажности воздуха меньше 70% включаются форсунки на 1 сек. до тех пор пока влажность не достигнет 70 - 80%, если влажность более 85% то включается дополнительная вытяжка.
не до тех пор "сразу".... а с задержкой анализа на 3......5 мин - иначе будет тропический дождь :(
Этот пораметр необходимо подбирать имперически.
А можно фарсунки включать на 15 - 30 мс потом пауза в 1 минуту до достижения необходимого результата.
охладитель воздуха - в отдельную комнату (аккумулятор) поступает воздух с улицы (теплый - холодный). Если холодный, то через обагреватель, если теплый то через радиатор (автомобильный) по которому самотеком идет в ванную комнату холодная вода.
ток воды - постоянный, или я не так понял ?
Ток воды - как получится. Все равно охлаждение будет в нужном диапозоне.
из #10 - у вас два канала = греть/неГреть , увлажнять/неУвлажнять ? так ?
Да так.
должно работать четыре реле а сейчас два (не могу разобратся прошу помощи). У меня в скече закоментирована 6 и 8 строка.
строка #33 - условие и действие......
в строке #42A - пропишите новое/другое условие и действие......
.....и т.д., и т.п.
зачем охладитель ? если не нагревать экстремально то и охлаждать не нано будет.....
.....если у вас летом +47 то охладить можно вытяжкой и установкой определённой влажности
у вас в лупе Т измеряется и регулируется раз в секунду......
- уходите от delay();
- переходите к millis();
........дальше всё решится по логике :)
Спасибо, буду пробовать!
иииииииии разбейте задачу на 4 подзадачи..... и решайте их по очереди ПО ВРЕМЕНИ ( в масштабах миллисекунд )
.........будет время - накидаю код :) НО !!!!!!!!!!!!!!! 2 первых ягодки - мне ! :)-
иииииииии разбейте задачу на 4 подзадачи..... и решайте их по очереди ПО ВРЕМЕНИ ( в масштабах миллисекунд )
.........будет время - накидаю код :) НО !!!!!!!!!!!!!!! 2 первых ягодки - мне ! :)-
Даговорились!!!
Задействовать как и предыдущие, только с другими условиями.
задействуйте как и предыдущие, только с другими условиями !
тока Ифами резведите по нормальному, по понятиям.... :)
Не получится в данном варианте по понятиям развести. Малость я чертежи попутал. Лекарство:
Уберите свои tStatus и hStatus из управления реле. Управляйте реле напрямую HIGH, LOW. Тогда простейший код уложится в 4-ре if-а. Не забудте задать значения срабатывания.
Далее вдумчиво изучаем пример: http://arduino.ru/tutorials/BlinkWithoutDelay
это основа всех ваших задержек по времени для анализа и действий. Научившись с ним работать, берем листок бумаги и рисуем себе алгоритм по каждой задаче: 1. Померить влажность 2.Если ниже-включить форсунку на 0,1сек. 3.Запомнить время отработки. 4. Ничего не делаем 5минут. 5. Пройти на п.1 2.1 Если влажность выше - ушли на п.3 и далее. Аналогично по остальным 3-м.
Чтобы не разводить бардак в основном цикле вычленяем самодостаточные задачи и оформляем их отдельными функциями. Сейчас их у вас 5 - 1.Замер влажности температуры. 2.Температура высокая 3.Температура низкая 4.Влажность высокая 5.Влажность низкая.
В итоге ваш loop превратится во что то типа этого.
А в каждой функции уже обрабатываете задержки, исполнение и прочии фантазии. В итоге, если появилось желание что то изменить или добавить, вам уже не придется продиратся через дебри сплошного кода, а достаточно модифицировать функцию или добавить новую.
Функция для примера будет выглядеть так:
Переменные h и t объявляем как глобальные. Также задайте вторые пределы влажности и температуры, для получения гистерезиса, иначе будете постоянно греть-охлаждать.
Эк меня на эпистоляр пробило)))
bwn , вектор приблизительно вижу. Буду мозгавать. Спасибо.
bwn , вектор приблизительно вижу. Буду мозгавать. Спасибо.
Не на чем, в принципе для вашей сегодняшней задачи, все что писал по функциям не нужно (у вас и так 20 строчек получится). Но лучше привыкать сразу.
Я бы кстати добавил еще перемешивающий вентилятор (забор сверху - выход снизу) усредните температуру и влажность по объему + на отоплении сэкономите.
Я бы кстати добавил еще перемешивающий вентилятор (забор сверху - выход снизу) усредните температуру и влажность по объему + на отоплении сэкономите.
Это лишнее, размер (конденцатора) камнаты 1.5 на 1.5 метра, и самой комнаты для клубники 2 на 1.5 метра.
раз в минуту снятие данных с датчика и выполнение действий в ифах
цыферки в строках 9, 10, 32, 39, 40, 41, 44, 47 - подпором по практике/интуиции :)
код не боевой - так.... для чтобы вам посмотреть про миллис() :)
Я бы кстати добавил еще перемешивающий вентилятор (забор сверху - выход снизу) усредните температуру и влажность по объему + на отоплении сэкономите.
Это лишнее, размер (конденцатора) камнаты 1.5 на 1.5 метра, и самой комнаты для клубники 2 на 1.5 метра.
ну и здря ! :(
вверху будет мокрее и теплее, внизу - наоборот..... как в бане.....
свет....
клубнике не надо знать что день или ночь ? или ей всё время форсажный ДЕНЬ в приказном порядке ?
У ТС еще четыре релая в запасе, не пугай так сразу. Будет еще и RTC и кнопки и меню, аппетит он во время еды обычно приходит)))
:) ещё и тензодатчики.... чтобы вести статистику - заколосились удои или ещё нет :)
У ТС еще четыре релая в запасе, не пугай так сразу. Будет еще и RTC и кнопки и меню, аппетит он во время еды обычно приходит)))
100% так!
Разрешите встрять? Дело в том, что температура и влажность воздуха очень сильно взаимосвязаны. Это я как птицевод с инкубаторами говорю. Увлажнение, а особенно увлажнение разбрызгиванием воды, очень здорово охлаждает воздух. В жару может на 10 градусов рубануть. Влажность воздуха относительную принять измерять. Относительная влажность, это то количество воды, которое может уместить воздух при данной температуре. Так вот, холодный воздух вмещает мало жидкости, а теплый гораздо больше. То есть относительная влажность без температуры не измеряется и полностью от нее зависит. Впустили мы в холодное время холодный воздух в камеру, подогрели и уменьшили его относительную влажность вдвое. Увлажнили и потеряли температуру, при охлаждении воздуха влага в него уже не вмещается и получаем конденсат на всех холодных поверхностях. Для охлаждаемого воздуха влажность будет к 100% стремиться, даже если в теплом она была не высокой. А Ардуина опять обогрев влупит. И влажность опять вниз поползет. Не так всё просто, как нам кажется.
Дальше, зачем греть воздух если на улице тепло? Зачем охлаждать, если прохладно снаружи? Нужен контроль температуры (а лучше и влажности) за бортом. Если снаружи зима, а мы нагрели воздух до верхнего порога температуры, то нужно просто выключить подогрев и ждать, пока температура не опустится к нижнему порогу. Потом опять подогреть. После нагрева увлажнить, выждать время пока устаканится. Потом повторить воздействие и так далее. Воздух он быстро прогревается, если массивные предметы внутри теплые. Плотность у воздуха низкая, а ИК лучи так вообще его не греют напрямую. И охладитель вообще не нужен скорее всего, хватит тумана. Так в теплицах промышленных в Израиле и Турции урожай спасают от перегрева. А климат там потеплее будет. Да и температра почвы имхо важнее температуры воздуха. Можно и лучше почву прогревать до нужной температуры, а воздух сам быстро нагреется. А высокая влажность легко проветриванием убирается.
:) ещё и тензодатчики.... чтобы вести статистику - заколосились удои или ещё нет :)
За урожаем смотреть будут IP видеокамеры.
По освещению: клубника в стадии рассады будет на свету 19 часов, а в вегитотивной стадии 16-17. Для обеспечения этих режимов использую электронный таймер "Robiton el-02", а светить будут светодиоды разных спектров.
Спасибо за код. Сейчас буду тестировать!!!
Umka, все так, для этого программа и должна настраиватся имперически. А землю точно, нужно контролировать и влиять на темпиратуру.
Топикстартер, у меня есть для Вас готовый код с хорошими и интересными возможностями. Я его писал для управления климатом в помещении с перепелками. Система состоит из 2 блоков, внешний включает датчик освещенности, термометр, пару светодиодов для сигнализации и пьезо-сирену. Внутри мозги и все остальное. Датчик влажности, датчик качества воздуха, датчик уровня воды в емкости (автомобильный из бака), часы, сетевая карта 28J60 (какая была) для показа текущего состояния на простенькой web-страничке. При желании проект можно хорошо развить, поставить туда Мегу, православные цифровые датчики, хорошую сетевуху и слать статистику на облачный сервис, плюс рулить оттуда режимами. Кто хочет - допиливайте. Код написан, но еще не внедрен, могут быть баги.
Не благодарите! :)
:) ещё и тензодатчики.... чтобы вести статистику - заколосились удои или ещё нет :)
За урожаем смотреть будут IP видеокамеры.
По освещению: клубника в стадии рассады будет на свету 19 часов, а в вегитотивной стадии 16-17. Для обеспечения этих режимов использую электронный таймер "Robiton el-02", а светить будут светодиоды разных спектров.
Спасибо за код. Сейчас буду тестировать!!!
Ну а для этого дуина сама так и просится. Umka кстати все правильно пишет, неплохой способ избавится от охладителя.
Umka, Надеюсь ТС не обидится за оффтоп, какой сенсор использовали для оценки качества воздуха? Я хочу поставить MQ-135, но смущает пыль (ее сами знаете вдоволь), есть опыт работы с подобным?
Он самый. Хороший сенсор, не смотря на смешную цену. Он с колпачком от пыли, но я что-нибудь этакое расковыряю.
От комбикорма в помещении жуткое количество пыли всегда. То же самое и DHT22 касается.
Благодарю за ответ и за идею)))
Umka, Спосибо за код :).
bwn, Со временем система будет дополнятся и модернизироватся. Хочу перевести всю нагрузку управлением системой на arduino uno, а если мощности будет не хватать, то задействую arduino mega. Планов по поводу проекта очень много, но хотелось по быстрей запустить выращивание (дети уже "завтраками" сыты). И постепенно, методом проб и ошибок довести всё до идеала.
Спасибо всем за участие и помощь! Как и обещал буду вести проект до "конца" с полным описанием и отчетом.
Сейчас накопилось достаточно информации для анализа и эксперементов, буду обрабатывать.
P.S. Всё только начинается!
Уважаемый Umka, не могли бы Вы скинуть библиотеки используемые Вами?
Весь проект в облаках.
https://drive.google.com/open?id=0B0vRuSZ7oRUeWWtBV2J0OG0yWG8&authuser=0
Спасибо бальшое. Ушел с головой :)
Только учтите, что код на работоспособность не проверялся еще. Руки не дошли. Если поможете ошибки выловить, буду весьма признателен. А я сейчас платы к нему рисую.
Когда встанет задача измерять уровень воды в баке рекомендую схему http://radiokot.ru/forum/viewtopic.php?f=3&t=108460
А по клубнике рекомендую посмотреть информацию "Солнечный вегетарий А.В. Иванова". Одна ссылка для затравки http://insoltm.blogspot.com/2011/08/blog-post_5950.html
123ksn, спасибо, очень любопытно и позновательно.
Только сад будет в подвальном помещении. А вот с уровнем питательного раствора (гидропоника) "колдовать" конечно планирую.
123ksn, спасибо, очень любопытно и позновательно.
Только сад будет в подвальном помещении. А вот с уровнем питательного раствора (гидропоника) "колдовать" конечно планирую.
Так я потому и дал информацию, что подвал - самое хорошее место. СО2 не улетучивается, влажность, освещенность, температуру поддерживать легко. Ставите на улице солнечный коллектор, а в подвале еврокубик или два (в утеплителе) и с ранней весны до поздней осени Вы в клубнике почти бесплатно (по теплоте). Успехов!