首页 > 其他分享 >超绝!基站/Wi-Fi/GPS定位技术详解与应用示例

超绝!基站/Wi-Fi/GPS定位技术详解与应用示例

时间:2024-12-19 13:20:11浏览次数:9  
标签:定位 示例 Wi 超绝 基站 Fi GPS

今天特别分享定位相关示例,欢迎大家一起来探讨。

一、基站/Wi-Fi/GPS定位概述

1.1 基站定位原理

基站定位也就是“LBS定位”,全称是Location Based Service,它包括两层含义:

首先是确定移动设备或用户所在的地理位置;其次是提供与位置相关的各类信息服务。意指与定位相关的各类服务系统,简称“定位服务”。

多基站定位中,模组正常联网后,搜索并上报周围的基站信息,上报到服务器后,服务器根据三角定位法,估算出一个大概的坐标,最后返回计算出来的经纬度给模组。

单基站定位中,模组正常联网后,搜索并上报周围的基站信息,服务器会存储多数已知基站的经纬度,根据模组上报的基站信息,直接下发对应位置的经纬度数据。

多基站一般精度在10-300米内,单基站误差有可能会在1.5KM内。

1.2 Wi-Fi定位原理

Wi-Fi定位的原理和基站定位原理类似,搜索并上报附近的 Wi-Fi信息,上报到服务器后,服务器根据三角定位法,估算出一个大概的坐标,精度在50~500米不等。

1.3 GPS定位原理

GPS不限制终端数,在GPS卫星信号不被阻挡的情况下,在地球上任何地点、任何时间,任何GPS终端都可以得到正确的位置和时间。定位只需要一个条件,那就是能够接收到足够多的卫星信号。因此,在室内通常无法定位。

Air201板载GNSS芯片特性:

捕获:18mw

追踪:10mw

单点定位精度<1.5m

灵敏度:-149dbm

支持双频,北斗,RTK(选配)

二、基站/Wi-Fi/GPS定位示例

本文将通过基站/Wi-Fi/GPS定位具体应用示例教程,教你使用Air201来实现定位服务,在实际开发中可根据具体情况灵活应用。

▼ 定位示例主要内容 ▼
免费版本基站定位:

烧录示例demo,通过lbsLoc2.request接口发起请求,进行单基站定位。

收费版本Wi-Fi+基站混合定位:

烧录示例demo,通过airlbs.request接口发起请求,上报基站和Wi-Fi,进行混合定位。

注:实际应用中,需先联系销售开通付费服务,然后在合宙IoT平台LBS服务中查看自己的id和key。

GPS定位:

烧录示例demo,实现GPS定位。

接下来,我们详细讲解应用示例的具体操作。

2.1 搭建环境

新同学建议先看前期的基础知识相关教程,更有助于理解和操作。

可以在LuaTools项目管理中新建一个项目,重新选择底层CORE和脚本;或者在原有项目的基础上,不更换CORE,将原来的脚本删除,添加为所需的定位功能脚本。

2.1.1 硬件准备:

Air201 PCBA

配套USB_BOOT小板

可正常上网的SIM卡

带有数据通信功能的数据线

Win10及以上PC

2.1.2 软件准备:

LuaTools调试工具:

https://docs.openluat.com/Luatools

最新固件:https://gitee.com/openLuat/LuatOS-Air201/tree/master/core

最新脚本:

GPS定位:

https://gitee.com/openLuat/LuatOS-Air201/blob/master/demo/gps_lbs_wifi/gnss.lua

免费版本基站定位:

https://gitee.com/openLuat/LuatOS-Air201/blob/master/demo/lbsLoc2/main.lua

付费版本基站定位:

https://gitee.com/openLuat/LuatOS-Air201/blob/master/demo/airlbs/main.lua

2.1.3 烧录操作:

由于Air201单板子没有复位键和BOOT键,所以数据线与Air201开发板之间还需要接一个USB_BOOT小板(Air201套件里已包含,无需单独购买)。

将Air201通过USB_BOOT小板连接电脑,如下图所示:

1)根据下方操作进行烧录
此时就需要大家先点击Luatools工具上的【下载脚本】或【 下载底层和脚本】,再执行下方操作了。

新同学请先学习LuaTools使用和烧录教程:

https://docs.openluat.com/Luatools/

