1. 项目概述:用.NET实现Improv Wi-Fi蓝牙双模配网
去年在开发智能家居设备时,最让我头疼的就是Wi-Fi配网问题。传统AP配网需要用户手动连接热点,SmartConfig又存在兼容性问题,直到发现了Improv Wi-Fi这个开源协议。它通过蓝牙通道传输Wi-Fi凭证,配合标准化的状态指示灯反馈,让配网体验流畅得像苹果的HomeKit。这次我们就用.NET 6的跨平台特性,实现一个支持Windows/macOS/Linux/嵌入式设备的配网解决方案。
核心解决三个痛点:
- 消除AP模式切换带来的网络中断
- 避免SmartConfig对手机芯片组的依赖
- 提供可视化的配网进度反馈(通过LED/屏幕)
典型应用场景:
- 智能插座首次上电配置
- 工业设备现场快速联网
- 医疗设备的安全凭证分发
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 协议层拆解
Improv Wi-Fi协议栈分为两个通道:
-
蓝牙GATT服务(传输层)
- 自定义UUID:00467768-6228-2272-4663-277478268000
- 包含3个特征:
- 状态标识(当前步骤)
- 错误代码(0x00为正常)
- RPC指令通道(SSID/密码传输)
-
Wi-Fi状态机(业务层)
mermaid复制stateDiagram [*] --> 未配置 未配置 -- 收到凭证 --> 正在连接 正在连接 -- 成功 --> 已配置 正在连接 -- 失败 --> 错误状态
2.2 .NET跨平台方案选型
使用MAUI+插件化架构实现多端兼容:
csharp复制// 共享核心逻辑
public interface IImprovService
{
Task ProvisionAsync(string ssid, string passphrase);
event EventHandler<ImprovState> StateChanged;
}
// 平台特定实现
#if ANDROID
internal class AndroidImprovService : IImprovService
{
// 使
