Hi3516 AI Camera開發板是帶有Wifi模塊的,可以工作在AP和STA模式。我們通過系統自帶的setting APP就可以實現連接Wifi熱點的功能。但我在開發過程中發現,在setting中連接Wifi熱點然后退出setting,Wifi就斷開了!通過串口日志看到,在退出setting時輸出有這樣一行字:
[plat_pm]wifineedalwayson,donotclose!!
那基本上這個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=hdfwifi
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="yourssid"
psk="yourpwd"
}
其中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"
]
}
然后編譯代碼:
pythonbuild.pyipcamera_hi3516dv300-bdebug
二、測試
燒錄到Hi3516開發板,不再贅述。
啟動后用串口連接,查看bin目錄下的文件:
OHOS#ls/bin
Directory/bin:
-rwxrwxrwx13488u:0g:0wpa_supplicant
-rwxrwxrwx50484u:0g:0bundle_daemon
-rwxrwxrwx13488u:0g:0hostapd
-rwxrwxrwx13440u:0g:0foundation
-rwxrwxrwx25924u:0g:0wms_server
-rwxrwxrwx21724u:0g:0appspawn
-rwxrwxrwx13540u:0g:0query.bin
-rwxrwxrwx13540u:0g:0abilityMain
-rwxrwxrwx13488u:0g:0apphilogcat
-rwxrwxrwx13504u:0g:0led_app
-rwxrwxrwx13540u:0g:0media_server
-rwxrwxrwx25828u:0g:0init
-rwxrwxrwx13792u:0g:0hilogcat
-rwxrwxrwx13488u:0g:0camera_app
-rwxrwxrwx25824u:0g:0shell
-rwxrwxrwx13488u:0g:0wpa_cli
可以看到比之前多了幾個文件:wpa_supplicant,hostapd,wpa_cli
再查看etc目錄,
OHOS#ls/etc
Directory/etc:
-rwxrwxrwx61u:0g:0os-release
-rwxrwxrwx107u:0g:0hostapd.conf
-rwxrwxrwx3473u:0g:0init.cfg
-rwxrwxrwx82u:0g:0wpa_supplicant.conf
可以看到比之前多了幾個文件,hostapd.conf,wpa_supplicant.conf
這里簡要介紹wpa_supplicant的使用方法,詳細命令格式請參考命令自帶的help
這里以連接熱點為例,命令格式:
cd/bin
./wpa_supplicant-iwlan0-c/etc/wpa_supplicant.conf
-i參數指定網卡名稱
-c參數指定配置文件
/etc/wpa_supplicant.conf文件中保存有我們要連接的熱點的ssid和密碼。
用手機做熱點進行測試,看到連接設備從0變為1,說明Wifi連接成功了。
編輯:hfy
-
WIFI
+關注
關注
81文章
5291瀏覽量
203314 -
Hi3516
+關注
關注
1文章
21瀏覽量
15878 -
鴻蒙系統
+關注
關注
183文章
2634瀏覽量
66224
發布評論請先 登錄
相關推薦
評論