开发板处于未开机状态:

此时先按住下载模式按键(BOOT键)不放,再长按开机键(POW键)开机。若不出意外开发板将会进入下载模式,LuaTools工具下载进度条会开始跑,这时便可以松开BOOT键和POW键,等到工具提示下载完成即可。

开发板已经处于开机状态:

此时可以先按住BOOT键不放,再短按复位键(RST键)后开发板会重启并进入下载模式。

2)不同模式下的端口显示
正常开机模式:

下载模式:

2.2 示例代码

了解Air201的GPS定位、免费版本基站定位、付费版本基站定位示例代码之前,请注意:

免费版本基站定位为:单基站定位;

付费版本基站定位分为两种:

多基站定位、Wi-Fi+基站混合定位。

相对于免费的单基站定位服务来说,付费版本的基站定位方式精度更高。

▼ GPS定位示例 ▼
代码介绍:

1)打开GPS的供电和复位引脚。

02)开机后初始化一些GPS和打印数据的端口,清空一下历史定位数据,设置端口参数,更新星历,绑定端口。

03)订阅GNSS状态,GNSS有两种状态:FIXED-定位成功和LOSE-定位丢失。

04)写入星历,即AGPS辅助定位。

运行结果展示:

定位成功后,获取位置字符串。

▼ 免费版本基站定位示例 ▼
免费版本仅支持单基站定位,若需要更精准的定位服务,请查看付费版本多基站定位或GPS定位。

代码介绍:

运行结果展示:

返回的经纬度信息如下图红框所示:

▼ 付费版本多基站定位示例 ▼
代码介绍:

运行结果展示:

返回的经纬度信息如下图所示:

▼ 付费版本Wi-Fi + 基站混合定位示例 ▼
受限于模组设计,在使用Wi-Fi扫描时候,4G数据传输较慢丢包概率较大,所以尽量在Wi-Fi扫描完毕后,再进行数传工作。

代码介绍:

01)初始化:
等待联网,初始化wlan,扫码Wi-Fi频段。

02)Wi-Fi + 基站混合定位:
Wi-Fi扫描成功后,通过airlbs.request发送定位请求,进行混合定位。

运行结果展示:

本示例采用Wi-Fi + 多LBS混合定位,使用airlbs.request接口,上报基站和Wi-Fi信息,进行混合定位。

开通付费服务后,会显示附近多个基站定位信息,基站定位成功后返回获取到的经纬度信息。

如下图所示:

三、基站/Wi-Fi/GPS定位常见问题

3.1 基站定位精度如何?

搜索到的小区越多,定位的精度越高;一般来说,城市中心定位精度比郊区和农村定位精度高,城市中心的定位精度在几十米到几百米不等,郊区和农村的定位精度更低,可能会有几千米甚至更多的误差。

通过多小区定位,将实时搜索到的所有小区同时上报给后台参与定位,基站定位的误差都比较大。如果需要准确定位,请使用GPS定位。

3.2 官方的基站定位能在国外使用吗?

不能,没有国外的基站数据库。

3.3 为什么基站定位失败?

1)后台基站数据库查询不到所有小区的位置信息;

在LuaTools脚本日志中向上搜索mcc,mnc,lac,ci:

然后在电脑浏览器中打开:定位查询网站bs.openluat.com,手动查找mcc,mnc,lac,ci后的所有小区位置。

如果手动可以查到位置,则服务器存在BUG,直接向技术支持人员反映问题;如果手动无法查到位置,则基站数据库还没有收录当前设备的小区位置信息,向技术支持人员反馈,我们会尽快收录。

2)达到了总的QPS限制数量。

3.4 基站/Wi-Fi定位定位获取的经纬度是什么格式的?

基站定位获取的经纬度为WGS-84格式,各种坐标系说明以及转换方法请网上搜索坐标系在线转换工具即可查询。

3.5 GPS定位经纬度不准确是什么原因?

坐标没有纠偏,GPS定位输出的坐标为WGS84坐标系,请网上搜索坐标系在线转换工具进行纠偏;

周围有比较高的障碍物,会导致定位误差;

在开阔地带,正常情况下定位精度只能做到5米;

不能在室内测试,必须到室外测试;如果只能在室内测试,可以淘宝搜索"GPS信号转发器"。

