本文来源电子发烧友社区,作者:cszzlsw, 帖子地址:https://bbs.elecfans.com/jishu_2037265_1_1.html
1.前情提要
继上次重磅发布对接腾讯云的帖子之后,地址在这:https://bbs.elecfans.com/jishu_2032877_1_1.html
有一个问题没有解决,那就是wifi联网问题,本期就来介绍一下不要任何app,直接用系统原生的功能实现配网,快来连接一下吧
2.初衷
传统的配网方式一般是搭配一个专用的app,操作比较繁琐,用户体验不太好,弹出式配网就是为了解决这个问题开发的,而且有种很酷炫的感觉而且学会了原理,把网页文件一换,换成一个创意动画神马的哄女朋友开心也是不错的
3.原理
其实弹出式配网的原理并不复杂,整体的原理是先创建一个热点让手机连接到热点,然后开启dns劫持,利用web服务器将访问地址跳转,然后把预先准备好的网页文件发送到连接热点的设备上,在网页上提供按钮点击操作读取wifi列表,然后输入密码,发送到板子去连接,保存,连接的设备可以是手机,电脑等等,连接完成之后就可以重启开发板执行真正的任务了.
4.实现
1).参考了润和仓库里的demo代码很快就创建好了热点:
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/04_wifi
创建热点之后测试一下手机能连接热点第一步就成功了
2).参考润和仓库的udp和tcp的代码demo也比较快的就搞好了dns劫持和web服务器:
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/05_network,这一步做好之后就可以出现弹窗了
3).弹窗出现之后下一步就是下发网页文件到手机,这一步着实花费了一些时间,倒不是网页的发送,而是网页文件的存储,整整花了我5,6个小时之久,到处问人也没问到,查阅了海量的官方文档,最后还是误打误撞(串口抓包研究固件下载流程发现的)找到了方法,具体是什么大家在视频中也可以看到
4).后面就是用户点击手机上的网页来搜索网络和配网了,板子接收到手机发过来的用户名和密码就尝试连接对应的wifi,如果连接成功就保存起来,然后重启板子就行了,这里还有一个问题就是配网的ssid和密码的保存和读取,这里有两种方法,一种是利用鸿蒙自带的kv系统来实现,第二种就是直接读写flash,这里我采用的是kv系统,之前参考了连老师的帖子:https://zhuanlan.zhihu.com/p/274411574
发现不行,根本没有存储到flash中去,后面我自己在代码里找,终于找到了真正的接口,见图片:

在代码中是这样:

如果是直接用官方的flash存储是长这样:

5).到这里我们的弹出式配网就已经完成了,后面就是添加板子启动的时候读取kv系统里面有没有保存账号密码,如果没有就启动热点模式让用户配网,如果有就直接用sta模式连接对应的wifi,然后该干啥干啥就行了
6).如果想重新配网就搞一个按钮长按恢复出厂就行,这个不用我来说了吧,大家应该都会.
怎么样,是不是挺简单的,具体的细节我就不过多码字了,这里我就直接把视频放出来,大家感受一下最终的效果就行.
5.来谈谈弹出式配网的小缺点:
1.跟手机兼容性有关,可能有的手机不会自动弹出配网界面,而是在系统通知栏出现一个通知,然后手机点击通知才能跳转到对应的网页,关于手机的兼容报告还有待大家共同测试,毕竟个人力量有限
2.需要占用比较大的flash空间,因为弹出式配网有一个网页要存储在芯片上,然后这个网页因为渲染和js脚本会占用比较多的字节,对于flash吃紧的设备不是那么友好
6.最后
有感兴趣想了解的同学可以跟我或者版主绿波电龙联系,视大家的意愿再公开源码,以免被yxh盗用
1.前情提要
继上次重磅发布对接腾讯云的帖子之后,地址在这:https://bbs.elecfans.com/jishu_2032877_1_1.html
有一个问题没有解决,那就是wifi联网问题,本期就来介绍一下不要任何app,直接用系统原生的功能实现配网,快来连接一下吧
2.初衷
传统的配网方式一般是搭配一个专用的app,操作比较繁琐,用户体验不太好,弹出式配网就是为了解决这个问题开发的,而且有种很酷炫的感觉而且学会了原理,把网页文件一换,换成一个创意动画神马的哄女朋友开心也是不错的
3.原理
其实弹出式配网的原理并不复杂,整体的原理是先创建一个热点让手机连接到热点,然后开启dns劫持,利用web服务器将访问地址跳转,然后把预先准备好的网页文件发送到连接热点的设备上,在网页上提供按钮点击操作读取wifi列表,然后输入密码,发送到板子去连接,保存,连接的设备可以是手机,电脑等等,连接完成之后就可以重启开发板执行真正的任务了.
4.实现
1).参考了润和仓库里的demo代码很快就创建好了热点:
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/04_wifi
创建热点之后测试一下手机能连接热点第一步就成功了
2).参考润和仓库的udp和tcp的代码demo也比较快的就搞好了dns劫持和web服务器:
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master/05_network,这一步做好之后就可以出现弹窗了
3).弹窗出现之后下一步就是下发网页文件到手机,这一步着实花费了一些时间,倒不是网页的发送,而是网页文件的存储,整整花了我5,6个小时之久,到处问人也没问到,查阅了海量的官方文档,最后还是误打误撞(串口抓包研究固件下载流程发现的)找到了方法,具体是什么大家在视频中也可以看到
4).后面就是用户点击手机上的网页来搜索网络和配网了,板子接收到手机发过来的用户名和密码就尝试连接对应的wifi,如果连接成功就保存起来,然后重启板子就行了,这里还有一个问题就是配网的ssid和密码的保存和读取,这里有两种方法,一种是利用鸿蒙自带的kv系统来实现,第二种就是直接读写flash,这里我采用的是kv系统,之前参考了连老师的帖子:https://zhuanlan.zhihu.com/p/274411574
发现不行,根本没有存储到flash中去,后面我自己在代码里找,终于找到了真正的接口,见图片:

