В настоящее время я могу подключиться к одному устройству HC-06 и обрабатывать его данные, такие как координаты и угол. Теперь я хочу подключиться к двум модулям HC-06 одновременно, каждому из отдельного Arduino Nano, и обрабатывать данные от каждого независимо.
Например:
- Устройство 1 → отправляет Широту и долготу
- Устройство 2 → отправляет Угол
Код: Выделить всё
private void connectToHC06() {
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
Toast.makeText(this, "Bluetooth not supported", Toast.LENGTH_LONG).show();
finish();
return;
}
if (!bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
return;
}
Set bonded = bluetoothAdapter.getBondedDevices();
BluetoothDevice connectedDevice = null;
for (BluetoothDevice d : bonded) {
if ("HC-06_BT".equals(d.getName())) {
connectedDevice = d;
break;
}
}
if (connectedDevice == null) {
Toast.makeText(this, "HC-06 not found", Toast.LENGTH_SHORT).show();
return;
}
try {
bluetoothSocket = connectedDevice.createRfcommSocketToServiceRecord(HC06_UUID);
bluetoothSocket.connect();
inputStream = bluetoothSocket.getInputStream();
Toast.makeText(this, "Connected to HC-06", Toast.LENGTH_SHORT).show();
startListening();
} catch (IOException e) {
Log.e(TAG, "Connection error", e);
Toast.makeText(this, "Connection error", Toast.LENGTH_SHORT).show();
}
}
Код: Выделить всё
private void startListening() {
if (inputStream == null) return;
new Thread(() -> {
byte[] buffer = new byte[1024];
int bytes;
StringBuilder messageBuffer = new StringBuilder();
while (!Thread.currentThread().isInterrupted()) {
try {
bytes = inputStream.read(buffer);
if (bytes
Подробнее здесь: [url]https://stackoverflow.com/questions/79849673/how-to-connect-2-devices-to-the-same-android-device[/url]
Мобильная версия