今天的内容就分享就到这里了~

更多实用示例带你开启应用之门,下一期见!

标签:定位,示例,Wi,超绝,基站,Fi,GPS
From: https://www.cnblogs.com/luatos/p/18615378

相关文章

  • 在 Windows Server 环境中(DMSA)  Dynamic Memory Support Architecture(动态内存支持架
    在WindowsServer环境中 DynamicMemorySupportArchitecture(动态内存支持架构),特别是在Hyper-V虚拟化环境中。动态内存支持架构(DMSA)在Hyper-V中的作用在Hyper-V虚拟化平台中,动态内存(DynamicMemory)是一个重要的功能,它能够根据虚拟机的实时负载动态调整内存的分配,以......
  • win10下安装配置mysql5.7Windows下使用解压版配置安装MySQL
    1.下载MySQL访问MySQL官方网站下载页面:https://dev.mysql.com/downloads/mysql/选择MySQLCommunityServer(免费版),选择适合Windows的版本(例如,Windows(x86,32-bit),MSIInstaller)。下载安装程序并运行。2.使用msi直接安装MySQL运行下载的安装程序。接受许可协议。在安装类型选......
  • 【重要】collections库函数简介及简单用法示例
    【重要】collections库函数简介及简单用法示例collections提供了一些有用的集合类,如deque、Counter等,方便进行数据处理。根据以下列表,用表格形式,从序号、函数名、简介、简单用法示例几方面显示每个函数的信息。太长的用法示例以序号+函数名+“示例:”为题,分别移到表格下方,不要破......
  • 【重要】functools库函数简介及简单用法示例
    【重要】functools库函数简介及简单用法示例functools提供了一些用于函数操作的函数,如partial、lru_cache等,方便进行函数式编程。表格部分:序号函数名简介1partial创建一个新的可调用对象,固定原函数的部分参数2lru_cache缓存函数调用的结果,基于LRU(最近最少使用......
  • 【重要】itertools库函数简介及简单用法示例
    itertools 提供了一些用于操作迭代器的函数,如chain、islice等,方便进行迭代操作。以下是根据您提供的列表,以表格形式显示的itertools库函数的简介及简单用法示例:序号函数名简介简单用法示例1accumulate对输入迭代器中的元素进行累积操作,返回累积结果2chain将......
  • 浅谈Java注解之Autowired
    一、Autowired的介绍@Autowired是Spring框架中的一个注解(Annotation),用于实现依赖注入(DependencyInjection,DI)。它告诉Spring容器在创建bean的时候,自动注入相关的依赖。二、Autowired的特点1、自动注入:@Autowired允许Spring容器在运行时自动将bean的依赖项注入到bean中。......
  • windows C#-为枚举创建新方法
    可使用扩展方法添加特定于某个特定枚举类型的功能。示例在下面的示例中,Grades枚举表示学生可能在班里收到的字母等级分。该示例将一个名为Passing的扩展方法添加到Grades类型中,以便该类型的每个实例现在都“知道”它是否表示合格的等级分。usingSystem;namespaceE......
  • How to synchronize Elasticsearch with MySQL
    HowtosynchronizeElasticsearchwithMySQLUsingLogstashtocreateadatapipelinkingElasticsearchtoMySQLinordertobuildanindexfromscratchandtoreplicateanychangesoccurringonthedatabaserecordsintoElasticsearchhttps://towardsdatasc......
  • 基于.NET WinForm开发的一款硬件及协议通讯工具
    前言今天大姚给大家分享一款基于.NETWinForm开发的一款硬件及协议通讯工具:PLC-CommunTools。项目介绍PLC-CommunTools是一款基于.NETWinForm开发的一款硬件及协议通讯工具,包含各类厂商的PLC协议及基础的TCP、串口通讯、IO口通讯等协议通讯功能的实现整合,注意还有一部分功能作......
  • 【Windows安全】13种回调函数执行ShellCode
    #windows#回调函数回调机制在我们使用回调函数执行Shellcode之前,我们首先需要去了解Windows回调机制,Windows回调机制就像你和你的助手一样,比如说每一个律师所中的每一个律师都有一个实习助手,律师需要助手在特定的情况下去处理一些特殊的任务,但这些任务并不是日常工作的一部分。......