BT GPS - 读取位置

BT GPS - 读取位置

在 Linux 中;如何通过蓝牙初始化与 GPS 的连接?...并从中读取数据?

/dev/ttyS0我发现这并不像打开串行端口那么简单。

答案1

初始阶段,仅查看位置数据的流动:

$ sudo -i
# 蓝牙控制开启
更改电源开启成功

# 蓝牙代理开启

# 蓝牙扫描
探索开始
[CHG] 控制器 24:EE:9A:E2:9C:F7 正在发现:是
[CHG] 设备 xx:xx:xx:xx:xx:xx RSSI:-42
断开连接
[CHG] 设备 xx:xx:xx:xx:xx:xx 已连接:否
[CHG] 设备 xx:xx:xx:xx:xx:xx RSSI:-73

当您看到 MAC(此处为 xx:xx:xx:xx:xx:xx)时,按CTRL+停止扫描C

 
# 蓝牙信任 xx:xx:xx:xx:xx:xx
更改 xx:xx:xx:xx:xx:xx 信任成功

#蓝牙控制
代理人登记
[CHG] 控制器 24:EE:9A:E2:9C:F7 可配对: 是
[蓝牙]# 信任 xx:xx:xx:xx:xx:xx
更改 xx:xx:xx:xx:xx:xx 信任成功

[蓝牙]# 对 xx:xx:xx:xx:xx:xx
尝试与 xx:xx:xx:xx:xx:xx 配对
[CHG] 设备 xx:xx:xx:xx:xx:xx 已连接:是
请求 PIN 码
[代理] 输入 PIN 码:0000
[CHG] 设备 xx:xx:xx:xx:xx:xx UUID:00001101-0000-1000-8000-00805f9b34fb
[CHG] 设备 xx:xx:xx:xx:xx:xx 服务已解决:是
[CHG] 设备 xx:xx:xx:xx:xx:xx 已配对:是
配对成功
[CHG] 设备 xx:xx:xx:xx:xx:xx 服务已解析:否
[CHG] 设备 xx:xx:xx:xx:xx:xx 已连接:否

[蓝牙]# 退出

# sudo rfcomm connect /dev/rfcomm0 xx:xx:xx:xx:xx:xx 1&
[1] 29050
将 /dev/rfcomm0 连接到通道 1 上的 xx:xx:xx:xx:xx:xx
按 CTRL-C 挂断

命中Enter得到提示(输出被rfcomm ... &遮盖住了)

# sudo miniterm /dev/rfcomm0 4800

启动 miniterm 后,首先会初始显示 miniterm 信息(CTRL+T 显示菜单,另外按 CTRL+H 显示帮助)

--- /dev/rfcomm0 4800,8,N,1 上的迷你终端 ---
--- 退出:Ctrl+] | 菜单:Ctrl+T | 帮助:Ctrl+T,然后按 Ctrl+H ---

假设前面的步骤已经正确/成功完成,紧接着是文本数据流。

$GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76
$GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
$GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70
$GPGSV,3,2,11,02,39,223,19,13,28,070,17,26,23,252,,04,14,186,14*79
$GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
$GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43
$GPGGA,092751.000,5321.6802,N,00630.3371,W,1,8,1.03,61.7,M,55.3,M,,*75
$GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
$GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70
$GPGSV,3,2,11,02,39,223,16,13,28,070,17,26,23,252,,04,14,186,15*77
$GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
$GPRMC,092751.000,A,5321.6802,N,00630.3371,W,0.06,31.66,280511,,,A*45

示例数据来自https://en.wikipedia.org/wiki/NMEA_0183

笔记:
miniterm 在python3-serialapt 包中
,而 bluetoothctl 在 中bluez,您是否已经拥有后者了。


随机链接,以了解更多信息:
https://github.com/pybluez/pybluez https://geektechstuff.com/2020/06/01/python-and-bluetooth-part-1-scanning-for-devices-and-services-python/

相关内容