1 2 3 4 5 6 7 8 9 10 10/10 10,00оценок: 12

Arduino Mega. Контроллер теплицы. Хроники - 4.0

Тема в разделе "Теплицы и парники", создана пользователем Анкор Плюс, 19.05.18.

Статус темы:
Закрыта.
  1. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958

    promavto

    Разработка контроллеров

    promavto

    Разработка контроллеров

    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958
    Адрес:
    г. Москва, Зеленоград.
    Я бы наоборот, исключал максимальное и минимальное значение, а остальные показания складывал и делил на количество показаний. Если крайние состояния близки к средним, это не повлияет на результат вычисления. При резких отличиях крайних показаний, усредненное может отличаться от фактического. А вообще то у меня сложилось впечатление что на форуме обсуждают расчеты движения космического корабля во время парада планет с учетом завихрений полей. :)]

    А вот простая ситуация: Пришла супруга в теплицу и решила "нужно все таки полить".
    Включить на автомат - откроются все клапана - краны одновременно (контроллер определил что время полива просрочено, ну и давай все открывать). И польется хрен знает как, ни давления, ни равномерного распределения. Вот и сидит она вручную дает команду открыть/закрыть клапан (а у меня их 14 штук, да и у других садоводов= огородников их по разному количеству).

    Поуправляла - поуправляла, да и плюнула. Взяла шланг-лейку и полила как надо, быстро и правильно. Вот и меряет мой дорогой контроллер температуру в теплице и на улице. Одна радость - можно посмотреть эту температуру на сайте не заходя в теплицу (они у меня на 2 этаже). Ничего мне не говорит супруга, что фигня твой полив, но я то умею читать по глазам. Жалко ей меня с моими игрушками- контроллерами.

    А было бы пришла, посмотрела - нужно полить. Нажала кнопочку - и пошел автомат последовательно включать\отключать клапана (на запрограммированную длительность). И не все одновременно, а один за другим, равномерно распределяя драгоценную влагу. Ээ...хх мечты. А так хотелось - включил контроллер, пришел через месяц, а там урожааай. :faq:
     
  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Всех хотелок я точно не покрою - у каждого свои заморочки с водоснабжением. Считаю, что автоматизация - это комплексная проблема, и покрыть все-все потребности универсальным контроллером - это утопия. Гораздо грамотнее - системное решение, например: если контроллер хорошо работает с насосами фирмы Абибас - надо ставить насос фирмы Абибас, и т. п., а не пытаться прикрутить метлу к роботу-пылесосу.

    Как настроено - так и определил, всё просто. Есть возможность НЕ ПОЛИВАТЬ, если влажность больше нужной - что мешает этим воспользоваться? Есть возможность установки времени начала полива, дней недели, продолжительности полива - что мешает этим пользоваться-то? Нахрена вручную-то лезть, а потом пенять, что контроллер не справляется?

    Ок, захотелось супруге включить ВРУЧНУЮ полив. Есть кнопка - включить полив. Эта кнопка - для ВСЕХ каналов, дураков нет. ЕСТЬ кнопки для ОТДЕЛЬНЫХ каналов - их юзать при РУЧНОМ режиме полива - запрещается, что ли?

    А так получается - супруга вмешалась в работу автоматики, и хочет, чтобы автоматика вмешалась в её вмешательство. Сюр какой-то, если честно. Потому что если
    значит - проблема не контроллера, а его неправильного использования, в том числе - настройки. Был выключен автоматический режим работы контроллера? В этом точно - недоработка программиста :)]:aga:, а не тот факт, что контроллер, по факту - не участвовал в управлении поливом, от слова "совсем". Уж каких только развесистых настроек полива нет - всё равно не хватает, нам надо - чтобы нажал "ВКЛ", и оно и мысли прочло ещё. Понимаешь, какое дело: выключи ты автоматический режим управления поливом, и оставь на месяц всё без воды - посохнет нахрен вся культура. Тоже контроллер виноват, что не переубедил хозяина? Так что описанное тобой - это не проблема контроллера, это - проблема пользователя. И те хотелки, что ты описал - это не автоматика, а ПОЛУавтоматика, надо понимать и разделять эти вещи. Полуавтоматического режима работы полива (это когда жмакнули кнопочку, и по каким-то сценариям оно начало поливать) - в прошивке нет, потому что разрабатывается не полуавтомат, а автомат, с возможностью ручного управления.

    У меня всё по вопросу полива, что-либо там доделывать - не буду. Если хочется вручную управлять поливом - контроллер тут не нужен, как было правильно замечено: взяли леечку, и полили, как надо.

    Лично для меня - проблемы полива вообще нет: в сезон - полив по расписанию, юзаю капельный, там всё нормально, хоть 100 клапанов - у меня ОДИН насос прекрасно тянет 200 метров капельных линий ВЛЁГКУЮ. Перелить - практически нереально. Ходить с леечкой - не надо. Запрограммировать контроллер на это дело - как здрасьте. Если надо вручную дополить - какая мне разница: пойти вручную перекрыть ненужные ветки полива (что дольше, чем жмакнуть на кнопочки) и включить полив вручную, или - жмакнуть на нужные каналы, чтобы они поливались? Разница только в том, что жмакнуть - быстрее, намного.

    Сильно жарко, и надо всё дополить? Одну кнопку жмакнул - и ушёл. Потом со смартфона - перевёл в автоматический режим - и ВСЁ. Даже если забыл - после полуночи оно само перейдёт. Капельный полив - залить до болота нереально.

    Ну а для души уже - с леечкой, с ведёрочком: подкормки там, все дела. Вот не вижу я проблемы полива. Более того: контроллеры, что продаются, типа для поливки газонов, за много тыщ - там ровно такой же функционал, если не меньше: есть зоны полива, есть расписание полива по зонам, всё.

    Если не устраивает тот факт, что контроллер считает время полива даже с учётом просрочки - всегда можно сделать доп. настройку, чтобы он так не считал. Но для меня логичен именно реализованный вариант: если я хочу, чтобы в Пн, Ср, Пт - поливалось по два часа, но НЕ РАНЬШЕ 10 утра - то включи контроллер хоть в три часа дня - он эти два часа выльет. А если бы отключили электричество в 9, и дали в 13, а контроллер тупой, как пробка - тю-тю полив на сегодня. А контроллер - не тупой, и не хочет, чтобы его отупляли.
     
    Последнее редактирование: 17.08.18
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Распечатал тут часть корпуса для платы управления, чтобы посмотреть, как оно сядет. Вроде ничего так сидит:

    box.JPG

    Заднюю крышку пока не печатал, ибо пока неясно, куда это дело будет крепиться - как будет ясность, с этим учётом и доделаю. Также не делал прорезь под выводы проводов - в нужном месте всегда просверлиться можно будет ;)
     
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    И первое усреднённое значение у нас появится только через промежуток времени ;) Не совсем правильно, конечно, да и если работать в понятиях усреднения, то наоборот - лучше отбрасывать максимальные и минимальные значения в ряду выборки - это сильно помогает получить что-то, похожее на правду.
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Мысль годная, надо подумать. Такой ряд - откуда брать: навскидку с каким-то шагом? Да и, строго говоря, эту методу усреднением не назовёшь - это скорее загрубление, отражение более чувствительного диапазона на более грубую шкалу. Но мысль - годная, надо мозговать.
     
  6. kivik71
    Регистрация:
    28.10.13
    Сообщения:
    3.783
    Благодарности:
    2.288

    kivik71

    Живу здесь

    kivik71

    Живу здесь

    Регистрация:
    28.10.13
    Сообщения:
    3.783
    Благодарности:
    2.288
    Адрес:
    Екатеринбург
    События нужности затенения и досветки происходят не очень часто в течении дня, для них как раз и нужно загрубление, причем очень сильное.
    Возможно нужно попробовать применение метода тренда, как в биржевых графиках. Когда линия тренда приближается к пороговым значениям срабатывания нужных механизмов, тогда и проводить усреднение-загрубление, а все остальное время просто слежение за линией тренда.
     
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Про полив, оставлю свою точку зрения тут. Ключевое слово данного поста - автоматика.

    С точки зрения автоматики - это полив по определённым правилам (расписанию, влажности почвы, времени суток, зависимости от внешних факторов). Всё это - уже реализовано.

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

    Для смены поведения контроллера, например - уже сейчас в конфигураторе есть выгрузка/загрузка правил. Сделать такое же для полива - и получим поведение автоматики, меняющееся по сезону. Если чего-то не хватает в вебморде - это только потому, что на всё сразу у меня только две руки и одна голова с межушным ганглием, всё не успеваю. Уже не раз кидал призывы присоединиться к разработке - тогда было бы побыстрее в части реализации всяких удобных плюшек. Но пока, кроме единичных и давно умерших случаев - очереди разработчиков я не наблюдаю, следовательно, тут можно сделать один вывод: кроме меня и ещё определённого кол-ва человек - это никому особо не надо, а из тех, кому надо - программист я один, херовый, конечно, но - один, другого не завезли пока. При том, что у проекта есть гитхаб, и там можно сделать pull request - за всё время существования проекта был только ОДИН pull request, да и тот касался исправления моего кривого английского.

    Главный пойнт автоматики - это предсказуемость агротехники, и если всё настроено правильно, то и результат будет получен - предсказуемый. Всё остальное - смена парадигмы поведения контроллера оператором - это, по сути, уже плюшки, которые можно реализовать с известной степенью удобства, например, сделав в той же вебморде кнопки "Перейти на летний режим полива" и т. п. Автомобиль, вон - тоже не сам себе резину с летней на зимнюю меняет, и ничего - живём-с.

    Ключевое тут - это первоначальная настройка автоматики. Как настроили - так и взлетело. А если агротехники нет - то никакие, от слова "вообще", хотелки - не помогут облегчить жизнь: всё равно придётся - либо на кнопочки тыкать, либо, чтобы не испытывать когнитивного диссонанса от общения с "тупым" контроллером - брать леечку и поливать.

    Необходимое условие успешного функционирования автоматики - наличие грамотного оператора, могущего скорректировать поведение автоматики, когда это действительно необходимо. Если такая корректировка нужна постоянно - значит, в системе что-то не так, надо настраивать систему, и самое интересное тут, что проблема не в "тупом" контроллере - а в системном подходе, вернее, в его отсутствии, раз мы сталкиваемся с необходимостью постоянного вмешательства в работу автоматики.

    А у нас что получается? В прошлом году - редиска, в этом - помидоры, в следующем - хурма. И постоянные пляски с бубнами. Это, ребята - не агротехника, а постоянная её смена. Считать, про при этом не надо перенастраивать автоматику - просто смешно.

    Всё остальное: "болтанка" от мгновенных показаний датчиков освещённости и подобные вещи - это, безусловно, недоработки, которые выявляются только практикой. Плюс ко всему, подчеркну - никогда не ставилось целью получить универсальный решатель проблем - такого не существует в природе, и, по законам физики - существовать не может в принципе. Ставилась задача - сделать автоматику, с возможностью переключения в ручной режим управления. Очевидно, что читая "автоматика" - следует читать "программно-аппаратный комплекс", т. е. контроллер - это только одно из звеньев цепочки, призванной отвлечь от рутинных дел.

    Строго говоря, с вопросом проветривания теплицы вполне себе справляются гидроцилиндры, и всегда можно придти - и ещё и двери подпереть палочками, чтобы, значится, сквознячок. То, что контроллер этого не умеет - значит ровно то, что он для этого не предназначен.

    Резюмируем про полив. Итак, контроллер умеет поливать:

    1. В ручном режиме, как все каналы вместе, так и по отдельности;
    2. В автоматическом режиме;
    3. По расписанию: дни недели, время начала, продолжительность полива;
    4. Имеет условия для прекращения полива: влажность почвы, внешние факторы (настройка "защитник полива");
    5. Умеет (опять же, эту настройку можно выключить) переходить в автоматический режим после полуночи - сделано для того, чтобы выключить слабое звено - забывчивых ручных поливаторов, таким образом - залить что-либо до состояния болота - становится проблематичней;
    6. В автоматическом режиме умеет управлять как всеми каналами сразу, так и по отдельности - для покрытия случаев "у меня много клапанов, все сразу нельзя открывать";
    7. Умеет работать с двумя насосами, каждый из них может быть привязан к определённой части каналов полива;
    8. Умеет грамотно обходить проблему пропущенного времени старта полива за сегодня, что позволяет обезопаситься от недополива из-за тех же перебоев с э/э (хотя и этот негативный фактор, с т. з. системного подхода - должен быть сведён к нулю наличием резервных источников питания).

    Наряду с вышеперечисленным, можно настроить контроллер так, чтобы он не поливал, когда температура ниже, чем нужно - всё это делается в связке с правилами и с функционалом "защитник полива". Что ещё можно требовать от автоматики в части полива - мне сложно представить.

    Если же нужны сценарии РУЧНОГО полива, то архитектура прошивки позволяет добавлять любые модули: можно вместо неугодного модуля полива написать свой, который будет рулить сценариями по нажатию одной кнопочки. Но это уже - не автоматика, подчеркну ещё раз.

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

    1. Если на пине нужный уровень - подать на пин такой-то нужный уровень, продолжительность работы - 30 минут;
    2. Если на пине нужный уровень - подать на пин такой-то нужный уровень, продолжительность работы - 30 минут, не срабатывать, если сработало правило выше;
    3. Если на пине нужный уровень - подать на пин такой-то нужный уровень, продолжительность работы - 30 минут, не срабатывать, если сработало правило выше;
    4. И далее по списку.
    Модуль полива тут - совершенно не нужен, зато получаем реализацию хотелки "жмакнул на кнопку, оно всё по порядку стало поливаться, давление распределяется, всё хорошо". Очевидно, что при помощи настроек прошивки можно сделать вариант контроллера, который будет иметь такую кнопку в наличии - хоть железную, хоть на TFT-экране (тут, правда, придётся дописывать код).

    По итогу получаем, что уже - всё есть, а если кажется, что чего-то не хватает - надо только разобраться, как это настроить. Если же не хватает правил, или ещё где-то жмёт - тут всё просто: нельзя впихнуть невпихуемое в нерастягиваемое, и тут либо - МК пожирнее, чем сейчас и занимаемся, либо - второй контроллер, чисто для развлекухи с ручным управлением поливом (монтажное "или" пока вроде никто не отменил, насколько я знаю).

    При желании же - можно любой маразм довести до абсурда: настроить контроллер так, чтобы он не поливал, пока температура воды будет ниже 50 градусов, а потом подойти к нему, нажать кнопочку "Включить полив" и удивляться, почему полив не включается (сработал "защитник полива"). Как понимаете, автоматика тут не даёт сделать дичь, ибо её предназначение - не допустить дичь в агротехнике.

    У меня всё.
     
    Последнее редактирование: 18.08.18
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Спасибо огромное, как-то я про метод тренда упустил. Ещё одна годная мысль, буду думать, как это правильно применить на конкретной проблеме с освещённостью.
     
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Лирики пост, про мою систему полива, что есть сейчас: один насос, один центральный кран, по крану на каждой ветке капельного полива, веток, на память, штук 14-16. Поливаем ночью, ибо - так дешевле по э/э. Когда надо полить - тупо открываю центральный кран, включается насос, и я иду спать. Утром - выключаю. Когда надо дополить - вручную перекрываю ненужные ветки, включаю полив днём, иду заниматься своими делами. Когда вспомнил, что надо выключить - тогда вспомнил, и выключил. Датчики влажности почвы - не нужны, перелива ещё ни разу не наблюдалось: и помидоры, и другие культуры - чувствуют себя норм: просто перекрываем помидорам полив, и всё.

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

    Надо будет сменить график полива? С вебморды за пару минут. И я получаю автоматическое управление в том виде, в котором оно мне нужно, не задействовав и половины возможностей.

    Единственное, что меня тут смущает: настройка "переходить в автоматический режим работы после полуночи" - пока жёстко прошита в прошивку, и наружу не вытащена. А это может быть полезно. Пожалуй, подумаю над этим вопросом сегодня.
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Обновил прошивку, конфигуратор, вебморду: вынес настройку "Переключаться в автоматический режим работы полива после полуночи" вовне, т. е. ей теперь можно рулить и настраивать.

    Короче, настройка из категории директив условной компиляции - перекочевала в изменяемые в любое время.
     
  11. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958

    promavto

    Разработка контроллеров

    promavto

    Разработка контроллеров

    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958
    Адрес:
    г. Москва, Зеленоград.
    Я знаю твое отношение к системе полива:)].
    Но клиенту должно быть удобно работать. Вот наберусь побольше свободного времени:( и добавлю еще одну кнопку на дисплей для последовательного полива в ручном режиме. :pioner:
     
  12. olegmak3
    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442

    olegmak3

    Живу здесь

    olegmak3

    Живу здесь

    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442
    Адрес:
    Санкт-Петербург
    Про полив.
    Имхо.
    Всех плюшек в алгоритме за глаза !
    Давеча проозонировал воду в емкости для полива, и в ручном режиме (аппаратные кнопки для управления, т. е. без автоматики вообще, приделаны несколько лет назад) пролил теплицу через капельную ленту. И никаких надуманных проблем. Даже не вмешивался в работу автоматики.
    Про влажность и память.
    Восстановил удаленные правила. Свободной памяти 1383 байта.
    Поудалял лишние (до 25 правил) стало 1716.
    Происходит примерно следующее.
    Пусть текущая влажность 80%.
    Уставка на включение канала (выключение пина) 75%,на выключение канала (включение пина) 85%.
    При условии "не выполнять, если сработало правило Х" все работает корректно.
    Убираю условие "не выполнять, если сработало правило Х" канал включился. И все. Защелкнулся в этом состоянии.
    Так и будет во включенном состоянии, даже если вновь добавляю условие "не выполнять, если сработало правило Х", увеличиваю уставку на включение (75%) выше текущего значения (80%).Ни перегрузки контроллера, ничто другое не помогает.
    Только уменьшение уставки на выключение канала (85%) на значение меньшее чем текущее значение влажности (80%) сразу же (при сохранении правил в контроллер, без перегрузки его) выключает канал, нормализует работу по условию "не выполнять, если сработало правило Х".
    И так по кругу, до следующего раза.
    А т. к. графики влажности имеют скачки по разным причинам, еще и это накладывается.
    влажность.png влажность1.png
    Сегодня попробую поэкспериментировать на последней прошивке, и уже не с уставками, а с изменением реальных показаний датчика влажности.
    Примерно так.
     
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @olegmak3 - скажу кратко: по алгоритмической части работы правил - там всё нормально. Я там сто лет никаких ошибок логики не находил.
     
  14. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Всё правильно, правило, КОГДА сработало, включило канал. Какие претензии к тому, что ПРАВИЛО СРАБОТАЛО? У правила - НЕТ ОБРАТНОГО ХОДА, оно - ОДНОНАПРАВЛЕННО, повторял неоднократно. Включило - и всё, выключить оно НИКАК НЕ МОЖЕТ.

    Поменяли настройки правила? Ок, но оно может с новыми настройками и НЕ срабатывать. При этом канал будет включенным, т. к. предыдущая версия правила, до редактирования - СРАБОТАЛА.

    Ну просто же всё, и очевидно. Говорил не раз: если надо разнонаправленные действия - это ДВА ПРАВИЛА в тандеме.
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    По поводу полива, в частности, пресловутой последовательности - пытаюсь обобщить задачу. Очевидно, что привязываться к поливу - нехорошо с точки зрения архитектуры: раз у нас есть модуль автоматического полива - пускай работает.

    Очевидно также, что иногда действительно хочется сценариев, а последовательное включение чего-либо - и есть сценарий.

    В результате обдумываний родилась идея модуля сценариев, попробую объяснить, что это такое, но сначала - оговорюсь: в первой версии всё будет читаться с SD-карты, и пока не будет изменений в конфигураторе/вебморде - рассматриваем сценарии как настройку контроллера перед пуском в жизнь. Далее - посмотрим.

    Итак, сценарии, как я вижу их я: у сценария есть имя (например, чтобы в дальнейшем отображать это имя в виде надписи на кнопке на отдельной закладке TFT-экрана). У сценария есть признак - выполняться циклически или однократно. У сценария есть шаги, у шага - есть признак продолжительности его выполнения (0 - выполнить и тут же перейти к следующему шагу, любое число больше ноля - кол-во секунд, которые этот шаг будет выполняться). У шага также есть текстовая команда, которая выполняется при пуске шага в работу.

    Как это может выглядеть на практике, на примере одного сценария и использования микросхемы MCP23017 по адресу 0 для руления статусом пинов:

    1. Имя сценария - полив по шагам;
    2. Далее - шаги (первой цифрой после "-" - продолжительность шага, затем, после запятой - команда, в конце - мой комментарий):

    - 0, CTSET=MCP|I2C|MODE|0|0|OUT / установить канал 0 микросхемы на выход
    - 0, CTSET=MCP|I2C|MODE|0|1|OUT / установить канал 1 микросхемы на выход
    - 0, CTSET=MCP|I2C|MODE|0|2|OUT / установить канал 2 микросхемы на выход
    - 0, CTSET=MCP|I2C|MODE|0|3|OUT / установить канал 3 микросхемы на выход
    - 0, CTSET=MCP|I2C|MODE|0|4|OUT / установить канал 4 микросхемы на выход
    - 0, CTSET=MCP|I2C|MODE|0|5|OUT / установить канал 5 микросхемы на выход
    - 600, CTSET=MCP|I2C|WRITE|0|0|ON / установить в канале 0 высокий уровень, 10 минут
    - 0, CTSET=MCP|I2C|WRITE|0|0|OFF / установить в канале 0 низкий уровень
    - 300, CTSET=MCP|I2C|WRITE|0|1|ON / установить в канале 1 высокий уровень, 5 минут
    - 0, CTSET=MCP|I2C|WRITE|0|1|OFF / установить в канале 1 низкий уровень

    И т. д. и т. п. Понятно, что можно юзать ЛЮБУЮ понятную модулям контроллера команду, например, прямое управления пинами при помощи команд CTSET=PIN|13|ON и т. п.

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

    Естественно, что и сам модуль сценариев будет управляться из внешнего мира посредством команд, например, CTSET=SCN|0|EXEC (выполнить сценарий номер 1), CTSET=SCN|1|STOP (остановить сценарий номер 2), CTGET=SCN|5|STATUS (получить состояние сценария номер 6 - запущен или остановлен).

    Кто что скажет? Думаю, если ввести такой модуль - то уже точно можно с чистой совестью отсылать хотящих не входящие в код прошивки алгоритмы - к модулю сценариев.

    Ы? Ставим плюсики к теме, если модуль сценариев - годная идея. Ставим минусики - если не годная. По разнице - я определю, надо оно или нет. А пока - думаю над загрублением показаний датчиков освещённости ;)
     
Статус темы:
Закрыта.