//
Search

(230218)플러터로 아두이노와 ble 모듈 연결한 다음 통신하기

Flutter에서 Arduino와 BLE 통신을 하기 위해서는 flutter_blue 패키지를 사용할 수 있습니다. 이 패키지는 Flutter 애플리케이션에서 BLE 디바이스를 검색하고 연결하며, 데이터를 읽고 쓰는 것을 가능하게 합니다.
아래는 Flutter와 Arduino 간 BLE 통신을 설정하는 단계입니다.
1.
Arduino BLE 라이브러리 설치하기 Arduino에서 BLE 통신을 하기 위해서는 먼저 BLEPeripheral 라이브러리를 설치해야 합니다. 이 라이브러리는 Arduino와 BLE 디바이스간의 연결을 관리하는 데 사용됩니다.
2.
아두이노 코드 작성하기 아두이노에는 BLEPeripheral 라이브러리를 사용하여 BLE 서비스를 설정할 수 있습니다. BLE 서비스는 앱과 아두이노 간 데이터를 전송하는 데 사용됩니다. 예를 들어, 온도계를 만든다면, BLE 서비스는 온도 값 데이터를 전송하는 데 사용됩니다.
3.
Flutter 앱 코드 작성하기 flutter_blue 패키지를 사용하여 Flutter 앱에서 BLE 디바이스를 검색하고 연결할 수 있습니다. flutter_blue 패키지를 설치한 후, FlutterBlue 클래스를 사용하여 BLE 디바이스를 검색하고 연결합니다.
아래는 Flutter에서 BLE 디바이스를 검색하고 연결하는 코드 예시입니다.
dartCopy code import 'package:flutter_blue/flutter_blue.dart'; // BLE 디바이스 검색 FlutterBlue flutterBlue = FlutterBlue.instance; Stream<List<ScanResult>> scanResults; void startScan() { scanResults = flutterBlue.scan(); } void stopScan() { flutterBlue.stopScan(); } // BLE 디바이스 연결 BluetoothDevice device; Future<void> connectToDevice(String deviceId) async { device = await flutterBlue.connect(deviceId); } void disconnectFromDevice() { device.disconnect(); }
Plain Text
복사
4.
데이터 전송하기 Flutter 앱과 아두이노 간 데이터를 전송하려면, flutter_blue 패키지에서 제공하는 BluetoothCharacteristic 클래스를 사용합니다. 이 클래스는 BLE 서비스와 특성(characteristic)을 사용하여 데이터를 읽고 쓸 수 있습니다.
아래는 Flutter에서 BLE 서비스를 검색하고, 그 서비스의 특성 중 하나에 데이터를 쓰는 코드 예시입니다.
dartCopy code // BLE 서비스 검색 List<BluetoothService> services = await device.discoverServices(); // 서비스에서 특성 찾기 BluetoothService service = services.firstWhere((s) => s.uuid == serviceUuid); BluetoothCharacteristic characteristic = service.characteristics.firstWhere((c) => c.uuid == characteristicUuid); // 데이터 쓰기 await characteristic.write(dataBytes);
Plain Text
복사