Связать несколько Arduino и PC

Тема в разделе "Arduino & Shields", создана пользователем MelkoV, 11 ноя 2018.

Метки:
  1. MelkoV

    MelkoV Нуб

    Всем привет!
    Раньше не приходилось заниматься взаимодействиями между arduino или между arduino и PC.
    Но сейчас хочу сделать новый проект, и понял, что не могу понять, как реализовать взаимодействие.
    Итак, дано:
    1) "client unit" - в нем ардуинка, 1 кнопка и несколько светодиодов. "client unit" может быть несколько, в моем случае их 3. Они между собой никак не взаимодействуют.
    2) "admin unit". Он 1.
    3) PC, или ноутбук.

    Задача.
    1) "client unit" ждут команды от "admin unit".
    2) "admin unit" посылает команду определенному (не всем сразу, а определенному) "client unit".
    3) "client unit" получает команду и выполняет действие (переключает светодиоды в нашем случае).
    4) При нажатии кнопки "client unit" передает об этом информацию в "admin unit"
    5) При этом "admin unit" - лишь посредник между "client unit" и админкой на PC. То есть он передает поступающую информацию на PC, и при поступлении информации с PC отправляет ее определенному "client unit".

    Дополнительно:
    - если проще, то можно отправлять не конкретному "client unit", а всем сразу. И уже в самом сообщении хранить получателя.
    - все устройства находятся рядом в радиусе 5м максимум (грубо говоря, в одной комнате в квартире).

    Помогите, пожалуйста, разрулить это безобразие. Сам пока смотрю в сторону NRF24L01+ между клиентом и админом, подойдет ли? И как лучше связать админ и PC?
    Заранее благодарю!
     
  2. Вам нужно определиться с расстоянием и объемом информации.
     
  3. MelkoV

    MelkoV Нуб

    Все устройства находятся в одной комнате, расстояние - максимум 5 метров. Все сообщения будут типа "1-123-456".
     
  4. nrf пойдет
    админ и пк связывается тем же usb кабелем, смотрите в сторону Serial в ардуино
     
    MelkoV нравится это.
  5. MelkoV

    MelkoV Нуб

    Спасибо! А с nrf не будет проблем в том плане, что их же постоянно надо переключать из режима получателя в режим отправителя и обратно, насколько я понял из обзоров?
     
  6. Там есть все средства для решения вашей задачи. Режимы переключать так часто не надо, и есть подтверждение доставки на случай конфликта по времени. Ваша задача 100% решаема, но в целом это все-таки требует достаточно большого опыта программирования.
     
    MelkoV нравится это.
  7. MelkoV

    MelkoV Нуб

    Я - программист с 12-летним стажем, с этим разберусь. У меня больше вопрос по аппаратной части, т.к. электроника и все эти ардуинки - это у меня хобби, которым я занимаюсь мало и редко)
    Спасибо за Ваши ответы!
     
  8. Читайте внимательно даташит по nrf24, там всё хорошо разжевано.
     
  9. regent.correon

    regent.correon Нерд

    Насчет применения NRF24 - рекомендую заменить на HC-12 - проще работать - RX/TX и экономия пинов ардуинки. Кстати, по общению нескольких ардуин в сети тоже вопрос интересует. Можем списаться...
     
  10. b707

    b707 Гуру

    для расстояний в 5м HC-12 явно избыточен, NRF подходит лучше.
    А что касается сети - идея ТС правильная. У меня примерно так же сделано - одна админская ардуина на сервере и несколько клиентских на исполнительных устройствах и датчиках. Админская снимает показания с клиентов, шлет им команды и выкладывает данные в интернет через программу на ПК. Связь на HC-12
     
  11. regent.correon

    regent.correon Нерд

    Не думаю, что он избыточен - кроме указнанных мной причин есть еще одна серьезная - для него не нужно подключать какие либо библиотеки. Можно работать даже через Serial.print/write и т.п. Так что избыточность тут даже в экономию памяти для других задач.
     
  12. parovoZZ

    parovoZZ Гуру

    для nRF тоже не надо никаких библиотек. Кода там - байт на 200-300.
     
  13. Реализация необходимого для стабильной работы в такой конфигурации функционала займет гораздо больше кода и времени. А в NRF такой функционал просто есть.
     
  14. regent.correon

    regent.correon Нерд

    А для чего же тогда библиотека NRF24 ??? :)
     
  15. b707

    b707 Гуру

    вы серьезно спрашиваете или прикидываетесь7
     
  16. parovoZZ

    parovoZZ Гуру

    для тех, у кого девушки нет.
     
    ДеКодер нравится это.
  17. MelkoV

    MelkoV Нуб

    Всем спасибо за сообщения!
    Вроде, победил все это безобразие на NRF24, после проб и ошибок все вроде заработало стабильно, хоть и с несколькими костылями. Пока нет времени их выпиливать. Админ и ноутбук связал по serial, для управления написал софтинку на c#.

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