本文为连志安老师鸿蒙系统系列入门教程之《Hi3861 WiFi 操作,热点连接》。
图片来自包图网
👆扫码立即报名👆
之前我们使用 Hi3861 的时候,是使用 AT 指令连接到 WiFi 热点的。例如:
但是很多时候,我们需要实现开机后自动连接到某个热点,光靠 AT 指令不行。
Hi3861 为我们提供了 WiFi 操作的相关 API,方便我们编写代码,实现热点连接。
先直接上代码和操作演示。
跟我们最早的 hello world 代码一样,在 app 下新增业务 wifi_demo,其中 hello_world.c 为业务代码,BUILD.gn 为编译脚本。
.
└── applications
└── sample
└── wifi-iot
└── app
│── wifi_demo
│ │── wifi_demo.c
│ └── BUILD.gn
└── BUILD.gn
Wifi_demo.c 代码如下:
见附件doc\05 WiFi操作\sta_demo\sta_demo.c
Wifi_demo 目录下的 BUILD.gn 文件内容如下:
static_library("wifi_demo") {
sources = [
"wifi_demo.c"
]
include_dirs = [
"//utils/native/lite/include",
"//kernel/liteos_m/components/cmsis/2.0",
"//base/iot_hardware/interfaces/kits/wifiiot_lite",
"//vendor/hisi/hi3861/hi3861/third_party/lwip_sack/include",
"//foundation/communication/interfaces/kits/wifi_lite/wifiservice",
]
}
app 目录下的 BUILD.gn 文件内容修改如下:
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"wifi_demo:wifi_demo",
]
}
可以看到有打印扫描到的热点名称:
-
SSID: 15919500
-
SSID: Netcore_FD55A7
同时最后打印:WiFi:Connected 成功连接上热点。
Hi3861 提供了非常多的 WiFi 相关 API,主要文件是 hi_wifi_api.h,
我们这里只列举最重要的几个 API:
int hi_wifi_sta_start(char *ifname, int *len);
int hi_wifi_sta_stop(void);
int hi_wifi_sta_scan(void);
int hi_wifi_sta_connect(hi_wifi_assoc_request *req);
其中 hi_wifi_assoc_request *req 结构的定义如下:
这里需要注意的是,通常加密方式是:HI_WIFI_SECURITY_WPA2PSK。
👆扫码立即报名👆
HarmonyOS 2.0 设备开发入门(手册+代码)免费下载
国庆期间连志安老师将自己学习到鸿蒙系统相关的知识整理成文档,这里分享给大家。主要是 hi3861 芯片。后续还会持续更新~~
目前手册的内容主要如下: