haas506 2.0开发教程-example-lbs

  • 1、LBS (围绕地理位置数据而展开的服务)
  • 2、实现步骤
    • (1)注册账号
    • (2)创建新应用
    • (3)添加key
    • (4)程序烧写
    • (5)日志输出
  • 3.总结

1、LBS (围绕地理位置数据而展开的服务)

案例说明:

  • 通过高德开放平台获取当前设备的详细位置信息。
  • LBS基于位置服务(Location Based Services,LBS)是指围绕地理位置数据而展开的服务,其由移动终端使用无线通信网络(或卫星定位系统),基于空间数据库,获取用户的地理位置坐标信息并与其他信息集成以向用户提供所需的与位置相关的增值服务。

2、实现步骤

(1)注册账号

在高德开放平台(https://lbs.amap.com/)注册账号(智能硬件需要注册企业版)

(2)创建新应用

在控制台的应用管理选择我的应用,点击“创建新应用”

填写新建应用的“应用名称”和“应用类型”,创建应用

(3)添加key

点击这个应用的“添加”,添加key(智能硬件需要升级到企业版)

(4)程序烧写

复制所得到的key到lbs.py代码的指定位置

  • mian.py
import utime as time
import network
from lbs import LBSg_connect_status = False
def on_4g_cb(args):global g_connect_statuspdp = args[0]netwk_sta = args[1]if netwk_sta == 1:g_connect_status = Trueelse:g_connect_status = Falsedef connect_network():global net,on_4g_cb,g_connect_statusnet = network.NetWorkClient()g_register_network = Falseif net._stagecode is not None and net._stagecode == 3 and net._subcode == 1:g_register_network = Trueelse:g_register_network = Falseif g_register_network:net.on(1,on_4g_cb)net.connect(None)else:print('network register failed')while True:if g_connect_status:print('network register successed')breaktime.sleep_ms(20)if __name__ == '__main__':connect_network()getlbs = LBS()lbstr = getlbs.get_lbs()print(lbstr)
  • lbs.py
# -*- coding: UTF-8 -*-
from modem import net
import http
import ujson
import utime#等待30s确保获取基站信息
utime.sleep(30)class LBS():def __init__(self):self.requesturl = ''self.url = 'http://apilocate.amap.com/position'self.accesstype = 0#write your keyself.key = '***************'self.cdma = 0self.output = 'json'self.bts = ''self.nearbts = ''self.htp = http.client()passdef get_lbs(self):nbrinfo = net.getCellInfo()srvinfo = net.getState()#gsmif len(srvinfo[0]) > 0:passif len(srvinfo[1]) > 0:pass#lteif len(srvinfo[2]) > 0:srv = srvinfo[2]self.bts = str(hex(srv[2]))[2:] + ',' + str(srv[3]) +','+ str(srv[6])+ ',' + str(srv[1]) + ',' + str(srv[7])passif len(nbrinfo[0]) > 0:passif len(nbrinfo[1]) > 0:passif len(nbrinfo[2]) > 0:nbr = nbrinfo[2]print(nbr,nbrinfo,len(nbr))for i in range(len(nbr)):self.nearbts += str(hex(nbr[i][2]))[2:] + ',' + str(nbr[i][3]) + ',' + str(nbr[i][6]) + ',' + str(nbr[i][1]) + ',' + str(nbr[i][7])if i != (len(nbr) - 1):self.nearbts += '|'passself.requesturl += self.url + '?' + 'accesstype=' + str(self.accesstype) + '&key=' + self.key + '&cdma=' + str(self.cdma) + '&output=' + self.output + '&bts=' + self.bts + '&nearbts=' + self.nearbtsprint(self.requesturl)ret = self.htp.get(self.requesturl)if ret < 0:return Noneretstr = self.htp.get_response()self.htp.close()locationstr = Nonelat = Nonelon = Nonetry:retdict = ujson.loads(retstr)try:if int(retdict['infocode']) != 10000:return Nonetry:locationstr = retdict['result']['location']tmpstr = locationstr.split(',')lon = tmpstr[0]lat = tmpstr[1]print('content:',retdict)except KeyError:return Nonefinally:return lon,latexcept KeyError:return Nonefinally:return lon,latexcept ValueError:return Nonefinally:return lon,lat

(5)日志输出

network register successed
content: {'result': {'citycode': '0512', 'type': '4', 'city': '苏州市', 'poi': '中国工商银行(苏州独墅湖支行)','desc': '江苏省 苏州市 虎丘区 仁爱路 靠近中国工商银行(苏州独墅湖支行)', 'adcode': '320505','street': '仁爱路', 'radius': '550', 'location': '120.7394987,31.2744203','road': '仁爱路', 'country': '中国', 'province': '江苏省'}, 'status': '1', 'infocode': '10000', 'info': 'OK'}
('120.7394987', '31.2744203')

3.总结

本节介绍了如何使用Haas506实现LBS定位,需要注意的是,个人所注册的高德开放平台账号无法获取的设备的地理位置信息。需要使用公司企业版账号。

3.1 haas506 2.0开发教程-example-lbs (支持2.03以上版本)相关推荐

  1. 3.9 haas506 2.0开发教程-example-oled

    haas506 2.0开发教程-example-oled 1.OLED模块 2.测试 3.效果 4.总结 1.OLED模块 有机发光二极管(OrganicLight-Emitting Diode,OL ...

  2. haas506 2.0开发教程-hota(仅支持2.2以上版本)

    haas506 2.0开发教程-hota 1.hota.py升级 案例说明 (1)获取URL (2)功能代码 (3)输出log 2.hota.pac升级 案例说明 (1)获取URL (2)功能代码 ( ...

  3. 2.23 haas506 2.0开发教程 - KeyPad - 矩阵键盘(仅支持M320开发板)

    haas506 2.0开发教程 - KeyPad - 矩阵键盘 矩阵键盘 320矩阵键盘连线 案例说明 测试代码 功能测试 class - KeyPad keypad.init() - 初始化keyp ...

  4. 2.18 haas506 2.0开发教程 - 阿里云M2M设备间通信 - 规则引擎/Topic消息路由(仅支持2.2以上版本)

    haas506 2.0开发教程 - 阿里云M2M设备间通信 - 规则引擎/Topic消息路由 阿里云M2M设备间通信 通信流程 功能实现 1.创建产品 2.设备端开发 联云测试 3.建立topic之间 ...

  5. 3.2 haas506 2.0开发教程-example-wifi定位

    haas506 2.0开发教程-example-wifi定位 wifi定位 1.案例说明 2.程序代码 3.日志输出 总结 wifi定位 1.案例说明 扫描周围所得到的wifi热点,使用mac地址进行 ...

  6. 1.1 haas506 2.0开发教程-导学篇

    haas506 2.0开发教程-导学篇 一. 下载并安装驱动 1.1 CH340 driver 1.2 8910 driver 二. 搭建开发环境 2.0 集合开发工具HaaS506PYcom 2.1 ...

  7. haas506 2.0开发教程 - 阿里云ota - pac 固件升级(仅支持2.2以上版本)

    haas506 2.0开发教程-ota - pac 固件升级 ota - pac固件升级 案例说明 1.确定开发板内存 2.物联网平台开发 3.设备端开发 调试,确定开发板驻网成功 4.ota - 硬 ...

  8. 1.5 haas506 2.0开发教程-driver-ADC

    haas506 2.0开发教程-driver-ADC 1.硬件图 2.板载ADC 4.Class-ADC函数库 5.总结 B站haas开发教程 B站教学视频链接 1.硬件图 2.板载ADC (1)案例 ...

  9. 2.19 haas506 2.0开发教程 - bluetooth - 蓝牙通信(仅支持2.2以上版本)

    haas506 2.0开发教程 - bluetooth - 蓝牙通信 蓝牙 案例说明 从机测试(支持601与320) 1. 蓝牙调试工具 2. 设备端开发 3. 功能测试 主机测试(仅支持320) 1 ...

最新文章

  1. vs2008中,创建基于对话框的mfc动态库步骤
  2. 奇偶个数_只愿与一人十指紧扣_新浪博客
  3. linux系统下源码安装mysql5.6数据库
  4. Springboot配置拦截器出现“No mapping for GET“静态资源的情况
  5. dicom格式怎么转换_qsv怎么转换mp4格式?qsv转mp4的首选工具
  6. mongoDB 3.0以前版本 - 入门指南、示例
  7. Gson源码解析之InstanceCreator简单说明
  8. html遍历1到100,bat for循环100次:循环100求和
  9. 多传感器融合理论及其应用——1
  10. HTML+CSS实现前端网页界面案例
  11. 软件测试预演环境,什么是软件测试用例预演 有何优点?-软件水平考试-考试吧...
  12. 文件和数据格式化~总结
  13. Burp Suite安装和使用方法
  14. 输入两个实数,用一个函数求出它们之和
  15. 【Java+MySQL】随机添加测试数据栗子
  16. emoji 原生表情解析成对应表情包png
  17. 用vue写轮子的一些心得(五)——Slides轮播组件
  18. CH55x使用Arduino编程记录(三)Could not get xxx consecutive bytes in internal RAM for area OSEG
  19. 检查自己建的网站能否被外网访问
  20. Greetings and Introduction (1)

热门文章

  1. DaiXT:Spring-AOP-使用注解完成环绕时间打印
  2. 三格电子带你了解RS485转光纤_光猫
  3. WiGig 和 WirelessHD 和 802.11ac
  4. 图形和图像计算机基础知识,计算机图形图像基础
  5. 智安网络|数据安全问题频发,首推云墙·网站综合防御系统
  6. c语言中int是高级语言,高级语言程序设计(一)2010年10月真题
  7. Linux 进阶命令 - 集大成篇
  8. python语言标志位使用
  9. 计算机二级考试桌面锁定吗,2016全国计算机等级考试无纸化考试系统操作指南...
  10. 二元期权5分钟做单法:阻力位和支撑位下单法