OpenHarmony开源社区
直播中

红旧衫

9年用户 744经验值
擅长:可编程逻辑 电源/新能源 制造/封装 EDA/IC设计
私信 关注
[经验]

基于Pegasus Wi-Fi IoT智能家居套件的路由器热点功能开发样例

路由器热点功能开发样例

样例简介

此样例演示如何在Pegasus Wi-Fi IoT智能家居套件上开发wifi_AP模式。

工程版本

  • 系统版本/API版本:OpenHarmony 3.0 release
  • IDE版本:DevEco Device Tool Release 3.0.0.401

快速上手

准备硬件环境

  • 预装windows系统的PC机
  • Hi3861V100开发板套件

准备开发环境

开发环境安装配置参照文档:DevEco Device Tool 环境搭建

准备工程

本用例采DevEco Device Tool工具进行开发,当配置完开发环境后,我们可以在IDE上进行工程的配置下载。

  • 打开DevEco Device Tool,连接远程linux服务器:DevEco Device Tool 环境搭建
  • 点击左下角DevEco插件图标,然后点击左边框出现的主页,弹出主页界面,主页中选择新建项目,如下图:

main_config

  • 配置下载工程

config_download

如上图所示,填写对应样例工程的名称,选择对应的样例组件和样例工程存放路径后,点击创建即可进行样例工程的下载。下载界面如下:

download

当左下角显示正在下载OpenHarmony镜像时,耐心等待下载完成即可。

main_config

准备工具链

  • 在Projects中,点击Settings按钮,进入配置工程界面。
  • 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击SetUp按钮,自动安装所需工具链。
  • 如果出现安装pip组件失败,可参考修改Python源的方法进行修改,完成尝试重新安装。

工具链自动安装完成后如下图所示。

config_toolchain2

样例代码下载完成后,DevEco Device

Tool会重新要求连接远程服务器,输入密码连接后会进入对应的代码编辑界面,此时点击左下角DevEco插件图标,选择PROJECT

TASKS可以查看到对应的样例工程,点击build选项进行编译,并可在终端查看对应的编译结果。

build_ok

固件生成在对应工程目录的out/hispark_taurus/electronic_board/目录下。

firm

烧录/安装

编译完成后可以通过DevEco Device Tool进行烧录,在烧录前需要做一些烧录的配置:

配置准备

在配置烧录前需要先查看DevEco Device Tool是否可以正常识别串口。

  • 点击左边栏"REMOTE DEVELOPMENT",找到 并点击” Local PC “ 选项。

  • 查看 Local PC右边图标

    如若图标为zhengfang_iocn,则代表DevEco Device Tool已连接本地,可以正常识别串口。

    如若图标为sanjiao_icon,则代表DevEco Device Tool未连接本地,不能识别串口,此时需要点击该绿色图标进行连接,连接成功后图标会变为zhengfang_iocn

check_local_pc

  • 点击主页,在主页选择对应工程,点击配置工程进入到配置页面。
查询串口

在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。

config_serail

如果对应的串口异常,请根据Hi3861V100开发板串口驱动安装安装USB转串口的驱动程序。

配置串口

在QUICK ACCESS > DevEco Home > Projects中,点击Settings打开工程配置界面。

config_serail1

在“hi3861”页签,设置烧录选项,包括upload_port、upload_protocol和upload_partitions。

  • upload_port:选择已查询的串口号。
  • upload_protocol:选择烧录协议,选择“hiburn-serial”。
  • upload_partitions:选择待烧录的文件,默认选择hi3861_app。

config_serail2

烧录
  • 所有的配置都修改完成后,在工程配置页签的顶部,点击Save进行保存。点击Open打开工程文件,然后在“PROJECT TASKS”中,点击hi3861下的Upload按钮,启动烧录。

burn

  • 启动烧录后,显示如下提示信息时,请在15秒内,按下开发板上的RST按钮重启开发板。

continueburn

  • 重新上电后,界面提示如下信息时,表示烧录成功。

burnsucess

更多烧录细节可以参考Hi3861V100开发板烧录

  • 部分运行结果

result

Wifi STA API

使用OpenHarmony原始WiFI API接口进行编程,AP模式需要使用原始接口以及一些DHCP客户端接口。

OpenHarmony WiFi AP模式相关的API接口文件路径

foundation/communication/interfaces/kits/wifi_lite/wifiservice/wifi_hotspot_config.h

foundation/communication/interfaces/kits/wifi_lite/wifiservice/wifi_hotspot.h

所使用的API接口有:

API 接口说明
WifiErrorCode EnableHotspot(void); 打开Wifi AP 模式
WifiErrorCode DisableHotspot(void); 关闭Wifi AP 模式
WifiErrorCode SetHotspotConfig(const HotspotConfig* config); 设置当前AP热点的配置参数
WifiErrorCode GetHotspotConfig(HotspotConfig* result); 获取当前AP热点的配置参数
int IsHotspotActive(void); 查询AP是否已经开启
WifiErrorCode GetStationList(StationInfo* result, unsigned int* size); 获取接入的设备列表
int GetSignalLevel(int rssi, int band); 获取信号强度等级
WifiErrorCode SetBand(int band); 设置当前频段
WifiErrorCode GetBand(int* result); 获取当前频段

Hi3861 SDK的DHCP客户端接口:

API 描述
netifapi_netif_find 按名称查找网络接口
netifapi_dhcp_start 启动DHCP客户端
netifapi_dhcp_stop 停止DHCP客户端

参考资料

回帖(2)

回头太晚

2022-8-4 16:09:21
好文,感谢分享
举报

洒下墨色

2022-8-9 10:38:05
干货满满
举报

更多回帖

发帖
×
20
完善资料,
赚取积分