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

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

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

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

    DIYMan

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

    DIYMan

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

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

    {
    controller_id: 1 byte
    battery_status: 1 byte
    calibration_factor1: 1 byte
    calibration_factor2: 1 byte
    reserved: 6 bytes
    sensor1: {
    index: 1 byte;
    type: 1 byte;
    data: 4 bytes
    }
    sensor2: {
    index: 1 byte;
    type: 1 byte;
    data: 4 bytes
    }
    sensor3: {
    index: 1 byte;
    type: 1 byte;
    data: 4 bytes
    }
    crc8: 1 byte
    }

    Почему данные 4 байта? Чтобы для датчика типа "влажность" сразу тащить и температуру в одном пакете. Для освещённости - тоже 4 байта самое оно, есть датчики с разрешением в 4 байта, на будущее. Если просто температура - два байта будут пустыми, ничего страшного. Отдельно влажность - аналогично.
     
  2. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    Нормально. Но я бы все же не выбрасывал и RF ID всей платки.
    Что бы знать - куда новые батарейки нести.

    При этом подходе данный ID можно делать не перезаписываемым а подписать жирными буквами на корпусе устройства.
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    0 - ничего нету
    1 - показания температуры
    2 - температура и влажность
    3 - освещённость
    4 - влажность почвы
     
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    {
    controller_id: 1 byte / ID контроллера, к которому закреплён датчик
    rf_id: 1 byte / ID RF-модуля
    battery_status: 1 byte / статус заряда батареи
    calibration_factor1: 1 byte / фактор калибровки 1
    calibration_factor2: 1 byte / фактор калибровки 2
    reserved: 6 bytes / зарезервировано
    sensor1: {
    index: 1 byte; / индекс датчика в системе
    type: 1 byte; / тип датчика
    data: 4 bytes / данные датчика
    }
    sensor2: {
    index: 1 byte;
    type: 1 byte;
    data: 4 bytes
    }
    sensor3: {
    index: 1 byte;
    type: 1 byte;
    data: 4 bytes
    }
    crc8: 1 byte / контрольная сумма
    }
     
  5. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    Принимается.
    Меняю пакет передачи.

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

    DIYMan

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

    DIYMan

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

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

    В проводном режиме датчик (что очевидно) прописывается в Globals. h, где ему назначается номер пина. В этом режиме в функции Setup нужного модуля я просто конфигурирую датчик, назначая ему индексы в системе, и всё. Далее, в Update - читаю данные с датчика по 1-wire. Соответственно, для грамотности надо писать отдельный модуль, который регистрируется в контроллере последним и настраивает привязки таких проводных датчиков к разным модулям системы (например, в модуль освещённости добавляется датчик, в модуль влажности - тоже, при этом физически датчик на проводе может быть один, имея внутри себя два типа показаний).

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

    Пока предлагаю начать с проводного режима работы, остальное - утрясём по ходу. Как вам такое предложение?
     
    Последнее редактирование: 18.04.16
  7. АлкН1
    Регистрация:
    14.04.16
    Сообщения:
    468
    Благодарности:
    1.171

    АлкН1

    Живу здесь

    АлкН1

    Живу здесь

    Регистрация:
    14.04.16
    Сообщения:
    468
    Благодарности:
    1.171
    - о чем я и мечтал

    - насколько дороже просто чипа?

    - самое то
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Вернее сказать - отдельного модуля не нужно, могу впихнуть всё в ZeroStreamListener - там как раз Setup и Update пустые, и регистрируется он последним, когда все остальные проводные датчики уже настроены ;)
     
  9. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    Если все параметры датчика можно будет отконфигурировать в "проводном" режиме. Зачем специальную процедуру конфигурирования беспроводного?
     
  10. АлкН1
    Регистрация:
    14.04.16
    Сообщения:
    468
    Благодарности:
    1.171

    АлкН1

    Живу здесь

    АлкН1

    Живу здесь

    Регистрация:
    14.04.16
    Сообщения:
    468
    Благодарности:
    1.171
    1) вопрос автору: У Вас теплица 80м.кв. - это, например, 4Х20 м? а были ли прикидки на натуре (на реальных размерах теплицы), в каких местах будут стоять оборудование, датчикки, исполнительные механизмы? реально ли туда кроме силовой линии еще и сигнальные протянуть?
    2) вопрос ко всем, кто реально юзает теплицы - что удобнее, на Ваш взгляд, провода или радио?
     
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    А про беспроводные - у нас же будет регистрация беспроводных в системе, так? Следовательно, можно динамически добавлять датчики в систему. Следовательно - надо отдельную линию для регистрации по 1-Wire, после регистрации - датчик будет работать только по беспроводу.

    Или я опять чего не понимаю?
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Пока прикидок в натуре не было, теплица у меня чуть меньше - 64м2, 4х16м.
     
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Т. е. вашей стороне всё прозрачно, и никаких дополнительных телодвижений вы не предпринимаете ;)
     
  14. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    Трудно сказать, цены на али самые разные, но риск получения кривого модуля от них выше чем неисправного чипа.

    Но Вы правы - 3 или 6 долларов - не так важно. Дело не только в цене. Суб модуль - это менее технологично и надежно чем просто впаянный чип.
     
  15. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    Нет, все верно. Просто для кода "конфигуратора для конфигурации" с Вашей стороны тоже нет разницы - подключился датчик на пин на время конфигурации или навсегда.
     
Статус темы:
Закрыта.