Научить разговаривать ардуинки по проводам

Тема в разделе "Проводная и беспроводная связь", создана пользователем yden, 20 мар 2017 в 07:13.

  1. yden

    yden Гик

    Здравствуйте.

    Помогите разобраться, плиз.

    Делаю свой проект "безумного дома". По дому раскиданы nano, каждая отвечает за свой сегмент. Так же есть одна uno - исполняет роль сервера. Роль сервера - посредник между всеми сегментами сети + сбор данных. Например, nano, отвечающий за свет, к ней подключен датчик света и часы. Значения датчика света нужно использовать в другом сегменте сети - отвечает за наружный свет. Вот сервер берет данные с одной ардуинки и передает их другой. Плюс в дальнейшем буду визуализировать эти данные в вебе. Данные планирую передавать по проводам, используя rs485.

    Сделал упор на modbus, что-то начало получаться, пока не столкнулся с проблемой, которая начисто режет все мои идеи. Это количество регистров, которые может хранить у себя ардуинка - 30. Для моей затеи это мало, так как планируется подключения множества датчиков ds18b20.

    Вопрос: подкиньте плиз рабочие идеи как можно реализовать задуманное используя провода, nano\uno, rs485.



    Спасибо
     
  2. rkit

    rkit Гуру

    А вы собрались больше 30 датчиков на одного модбус-слейва вешать? Что-то странное.
     
  3. yden

    yden Гик

    Конечно нет.
    Например, 4 слейва: гараж, баня+стайка, вентиляция дом, сигнализация.
    Гараж - 2 ds18b20
    Баня - 2 ds18b20
    Вентиляция дом - 7 ds18b20
    Сигналка - 10 ds18b20 + 3 датчика протечки.
    Это уже 24 регистра. Это все минимум. Плюс статус релюшек.
    Также хотел по 2 регистра на слейв отдать на проверку зависания слейвов.
     
  4. Onkel

    Onkel Гуру

    тут кстати про rs485 и протокол Applied Digital речь заходила, хорошая штука, поддерживается многими интеграторами вроде Motorola Premise Home и подобными, а также всеми брендами от Crestron и пр.
     
  5. sslobodyan

    sslobodyan Гик

    Скажите, а где вы столкнулись с ограничением в 30 регистров? Покажите свой код.
     
  6. yden

    yden Гик

  7. Radius

    Radius Гик

    Непонятно почему вам не хватает 30 регистров. Температуру можно передавать одним байтом, это будет диапазон -127...+127 градусов. Реле до 8 штук в одном байте. Контактных датчиков тоже до 8 шт. в одном байте. Мне кажется что для бани или гаража это "выше крыши".
     
  8. sslobodyan

    sslobodyan Гик

    На сколько я понял, это ограничения конкретной библиотеки.
    И все это растет из буфера в 64 байта. То есть если вам будет необходимо запросить все регистры последовательно, то их будет не более 30. Запрашивайте по одному, кто мешает? Задавайте свой HOLDING_REGS_SIZE и вперед, лишь бы оперативки хватило.

    [OFF]
    Я уже который раз сталкиваюсь с тем, что ардуина превратилась в набор из кубиков, причем самых разных размеров. И юзеры пытаются из них собирать домики, не придавая значения их размерам, не пытаясь их подстраивать под свои задачи. Жаль.
    [/OFF]
     
  9. yden

    yden Гик

    Не могу сообразить как по одному запрашивать.