在代码中是这样:

如果是直接用官方的flash存储是长这样:

5).到这里我们的弹出式配网就已经完成了,后面就是添加板子启动的时候读取kv系统里面有没有保存账号密码,如果没有就启动热点模式让用户配网,如果有就直接用sta模式连接对应的wifi,然后该干啥干啥就行了
6).如果想重新配网就搞一个按钮长按恢复出厂就行,这个不用我来说了吧,大家应该都会.
怎么样,是不是挺简单的,具体的细节我就不过多码字了,这里我就直接把视频放出来,大家感受一下最终的效果就行.
5.来谈谈弹出式配网的小缺点:
1.跟手机兼容性有关,可能有的手机不会自动弹出配网界面,而是在系统通知栏出现一个通知,然后手机点击通知才能跳转到对应的网页,关于手机的兼容报告还有待大家共同测试,毕竟个人力量有限
2.需要占用比较大的flash空间,因为弹出式配网有一个网页要存储在芯片上,然后这个网页因为渲染和js脚本会占用比较多的字节,对于flash吃紧的设备不是那么友好
6.最后
有感兴趣想了解的同学可以跟我或者版主绿波电龙联系,视大家的意愿再公开源码,以免被yxh盗用
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
wi-fi
+关注
关注
15文章
2462浏览量
130019 -
HarmonyOS
+关注
关注
80文章
2157浏览量
36287 -
HiSpark
+关注
关注
1文章
156浏览量
7799
发布评论请先 登录
相关推荐
热点推荐
物联网浪潮下,如何精准选型Wi-Fi模块?
Wi-Fi模块选型的关键要点。 一:选择用模块的理由: 选择Wi-Fi模块,核心优势在于极大地方便了电路集成设计,特别是硬件兼容集成设计。只要产品前期完成综合设计,后续无论是产品设计环节,还是应用端的灵活选择,都能享受极大便利。
Wi-Fi模块选型指南 | 低功耗蓝牙/Wi-Fi 6模块推荐 | 物联网设备集成攻略
物联网的快速发展,Wi-Fi技术的成熟的情况下,越来越多的场景需要用到Wi-Fi来无线传输数据,尤其是移动设备中,怎么再设备中选择合适的Wi-Fi模块呢?下面我们来介绍
Wi-Fi信号满格但实际上不了网,一文搞定
”“网络权限”或“设备设置”上,不用等运营商上门,自己按步骤排查就能快速恢复网络。 一、排查验证,网络是否真断了 1.测试其他设备,区分是“单设备问题”还是“全局断网” 测试操作:用手机、平板、电脑等多台设备连接同一
基于 SSID 的 Wi-Fi 定位:与其他定位服务的性能比较
是一种著名的无线网络技术,用于设备的局域网和互联网接入。Wi-Fi 通过 Wi-Fi 网络为家庭、办公室和学校等环境提供便捷的无线互联网接入服务。
发表于 08-31 21:01
有没有什么修复方法可以确保 AP 模式下的 Wi-Fi 和 BLE 连接同时正常工作?
我正在使用 CYBSYSKIT DEV 01 套件。我尝试在 AP 模式下打开 Wi-Fi 并宣传 BLE。我可以宣传 SoftAP 和 BLE。但是,我无法从中央设备连接到 BLE。它可以立即连接并断开连接。有没有什么修复方法
发表于 07-17 06:13
Air8000核心板SoftAP配网方案:快速构建无线接入点
通过HTTP请求控制LED的开关、发送任意消息、扫描可用的Wi-Fi网络、获取AP列表,以及连接到新的Wi-Fi网络。 实际应用中可基于LuatOS二次开发,实现Wi-Fi设备快速配网
Air8000核心板Wi-Fi应用之SoftAP配网方案详解!
本文深入探讨Air8000核心板在Wi-Fi应用中的SoftAP配网方案,通过该方案可快速搭建无线接入点,实现设备与网络的便捷连接,为物联网场景下的快速配置提供高效解决方案。 下面以A
Wi-Fi 8:开启极高可靠性 (UHR) 连接的新纪元——1
与自我调整的能力,“校正回归”的速度也日益加快。因此,现在就对Wi-Fi 7持悲观态度或许为时过早,而现在开始讨论Wi-Fi 8也并不会显得太突兀。
首先,我们来回顾一下Wi-Fi 目
发表于 06-13 11:09
SoftAP方案:Wi-Fi配网的黄金法则“100%成功”
遵循SoftAP方案的“黄金法则”,Wi-Fi配网将不再有失败风险。设备自组网机制让连接过程变为“单向引导”——设备主动开放热点并智能适配,确保每次配
一篇带你搞定!Air8101:物联网设备AirKiss配网方案
AirKiss通过免交互配网方案降低了用户操作门槛,同时兼容微信生态实现快速商业化部署 ——已渗透至智能家居、工业控制、医疗健康等多元化场景,成为物联网设备配网的核心技术方案。
ESP8266烧录与机智云一键配网教程
网。器件:ESP8266+烧录器千万不要插反了噶,刚插进去,会有蓝色闪一下,木问题的哦。需要下载的文件固件及烧写工具:(代码来源于B站:配网与实验演示_哔哩哔哩_
【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】放大招啦,卸载你的配网app,wifiiot弹出式配网了解一下
评论