鸿蒙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连接成功了。


“互联网思维”六大关键思维介绍
润和软件HopeStage操作系统推动长江银行信息技术应用创新
三星正在实验Z字型折叠手机:弯曲方式很亮眼
赛灵思SDK工程移植到Vitis的详细步骤
±10V/±5V/0-5V/0-10V/0-20mA转PWM隔离模块GMU00x的特性与典型应用
鸿蒙Hi3516连接WiFi的方法介绍
基于低噪声放大器MAX2640对输入和输出匹配电路进行优化设计
新能源汽车赛道正成为PCB企业竞逐的赛道
沃尔沃和戴姆勒卡车签署协议,共同开发燃料电池系统
RedmiNote8Pro《魔兽世界》限定套装公布
变压器端与远程端电流大小为什么不一样?
如何成功造车?爱驰汽车能够成功实现关键的第五步
Redmi K40详细规格参数、上市时间曝光
c语言之字符数组详解
30kW激光切割机交付市场,需要经历哪些考验
关于FPGA的误区,你知道吗?
清洁机器人的商用使得清洁工将无立足之地
LED显示屏,LED显示屏是什么意思
万物互融下 共创商业新增长 ODC19 商业化论坛在京举办
芯海科技信号链MCU新标杆 SmartAnalog©系列全新发布