鸿蒙物联网实战——Hi3861实现手机APP配网(文末送福利)
本节主要讲如何去实现Hi3861 APP配网功能。需要说明的是,本人实现这个功能主要是用于学习,所涉及知识包括Hi3861的WiFi操作,AP模式、STA模式、按键功能、网络编程、JSON数据格式、手机APP开发。
所有源码,还有手机APP均提供下载,大家自领,也可以直接观看视频。
先上原理:
目前主流的 WIFI 配置模式有以下 2 种:
1、智能硬件处于 AP 模式
类似路由器,组成局域网,手机用于 STA 模式;
手机连接到处于 AP 模式的智能硬件后组成局域网,手机发送需要连接路由的 SSID 及密码至智能硬件,智能硬件主动去连接指定路由后,完成配网。
2、一键配网(smartConfig)模式
智能硬件处于混杂模式下,监听网络中的所有报文;手机 APP 将 SSID 和密码编码到 UDP 报文中,通过广播包或组播报发送,智能硬件接收到 UDP 报文后解码,得到正确的 SSID 和密码,然后主动连接指定 SSID 的路由完成连接。
本文主要讲如何实现第一种AP方式
AP 是 (Wireless) Access Point 的缩写,即 (无线) 访问接入点。简单来讲就像是无线路由器一样,设备打开后进入 AP 模式,在手机的网络列表里面,可以搜索到类似 tplink_XXX 的名字(SSID)。
连接步骤:
1、Hi3861 上面有一个user按键,用户可以按下这个按钮,Hi386会进入 AP 模式;
2、手机扫描 WIFI 列表:扫描到Hi3861的SSID(目前是“Hispark-WiFi-IoT”)连接该智能硬件设备,通过手机APP发送我们要连接的热点的SSID和密码。
3、Hi3861通过 UDP 包获取配置信息,切换网络模式连接 WIFI 后配网完成。
代码实现:
(1)代码结构
代码主要由3个文件组成
ap_mode.c:主要实现AP模式,并实现一个简单的UDP服务器,获取手机APP传输过来的热点账号和密码。
sta_mode.c:实现连接配网的功能。
wifi_config.c:入口函数,实现按下按键后开始配网的功能。
(2)按键功能实现
通过查阅原理图,我们可以看到Hi3861在type-C口附近有一个user按钮,如图,主要不要和复位按钮搞错了。user按钮对应的是GPIO5引脚。
于是我们可以使用按键中断编程的方式去实现,代码如下:
其中需要主要的是需要使用 hi_io_set_func(HI_IO_NAME_GPIO_5,HI_IO_FUNC_GPIO_5_GPIO); 修改GPIO5为普通引脚,否则GPIO5默认会被初始化为 串口引脚,导致无法使用。
GPIO5中断回调函数如下:
其实很简单,就是置某个变量为1而已。
(3)接下来进入AP模式
代码如下,一旦发现 start_wifi_config_flg 不为0,也就是说发生了按键被按下的事件,那就会调用 wifi_start_softap 函数进入AP模式。
(4)AP模式
AP模式的代码部分也很简单,首先我们要先设置好Hi3861 AP模式下的的SSID,然后开放网络,不加密。对应的函数是 wifi_start_softap。
接下来设置好 Hi3861 的网段、IP等,并开启UDP服务:
(5)UDP服务器
UDP服务器绑定的端口号是 50001,使用soocket通信接口。
绑定完端口号后,进入接收数据。
数据这里我使用json格式,由于鸿蒙系统代码中已经自带cJSON库,可以直接使用,这一部分的代码也比较简单,大家可以看看。
(6)开启STA模式
启动STA模式的代码部分也比较简单,我之前有一篇文章有讲,具体代码如下:
关键代码已经做了注释。
(7)连接热点
连接热点时,只需要传入ssid、加密方式和密码即可。
需要主要的地方是我们通常的wifi加密都是 HI_WIFI_SECURITY_WPA2PSK。
APP调试软件下载、WiFi参数设置代码文件,对实战项目感兴趣的童鞋,可扫码加入鸿蒙技术交流群,联系助教老师免费领取。
已有 25131位开发者加入
福利来咯!为了能够更深入学习和理解鸿蒙,学院还为大家准备了两款鸿蒙系统实战项目学习教程(包含视频+硬件),带领大家快速掌握Harmony开发。
(一)鸿蒙手把手教你实战物联网应用
国内首创基于 华为海思Hi3861/Hi3861L集成芯片,鸿蒙系统HiSpark Wi-Fi IoT智能家居开发套件,由浅入深,以物联网智能硬件产品案例搭建为主线,两大智能实战项目Wi-Fi IoT、AI智能摄像,带你从零快速入门鸿蒙开发!
项目简介:
1) 实战讲解 Wi-Fi IoT的硬件开发流程、软件功能开发:OLED、NFC、红绿灯、炫彩灯、温湿度传感、可燃气体传感等。
2) 实战讲解 AI Camera的硬件开发流程、Sensor到LCD屏软件调试、Wi-Fi模组功能测试、SD卡及以太网测试。
目前正在全网众筹中, 距离截止仅剩 10天!
(二)首创鸿蒙+嵌入式Linux双系统,让你在ARM板上也能跑鸿蒙!
作为令人期待的国产系统HarmonyOS终于开源了,但很可惜官方源码仅支持有限的几款海思芯片,作为先行者,有幸入驻华为并着手研究 鸿蒙内核Liteos_a,并成功移植到IMX6ULL开发板。现在汇总全部的系统软硬开发资料,开源给到嵌入式工程师、硬件工程师开发使用。
学习文档共计12篇,视频共计100+节,内容紧凑充实,无多余讲解。内容基本与配套视频教程步调一致。学习文档中的问题,可马上定位到对应视频章节,相互对照式学习非常具体、系统化。
课程正在众筹, 距离截止仅剩最后 1天!
- 标签:周扬青家庭
- 编辑:郭晓刚
- 相关文章
-
厦门第二轮集中供地前发生了什么?新房成交面积同比上涨165.7%
黄婉银 魏文艺 孙志成 今年22城首批集中供地尚未结束,厦门就已率先开启了今年第二次集中供地的…
-
有了数字人民币,支付宝还能用吗 ?相关人士回应;15连板大妖股遭停牌核查!沾酒就火,交易所紧急出手!
赵庆 1丨机构:猪价将持续探底,消费旺季将出现季节性反弹 对于猪价后期走势,浙商证券首席经济学家…
- 公告的没有,悄悄地套现29亿巨款!4300亿医药巨头股东违背承诺,14万股民很生气
- 75岁“燕郊首富”被立案调查!身家40亿,却因21万蝇头小利栽了跟头
- BOSS直聘上市暴涨95%,北大毕业创始人身家200亿!总市值已超前程无忧+猎聘,“风投女王”又押对了?
- 中国科学院:上海光机所计算光刻技术研究取得进展
- 现实版“驴得水”?15年没来上班,仍被“发工资”超46万元…单位领导竟称无奈:“上班或办理辞职,他都不配合”