4、网络接入层:Wi-Fi配网与蜂窝网络附着

设备要联网,第一步就是接入网络。这一步看似简单,但坑特别多。我做了这么多年物联网,见过太多设备卡在配网环节,用户折腾半天连不上,直接退货。

这一章,咱们就聊聊设备怎么“找到”网络,并且“加入”网络。主要分两条线:Wi-Fi配网和蜂窝网络附着。

核心观点:配网不是简单的“输密码”,而是一场设备、手机、路由器之间的三方握手。蜂窝网络附着则更像一次“入网注册”,设备要向基站证明自己的身份。

网络接入层核心流程 设备入网 Wi-Fi 配网 蜂窝网络附着 SmartConfig SoftAP 蓝牙辅助配网 NB-IoT LTE-M 💡 选择依据 • Wi-Fi配网:适用于智能家居、消费类产品,依赖手机和路由器。 • 蜂窝网络:适用于广域物联网、车联网、资产追踪,需要SIM卡和运营商支持。 • 混合方案:高端设备同时支持Wi-Fi和蜂窝,根据场景自动切换。

4.1 Wi-Fi配网:三种主流方案

Wi-Fi设备没有键盘和屏幕,怎么告诉它路由器的SSID和密码?这就是配网要解决的问题。目前主流方案有三种,各有优劣。

4.1.1 SmartConfig(也称一键配网)

SmartConfig的原理很巧妙。手机把SSID和密码编码到UDP广播包的长度或内容里。设备处于混杂监听模式,抓取这些数据包,从中解码出网络信息。

说白了,就是手机在“喊”,设备在“听”。

我的经验:SmartConfig对路由器兼容性要求高。有些路由器会过滤广播包,或者加密方式特殊,导致配网失败。我建议在代码里加一个超时重试机制,比如30秒没收到就重启监听。

典型流程如下:

  1. 设备上电,进入配网模式,开启混杂监听。
  2. 手机App连接上路由器(2.4G频段)。
  3. 手机发送编码后的UDP广播包。
  4. 设备抓包解码,获取SSID和密码。
  5. 设备主动连接路由器,配网完成。

注意:SmartConfig只支持2.4G频段。5G频段的数据包编码方式不同,很多芯片不支持。如果你发现设备死活连不上,先检查手机是不是连的5G Wi-Fi。

4.1.2 SoftAP模式

这个方案更直接。设备自己变成一个热点(AP),手机连上这个热点,然后通过Socket或HTTP把Wi-Fi信息发给设备。

你想想看,设备先当“小老板”,手机来“面试”,手机把“公司地址”(路由器信息)告诉设备,设备再去“上班”。

代码示例(ESP32伪代码):

// 1. 启动SoftAP
WiFi.softAP("IoT_Device_Config", "12345678");

// 2. 启动HTTP服务器
server.on("/config", HTTP_POST, [](AsyncWebServerRequest *request){
    String ssid = request->arg("ssid");
    String password = request->arg("password");
    // 保存并尝试连接
    WiFi.begin(ssid.c_str(), password.c_str());
});

// 3. 手机连上设备热点,访问配置页面

优缺点对比:SoftAP兼容性最好,几乎所有手机都能连热点。但用户体验差,需要手动切换Wi-Fi连接。我一般只在调试或企业级设备上用这个方案。

4.1.3 蓝牙辅助配网

这是目前最流行的方案。设备同时集成Wi-Fi和BLE(低功耗蓝牙)。手机通过BLE把Wi-Fi信息传给设备,设备收到后自动连接路由器。

蓝牙负责“传话”,Wi-Fi负责“上网”。分工明确。

方案 优点 缺点 适用场景
SmartConfig 操作简单,无需切换网络 兼容性差,仅支持2.4G 智能灯泡、插座
SoftAP 兼容性最好 需要手动切换Wi-Fi 工业设备、网关
蓝牙辅助 体验好,支持双向通信 需要BLE芯片,成本略高 智能音箱、门锁

避坑指南:我曾经在一个项目里用蓝牙辅助配网,结果发现某些手机蓝牙扫描不到设备。后来排查是蓝牙广播间隔设置太短,导致手机来不及响应。把广播间隔调到100ms以上就解决了。

4.2 蜂窝网络附着流程

蜂窝网络设备(NB-IoT、LTE-M)不需要配网,它们插上SIM卡就能用。但“能用”背后是一套复杂的附着流程。

说白了,设备要向基站说:“我是谁?我要上网。”基站要验证身份,分配资源,然后说:“好,你上吧。”

4.2.1 NB-IoT附着流程

NB-IoT是为低功耗、小数据量场景设计的。附着流程比传统4G简化了不少,但核心步骤还在。

  1. 小区搜索:设备扫描频点,找到最强的小区信号。
  2. 随机接入:设备发送前导码,申请上行资源。
  3. RRC连接建立:设备和基站建立无线资源控制连接。
  4. 附着请求:设备发送附着请求,包含IMSI(国际移动用户识别码)。
  5. 身份验证:核心网验证SIM卡合法性。
  6. EPS承载建立:分配IP地址,建立数据通道。

关键点:NB-IoT的附着过程可能持续5-15秒。对于电池供电的设备,我建议不要频繁附着。一次附着后,尽量保持连接,或者使用eDRX(扩展不连续接收)来省电。

4.2.2 LTE-M附着流程

LTE-M比NB-IoT更快,支持移动性和语音。附着流程和标准LTE基本一致,但增加了对低功耗特性的支持。

我记得有个项目做车载追踪器,用的LTE-M。设备在高速移动时附着成功率明显高于NB-IoT。这是因为LTE-M支持更完善的切换机制。

特性 NB-IoT LTE-M
带宽 200 kHz 1.4 MHz
峰值速率 ~250 kbps ~1 Mbps
移动性 不支持 支持
附着时间 5-15秒 2-5秒
典型场景 水表、烟感 追踪器、可穿戴

注意:蜂窝网络附着失败的原因很多:信号弱、SIM卡欠费、运营商限制、核心网配置错误。我建议在设备端实现一个“附着状态机”,记录失败原因和重试次数。连续失败3次后,进入深度休眠,等30分钟再试。

4.3 本章小结

网络接入层是物联网设备的第一道关卡。Wi-Fi设备要解决“怎么告诉它密码”的问题,蜂窝设备要解决“怎么注册到网络”的问题。

选哪种方案,取决于你的产品形态、成本预算和用户体验要求。没有银弹,只有权衡。

我的建议:如果你做消费类产品,优先考虑蓝牙辅助配网。如果你做工业类产品,SoftAP更稳妥。蜂窝设备的话,NB-IoT适合静态场景,LTE-M适合移动场景。