Умная теплица на базе Arduino Mega

terminal
Offline
Зарегистрирован: 02.09.2015

cofessor пишет:

terminal пишет:

DS1307 Это что по Вашему ?

Мы о разных вещах говорим? Я хотел обратить Ваше внимание что у Вас всё как-то на время завязано. Вы же сами пишете: Уже давно усовершенствую свой универсальный таймер. Получается что процессорная система у Вас - просто универсальный таймер. Я тоже RTC подключил в систему, но пока вообще не придумал как его использовать кроме того что он будет показывать время, поскольку все основные переключения будут осуществляться вне зависимости от времени по событиям - сигналам от датчиков. У Вас всё будильниками называется. Такое ощущение что RTC командует процессором. С моей точки зрения - какой-то неудачный упор на тайминг, можете плевать на меня, но мне как-то слух режет.

Да зачем плевать ??? Я уже лет 10 назад создал гидропонную систему http://www.terminal-kom.narod.ru/gidroponika.html ссылка на старый сайт. И система не просто реагирует на будильники, к каждому каналу привязан секундный таймер если он не равен нулю то канал включен, этот таймер может пополнить любой из датчиков. Получается что повысилась температура включился канал на охлаждение а на каком канале будет сидеть охлаждение Вы уже сами выбираете. Просто я строю систему из позиции универсальности устройства, это и инкубатор, и умная теплица, и чайник в доме включить. Понимаете ?

cofessor
Offline
Зарегистрирован: 17.11.2015

Пока не очень. У Вас каждое устройство: инкубатор, теплица, включение чайника будет построено отдельно, но по единому принципу, или есть центральное устройство, которое управляет всеми этими объектами в режиме разделения времени?

terminal
Offline
Зарегистрирован: 02.09.2015

Вот и я говорю что тяжело для понимания:) это принцип построния системы. У меня к пину контроллера привязан счетчик который каждую секунду уменьшается на еденицу. Пока значение счетчика больше нуля пин включен. А вот значение в этот счетчик может положить как будильник так и датчики. Получается что к примеру термометр может включить свет(абсурд конечно) но это добавляет гибкость самой системе.

cofessor
Offline
Зарегистрирован: 17.11.2015

Действительно не просто. Ведь если значением в счётчик Вы записали температуру, то какой смысл уменьшать её каждую секунду?

terminal
Offline
Зарегистрирован: 02.09.2015

Пока все в одном контроллере. Но я хочу разделить на несколько устройств. Дело в том что когда просто включение выключение то нет ни каких сложностей. А вот когда с регулировкой мощности, режем синус это серьезно замедляет систему.

terminal
Offline
Зарегистрирован: 02.09.2015

cofessor пишет:

Действительно не просто. Ведь если значением в счётчик Вы записали температуру, то какой смысл уменьшать её каждую секунду?


В счетчик загружается не значение температуры а по достижении определенной температуры в счетчик записывается значение на сколько секунд будет включен обогреватель (к примеру). Тоесть указывается номер канала и количество секунд на которое он будет включен. Вот к примеру у меня на первом канале сидит освещение чтоб его включить я записываю в счетчик первого канала количество секунд на которое должен быть включен свет. Это касается аналоговых каналов их 8 а еще есть цифровые. Там в номер канала записывается мошность которая может быть от 0 до 100.

cofessor
Offline
Зарегистрирован: 17.11.2015

terminal пишет:
cofessor пишет:

Действительно не просто. Ведь если значением в счётчик Вы записали температуру, то какой смысл уменьшать её каждую секунду?

В счетчик загружается не значение температуры а по достижении определенной температуры в счетчик записывается значение на сколько секунд будет включен обогреватель (к примеру). То есть указывается номер канала и количество секунд на которое он будет включен. Вот к примеру у меня на первом канале сидит освещение чтоб его включить я записываю в счетчик первого канала количество секунд на которое должен быть включен свет. Это касается аналоговых каналов их 8 а еще есть цифровые. Там в номер канала записывается мошность которая может быть от 0 до 100.
По моему, так все делают, разве нет? Я, к примеру, включаю форточку на открытие, форточка не посылает обратную связь контроллеру, поэтому он просто держит выход включенным в течение времени, превышающем время её полного открывания, а затем включается пауза, запрещающая операции включения/выключения форточки на 2 мин. Когда же контроллер включает нагреватель, в случае если температура в теплице упадёт ниже заданной, то он просто следит за температурой и отключает нагреватель при условии что температура повысилась на 2 градуса больше минимальной. Этим обеспечивается гистерезис, чтобы нагреватель не включался-выключался часто. Зачем мне, в последнем случае, вообще использовать таймирование? Если же я заведу в контроллер сигналы от концевых выключателей форточки, то и там мне не нужно будет использовать временные промежутки. Более того, включение-выключение устройств по конкретным параметрам - это правильный подход с моей точки зрения, потому что Вы включаете/выключаете исполнительный механизм не по предустановленным промежуткам времени, а в зависимости от реальных величин параметров.

terminal
Offline
Зарегистрирован: 02.09.2015

В моем случае гисерезис можно выставить от одной секунды до 18 часов. Плохо только в этой системе что дискретность всех действий равна одной секунде.

cofessor
Offline
Зарегистрирован: 17.11.2015

Можно, но это не добавляет качества системе управления, потому что промежуток времени, спустя который температура вновь опустится до минимальной, неизвестен и определяется многими параметрами. У меня вот пушка включится точно в тот момент, когда температура опустится до минимальной (ни доли градуса ниже), а у Вас как - спустя установленное время? А если температура в теплице при этом уже будет на несколько градусов ниже?

terminal
Offline
Зарегистрирован: 02.09.2015

Ну дак и у меня так, опрос датчиков только раз в секунду. За секунду температура не успеет сильно поменяться. Как только температура достигла минимального значения сразу идет включение, а вот его длительнось задается значением счетчика.

terminal
Offline
Зарегистрирован: 02.09.2015

А в цифровых каналах температура регулируется ПИД регулятором.

cofessor
Offline
Зарегистрирован: 17.11.2015

terminal пишет:
Ну дак и у меня так, опрос датчиков только раз в секунду. За секунду температура не успеет сильно поменяться. Как только температура достигла минимального значения сразу идет включение, а вот его длительнось задается значением счетчика.
Я понял, но лучше длительность определять реальным нагревом. За фиксированное время температура может нагреться слишком высоко. До этого у меня был терморегулятор, так там тоже задавались температура включения и температура отключения, причём разницу между ними (гистерезис) можно было задавать произвольно. Это даёт возможность с одной стороны регулировать точность поддержания температуры, с другой - исключить частые переключения.