news 2026/4/18 20:53:21

鸿蒙 IoT 开发:基于 Hi3861 开发板,30 行代码实现“碰一碰”自动配网

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
鸿蒙 IoT 开发:基于 Hi3861 开发板,30 行代码实现“碰一碰”自动配网

📡 前言:从“繁琐”到“无感”

做过 ESP32 或 STM32 联网开发的都知道,写一个稳定的 SoftAP 配网网页需要几百行代码。
但在鸿蒙生态中,配网被封装成了系统级服务。
我们利用NAN (Neighbor Awareness Networking)通道,可以让手机发现设备的时间缩短到毫秒级。

硬件准备:

  1. Hi3861 开发板(润和 BearPi-HM Nano 或类似)。
  2. NFC 标签贴纸(NTAG213/215/216 均可,成本不到 1 元)。
  3. 华为/荣耀手机(支持 NFC,系统 HarmonyOS 2.0+)。

🧬 一、 原理揭秘:碰一碰到底发生了什么?

“碰一碰”本质上是一个NFC 触发 + 蓝牙/WiFi 通道传输的过程。

交互流程图 (Mermaid):

1. 触碰标签
2. 读取数据 (包含 ProductID + MAC)
3. 弹窗拉起原子化服务/配网卡片
4. 扫描周边设备 (NAN/SoftAP)
5. 握手确认
6. 发送当前 WiFi 账号密码
7. 联网成功

用户手机 (NFC On)

NFC 标签 (贴在设备上)

手机端配网服务

Hi3861 开发板

路由器


💻 二、 软件端:30 行代码开启配网模式

在 Hi3861 的固件代码中,我们不需要手写 Socket 监听,只需要调用鸿蒙提供的WiFi Starter Kit

app_demo_netcfg.c(假设的文件名) 中:

#include"wifi_connect.h"#include"nfc_configure.h"// 核心任务入口staticvoidNetCfgTask(void){// 1. 初始化 WiFi 驱动WifiDeviceConfig config={0};// 2. 启动配网服务 (这是鸿蒙特有的 Nano 配网接口)// 这一行代码会自动开启 SoftAP 和 NAN 监听,等待手机发送密码printf("开启碰一碰配网模式...\n");// NET_CFG_NAN_MODE: 极速配网模式if(StartNetCfg(NET_CFG_NAN_MODE,&config)==0){printf("配网成功! SSID: %s, Password: %s\n",config.ssid,config.preSharedKey);// 3. 拿到密码后,连接路由器WifiConnect(config.ssid,config.preSharedKey);}else{printf("配网超时或失败\n");}}// 鸿蒙任务注册标准写法staticvoidNetCfgEntry(void){osThreadAttr_tattr;attr.name="NetCfgTask";attr.attr_bits=0U;attr.cb_mem=NULL;attr.cb_size=0U;attr.stack_mem=NULL;attr.stack_size=10240;// 堆栈大小attr.priority=osPriorityNormal;if(osThreadNew((osThreadFunc_t)NetCfgTask,NULL,&attr)==NULL){printf("创建任务失败\n");}}APP_FEATURE_INIT(NetCfgEntry);

解析:核心真的只有StartNetCfg这一行。它内部封装了复杂的 802.11 帧监听、EAPOL 握手和数据解密逻辑。开发者拿到的直接就是解密后的 WiFi 账号密码。


🏷️ 三、 硬件端:NFC 标签写入数据

代码写好了,烧录进板子。但这时候你拿手机碰板子是没反应的,因为手机不知道要连谁。
你需要把设备的身份信息写入 NFC 标签。

NFC 数据格式规范 (应用编排服务格式):

你需要下载一个 NFC 读写 App (如“NFC Tools”),写入一条URI 记录

code: SN:123456789 // 设备序列号 (自定义) &1:1 // 版本号 &2:A1B2C3D4E5F6 // 你的 Hi3861 MAC 地址 (必须真实) &3:1A2B // Product ID (在华为后台申请,测试可用默认) &4:1 // 交互模式

关键点:

  • MAC 地址:必须与 Hi3861 实际的 MAC 一致,手机通过这个地址在空中“抓”设备。
  • Product ID:决定了手机弹窗显示什么图标和名称(是台灯还是风扇)。

