我是靠谱客的博主 甜蜜大侠,最近开发中收集的这篇文章主要介绍串口读取gps信息php,Linux串口读取GPS数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

‍一、相关概念

1.GPS(Global Positioning System):全球卫星定位系统

美国的24颗卫星不停地给地面发GPS信号,只要有一台GPS接收设备,就能定位出你所在的位置高度和速度了,它与电子地图的结合就是通常所说的GPS功能

二、连接方式

1.串口:计算机通常通过串口读取gps数据(蓝牙的gps也使用虚拟串口)

2.步骤:

1)普通串口设备

打开串口->设置串口->读取数据->恢复串口->关闭串口

2)蓝牙设备

开启蓝牙->与gps设备连接->打开串口->读取数据->关闭串口->与gps设备断开->关闭蓝牙

3)注意

连接gps蓝牙设备如需要连接密码,设置为0000(蓝牙默认密码)

用蓝牙gps设备一般不用对串口进行设置

三、gps数据格式

1.从串口中读出的是文本数据,每次读出一行,一般情况下,一秒种能收到多行数据

2.有效数据以$GP开头,分为$GPGGA、$GPGSA、$GPGSV、$GPRMC…

3. $GPGGA 是GPS定位的主要数据,通过解析它得到经度、纬度、海拔高度、时间、卫星使用情况等基本信息,其中每项用逗号分隔,共十四个逗号,举例如下:

$GPGGA,064746.000,4925.4895,N,00103.9255,E,1,05,2.1,-68.0,M,47.1,M,,0000*4F

$GPGGA(语句标识头),064746.000(UTC时间),4925.4895(纬度),N(纬度半球),00103.9255(经度),E(经度半球),1(定位质量指示),05(使用卫星数量),2.1(水平精确度),-68.0(海拔高度),M(高度单位),47.1(大地水准面高度),M(高度单位),(差分 GPS数据期限),0000(差分参考基站标号)*4F(校验)(结束标记回车换行)

四、例程

1.功能描述

假设蓝牙模块与gps已连接成功,蓝牙的虚拟串口设备是ttyB2

实现从蓝牙设备连接读取100条数据,解析后(经度/纬度/海拔/卫星个数)显示出来

2.代码

#include

#include

#include

#include

#include

#include

void parseData(char *buf)

{

int ret, nQ, nN, nB, nC;

char cX, cY, cM1, cM2;

float fTime, fX, fY, fP, fH, fB, fD;

if (buf == NULL)

return;

ret = sscanf(buf,

"$GPGGA,%f,%f,%c,%f,%c,%d,%02d,%f,%f,%c,%f,%c,%f,%04d%02x",

&fTime, &fX, &cX, &fY, &cY, &nQ, &nN, &fP, &fH, &cM1, &fB,

&cM2, &fD, &nB, &nC);

printf("x: %c %f, y: %c %f, h %f, satellite: %dn",

cX, fX, cY, fY, fH, nN);

}

int main(int argc, char **argv)

{

int fd, i, ret;

char buf[1024] =

"$GPGGA,064746.000,4925.4895,N,00103.99255,E,1,05,2.1,-68.0,M,47.1,M,,0000*4Frn"; // 此处赋值用于测试

if ((fd = open("/dev/ttyB2", O_RDWR)) == -1)

return -1;

// set fd: tcsetattr... 直接连接串口的设备需要在此设置波特率

for (i = 0; i < 100; i++)

{

ret = read(fd, buf, 1024);

if (ret > 1)

{

if (strstr(buf, "GPGGA") != NULL)

parseData(buf);

}

}

// restore fd: tcsetattr... 直接连接串口的设备需要在此恢复波特率

close(fd);

}0b1331709591d260c1c78e86d0c51c18.png

最后

以上就是甜蜜大侠为你收集整理的串口读取gps信息php,Linux串口读取GPS数据的全部内容,希望文章能够帮你解决串口读取gps信息php,Linux串口读取GPS数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部