鸿蒙Hi3516如何连接WiFi(一)
Hi3516 AI Camera开发板是带有Wifi模块的,可以工作在AP和STA模式。我们通过系统自带的setting APP就可以实现连接Wifi热点的功能。但我在开发过程中发现,在setting中连接Wifi热点然后退出setting,Wifi就断开了!通过串口日志看到,在退出setting时输出有这样一行字:
- [plat_pm]wifi need always on,do not close!!
那基本上这个setting里的wifi连接功能就没法用了,那还有没有办法持久连接wifi呢?
答案是有的:方法1,使用自带的wpa_supplicant;方法2,在app中调用wifi接口。
一、编译
Wifi相关示例代码在//applications/sample/camera/communication目录下,有如下三个目录:
- hostapd提供AP模式示例
- wpa_cli提供监听事件和控制wpa的示例
- wpa_supplicant提供STA模式示例
观察一下这三个目录,除了有.c源码文件外,还有几个.conf文件,是AP和STA模式的配置文件
..../communication/hostapd/config/hostapd.conf,AP模式的配置文件,我们关心的主要是ssid:
- interface=wlan0
- driver=hdf wifi
- ctrl_interface=udp
- ssid=testap
- hw_mode=g
- channel=1
- ignore_broadcast_ssid=0
如果要给AP设置密码,需要增加几行配置:
- auth_algs=1
- wpa=2
- wpa_passphrase=12345678
- rsn_pairwise=CCMP
..../communication/wpa_supplicant/config/wpa_supplicant.conf,STA模式的配置文件:
- country=GB
- ctrl_interface=udp
- network={
- ssid="your ssid"
- psk="your pwd"
- }
其中network节初始是空的,自己添加ssid和psk,即热点的ssid和密码。这些conf文件在编译烧录后会存放在/etc目录下
默认情况下,这些是不参与编译的。我们需要修改//applications/sample/camera/communication/BUILD.gn文件,添加相关feature:
- lite_component("sample") {
- features = [
- "wpa_supplicant:wpa_sample",
- "hostapd:hostapd_sample",
- "wpa_cli:wpa_cli_sample"
- ]
- }
然后编译代码:
- python build.py ipcamera_hi3516dv300 -b debug
二、测试
烧录到Hi3516开发板,不再赘述。
启动后用串口连接,查看bin目录下的文件:
- OHOS # ls /bin
- Directory /bin:
- -rwxrwxrwx 13488 u:0 g:0 wpa_supplicant
- -rwxrwxrwx 50484 u:0 g:0 bundle_daemon
- -rwxrwxrwx 13488 u:0 g:0 hostapd
- -rwxrwxrwx 13440 u:0 g:0 foundation
- -rwxrwxrwx 25924 u:0 g:0 wms_server
- -rwxrwxrwx 21724 u:0 g:0 appspawn
- -rwxrwxrwx 13540 u:0 g:0 query.bin
- -rwxrwxrwx 13540 u:0 g:0 abilityMain
- -rwxrwxrwx 13488 u:0 g:0 apphilogcat
- -rwxrwxrwx 13504 u:0 g:0 led_app
- -rwxrwxrwx 13540 u:0 g:0 media_server
- -rwxrwxrwx 25828 u:0 g:0 init
- -rwxrwxrwx 13792 u:0 g:0 hilogcat
- -rwxrwxrwx 13488 u:0 g:0 camera_app
- -rwxrwxrwx 25824 u:0 g:0 shell
- -rwxrwxrwx 13488 u:0 g:0 wpa_cli
可以看到比之前多了几个文件:wpa_supplicant,hostapd,wpa_cli
再查看etc目录,
- OHOS # ls /etc
- Directory /etc:
- -rwxrwxrwx 61 u:0 g:0 os-release
- -rwxrwxrwx 107 u:0 g:0 hostapd.conf
- -rwxrwxrwx 3473 u:0 g:0 init.cfg
- -rwxrwxrwx 82 u:0 g:0 wpa_supplicant.conf
可以看到比之前多了几个文件,hostapd.conf,wpa_supplicant.conf
这里简要介绍wpa_supplicant的使用方法,详细命令格式请参考命令自带的help
这里以连接热点为例,命令格式:
- cd /bin
- ./wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
- -i参数指定网卡名称
- -c参数指定配置文件
/etc/wpa_supplicant.conf文件中保存有我们要连接的热点的ssid和密码。
用手机做热点进行测试,看到连接设备从0变为1,说明Wifi连接成功了。
下一篇文章将介绍如何用代码调用的方式连接wifi。
相关文章
- Consul 基础6
- Consul 基础7
- CUDA编程模型都改了!英伟达架构师团队撰文详解:Hopper为啥这么牛?
- Consul 基础8
- Consul 基础9
- Consul 基础10
- Nvidia「艺术家神器」GauGAN发布第二代!训练超1000万张图片,两个词就能生成风景画
- 元宇宙六大技术全景图
- 玩桥牌,八位人类世界冠军,都输给了AI
- 实现多级缓存的架构设计方案
- 清华博士提出「Chiplet精算师」登顶会!越接近摩尔极限,多芯片集成越划算
- 90行代码!大一学生自学编程,自创搜题网站,已在GitHub开源
- Meta 拒绝使用高通芯片,并质疑其配套软件不够成熟
- 新一代数据基础设施:数据智能平台(附下载)
- 被奖12万!凌晨发现实验室漏水,中科大5学生踹门救下2400万设备和九章三号
- Transformer 自然语言处理简介
- 开价20w美元,这家公司想买下你的脸!不限性别年龄,预计2023年投入机器人使用
- Gartner公布首个SSE魔力象限排名
- 众筹十万美元搞火箭,搞研发全靠志愿者!这个“草根”航天组织已经开启载人测试
- 敏捷开发:从理论到团队落地