22年接触了一些云服务搭建的技术,了解到很多微服务的搭建是可以通过docker方式的,于是诞生了自己搭建一个GPS定位系统的想法。

GPS定位是相对成熟的技术了,地面接收设备将采集到位置信息周期性上传到云服务器上,用户登录云服务器,通过前台页面查看设备的位置、速度、轨迹等,也可以设置地理围栏、速度上线,当设备满足特定条件时,发送消息到用户终端(手机、PC等),产生告警信息。应用场景包括车辆定位、宠物跟踪等。

上图中有3个关键部分:

1. GPS定位器

车辆上用的大概长上图的样子,里面包含基本的原件是GPS接收芯片,近几年的芯片大多已经支持北斗;另外一个就是modem芯片,用于接入运营商网络,传输数据到云平台,早期的都是走GPRS 2G网络,最近的都是通过LTE网络收发数据,本身GPS数据量很小,对带宽要求不高,GPRS够用了,走4G网络优点是覆盖更好,但缺点是功耗变高,车载接收器一般都是用车辆电瓶供电,功耗问题也不大。根据定位需求不同,定位器内部可能也会带一个小容量的锂电池,车辆断电后还能提供几分钟到半小时不等的供电能力。当然,市面上也有长续航(一年)的定位器,不需要额外供电,优点就是可以安装到车辆任意位置,甚至油箱中。这种定位器追求长续航的同时,体积也不会太大,所以是通过缩短GPS芯片工作周期及减少发包频率来达到省电的目的,例如一天发一次数据包,购买的时候可以按个人需求选购。近几年,各种定位平台大量涌现,加上物联网卡资费降低,GPS定位器价格已经非常低了,从某鱼上就可以用十几块钱买到,加上平台费用及SIM卡,一年的费用也就30元。

2. 定位平台

定位平台起的作用是将GPS接收器采集到的数据保存起来,让用户可以在终端设备上浏览、回放。因为GPS数据就是经纬度信息,平台最关键的技术就是把经纬度和时间信息加工成速度、方向等信息,再叠加到地图上,以直观的方式展现出来。

当然各种平台为了招揽客户,提供了很多增值功能,例如轨迹回放、速度报警、电子围栏、里程统计等功能。其核心包括Redis缓存、SQL数据库、三方地图接入等。

平台为了运营的方便,还会设立用户角色,包括设备销售商户、运营商户、管理员、普通用户等,让一些GPS设备的销售商实际负责平台中用户、设备的运营,平台从中赚取平台服务费用,流量的差价,支撑平台设备的日常维护费用。

近期有个安徽的商户把一个相对简单的定位平台以docker的形式发布出来,获得了很多业余爱好者的专注,笔者就是其中之一,尽管平台对用户数量、设备数量都有限制,无法满足商用的要求,带对于关注技术的笔者而言,真是不小的收获。

考虑到国内对个人隐私信息的保护不太重视,位置信息本身就属于个人隐私数据,如果平台的安全性出问题,把平台用户身份信息和位置数据同时泄露出去,后果不堪设想。平台的安全性除了技术层面的安全,还包括参与平台管理的人员素质,所以安全性的考虑是笔者搭建自己的定位平台初衷。

3. 客户端

这个是比较好理解的,用户需要有个终端设备,例如手机、PC等;运维人员也需要在PC上管理用户及设备,客户端就是满足上述用户诉求的,可以是一个Android APP,浏览器的H5页面,甚至微信的小程序等。

GPS平台的几个组成部分介绍说完了,笔者介绍下搭建过程

1. 下载docker镜像安装

可以参考官方的教程

GPSBD®使用手册

如果想长期运行,最好是在云主机上搭建,因为云主机IP地址是固定的,家庭宽带IP都是动态分配,无法满足诉求,笔者是在群晖上搭了个实验系统,把流程打通后,然后在云主机上重新部署了一遍。

2. gps定位终端的准备

gps终端可以在某鱼购买,注意,一定要购买没有锁平台的,并且向卖家咨询清楚如何改平台,笔者购买的是部标jt808协议的,也是市面上最便宜,存量最多的平台,拆开后,长这样。

设备通电,插上SIM卡后,根据指示灯闪烁情况,可以判定是否接入平台成功,也可以在平台的会话管理页面查看接收器是否连接成功。

接入平台之前,需要通过短信改平台,把设备的IP和端口改成自己的,笔者手头的两个设备短信格式如下,发送后如果收到回复,说明改成功

<SPBSJ*P:BSJGPS*T:AAA.AAA.AAA.AAA,BBB*A:CMNET*N:XXXXXXXXXX>

其中AAA是上述搭建平台的IP,只能IP,不支持域名,BBB是端口,对于808协议,端口是9015,XXXX是设备ID,一般贴在设备上,可以通过短信修改。

需要注意,808协议规定,设备ID是12位,但购买的gps设备ID不一定是12位,可以通过短信修改设备ID,改成12位即可,笔者卡在这好几天,平台可以收到设备发送的数据,但就是前端不显示轨迹。

注意,流量卡也需要购买,有的卖家会同时提供流量卡,搞清楚如何续费就行了。当然某宝也有流量卡卖的,不贵,一年也就十块钱,当然也得筛选下卖家,防止购买后卖家跑路的可能性。

