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

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

Тема в разделе "Теплицы и парники", создана пользователем DIYMan, 06.06.16.

Статус темы:
Закрыта.
  1. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Чего пишет? Модуль не найден или ещё чего?
     
  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

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

    Если их будет три - закройте конфигуратор и скиньте мне файл config. xml (валяется рядом с конфигуратором).

    Сегодня я именно это и делал - проверял, как работает, ни одной ошибки не заметил.
     
    Последнее редактирование: 08.07.16
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    DIYMan

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

    DIYMan

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

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

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

    Буду вам признателен за помощь.
     
  5. Veligor
    Регистрация:
    09.06.13
    Сообщения:
    58
    Благодарности:
    26

    Veligor

    Живу здесь

    Veligor

    Живу здесь

    Регистрация:
    09.06.13
    Сообщения:
    58
    Благодарности:
    26
    Адрес:
    Рязань
    Вот таки заработал у меня экран, оказалось все просто нуна было покрутить резистор яркости но мы же не ищем легких путей, сначала перепаяем все, лини перевесим с с программного на железный...
     
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Ахахах, спасибо, глоток хорошего настроения :)
     
  7. Veligor
    Регистрация:
    09.06.13
    Сообщения:
    58
    Благодарности:
    26

    Veligor

    Живу здесь

    Veligor

    Живу здесь

    Регистрация:
    09.06.13
    Сообщения:
    58
    Благодарности:
    26
    Адрес:
    Рязань
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Спс, добавил в корзину такой же, на предмет "побаловаться". А настройки импульсов - подбирайте, на то они и были сделаны, чтобы с разными энкодерами можно было возиться ;)
     
  9. sailorsamoor
    Регистрация:
    29.06.16
    Сообщения:
    33
    Благодарности:
    11

    sailorsamoor

    Участник

    sailorsamoor

    Участник

    Регистрация:
    29.06.16
    Сообщения:
    33
    Благодарности:
    11
    Мне в тему входить нужно будет). Вообще, собираюсь заняться для собственных нужд: ламу там автоматизировать (шесть каналов там) и т. п. STM - так STM, только для меня эти вот "пишем бит туда - пишем бит сюда" - надо пару книг прочесть перед этим, а скоро август, а в августе тёплое море и урожай уже). К сентябрю, я думаю, начну).
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Ничо там в пару книг не вместится ;) С битами всё просто - воспринимайте каждый бит в байте - как степень двойки, и тогда понимание придёт через полчаса. Смотрите: первый бит - это сдвиг единички влево на 0 позиций, 1 < < 0, второй бит (нумерация битов от 0 до 7, что очевидно) - это сдвиг единички влево на 1 позицию - 1 < < 1 и т. п. Если теперь эти позиции представить как степени двойки, то получается:

    • установлен первый бит - 1 (2 в нулевой степени)
    • установлен второй бит - 2 - (2 в первой степени)
    • установлен третий бит - 4 (2 во второй степени)
    • и т. д.
    Зная это можно легко проверить установку нужного бита. Например, чтобы проверить, установлен ли четвёртый бит - достаточно протестировать на 8 (т.е. 2 в третьей степени; нумерация битов от нуля, помните?):

    if (byte & 8) => установлен четвёртый бит.

    Чтобы установить:

    byte |= 8
    или
    byte |= (1 < < 3);

    Чтобы снять:

    byte &= ~8;
    или
    byte &= ~(1 < < 3);

    Всё предельно просто, как видите. Ну а дальше уже вникните в работу с битовыми масками - там принцип такой же ;)
     
  11. vip_lexa
    Регистрация:
    08.07.16
    Сообщения:
    2
    Благодарности:
    1

    vip_lexa

    Участник

    vip_lexa

    Участник

    Регистрация:
    08.07.16
    Сообщения:
    2
    Благодарности:
    1
    Доброго времени суток!
    Решил сделать "Умную теплицу") точнее 2, стоят рядом.

    Что имеется:
    • DHT11 - 3шт
    • DS1302 - модуль времени
    • Servo мотор - 2шт
    • SIM800L - GSM-GPRS модуль
    Что нужно:
    1. Работа МК в автоматическом режиме, открытие\закрытие форточек по температуре (управление серво моторы)
    2. Управление удалённо, смс или запрос к сайту
    Рассуждения:
    • Есть UNO и MEGA хочется использовать первую, т. к. пока только начал и мало чем можно управлять. Так же помимо этого хочется смотреть через сайт, состояние, по температуре, влажности, открытые\закрытые форточки. Теплицы на даче, от дачи 18 км, так что тут вариант только смс или запрос к сайту как то. ну может ещё как то можно? я в своей прошивке просто через интервал в 5 минут например делаю GET запрос на сайт и получаю ответ в json и с помощью библиотеки мк парсит данные и сохраняет в переменные, а дальше просто использует их, можно ли это применить к вашей прошивке? я уже как то пробовал подключать SIM800L но она его не видит, MEGA китайская (SainSmart), датчик времени пока просто так. 2 теплицы 1 контролёр, у каждой управление 1 форточкой, и в каждой по датчику температуры + 1 снаружи
    • И как лучше подключать датчики и где держать МК, если до датчика например метра 3-5, будет ли он нормально работать? какими проводами? можно ли удлинять?
    P. S. вдохновился каналом на ютуб) спасибо что есть такие люди)
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Управление по СМС тоже реализовано, можно добавлять свои СМС с командами через конфигуратор или веб-интерфейс.

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

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

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @olegmak3 - обратил внимание на следующее:

    "0 канал открываем с 23 до 4. png" - на скриншоте правило закрытия, а не открытия;
    "0 канал закрываем с 4 до 5. png" - на скриншоте правило открытия, а не закрытия.

    Возможно, вы перепутали просто, но стоит этот момент уточнить ;)
     
  14. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    1. Правило "TO": c 7 до 19, если температура больше либо равна температуре открытия - открыть первое окно, не срабатывать, если сработало правило с именем "TD";

    2. Правило "ТС": с 7 до 19, если температура меньше либо равна температуре закрытия - закрыть первое окно;

    3. Правило "TD": с 17 до 23, закрыть первое окно;

    4. Правило "TN": c 23 до 4, открыть первое окно;

    5. Правило "FRON": если температура больше либо равна 27 - открыть второе окно;

    6. Правило "FROF": если температура меньше либо равна 25 - закрыть второе окно;

    7. Правило TU: c 4 до 5, закрыть первое окно.

    Это правила, касательно окон. Я не знаю, какие команды у вас в списке составных команд, будем считать, что там нет команд на открытие/закрытие окон.

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

    Что мы имеем в вашем случае:

    1. Правило "TO" не будет срабатывать, начиная с 17 часов, т. к. в это время всегда срабатывает правило "TD". Т. е. даже если температура поднимется сильно - первое окно не откроется.

    2. Первое окно закроется с 17 до 23, и с 4 до 5, безусловно.

    3. Первое окно откроется с 23 до 4, безусловно.

    По второму окну всё вроде понятно - только два правила. Т. е. криминала я сходу не вижу, т. к. второе окно имеет только два правила, по которым должно отрабатывать как часы (мы ведь о втором канале говорим, т. к. именно с его работой непонятки).

    Что в итоге? Есть подозрение, что где-то в составных командах есть команда на открытие/закрытие форточек. Это, что называется, раз. Если моё предположение - пальцем в небо, то надо просто вычислять, где косяк. Для этого достаточно убить все правила, и создать правила только для второго окна, без времени, просто по температуре. Проверить - работает? Работает. Добавлять по правилу и смотреть, когда начнёт чудить.

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

    Ещё раз подчеркну, что правило самовольно не может брать уставку из другого правила - такого в коде просто нет.

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

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

    З. Ы. Вдогонку, в порядке бреда - можно попробовать не стыковать правила жёстко по часам (с 23 до 4, с 4 до 7), а разносить, оставляя между ними интервал в одну минуту. Бред, конечно, но и такой нюанс не следует списывать со счетов. Впрочем, имея такие правила, как у вас - перед контроллером не насидишься, и так или иначе нужна система логгирования сработки правил, чтобы потом можно было спокойно сесть - и просмотреть, что происходило.
     
  15. olegmak3
    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442

    olegmak3

    Живу здесь

    olegmak3

    Живу здесь

    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442
    Адрес:
    Санкт-Петербург
    Вот это ценное замечание.
    И так докладываю.
    Снес все правила и дополнительно залил пустой список.
    Как Вы и рекомендовали, начал с четырех простейших и постепенно наращивал.
    Сначала время активности каналов увеличивал, затем добавлял другие блоки (анализ пинов и пр.).
    Все это последовательно, с тестированием каждого шага. Лабораторная работа, одним словом.
    С учетом того, что один привод у меня отрабатывает около 220 секунд, плюс нагрев-остывание датчика-весь день убил.
    Но,
    ВСЕ РАБОТАЕТ!
    Выловил одну особенность, благо двигался перебежками.
    Использую под свои хотелки несколько составных команд (в основном управление пинами).
    А конфигуратор то пустой. Что писал и как в предыдущем варианте уже не помню.
    И просто стал создавать новые составные команды- не прокатило, алгоритм отказался правильно работать.
    Пришлось вытаскивать список составных команд из предыдущих версий конфигуратора (некоторый лишний геморрой однако) и ручками прописывать под теми же номерами и именами от греха подальше.
    Только так заставил работать весь свой перечень хотелок.
    Почему с самого начала не работали окна?
    Имхо.
    Ранее были использованы служебные правила, которые просто так не удаляются, где то остаются хвосты. Помогает заливка пустого списка.
    Ну и про составные команды выше написал.
    Дмитрию громадное спасибо за помощь. Он сразу подкинул идею начать с нуля.
    И сразу же к нему за консультацией.
    Секаса с М590 достала, поэтому надо заказывать что-то другое.
    Что?
     
    Последнее редактирование: 09.07.16
Статус темы:
Закрыта.