2016-05-28 2 views
0

Я использую следующий код для Arduino Uno:Как отправить серийные данные через Bluetooth на неуказанное устройство?

#include <SoftwareSerial.h> 

SoftwareSerial device(2, 3); 

void setup() 
{ 
    device.begin(9600); 
} 

void loop() 
{ 
    device.println("33,89,156,203,978,0,0;"); 
} 

Нет конкретного устройства для отправки устанавливается.

Если я хочу, чтобы получить данные на моем ноутбуке (под управлением Ubuntu 14.04) Я просто называю:

sudo rfcomm bind rfcomm0 [MAC ADDRESS] 1 

и

screen /dev/rfcomm0 

в другом терминале, например, и она работает.

Как я могу достичь такого же поведения с Android-приложением? example code указывает устройство. Я не могу найти какой-либо другой код. Кроме того, она работает только тогда, когда я слушаю на ноутбуке для входящего соединения, как это:

sudo rfcomm listen rfcomm0 [MAC ADDRESS] 

Я хочу, чтобы мой Android приложения, чтобы работать так же, как, например Arduino. Как я могу это достичь?

ответ

1

К сожалению, у Android не существует классических Bluetooth-интерфейсов низкого уровня, которые позволят вам выполнять поведение типа вещания. Это имеет смысл, так как Android предназначен для использования в устройствах с ограничением мощности, а активные радиостанции используют энергию. Если вам необходимо использовать Classic Bluetooth (3.x) и Android для обработки отправки или получения типа вещательного типа, вам, вероятно, потребуется написать пользовательский ПЗУ.

Однако есть спецификация, называемая Bluetooth Low Energy (4.x), что позволяет снизить потребление энергии, но медленнее/меньше пропускной способности данных. В частности, режим рекламы. Устройства Android, которые сканируют, могут забрать короткий рекламный пакет данных, транслируемый устройством, называемым «маяком». Протоколы, в которых используется этот режим, - iBeacon от Apple и Eddystone от Google.

Посмотрите здесь образец приложения с участием Объявления:

Также отметим, что Android устройства не всегда поддерживают BLE Периферийное режим, который, что вам нужно для вашего Android-устройство будет действовать как маяк.

Связанная ссылка: Can an Android device act as an iBeacon?

И хороший список, какие устройства были протестированы: http://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html

Так что в вашем случае, если вы все равно должны быть в состоянии использовать свой Sony Xperia Z3 в качестве сканера, но придется покупать/строить маяк для тестирования.