以下是一个简单的代码示例,演示如何在Arduino Nano 33 BLE GPS上使用GPS功能:
#include
#include
// 定义BLE服务
BLEService gpsService("1809");
// 定义BLE特征
BLECharacteristic latitudeCharacteristic("2A6E", BLENotify, 20);
BLECharacteristic longitudeCharacteristic("2A6F", BLENotify, 20);
// 创建GPS对象
TinyGPSPlus gps;
void setup() {
// 初始化串口和BLE
Serial.begin(9600);
if (!BLE.begin()) {
while (1);
}
// 启动BLE广播
BLE.setLocalName("Arduino Nano 33 BLE GPS");
BLE.setAdvertisedService(gpsService);
gpsService.addCharacteristic(latitudeCharacteristic);
gpsService.addCharacteristic(longitudeCharacteristic);
BLE.addService(gpsService);
BLE.advertise();
Serial.println("Waiting for a connection...");
}
void loop() {
// 检查GPS数据是否可用
while (Serial.available() > 0) {
if (gps.encode(Serial.read())) {
// 获取纬度和经度
float latitude = gps.location.lat();
float longitude = gps.location.lng();
// 发送纬度和经度数据到BLE设备
latitudeCharacteristic.writeValue(String(latitude).c_str());
longitudeCharacteristic.writeValue(String(longitude).c_str());
// 输出纬度和经度到串口
Serial.print("Latitude: ");
Serial.println(latitude, 6);
Serial.print("Longitude: ");
Serial.println(longitude, 6);
}
}
}
请注意,此示例假设BLE库和TinyGPS++库已正确安装和导入到Arduino IDE中。将此代码上传到Arduino Nano 33 BLE GPS板上后,它将等待BLE连接并将GPS数据发送到连接的设备。