最后,需要在平台上创建一个用户,登录上去,添加设备,输入上述设备ID和协议,这样就完成了用户和设备的绑定,后续只要登录用户账户,就能看到此设备发送的位置信息。

3. 客户端访问

这个平台提供的客户端只有网页方式,没有APP,没有微信小程序,打开网页长这样

登录地址是 http://xxxx(内网IP):8085

默认登录密码  admin 666666(安装过程会出现密码)

搭建个人的GPS定位系统相关推荐

  1. Docker一键搭建GPS定位系统,免费GPS定位系统,车辆定位,人员定位

    利用Docker可以零成本一键搭建一套免费的GPS定位系统,这套系统是由安徽东位推出来的,GPSBD卫星定位监控系统,支持协议类型超过90种,可以实现车辆定位,轨迹回放等. 看来真的不用再给设备缴纳平 ...

  2. GPS定位系统(二)——Android端

    前言 GPS系列--Android端,github项目地址 tag: gps_mine Android移动端,主要是使用高德地图定位,后台上传定位信息,然后就是想办法尽量保活. 包括两个小功能:1.上 ...

  3. GPS定位系统(一)——介绍

    前言 题外话:好久没有写博客了,简书也好久没有看了.最近一直在学习前端.后端的东西,想让自己的知识面更广一些,看到某篇文章讲的.为了自己而工作(为了学习而工作):学会自我营销(多端博客,敲门砖):能把 ...

  4. GPS定位系统(三)——Java后端

    前言 GPS系列--Java端,github项目地址 前面已经了解或者实现了Android端的gps上传定位信息,现在就差后台的接口支持了. 我们需要数据库来储存上传的定位信息,并且还要满足不同的人的 ...

  5. GPS定位系统(四)——Vue前端

    前言 GPS系列--Vue前端,github项目地址 前面已经学习了Android.Java端的代码实现,现在开始介绍网站前端vue的管理框架. 文中也会有大量代码,对于admin管理框架,我是模仿i ...

  6. GPS定位系统(五)——Docker

    前言 前面已经把Android.Java.web端都弄得差不多了,现在,需要打包并进行服务器部署了,这样,我们的网站也能够在公网上给大家进行访问.接下来,想要学习一下docker来进行服务器环境的搭建 ...

  7. iPhone地图 实战iPhone GPS定位系统

    原文摘自:成长的路上(Moonlight) 如今,配备GPS功能的移动设备越来越普遍了,使用GPS定位系统,可以精确地定位你当前所在的地理位置,但由于GPS接收机需要对准天空才能工作,因此在室内环境基 ...

  8. 什么样的GPS定位系统最适合做二次开发

    什么样的GPS定位系统最适合做二次开发呢? 术业有专攻,好比都是汽车,轿车和越野车功能用途不同,如果你跑高速肯定选择轿车跑的平稳舒适:如果你去泥泞沟沟坑坑的道路,跑山过河肯定选择越野车跑得更轻松,底盘 ...

  9. 学会选择最适合自己的GPS定位系统源码

    源码大家都知道就是可以用来做二次开发做任何改动的代码,一般购买源码都是考虑到后期会做二次开发有增加修改功能模块等需求,没有源码是无法实现的. GPS定位系统源码有很多种,这里说的很多种是指不同用途的G ...

最新文章

  1. 软件测试黑盒测试实验心得_软件测试的基础知识
  2. android控制wifi状态
  3. stand up meeting 1/14/2016
  4. Count Primes(leetcode204)
  5. 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的区别
  6. 从新手机到老股票 闲鱼为何会沦为骗子与营销的新平台?
  7. to_date , to_char
  8. 把VS Code打造成Java开发IDE,也挺爽!
  9. php 实现 java com.sun.org.apache.xml.internal.security.utils.Base64 Byte数组加密
  10. Dubbo to Mesh 云原生架构改造方案解析
  11. 深度学习Trick——用权重约束减轻深层网络过拟合|附(Keras)实现代码
  12. ecshop删除购物流程中的配送方式和支付方式
  13. 自动驾驶 9-4: 改进的 EKF - 错误状态扩展卡尔曼滤波器 An Improved EKF - The Error State Extended Kalman Filter
  14. android自动悬浮窗代码,三行代码实现Android应用内悬浮窗,无需一切权限,适配所有ROM和厂商...
  15. reactjs遍历数据的方式
  16. Java并发包:ExecutorService和ThreadPoolExecutor
  17. 人脸识别 无法打开相机 笔记本_笔记本上的人脸识别怎么用?需要安装驱动吗?...
  18. HTML+CSS系列学习:重生之我要精通编程语言修仙
  19. 监控软件的灰与黑:为了偷看手机我们付出了什么?
  20. Learning to Rank 的实践

热门文章

  1. php导出大数据scv
  2. android系统视频剪辑app推荐,知乎10w人收藏:玩短视频必装的9款剪辑App(最全)...
  3. for和of引导的不定式结构的区别
  4. 电脑系统时间同步问题处理
  5. caffe生成lmdb数据集的脚本
  6. 如何隐藏table 中的指定列?
  7. HDFS 的深入了解,深入浅出,面试必备(Hadoop的三部曲——上)
  8. 四阶行列式如何降阶_四阶行列式怎么化成三阶的行列式,说详细点
  9. 详解什么是软件企业认定
  10. 北航计算机学院编译,北航计算机学院编译习题讲解.pdf