Использование чипов BLE для подключения устройств между ними и к смартфону

Мой вопрос связан не с программным обеспечением, а с технологиями. Я думаю, что BLE является решением для моей системы, но я не уверен, как она работает, как работает сопряжение.

Я проектирую систему с 4 устройствами, каждое с несколькими датчиками. Устройства А1 и А2 имеют одинаковые датчики, они независимы друг от друга и считывают разные данные. Если один из них читает критическое значение, он издает шум.

Устройства B1 и B2 имеют одинаковые датчики, они расположены близко и зависят друг от друга. Я имею в виду, мне нужно знать, выше ли значение B1, чем B2 или наоборот. Устройство с более высоким значением издает шум.

----         ------------           ----
|A1| ------> |smartphone |  <-----  |B1| <--|
----          ------------          ----    |
                ^     ^                     |
----            |     |             ----    |
|A2|  ----------|     |-----------  |B2| <--|
----                                ----

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

Как я могу сделать связь между датчиками и смартфоном? Мне нужно заставить общаться В1 и В2, чтобы знать, кто имеет более высокое значение. Затем мне нужно заставить их всех общаться на смартфоне для сбора данных.

Достаточно ли одного чипа Bluetooth Low Energy для каждого устройства? Можно ли использовать один и тот же чип для связи между устройствами и со смартфоном (в разные моменты)?

Я не уверен в процессе сопряжения... нужно ли мне каждый раз связывать и отключать устройства от смартфона? Или лучше иметь B1 в качестве мастера с двумя чипами BLE, один для смартфона и один для связи для B2?

1 ответ

BLE требует, чтобы одно устройство было сервером, а другое клиентом, чтобы установить соединение. Нельзя, чтобы сервер общался с сервером или клиент общался с клиентом. Однако устройства могут реализовывать как серверные, так и клиентские протоколы.

Если B1 и B2 идентичны, и они реализуют только интерфейсы сервера или клиента, то они не могут общаться друг с другом. Если у вас есть контроль над проектами B1 и B2, вы можете спроектировать их так, чтобы они реализовывали серверные и клиентские протоколы, а затем автоматически общались друг с другом, чтобы обновить каждого, кто имеет более высокое значение. Однако мне интересно, зачем вам вообще нужно, чтобы они разговаривали друг с другом - почему смартфон не может получить значения B1 и B2, а затем решить, что оставить? Затем он также может отправить команду на B1 или B2, чтобы сделать шум.

Одна микросхема BLE может управлять многими соединениями, поскольку соединения BLE являются очень временными (и, если внутреннее программное обеспечение поддерживает это, он может обрабатывать несколько одновременных соединений).

Если решение, в отношении которого у меня будут B1 и B2, просто включает их данные измерений в их рекламный пакет, а затем оба слушают другие рекламные пакеты. В этом случае нет необходимости устанавливать какое-либо согласованное соединение вообще - каждое устройство просто непрерывно выполняет сканирование BLE "соседних устройств". Затем, когда появится смартфон, каждый из них может самостоятельно установить согласованное соединение с телефоном и загрузить свои данные.

Другие вопросы по тегам