Несколько узлов с одинаковым адресом приема и передачи.
Я хочу сделать сеть на ардуино и чипах nrf24l01. Сеть будет такой:
- 1 мастер Arduino
- несколько (без конкретного количества) подчиненных узлов
Я хочу, чтобы все узлы имели одинаковый адрес получения и один и тот же адрес передачи, а мастер Arduino понимал, какой из них отправляет сообщение, из самого сообщения. Например:
Мастер: Получение: 0xABCDABCD71 Передача: 0xABCDABCD01
Подчиненный 1 Получение: 0xABCDABCD01 Передача: 0xABCDABCD71
Раб 2 Получение: 0xABCDABCD01 Передача: 0xABCDABCD71
Раб 3 Получение: 0xABCDABCD01 Передача: 0xABCDABCD71
Раб 4 Получение: 0xABCDABCD01 Передача: 0xABCDABCD71
Когда мастер отправит сообщение, все узлы получат его. Я хочу спросить:
- Возможно ли это?
- Будут ли какие-либо проблемы?
- Есть ли другой способ добавить больше узлов в будущем без изменения кода?
@Christos Mitsis, 👍2
Обсуждение1 ответ
Лучший ответ:
а также комментарий №1, другой момент — это пакеты подтверждения, которые подчиненные устройства будут отправлять обратно главному устройству для подтверждения получения сообщения. Поскольку все подчиненные устройства отправляют подтверждение примерно в одно и то же время, у главного устройства не будет возможности узнать, какое подтверждение пришло от какого клиента, и, таким образом, кому нужна повторная передача. Обойти это можно, отключив подтверждение для клиентов и заставив главное устройство передавать максимальное количество раз независимо от этого. Существует форк rf24 с широковещательным режимом, что упрощает указание не ждать подтверждения перед повторной передачей
Использование [этого](http://tmrh20.github.io/RF24) в качестве базовой библиотеки и [этого](http://tmrh20.github.io/RF24Network/) в качестве упрощающей накладки (на самом деле есть еще RF24Mesh) сделает это очень легко возможным., @Avamander
- вопрос по трубке nRF24L01
- Как подключить NodeMCU к NRF24L01
- Переключение каналов NRF24l01
- Использование функции уровня сигнала модуля nRF24L01
- Как автоматически сбросить nrf24l01+ с кодом?
- NRF24L01+ PA не работает с Arduino Mega (работает с Nano)
- Пустое значение не игнорируется, как должно быть.
- Не получаем данные от NRF24L01
Это будет работать. Единственной возможной проблемой могут быть коллизии, если узлы отправляют много данных (здесь могут помочь разные интервалы повторной передачи)., @Gerben
Как правило, иметь одинаковый адрес RX на всех подчиненных узлах — плохая идея, за исключением случаев, когда подчиненные устройства предназначены только для приема. Если вы хотите получать данные от определенного узла, то они должны иметь разные адреса, используйте ACK_PAYLOAD и опрашиваете каждый по очереди., @MichaelT
Можем ли мы сделать это только для нескольких подчиненных устройств для одного приемника данных? Я хочу получить данные 13 IMU (gy9250) на одном приемнике nrf24lo1, возможно ли это?, @Wajhee uddin