暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

鸿蒙入门:Hi3861 WiFi操作,热点连接

51CTO技术栈 2020-10-21
3635

本文为连志安老师鸿蒙系统系列入门教程之《Hi3861 WiFi 操作,热点连接》。

图片来自包图网

👇更多精彩内容就在今晚 8 点的公开课👇

👆扫码立即报名👆

之前我们使用 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 成功连接上热点。

WiFi API 接口说明

Hi3861 提供了非常多的 WiFi 相关 API,主要文件是 hi_wifi_api.h,我们这里只列举最重要的几个 API:

01

开启 STA

int hi_wifi_sta_start(char *ifname, int *len);

02

停止 STA

int hi_wifi_sta_stop(void);

03

扫描附件的热点

int hi_wifi_sta_scan(void);

04

连接热点

int hi_wifi_sta_connect(hi_wifi_assoc_request *req);

其中 hi_wifi_assoc_request *req 结构的定义如下:

这里需要注意的是,通常加密方式是:HI_WIFI_SECURITY_WPA2PSK。

例如我家的热点的连接方式的代码实现如下:
👇更多精彩内容就在今晚 8 点的公开课👇

👆扫码立即报名👆





HarmonyOS 2.0 设备开发入门(手册+代码)免费下载

国庆期间连志安老师将自己学习到鸿蒙系统相关的知识整理成文档,这里分享给大家。主要是 hi3861 芯片。后续还会持续更新~~目前手册的内容主要如下:

“阅读原文”,即可免费下载

文章转载自51CTO技术栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论