树莓派与gps使用

树莓派 使用的gps模块有2种,一种是 串口的,一种是usb口的

usb口的gps为



串口的gps为



串口的gps 有一个接线的问题,

关注的针脚是 TX,RX




对应的接上就行,使用的 gps 读取的软件为 cgps

安装 sudo apt-get install gpsd gpsd-clients python-gps

lsusb 确认是否识别
ls /dev/ttyUSB*  查找设备号


设置句柄映射
开机启动:gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
arch启动:/usr/sbin/gpsd -N -n /dev/ttyUSB0 -F /var/run/gpsd.sock
gpsd参数说明:
  -b                        = bluetooth-safe: open data sources read-only
  -n                        = don't wait for client connects to poll GPS
  -N                        = don't go into background
  -F sockfile               = specify control socket location


使用 cgps -s
+-------------------------------------------++---------------------------------+
|    Time:       n/a                        ||PRN:   Elev:  Azim:  SNR:  Used: |
|    Latitude:   n/a                        ||                                 |
|    Longitude:  n/a                        ||                                 |
|    Altitude:   n/a                        ||                                 |
|    Speed:      n/a                        ||                                 |
|    Heading:    n/a                        ||                                 |
|    Climb:      n/a                        ||                                 |
|    Status:     NO FIX (2 secs)            ||                                 |
|    Longitude Err:   n/a                   ||                                 |
|    Latitude Err:    n/a                   ||                                 |
|    Altitude Err:    n/a                   ||                                 |
|    Course Err:      n/a                   ||                                 |
|    Speed Err:       n/a                   ||                                 |
|    Time offset:     n/a                   ||                                 |
|    Grid Square:     n/a                   ||                                 |


只要不提示gps连接超时,就证明 gpsd.sock  连接成功

左边是当前的坐标,左边是卫星的信号问题


如果能够读到卫星,但是当前坐标没有展示,这个是gps模块没有连接到卫星,所以无法提供位置信息。
注意:
PRN 我理解是微信的唯一id
SNR 是卫星的信号
Used  如果都是N就是连接卫星没有成功


telnet 127.0.0.1 2947 会有信息返回,说明设备连接成功
cgps -s 通过命令行查看




python读取代码这个是在cgps能够正常读取信息的时候使用,这里面有很多异常的情况没有处理。只能做参考

from gps import *
import time
session = gps(mode=WATCH_ENABLE)
try:
        while True:
                report = session.next()
                #print report
                if report['class'] == 'VERSION':
                        print 'connect GPS suc.'
                if report['class'] == 'DEVICES':
                        print 'searching satellite ing....'
                if report['class'] == 'WATCH':
                        print 'search satellite suc.'
                if report['class'] == 'TPV':
                        print 'time     ' , report.time
                        print 'latitude    ' , report.lat
                        print 'longitude   ' , report.lon
                if report['class'] == 'SKY':
                        print 'satellites NO.   ',len(report.satellites)
                time.sleep(3)
except StopIteration:
    print "GPSD has terminated"

实际上这里无论是USB还是串口,最终都转成了文件句柄的方式。


  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值