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定位相关推荐

  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.1 haas506 2.0开发教程-example-lbs (支持2.03以上版本)

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

  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. Windows Server 2008技术概述(自CSDN)
  2. 如何构建优雅的ViewController
  3. 计算机应用基础dos,计算机应用基础2(带答案)
  4. 科大星云诗社动态20211130
  5. Python学会了,然后呢?
  6. c语言switch写值班表,如何用asp编写按周轮换的值班表?例,1月份的值班领导有4位,怎样写可以让4位领导的名字自动到时间显示...
  7. SQL数据库实战(含建表数据和查询案例)
  8. 【kafka】支持超高并发的kafka网络设计
  9. php中unset函数是在哪一章_PHP unset函数好奇怪 -
  10. 热门用户推荐能否支持分类筛选?
  11. 移动安全初探:窃取微信聊天记录、Hacking Android with Metasploit
  12. 关于周考的总结与反思
  13. CSDN实训 - 个人博客界面制作
  14. 做硬件,真的没前途吗?看看资深工程师是怎么说的
  15. 关于批量下载MODIS数据的坑
  16. IT资产管理系统Snipe-IT使用docker安装记录
  17. GitHub 上很火的 7 个项目--架构思想精华
  18. 亚马逊云科技为全球的可持续发展进程做出贡献
  19. PNG免抠素材网,免费商用,设计师赶紧马住。
  20. Hibernate_8_Person和IdCard实例_一对一关系:基于外键

热门文章

  1. 无广告 Windows 10 系统安装
  2. mysql sdo geometry_SDO_GEOMETRY结构说明
  3. 大数据入门的四个必备常识
  4. cursor使用说明
  5. 微信公众平台获取网页授权(测试号)
  6. 2021.1月书单,读后感简述:《人生的智慧》、《结构性改革》
  7. vector删除指定元素
  8. 微信小程序构建商城百度云_构建云存储应用程序
  9. 1k文件夹快捷方式病毒清理
  10. CIIPT-国家重要信息系统保护人员培训指南