【鸿蒙HarmonyOS HiSpark IPC DIY Camera】hi3518-wifi的配置与使用

系统 OpenHarmony Spark
主要是修改和3518相关的wpa_supplicant.conf hostapd.conf 两个文件,对wifi相关的ssid、passwd等进行配置

[[353328]]

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com/#zz

主 要是修改和3518相关的wpa_supplicant.conf hostapd.conf 两个文件,对wifi相关的ssid、passwd等进行配置

【编译生成wifi可执行文件】 请参考以下示例代码编译可执行程序wpa_supplicant:(SDK里面有这些代码,不做修改)

路径 ./applications/sample/camera/communication/wpa_supplicant/src/wpa_sample.c

#include <dlfcn.h> 
#include <pthread.h> 
#include <stdio.h> 
#include <string.h> 
​ 
pthread_t g_wpaThread; 
​ 
char* g_wpaArg[20] = {0}; 
int g_wpaArgc = 0; 
​ 
static void* ThreadMain() 

    printf("[WpaSample]init wpa_supplicant.\n"); 
​ 
    void *handleLibWpa = dlopen("/usr/lib/libwpa.so", RTLD_NOW | RTLD_LOCAL); 
    if (handleLibWpa == NULL) { 
        printf("[WpaSample]dlopen libwpa failed.\n"); 
        return NULL
    } 
    int (*func)(intchar **) = NULL
    func =  dlsym(handleLibWpa, "wpa_main"); 
    if (func == NULL) { 
        dlclose(handleLibWpa); 
        printf("[WpaSample]dlsym wpa_main failed.\n"); 
        return NULL
    } 
    int ret = func(g_wpaArgc, g_wpaArg); 
     
    printf("[WpaSample]run wpa_main failed, ret:%d.\n", ret); 
    for (int i = 0; i < g_wpaArgc; i++) { 
        printf("[WpaSample]arg %d:%s.\n", i, g_wpaArg[i]); 
    } 
     
    if (dlclose(handleLibWpa) != 0) { 
        printf("[WpaSample]dlclose libwpa failed.\n"); 
        return NULL
    } 
    return NULL
​ 

​ 
int main(int argc, char *argv[]) 

    g_wpaArgc = argc; 
    for (int i = 0; i < g_wpaArgc; i++) { 
        g_wpaArg[i] = argv[i]; 
    } 
​ 
    int ret = pthread_create(&g_wpaThread, NULL, ThreadMain, NULL); 
    if (ret != 0) { 
        printf("[WpaSample]create thread failed error:%s.\n", strerror(ret)); 
        return 1; 
    } 
    pthread_join(g_wpaThread, NULL); 
    return 0; 
​ 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.

 路径 ./applications/sample/camera/communication目录下面的BUILD.gn文件

import("//build/lite/config/component/lite_component.gni"
 
lite_component("sample") { 
    features = [ 
       "wpa_supplicant:wpa_sample"
    ] 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

 路径 ./applications/sample/camera/communication/wpa_supplicant目录下面的BUILD.gn文件 

import("//build/lite/config/component/lite_component.gni"
 
sample_sources = [ 
    "src/wpa_sample.c"

 
config_file = [ 
    "config/wpa_supplicant.conf" 

 
executable("wpa_sample_exe") { 
    output_name = "wpa_supplicant" 
    sources = sample_sources 

 
group("wpa_sample") { 
    deps = [ 
        ":wpa_sample_exe"
    ] 

 
copy("config") { 
    sources = config_file 
    outputs = [ 
       "$root_out_dir/etc/wpa_supplicant.conf" 
    ] 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.

 路径 ./build/lite/product/ipcamera_hi3518ev300.json  

 【修改station模式的配置】 将以下配置写到配置文件wpa_supplicant.conf

country=GB 
ctrl_interface=udp 
network={ 
    #要连接的SSID 
    ssid="example" 
    #如果不需要加密就写key_mgmt=NONE 
    #key_mgmt=NONE 
    #如果需要加密就写这行密码 
    psk="12345678" 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

 【修改ap模式的配置】 将以下配置写到配置文件hostapd.conf 

interface=wlan0 
driver=hdf wifi 
ctrl_interface=udp 
ssid=testap 
hw_mode=g 
channel=1 
ignore_broadcast_ssid=0 
#下面是wpa2-psk类型加密的配置 
#如果不需要加密可以删除 
auth_algs=1 
wpa=2 
wpa_passphrase=12345678 
rsn_pairwise=CCMP 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

 【使用方法】

将wpa_supplicant、wpa_supplicant.conf、hostapd.conf拷贝到单板中(sdcard目录)

启动sta的命令:

./sdcard/wpa_supplicant -i wlan0 -c /sdcard/wpa_supplicant.conf 
  • 1.

启动ap的命令:

./sdcard/hostapd -i wlan0 /sdcard/hostapd.conf 
  • 1.

【WIFI设备检测】 进入OHOS界面后,输入ifconfig,检查wlan0网口是否加载正常,加载成功标识如下:

OHOS # ifconfig

wlan0 ip:0.0.0.0 netmask:0.0.0.0 gateway:0.0.0.0

HWaddr 0a:11:31:aa:7e:1a MTU:1500 Stop Link UP

lo ip:127.0.0.1 netmask:255.0.0.0 gateway:127.0.0.1

ip6: ::1/64

HWaddr 00 MTU:16436 Running Link UP

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com/#zz

 

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2021-01-26 14:27:21

鸿蒙HarmonyOS应用

2021-03-16 09:49:16

鸿蒙HarmonyOS应用

2021-02-02 15:52:17

鸿蒙HarmonyOS应用开发

2021-01-13 14:00:24

鸿蒙hi3518开发

2020-11-03 11:39:22

wifi小车

2020-10-30 09:41:44

鸿蒙Hi3861WiFi小车

2021-07-05 14:29:28

鸿蒙HarmonyOS应用

2020-10-16 09:50:37

Hi3861WiFi热点

2021-03-29 15:36:46

鸿蒙HarmonyOS应用

2021-04-09 09:45:21

鸿蒙HarmonyOS应用

2021-07-12 09:50:39

鸿蒙HarmonyOS应用

2020-10-23 08:31:15

Nodejs-Ipc设计实现

2021-04-26 15:19:02

鸿蒙HarmonyOS应用

2020-11-02 11:56:57

鸿蒙 WiFi操作

2020-11-06 10:15:16

HiBurn

2021-02-06 13:28:21

鸿蒙HarmonyOS应用开发

2020-12-15 11:57:49

Hi3861 HarmonyOS开发板

2020-10-14 09:37:03

HiBurn鸿蒙.bin文件

2020-11-18 11:56:06

鸿蒙Hi3861

2022-05-16 11:17:01

应用开发JSJAVA
点赞
收藏

51CTO技术栈公众号