Может ли Arduino работать как сервер GATT (Bluetooth LE)

Я знаю, что довольно стандартно настроить систему Arduino в качестве клиента BLE и использовать что-то вроде приложения, работающего на смартфоне, в качестве сервера GATT, который получает данные и что-то с ними делает.

В моем сценарии у меня есть датчик BLE, который не подключен напрямую к системе Arduino, и я хочу, чтобы Arduino могла реагировать на выходной сигнал датчика (носимый акселерометр) и, например, инициировать различные последовательности освещения в зависимости от на получаемых данных.

Я бы предпочел не вводить в уравнение третий компонент (например, мобильное устройство в качестве сервера GATT). Я бы хотел, чтобы Arduino прослушивал сервисы и характеристики удаленного устройства, анализировал входящие данные, а затем принимал решения о том, какие светодиоды загораться на основе этого анализа.

Может ли Arduino работать как сервер GATT?

, 👍5

Обсуждение

У вас это точно наоборот. GATT *сервер* является периферийным устройством. *Клиент* обычно представляет собой мобильное устройство. Тем не менее, я изучаю именно эту вещь прямо сейчас. Модуль Nordic [Arduino 101](https://www.arduino.cc/en/Main/ArduinoBoard101) может работать в центральном режиме, но я не могу найти никакой информации о загрузке S120 Soft Device. Я читал, что в библиотеке Arduino нет API для этого. Теоретически возможно, но я пока не понял, как это сделать., @RubberDuck

Это должен быть Arduino или он может быть совместим с Arduino IDE? - например, что-то вроде модуля Adafruit Feather Bluefruit LE?, @Simon Peverett

Конечно, я думаю @Simon, @Tom Auger

@Tom Auger Существует модуль Adafruit Feather 32u4 Bluefruite LE, вы можете взаимодействовать с частью BLE с помощью AT-команд, это довольно просто и может действовать только как серверное / периферийное устройство. Он не поддерживает уведомления или индикацию, но вы можете определить пользовательскую службу с ее собственными характеристиками., @Simon Peverett

@ Tom Auger Модули ESP32 также поддерживают BLE, но я не играл с этим аспектом модуля. Глядя на примеры, доступные для ESP32, это может быть как клиент GATT, так и сервер GATT., @Simon Peverett

@SimonPeverett Я большой поклонник ESP32, но в последнее время я не играл с ним. Это может быть хорошей идеей. Проект представляет собой велосипедный сигнал, управляемый жестами. Я не хочу использовать телефон в качестве посредника., @Tom Auger


2 ответа


Лучший ответ:

0

Модуль ESP32 (совместимый с Arduino IDE) может действовать как клиент GATT и как сервер, и для каждого из них есть примеры модулей, а также проекты github.

,

Я проверю это в ближайшее время. Чтобы сделать свой ответ более полным, вы можете опубликовать пример кода или, как минимум, несколько ссылок, чтобы другие могли задать этот вопрос Google., @Tom Auger


-1

У меня здесь есть ссылка, которая может быть полезна — ссылка внизу. Это руководство, в котором показано, как управлять Arduino с помощью специального приложения на Android. Он использует создателя приложений MIT, приложение, которое позволяет вам создавать приложения. Я думаю, вы программируете его с помощью IDE на какой-то Java. Вы можете добавить кнопку в свое приложение, чтобы оно отправляло сообщение на ваш Arduino, а затем запрограммировало Arduino на выполнение каких-либо действий при получении этого сообщения. Для Arduino вы можете купить модуль Bluetooth HC-05. Это и передатчик, и приемник. Это довольно дешево и очень популярно, поэтому существует множество библиотек. Я думаю, что это хороший модуль, который вы должны приобрести, и я рекомендую приобретать их парами, чтобы вы могли соединить их вместе с двумя Arduino.

https://www.youtube.com/watch?v=E-1w7dL3Cps

,

**Не применимо к заданному вопросу**. HC-05 — это классическое Bluetooth-устройство. Этот вопрос касается BLE, также известного как BTLE, который представляет собой совершенно другой стандарт, возможно, имеющий немного больше общего, чем слово «Bluetooth»., @Chris Stratton