3.2 haas506 2.0开发教程-example-wifi定位
haas506 2.0开发教程-example-wifi定位
- wifi定位
- 1、案例说明
- 2、程序代码
- 3、日志输出
- 总结
wifi定位
1、案例说明
- 扫描周围所得到的wifi热点,使用mac地址进行定位。
- MAC地址(Media Access Control Address),媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址 。
- 需要连接网络,插入SIM卡。
2、程序代码
mian.py
# coding=utf-8
#免注册api接口,仅供测试使用
#扫描周围的wifi,获取mac地址,然后再使用http.get()获取位置信息import wifiScan
import utime as time
import http
import network
import ujsong_connect_status = Falsedef 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)def get():global htpglobal macglobal mac_addrfor m in mac_addr:url = 'http://api.cellocation.com:82/wifi/?mac='+m+'&output=json'#url = 'http://api.cellocation.com:82/wifi/?mac='+mret = htp.get(url)if ret < 0:print('http get return failed %d'%ret)return Noneresponsebody = htp.get_response()print("responsebody:",responsebody)result=ujson.loads(responsebody)if result["errcode"]==0:breakdef wifi_scan():global macglobal mac_addrmac=""mac_addr=[]#查看平台是否支持wifi扫描ret1=wifiScan.support()print("ret1=",ret1)#开启wifi扫描ret2=wifiScan.control(1)print("ret2=",ret2)#获取wifi扫描参数ret3=wifiScan.getConfig()print("ret3=",ret3)#设置wifi扫描参数ret4=wifiScan.setConfig(5, 2, 13, 60, 0)print("ret4=",ret4)#开始扫描wifiret5=wifiScan.start()print("ret5=",ret5)#取mac地址mac=ret5print("mac:",mac)for i in mac[1][::2]:mac_addr.append(i)print('mac_addr:',mac_addr)if __name__=='__main__':#实例化httphtp=http.client()#连接网络connect_network()#扫描周围wifi,获取mac地址,作为定位参数wifi_scan()#get lbsget()
3、日志输出
network register successed
ret1= True
ret2= 0
ret3= (0, 0, 0, 0, 0)
ret4= 0
ret5= (10, ['CC:C2:E0:AF:65:A5', -54, 'CE:C2:E0:9F:65:A5', 7, '92:DE:F9:EC:D3:40', -49, '8C:DE:F9:EC:D3:40', -49,'B4:0F:3B:43:4C:71', -73, '48:0E:EC:89:52:8B', -72, '90:F0:52:14:93:33', -15, 'A8:A7:95:99:D8:47', -54,'98:00:6A:B3:4B:AC', -50, '9A:00:6A:B3:4B:AC', -50])
mac: (10, ['CC:C2:E0:AF:65:A5', -54, 'CE:C2:E0:9F:65:A5', 7, '92:DE:F9:EC:D3:40', -49, '8C:DE:F9:EC:D3:40', -49,'B4:0F:3B:43:4C:71', -73, '48:0E:EC:89:52:8B', -72, '90:F0:52:14:93:33', -15, 'A8:A7:95:99:D8:47', -54,'98:00:6A:B3:4B:AC', -50, '9A:00:6A:B3:4B:AC', -50])
mac_addr: ['CC:C2:E0:AF:65:A5', 'CE:C2:E0:9F:65:A5', '92:DE:F9:EC:D3:40', '8C:DE:F9:EC:D3:40', 'B4:0F:3B:43:4C:71','48:0E:EC:89:52:8B', '90:F0:52:14:93:33', 'A8:A7:95:99:D8:47', '98:00:6A:B3:4B:AC', '9A:00:6A:B3:4B:AC']
responsebody: {"errcode": 0, "lat": "31.27669", "lon": "120.735703", "radius": "598","address": "江苏省苏州市吴中区西安交通大学B1号;文景路与松涛街路口东北436米"}
总结
本节介绍了如何使用wifi,获取mac地址进行定位。需要注意的是,定位所用到的api接口仅供测试使用。定位信息误差较大。
3.2 haas506 2.0开发教程-example-wifi定位相关推荐
- 3.9 haas506 2.0开发教程-example-oled
haas506 2.0开发教程-example-oled 1.OLED模块 2.测试 3.效果 4.总结 1.OLED模块 有机发光二极管(OrganicLight-Emitting Diode,OL ...
- haas506 2.0开发教程-hota(仅支持2.2以上版本)
haas506 2.0开发教程-hota 1.hota.py升级 案例说明 (1)获取URL (2)功能代码 (3)输出log 2.hota.pac升级 案例说明 (1)获取URL (2)功能代码 ( ...
- 2.23 haas506 2.0开发教程 - KeyPad - 矩阵键盘(仅支持M320开发板)
haas506 2.0开发教程 - KeyPad - 矩阵键盘 矩阵键盘 320矩阵键盘连线 案例说明 测试代码 功能测试 class - KeyPad keypad.init() - 初始化keyp ...
- 2.18 haas506 2.0开发教程 - 阿里云M2M设备间通信 - 规则引擎/Topic消息路由(仅支持2.2以上版本)
haas506 2.0开发教程 - 阿里云M2M设备间通信 - 规则引擎/Topic消息路由 阿里云M2M设备间通信 通信流程 功能实现 1.创建产品 2.设备端开发 联云测试 3.建立topic之间 ...
- 3.1 haas506 2.0开发教程-example-lbs (支持2.03以上版本)
haas506 2.0开发教程-example-lbs 1.LBS (围绕地理位置数据而展开的服务) 2.实现步骤 (1)注册账号 (2)创建新应用 (3)添加key (4)程序烧写 (5)日志输出 ...
- 1.1 haas506 2.0开发教程-导学篇
haas506 2.0开发教程-导学篇 一. 下载并安装驱动 1.1 CH340 driver 1.2 8910 driver 二. 搭建开发环境 2.0 集合开发工具HaaS506PYcom 2.1 ...
- haas506 2.0开发教程 - 阿里云ota - pac 固件升级(仅支持2.2以上版本)
haas506 2.0开发教程-ota - pac 固件升级 ota - pac固件升级 案例说明 1.确定开发板内存 2.物联网平台开发 3.设备端开发 调试,确定开发板驻网成功 4.ota - 硬 ...
- 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)案例 ...
- 2.19 haas506 2.0开发教程 - bluetooth - 蓝牙通信(仅支持2.2以上版本)
haas506 2.0开发教程 - bluetooth - 蓝牙通信 蓝牙 案例说明 从机测试(支持601与320) 1. 蓝牙调试工具 2. 设备端开发 3. 功能测试 主机测试(仅支持320) 1 ...
最新文章
- Windows Server 2008技术概述(自CSDN)
- 如何构建优雅的ViewController
- 计算机应用基础dos,计算机应用基础2(带答案)
- 科大星云诗社动态20211130
- Python学会了,然后呢?
- c语言switch写值班表,如何用asp编写按周轮换的值班表?例,1月份的值班领导有4位,怎样写可以让4位领导的名字自动到时间显示...
- SQL数据库实战(含建表数据和查询案例)
- 【kafka】支持超高并发的kafka网络设计
- php中unset函数是在哪一章_PHP unset函数好奇怪 -
- 热门用户推荐能否支持分类筛选?
- 移动安全初探:窃取微信聊天记录、Hacking Android with Metasploit
- 关于周考的总结与反思
- CSDN实训 - 个人博客界面制作
- 做硬件,真的没前途吗?看看资深工程师是怎么说的
- 关于批量下载MODIS数据的坑
- IT资产管理系统Snipe-IT使用docker安装记录
- GitHub 上很火的 7 个项目--架构思想精华
- 亚马逊云科技为全球的可持续发展进程做出贡献
- PNG免抠素材网,免费商用,设计师赶紧马住。
- Hibernate_8_Person和IdCard实例_一对一关系:基于外键