圣诞节小礼包 :-)轻量系统/小型系统自动连接WiFi热点 原创 精华

发布于 2021-12-24 17:06
浏览
3收藏

【本文正在参与优质创作者激励】

1. 轻量系统

轻量系统自动连接wifi热点,我在《Hi3861_WiFi IoT工程:WiFi自动连接》一文中已经做了详细说明,附件“wifilink_for_wifiiot.rar”是重新整理后的源代码,大家可以将它放到自己的工程中,在代码中修改:

static char* ssid = "OHOS_TEST";  //Your SSID, HI_WIFI_MAX_SSID_LEN 32 Byte
static char* pswd = "123456789";  //Your PSWD, HI_WIFI_MAX_KEY_LEN  64 Byte

编译运行就可以了。我本地运行的log如下:

[wifilink] WifiLinkTask Begin:
[wifilink] WifiLink Begin: fgWifiConnected[F]
[wifilink] WifiLink End.   fgWifiConnected[T]
+NOTICE:SCANFINISH
+NOTICE:CONNECTED
[wifilink] CheckWifiState fgWifiConnected[T]: IP[0.0.0.0]/GW[0.0.0.0]
[wifilink] CheckWifiState fgWifiConnected[T]: IP[192.168.1.108]/GW[192.168.1.1]
+PING:
[wifilink] os_shell_ping(www.baidu.com) ret = 0
[wifilink] WifiLinkTask End.

[0]Reply from 14.215.177.38:time=9ms TTL=54
[1]Reply from 14.215.177.38:time=10ms TTL=54
[2]Reply from 14.215.177.38:time=27ms TTL=54
[3]Reply from 14.215.177.38:time=14ms TTL=54
4 packets transmitted, 4 received, 0 loss, rtt min/avg/max = 9/15/27 ms

OK

2. 小型系统

这是我的即将出版的书《鸿蒙系统学习笔记》的一个示例程序(基于LTS3.0分支),源代码暂时先不公布,但是可执行程序以及使用说明,可以先放出来,请大家试用和提出修改意见。
附件“wifilink_for_small.rar”包含了四个文件:

wifilink
├── BUILD.gn
├── wifilink_liteos_a
├── wifilink_linux
└── wifilink.conf

2.1 BUILD.gn

编译脚本,会把可执行程序和conf文件分别拷贝到对应目录下。
你需要把这里的编译目标添加到系统编译中去。
比如,把这个压缩包解压到 //applications/sample/camera/communication/ 目录下,
2.1.1 打开//vendor/hisilicon/hispark_taurus(_linux)/config.json文件,"applications"下增加"camera_sample_communication"组件,

      {
        "subsystem": "applications",
        "components": [
          { "component": "camera_sample_communication", "features":[] },
          { "component": "camera_sample_app", "features":[] },
          { "component": "camera_screensaver_app", "features":[] }
        ]
      },

2.1.2 打开 //applications/sample/camera/communication/BUILD.gn 增加 wifilink feature:

lite_component("sample") {
    features = [
      "wifilink:wifilink",
    ]
}

2.2 wifilink.conf

这是WiFi热点的配置信息,

#FixedIP=192.168.1.10
#PingWho=192.168.1.100
country=GB
ctrl_interface=udp
network={
    ssid="OHOS_TEST"
    psk="123456789"
}

6/7两行,是你要连接的热点信息,根据实际情况修改即可。
1/2两行,是Linux内核小型系统才用得着的,这里加"#",是作为wpa_supplicant配置文件的注释加进来的,wpa_supplicant会忽略这两行,但我的wifilink_linux程序会读取并使用它们。
FixedIP 是指定分配哪个IP给Hi3516平台,自行修改,分配固定IP,是因为还不知道怎么配置自动获取IP T_T!!
PingWho 是指定平台自动连上WiFi热点后,自动去ping一下那个IP看通不通,这个可以不管,或者配一个同网段的设备IP即可。

2.3 wifilink

可执行程序,默认会拷贝到/bin/目录下,系统启动起来之后,你可以执行

./bin/wifilink &

让它到后台运行即可,运行起来后你可以执行 ifconfig 去查看 wlan0 的信息。
你也可以配置 wifilink 开机自动运行,去自动连接你在 wifilink.conf 中配置的热点,操作步骤如下:
打开:

//vendor/hisilicon/hispark_taurus/init_configs/init_liteos_a_3516dv300.cfg
//vendor/hisilicon/hispark_taurus_linux/init_configs/init_linux_3516dv300_openharmony_debug.cfg

在 init 的 cmds 增加一句

            "name" : "init",
            "cmds" : [
                ......
                "start wifilink",
                ......
            ]

在 services 列表增加 wifilink 服务的配置:

    "services" : [{
            ......
            "name" : "wifilink",
            "path" : ["/bin/wifilink", "16"],
            "uid" : 0,
            "gid" : 0,
            "once" : 0,
            "importance" : 0,
            "caps" : []
        }, {
            ......

保存,重新编译和烧录即可。
注意,如果出现启动失败的情况,可以将"16"这个参数稍微调大到 17/18/19 试试看,如果还不行,请反馈给我。

3.标准系统

【还没适配】

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
wifilink_for_wifiiot.rar 2.77K 13次下载
wifilink_for_small.rar 5.5K 10次下载
已于2022-1-6 14:14:25修改
9
收藏 3
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