🚀 四、 联调实战

  1. 烧录固件:将代码编译烧录至 Hi3861,复位,串口打印显示开启碰一碰配网模式...
  2. 贴标签:将写入好数据的 NFC 标签贴在开发板天线附近。
  3. 见证奇迹
  • 手机解锁,开启 NFC 和 WiFi。
  • 手机背部触碰标签。
  • 手机底部瞬间弹出卡片:“发现未配置的网络设备,是否连接?”
  • 点击“连接”,几秒后,串口打印:配网成功! SSID: MyHome...

⚠️ 五、 避坑指南

  1. MAC 地址大小写:NFC 标签里的 MAC 地址通常要求大写且无冒号(如A0B1C2...),写错了手机搜不到设备。
  2. NAN vs SoftAPNET_CFG_NAN_MODE只有华为/荣耀手机支持,速度极快。如果为了兼容其他安卓手机,可以使用NET_CFG_SOFTAP_MODE,但体验会降级为传统的 AP 配网。
  3. 频段问题:Hi3861 只支持 2.4G WiFi。如果你的手机连的是 5G WiFi,鸿蒙系统通常会自动把 2.4G 的密码发过去(如果是双频合一路由器),但也可能导致配网失败。

🎯 总结

通过 Hi3861 + HarmonyOS,我们把原本需要几分钟的配网过程压缩到了3 秒
这不仅是代码的简化,更是“原子化服务”理念的体现。

对于 IoT 开发者来说,掌握“碰一碰”能力,是让你的硬件产品接入鸿蒙生态的第一张门票

Next Step:
配网成功后,Hi3861 已经连上了互联网。尝试接入华为IoTDA (物联网平台),结合 MQTT 协议,在手机 App 上远程点亮开发板上的那颗 LED 灯吧!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 19:22:26

HY-MT1.5部署常见错误汇总:新手避坑实战指南(附解决方案)

HY-MT1.5部署常见错误汇总:新手避坑实战指南(附解决方案) 混元翻译大模型HY-MT1.5是腾讯开源的新一代高性能翻译模型,专为多语言互译场景设计。该模型系列包含两个核心版本:参数量为18亿的HY-MT1.5-1.8B和70亿的HY-MT…

作者头像 李华
网站建设 2026/4/18 18:41:13

多语言AI助手开发:HY-MT1.5集成微信客服部署实战

多语言AI助手开发:HY-MT1.5集成微信客服部署实战 随着全球化业务的不断扩展,企业对多语言实时沟通能力的需求日益增长。尤其在跨境电商、国际客服和跨文化协作场景中,高质量、低延迟的翻译服务已成为核心基础设施之一。腾讯近期开源的混元翻…

作者头像 李华
网站建设 2026/4/17 7:05:21

9.3 磁悬浮系统调试与故障排除:起浮调试、PID参数现场整定、常见振荡问题分析与解决

9.3 系统调试与故障排除:起浮调试、PID参数现场整定、常见振荡问题分析与解决 磁悬浮轴承系统的调试是将理论设计、仿真模型和硬件平台转化为稳定可靠运行设备的决定性环节。这一过程是理论与实践的交汇点,要求工程师不仅深刻理解系统原理,还需具备敏锐的观察力、系统化的思…

作者头像 李华
网站建设 2026/4/18 18:54:13

HY-MT1.5-7B推理速度优化:TensorRT加速部署完整指南

HY-MT1.5-7B推理速度优化:TensorRT加速部署完整指南 1. 背景与技术挑战 随着多语言交流需求的快速增长,高质量、低延迟的翻译模型成为智能应用的核心组件。腾讯开源的混元翻译大模型 HY-MT1.5 系列,包含 HY-MT1.5-1.8B 和 HY-MT1.5-7B 两个版…

作者头像 李华
网站建设 2026/4/17 20:42:48

2026年NLP落地趋势一文详解:开源RaNER模型+WebUI部署实战

2026年NLP落地趋势一文详解:开源RaNER模型WebUI部署实战 随着自然语言处理(NLP)技术的持续演进,命名实体识别(Named Entity Recognition, NER)正从实验室走向真实业务场景。在金融、政务、媒体、智能客服等…

作者头像 李华
网站建设 2026/4/18 6:02:27

HY-MT1.5如何支持方言翻译?上下文学习部署实战指南

HY-MT1.5如何支持方言翻译?上下文学习部署实战指南 1. 引言:腾讯开源的混元翻译大模型HY-MT1.5 随着全球化进程加速,跨语言沟通需求日益增长,传统翻译模型在面对多语言互译、混合语种表达、方言变体处理等复杂场景时逐渐暴露出局…

作者头像 李华