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

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

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

Статус темы:
Закрыта.
  1. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    ОК!
     
  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Что сделано: в прошивке модулей с датчиками можно в одном из трёх слотов указать привязку к карте пинов: 8 пинов на модуль, до шести модулей на контроллер (потому что виртуальных пинов всего 48, а 48/8 = 6, если не запретили арифметику). Таким образом, можно с каждого модуля, у которого есть слот "карта пинов" - получить состояние до 8 дискретных ВХОДОВ (состояния 0 - низкий уровень, 1 - высокий уровень).

    В конфигураторе при регистрации в подсказке написано, что индекс - это индекс карты пинов модуля. По сути - этот индекс является смещением в карте пинов: модуль со слотом "карта пинов", которому для этого слота назначен индекс 0 - пишет в пины [80,87], далее - [88,95] и т. д. (если кто не понял, то запись вида [80,87] означает диапазон, а квадратные скобки - включение границ в этот диапазон).

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

    Контроллер, при опросе модулей на шине RS-485, или при получении данных с радиоэфира - просто обновляет данные в карте пинов. Протестировал на RS-485, пакет от модуля приходит, по радиоканалам тоже всё должно быть ок - архитектура сделана так, что изменения оказались минимальны. Короче, я и там умудрился предусмотреть лёгкое расширение, бродяга :)]:aga:

    Надеюсь, что всех устроят ограничения в 8 пинов на модуль (всё же Atmega 328, там и так пинов не алё, так что цифра 8 показалась самой курчавой) и в 6 модулей на контроллер. Потому как на большее я пойтить не могу - давит шапка Мономаха лысеющие кудри, не позволяет уже впихнуть невпихуемое в разрезе обсуждаемой темы.

    Короче: надо тестировать, потому как - теоретически мог где-то напороть. Самое простое тестирование - это закачать прошивку в модуль с теми настройками, что есть на гитхабе, и с пина А1 тыкать то в землю, то в питание проводком. Ну а на контроллере создать правила, чтобы он чего-то там зажигал/гасил (например, светодиод) по уровням на виртуальном пине. Если что - есть RS485_DEBUG и UNI_DEBUG - можно посмотреть, что творится на шине. Правда, для нового функционала я там отладочной информации только одну строчку добавил, но если вдруг не заработает - добавлю ещё горку, чтобы было понятно, что именно приходит в пакете и куда это дело пишет контроллер.

    Опрос модуля происходит периодически, ессно. Сам модуль (если дело касается радиоканала) - также периодически шлёт данные. Т. е. МГНОВЕННОЙ реакции на смену статуса пина у модуля - не будет, будет дискретность в несколько секунд, это надо понимать.

    Кто-кто в теремочке ... тьфу! Кто там запрашивал сей допилинг? Расчехляем тестер и тестируем. Ну а я, пока отсыпаюсь - жду отзывов.

    Ай мы малацца всей командой, правда? Вы мне накидываете фич, я в ответ - отмахиваюсь косяками :)]:aga: Так и живём :)
     
    Последнее редактирование: 06.02.19
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    И тишина... Тестируют все, что ли :)]:aga: Или я там такого напорол, что не разберёсси? :)]:aga:

    Ну ок, не буду мешать тестированию нового нужного функционала, помолчу в сторонке :)
     
  4. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    :)]
     
  5. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958

    promavto

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

    promavto

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

    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958
    Адрес:
    г. Москва, Зеленоград.
    Да за тобой не успеешь. :faq:
     
  6. id10960627
    Регистрация:
    09.05.18
    Сообщения:
    76
    Благодарности:
    8

    id10960627

    Живу здесь

    id10960627

    Живу здесь

    Регистрация:
    09.05.18
    Сообщения:
    76
    Благодарности:
    8
    Лично я вапще ничего не понял из вашего последнего апдейта - что это вообще такое (модули, смещения, карта пинов) и надо ли мне это). Поэтому подожду тестировщиков с отчетами что у них чего-то заработало и для чего это надо было вообще)
     
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Это обратная связь с модуля датчиков. На примере: цепляем к модулю датчиков два датчика: DS18B20 и DHT22. Третий слот этого модуля настраиваем в прошивке как карту пинов, и мониторим на модуле сигналы с пинов 4,5,6,7,8,9,10,11 (как пример). Контроллер получает информацию как с датчиков, так и с пинов выносного модуля. Регистрируем этот модуль в контроллере, назначая ему индекс карты пинов - 0.

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

    Урря, мы сделали сигнализацию, которую можно вытащить от контроллера на пару сотен метров смело!

    Ещё пример: аварийные линии, например, с датчика наполнения бака с водой. Включаем в прошивке опцию "защитник полива", назначаем защитнику пины, за которыми он будет следить. И всё. Теперь при сигнале от любого выносного модуля, у которого есть карта пинов - защитник полива остановит полив. Т. е. быстро и удобно решили кучу головняков, например: не поливать, когда ёмкость пустая (насос сгорит).
     
  8. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    @DIYMan, Дмитрий, доброго здравия!
    Докладываю: обновил прошивки, протестировал отработку состояния пинов универсального модуля датчиков. Все работает как написали. Тестировал пока правда только по RS485. Контроллер с радиоканалом находится в другом месте. На выходных постараюсь съездить проверить на нем, хотя думаю от способа связи зависеть не должно?
    Еще раз благодарю за добавление столь ценной функции, да еще за такое короткое время!
     
  9. Alex599
    Регистрация:
    27.12.18
    Сообщения:
    5
    Благодарности:
    2

    Alex599

    Участник

    Alex599

    Участник

    Регистрация:
    27.12.18
    Сообщения:
    5
    Благодарности:
    2
    Приветствую форумчане! Возникло желание внедрить автоматизацию в теплицу и вот недавно наткнулся на этот проект, уже 4 ветку дочитываю. Когда Вы успеваете столько сделать, читать не успеваю:hello:. Пока идет с Китая комплектуха, начал переделывать платы универсальных модулей под Nano на основе выложенных на гитхабе под Pro mini. Посмотрите, возможно там ошибка в разводке. На мой взгляд, нужно нижний ряд пинов сделать зеркально.
     

    Вложения:

    • Universal execution module PCB.JPG
    • Universal sensors module PCB.JPG
    • Arduino-Pro-Mini-pinout.jpg
  10. Alex599
    Регистрация:
    27.12.18
    Сообщения:
    5
    Благодарности:
    2

    Alex599

    Участник

    Alex599

    Участник

    Регистрация:
    27.12.18
    Сообщения:
    5
    Благодарности:
    2
    Вот что у меня получилось под Nano
     

    Вложения:

  11. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    Китайские братья настряпали столько этих про мини, что черт ногу сломит. Лично использовал с тремя разными разводками. Ряд который вы обвели, зеркально у плат Robodyn и Совпадает с приведенной вами картинкой якобы официальной версии. В тех под которые сделаны платы, есть еще отличие: пины i2c выведены не в нижний ряд, а вторым рядом с пинами А2А3
    https://ru.aliexpress.com/item/WAVGAT-Pro-ATMEGA328P-328-ATMEGA328-5-16-arduino-Nano-Micro/32965115627.html?spm=a2g0v.search0104.3.9.14f71000IYjARP&ws_ab_test=searchweb0_0,searchweb201602_5_10065_10068_319_317_10696_453_10084_454_10083_10618_10307_10301_537_536_10902_10059_10884_10889_10887_321_322_10915_10103_10914_10911_10910,searchweb201603_56,ppcSwitch_0&algo_pvid=e35b8a10-f9f2-4c3d-b603-6723d1ee2d3a&algo_expid=e35b8a10-f9f2-4c3d-b603-6723d1ee2d3a-1

    https://ru.aliexpress.com/item/ProMini-ATmega328P-5V-Compatible-for-Arduino-Pro-Mini/32525859745.html?spm=a2g0v.search0104.8.35.6c189ba12NXKek
     

    Вложения:

    Последнее редактирование: 07.02.19
  12. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
    На модуле с кнопками у вас для нано ног маловато), а на исполнительном I2c вы пытаетесь подключить на несуществующий у нано разъем. Это так навскидку. Проще поновой плату для нано нарисовать чем разбирать где еще напортачено. К тому же выводы можно в прошивке переназначить под свою разводку
     
  13. Alex599
    Регистрация:
    27.12.18
    Сообщения:
    5
    Благодарности:
    2

    Alex599

    Участник

    Alex599

    Участник

    Регистрация:
    27.12.18
    Сообщения:
    5
    Благодарности:
    2
    Упс, модуль с кнопками оригинальный выложил, его пока недопеределал:|:.
     

    Вложения:

  14. Viktorovich4232
    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95

    Viktorovich4232

    Живу здесь

    Viktorovich4232

    Живу здесь

    Регистрация:
    28.02.17
    Сообщения:
    145
    Благодарности:
    95
  15. promavto
    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958

    promavto

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

    promavto

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

    Регистрация:
    27.02.16
    Сообщения:
    1.960
    Благодарности:
    1.958
    Адрес:
    г. Москва, Зеленоград.
    Может проще просто установить микроконтроллер Atmega328. Что то типа этого.
     

    Вложения:

    • IMG_20181120_205207.jpg
    • 2019-01-04 19-52-11.JPG
Статус темы:
Закрыта.