Luat 功能开发教程(七) 基站 WIFI定位

基站/WIFI定位

简介

手机在插入sim卡开机以后,需要搜索周围的基站信息(就是找信号),通常在有信号的地方,手机能搜索到的基站不止一个,就像你的笔记本在小区里能搜到不止一个开着的路由器一样。然后手机会自动从这些基站中选择信号最好的(假如是基站A)连接注册。其余的基站就不用了吗?不不,手机仍然搜索着它们,一旦你离开基站A一段距离,基站A的信号不如基站B了,手机会自动切换成基站B。这也就是为什么同样是待机一天,你在火车上比在家里耗电要多的原因,手机需要不停的搜索、连接基站。
当手机的网络覆盖到一定程度的时候,基站定位也就应运而生了。

其原理如下:
众所周知,距离基站越远,信号越差,所以用信号的强度可以大致估计距离基站的远近。好了,由于基站都是中国移动中国联通等运营商建立的,所以他们可以确定每个基站准确的位置,当手机同时搜索到至少三个基站的信号时(现在的网络覆盖这是很轻松的一件事情),手机除了连接信号最好的一个外,同时根据基站信号的强弱,大致估计出距离基站的远近。由于基站位置是确定的,所以确定位置是很容易的,只需要以基站为圆心,距离为半径多次画圆即可,需要三个基站的信号可以准确的定位。
相对于三个基站的信号来说,如果只搜索到一个基站或者两个基站,也可以定位,只不过,相对来说不准确

WIFI定位的原理和基站定位原理类似

API说明

luat的文件操作来自标准lua库直接按照标准语法使用即可

API接口描述
lbsLoc.request(cbFnc, reqAddr, timeout, productKey, host, port, reqTime, reqWifi)发送根据基站查询经纬度请求(仅支持中国区域的位置查询)
lbsLoc.request(getLocCb)获取基站对应的经纬度后的回调函数
wifiScan.request(cbFnc,timeout)wifi定位

详细的API介绍见lbsLoc API说明

实现流程

  • 基站定位
    定义回调函数getLocCb,调用lbsLoc.request(getLocCb),在getLocCb里就会有查询到的经纬度。
  • WI-FI定位
    先扫描WI-FI,把扫描的数据传入lbsLoc.request(),查询成功就会返回经纬度。

示例

基站定位相关实例程序在脚本库的demo\lbsLoc文件夹下。
demo讲解
Wi-Fi定位相关实例程序在脚本库的demo\wifi文件夹下。
demo讲解

常见问题

1. 如何在网站上查询小区对应的位置信息?

例如:通过AT+CEREG?查询到的小区信息如下:
+CEREG: 2,1,“812f”,“0ba1d982”,7
这里的812f和0ba1d982都是16进制格式
合宙官方提供了一个在线查询位置的位置服务:在线根据小区查询位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gtmgj78X-1624449215560)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20201111102719621_无标题.png “undefined”)]
注意:任何一个在线查询网站,查询结果仅供参考;无法保证100%可以成功,因为小区id不断在新增,查询网站的后台数据库很难做到实时更新小区id数据库

2. wifi定位失败的可能原因有哪些?

(1)首先确认模块硬件是否支持wifi

  • 如果模块型号带有NFM或者NAM后缀(例如Air724UG-NFM、Air720UG-NAM),则支持wifi
  • 其余后缀不支持wifi
  • 如果没有后缀,可能支持、也可能不支持wifi,需要发出来模块标签图片找FAE确认
    (2)烧录wifi demo
    开机测试,luatools抓日志分析:
  • 如果没有搜索到wifi热点,用手机对比确认下是否可以搜索到附件wifi,如果手机可以搜到,确认下模块的板子上是否有接wifi天线
  • 如果可以搜索到wifi热点,但是wifi热点很少,用手机对比确认下搜索到附件wifi数量,如果数量差别太大,确认下模块的板子上是否有接wifi天线或者所接的天线是否支持2.4G频段

3. 基站定位获取的经纬度是什么格式的?

  • 基站定位获取的经纬度为WGS-84格式
  • 各种坐标系说明以及转换方法参考:http://old.openluat.com/GPS-Offset.html

相关资料以及购买链接

Air724UG开发板

Air724 开发板使用说明

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值