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

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

Тема в разделе "Умный дом", создана пользователем Анкор Плюс, 27.04.17.

Статус темы:
Закрыта.
  1. andy117
    Регистрация:
    18.01.18
    Сообщения:
    34
    Благодарности:
    14

    andy117

    Участник

    andy117

    Участник

    Регистрация:
    18.01.18
    Сообщения:
    34
    Благодарности:
    14
    Хочу спросить про логику работы правил.
    Допустим есть некоторе простое правило, типа если температура больше Т, то включить PIN13.
    Правило срабатывает периодически или по порогу?
    Т. е., скажем, периодически проверяем правило, если условия соблюдается, то тупо выполняем действие (ну или периодически проверяем температуру, а потом смотрим подпадает ли она под какое то правило):
    температура > T? Да. Включаем PIN 13.
    ...
    температура > T? Да. Включаем PIN 13
    ...
    температура > T? Нет. Ничего не делаем.
    Либо каким то образом полагается, что если правило сработало, то в следующий раз можно не дергать лишний раз исполнительное устройство:
    температура > T? Нет. Ничего не делаем.
    ...
    температура > T? Да. Включаем PIN 13.
    ...
    температура > T? Да. Ну он у нас вроде уже должен быть включен, ничего не делаем.

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

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

    P. S. Похоже дую на холодную воду.
    Эх, где бы взять время?
     
    Последнее редактирование: 20.04.18
  2. andy117
    Регистрация:
    18.01.18
    Сообщения:
    34
    Благодарности:
    14

    andy117

    Участник

    andy117

    Участник

    Регистрация:
    18.01.18
    Сообщения:
    34
    Благодарности:
    14
    А может и не зря беспокоюсь.
    Почему возникло опасение? Еще раньше, для теста, создал 2 правила:
    1 W_ON|STATE|TEMP|0|<|27|0|0|255|_|0|CTSET=PIN|13|ON
    т. е. если температура <27, то включить пин 13 (светодиод)

    2 W_OFF|STATE|TEMP|0|>|28|0|0|255|_|0|CTSET=PIN|13|OFF
    если температура >28, то выключить пин 13 (светодиод)

    Вроде все работает. Т=26, светодиод горит.
    Через MQTT выключаю светодиод:
    mosquitto_pub -t 'Andy/SET/PIN/13' -m '0' -h 192.168.0.5
    Выключился. И все, больше не включается, хотя условия для правила №1 соблюдаются.
    (или контроллер перешел в ручной режим?) или это вариант 2 из предыдущего поста.
    Если повышаю температуру, а затем она снижается <27, то ОК, светодиод загорается.

    Я не говорю, что это бага. Может и фича. Но хочется знать точно.

    P. S. Ну и попутно - есть некоторые проблеммы с подвисанием. Часа 2 не передавал температуру ни по MQTT, ни на gardenboss. ru.
    после посылки
    mosquitto_pub -t 'Andy/SET/0' -m 'RST' -h 192.168.0.5
    через несколько минут ожил, но частично. На запрос
    mosquitto_pub -t 'Andy/GET/ALERT/RULE_VIEW' -m '0' -h 192.168.0.5
    отвечал - выдавал первое правило, а вот на запрос второго правила и количества правил не отвечал.
    Да, фрирамы 3381.
     
    Последнее редактирование: 20.04.18
  3. andy117
    Регистрация:
    18.01.18
    Сообщения:
    34
    Благодарности:
    14

    andy117

    Участник

    andy117

    Участник

    Регистрация:
    18.01.18
    Сообщения:
    34
    Благодарности:
    14
    Похоже, что пока целая часть показаний температуры не меняется (т.е. 25, хх), то МК и не перепроверяет правила на соблюдение условий по температуре. а при смене (24,хх или 26, хх) перепроверяет и, при необходимости, исполняет.
    Тогда ничего страшного. Перегрева больше, чем на 0,99С не будет.

    PS опять не угадал
     
    Последнее редактирование: 20.04.18
  4. olegmak3
    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442

    olegmak3

    Живу здесь

    olegmak3

    Живу здесь

    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442
    Адрес:
    Санкт-Петербург
    В прошивке есть настройка -сравнивать целые или дробные значения температуры. М. б. это поможет?
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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

    Логи в студию. Раскомментируем несколько дебаг-режимов, по вкусу, настраиваем вывод в файл, и как только обнаружили подвисание - высылаем логи мне. Я вот по вашим словам даже не знаю, через что передаётся на gardenboss. ru - через ESP или SIM800. Как можно понять по таким вводным, в чём дело - я не знаю. У меня через ESP, например, работает стабильно, ттт - во всяком случае пока никакого криминала не обнаружил.

    Чтобы проверять и дробные части - есть для правил настройка в конфигурации.
     
    Последнее редактирование: 20.04.18
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Запустил ещё раз на большой тест ESP, пока без дебаг-режимов. На сколько часов оставить, чтобы гарантированно поймать проблему, @andy117? У меня по настройкам сейчас и MQTT, и gardenboss, и thingspeak - всюду будет отсылать.

    @andy117 - в следующий раз, если встретите подобное поведение типа "ответил на первую команду, на последующие не стал" - лучше подключить параллельно к USB, и как обнаружите подвисание, через монитор порта попробовать CTSET=0|RST, потом первой командой CTGET=STAT|FREERAM - очень интересно, что там с оперативкой.

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

    Именно поэтому предлагаю параллель в виде монитора порта - надо убедиться, что сам контроллер в порядке и ничего с оперативкой и прочим не случается.

    ESP прошита прошивкой ESP_AT ?
     
    Последнее редактирование: 20.04.18
  7. Tehnik53
    Регистрация:
    22.08.15
    Сообщения:
    142
    Благодарности:
    23

    Tehnik53

    Живу здесь

    Tehnik53

    Живу здесь

    Регистрация:
    22.08.15
    Сообщения:
    142
    Благодарности:
    23
    Нет ли у кого схемы простенького ватчдога на микросхеме NE555 или аналогах?
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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

    screen.png

    На надпись "about an hour ago" не обращать внимания - ThingSpeak показывает графики в динамике без перезагрузки страницы, а вот надписи по времени обновления при этом - не обновляются. У всех есть недоработки :)]:aga:

    З. Ы. SIM800, как писал - надо будет тестировать отдельно, сейчас баланс симки на нуле.
     
    Последнее редактирование: 20.04.18
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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

    Обращаю внимание, что у меня используется пин управления питанием ESP.
     
  11. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.957
    Благодарности:
    1.957

    promavto

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

    promavto

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

    Регистрация:
    27.02.16
    Сообщения:
    1.957
    Благодарности:
    1.957
    Адрес:
    г. Москва, Зеленоград.
    Я применяю такую схему.
     

    Вложения:

  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Прошло 2 часа, ничего не обнаружил. Видимо, был просто переконнект ESP к роутеру. Сегодня/завтра планирую запустить тест SIM800 - пускай долбится по GPRS, то, что денег нет - не страшно, главное - поймать фичу, если она есть ;)
     
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    Запустил тест SIM800 в дебаг-режиме, только gardenboss. ru. Модуль ESP закомментирован в прошивке, чтобы сузить круг подозреваемых, так сказать :)
     
  14. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888
    Адрес:
    80 км от Краснодара
    @olegmak3 - в Terminal можно настроить макрос, чтобы запрашивал периодически любую команду контроллера. Сделайте, как показано на скрине - и в лог будет попадать раз в минуту данные по свободной памяти:
    screen.png

    Команда, которую надо вставить как макрос:

    CTGET=STAT|FREERAM$0D$0A

    Макросы вызываются по нажатию кнопки "Set macros".
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.888

    DIYMan

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

    DIYMan

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

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