《ESP32 物联网全栈实战-13》量产 Checklist

3 阅读8分钟

第 13 篇:量产 Checklist——从原型到产品,一条都不能少

原型跑通了,Demo 给老板看了。下一步:把面包板上的飞线变成能卖的产品。中间隔着十几道工序,这篇给你一个完整的 Checklist。


1. 硬件量产流程

原型验证 → 原理图设计 → PCB Layout → 打样 → 
PCBA 贴片 → 外壳设计 → 开模 → 组装 → 测试 → 包装

PCB 设计要点

检查项常见坑
天线区域净空ESP32 模块天线下方不能铺铜,否则信号-10dB
电源去耦每个 VDD 脚放 100nF + 10μF,位置靠近引脚
强电隔离220V 侧和低压侧开槽隔离,爬电距离 ≥6mm
继电器反接保护继电器线圈并联续流二极管(1N4148)
烧录接口预留 UART0 的 TX/RX/IO0/EN 测试点
ESD 保护USB 口、按键、对外接口加 TVS 管

外壳设计

方案 A:公模(淘宝买现成外壳)→ 成本 ¥2-5,适合小批量(<1000)
方案 B3D 打印 → 成本 ¥15-30,适合验证
方案 C:开模注塑 → 模具费 ¥3000-8000,单件 ¥1-2,适合大批量

建议:先公模验证市场,日销 >100 再开模。


2. WiFi 配网——三种方案齐上

产品不能写死 SSID。需要让用户方便地配网。

方案用户体验稳定性推荐度
BLE 配网★★★★★ 极好★★★★★⭐⭐⭐ 首选
SmartConfig★★★ 一般★★★ 70%成功率⭐⭐ 备选
AP 模式★★ 麻烦★★★★★⭐ 兜底方案

推荐组合:BLE 为主 + AP 模式作为兜底(长按按键 5 秒进入 AP 模式)


3. OTA 升级——必须稳定

量产设备必须支持 OTA,否则一个 Bug 就召回。

OTA 策略:
1. 双分区(ota_0 / ota_1)→ 升级失败自动回滚
2. 从服务器下载前先比对版本号
3. 校验 MD5/SHA256 → 避免下载损坏
4. 分批推送(先推 1% 设备 → 观察 → 全量)
5. 保留降级能力(旧版本固件在服务器永久存档)

4. 安全——IoT 产品的命门

2016 年 Mirai 僵尸网络感染了数百万 IoT 设备,就是因为默认密码没改。

安全措施必须/建议说明
MQTT 用户名密码✅ 必须每个设备独立密码,不要用同一个
TLS 加密✅ 必须MQTT over TLS (8883端口)
OTA 固件签名⚠️ 建议防止恶意固件刷入
关闭调试口✅ 必须量产固件关闭 UART 日志
Flash 加密⚠️ 建议防止固件被读出反编译
安全启动⚠️ 建议防止非授权固件启动
默认密码✅ 必须AP 配网模式加密码

最小安全方案(小产品够用)

// 1. MQTT 用 TLS
esp_mqtt_client_config_t mqtt_cfg = {
    .broker.address.uri = "mqtts://your-broker.com:8883",
    .broker.verification.certificate = server_cert_pem_start,
    .credentials = {
        .client_id = device_unique_id(),
        .username = device_unique_id(),
        .authentication.password = device_password(),
    },
};

// 2. 关闭调试日志
esp_log_level_set("*", ESP_LOG_NONE);  // 量产版本,关掉所有日志

// 3. AP 配网加密码
wifi_config_t ap_cfg = {
    .ap = {
        .ssid = "SmartSocket_Setup",
        .password = "setup123456",
        .max_connection = 1,
    },
};

5. 云平台——从自建到商业

方案成本适用规模
Docker 自建服务器 ¥100/月< 1000 设备
EMQX Cloud 免费版¥0< 5 设备
阿里云 IoT¥0.01/设备/月不限
腾讯云 IoT¥0.01/设备/月不限
涂鸦智能按模块收费快速出产品

建议路线:Docker 自建(验证)→ 阿里云/腾讯云 IoT(量产)


6. 量产测试——治具 + 自动化

100 台还能手动测,1000 台必须自动化。

# 产测脚本(Python)
import paho.mqtt.client as mqtt
import serial
import time

def test_device(serial_port):
    """单个设备测试"""
    ser = serial.Serial(serial_port, 115200, timeout=5)

    # 1. 上电 → 等待启动日志
    line = ser.readline().decode()
    assert "WiFi connected" in line, "WiFi 连接失败"

    # 2. 连 MQTT → 等状态上报
    client = mqtt.Client()
    client.connect("192.168.1.100", 1883)

    msg_received = False
    def on_message(client, userdata, msg):
        nonlocal msg_received
        data = json.loads(msg.payload)
        assert 200 < data["voltage"] < 250, f"电压异常: {data['voltage']}"
        msg_received = True

    client.on_message = on_message
    client.subscribe("device/test/status")
    client.loop_start()

    # 等 10 秒
    time.sleep(10)
    assert msg_received, "MQTT 数据未上报"

    return True  # PASS

7. 认证——合规才能卖

认证适用范围费用(参考)
SRRC所有带无线电的产品¥2-5 万
3C220V 市电产品(插座类)¥3-8 万
CE (出口欧盟)出口欧洲¥1-3 万
FCC (出口美国)出口美国¥1-3 万
RoHS出口欧盟¥0.3-0.5 万

对于 ESP32 产品:如果用乐鑫官方模组(ESP32-C3-MINI-1),模组本身已过 SRRC 和 FCC → 整机认证会简化很多。


8. 量产 Checklist 汇总

□ 原理图 Review(至少 2 人交叉检查)
□ PCB 天线净空区域检查
□ 强电爬电距离检查
□ EMC 预测试(传导、辐射)
□ BLE 配网 + AP 配网均测试通过
□ OTA 升级 + 自动回滚测试通过
□ 连续运行 72 小时不重启
□ 产测脚本跑通 50 台
□ 说明书 + 包装设计完成
□ 认证申请提交
□ 售后流程建立

下一篇:专栏总结——你已经是 IoT 全栈工程师了

第 13 篇:量产 Checklist——从原型到产品,一条都不能少

原型跑通了,Demo 给老板看了。下一步:把面包板上的飞线变成能卖的产品。中间隔着十几道工序,这篇给你一个完整的 Checklist。


1. 硬件量产流程

原型验证 → 原理图设计 → PCB Layout → 打样 → 
PCBA 贴片 → 外壳设计 → 开模 → 组装 → 测试 → 包装

PCB 设计要点

检查项常见坑
天线区域净空ESP32 模块天线下方不能铺铜,否则信号-10dB
电源去耦每个 VDD 脚放 100nF + 10μF,位置靠近引脚
强电隔离220V 侧和低压侧开槽隔离,爬电距离 ≥6mm
继电器反接保护继电器线圈并联续流二极管(1N4148)
烧录接口预留 UART0 的 TX/RX/IO0/EN 测试点
ESD 保护USB 口、按键、对外接口加 TVS 管

外壳设计

方案 A:公模(淘宝买现成外壳)→ 成本 ¥2-5,适合小批量(<1000)
方案 B3D 打印 → 成本 ¥15-30,适合验证
方案 C:开模注塑 → 模具费 ¥3000-8000,单件 ¥1-2,适合大批量

建议:先公模验证市场,日销 >100 再开模。


2. WiFi 配网——三种方案齐上

产品不能写死 SSID。需要让用户方便地配网。

方案用户体验稳定性推荐度
BLE 配网★★★★★ 极好★★★★★⭐⭐⭐ 首选
SmartConfig★★★ 一般★★★ 70%成功率⭐⭐ 备选
AP 模式★★ 麻烦★★★★★⭐ 兜底方案

推荐组合:BLE 为主 + AP 模式作为兜底(长按按键 5 秒进入 AP 模式)


3. OTA 升级——必须稳定

量产设备必须支持 OTA,否则一个 Bug 就召回。

OTA 策略:
1. 双分区(ota_0 / ota_1)→ 升级失败自动回滚
2. 从服务器下载前先比对版本号
3. 校验 MD5/SHA256 → 避免下载损坏
4. 分批推送(先推 1% 设备 → 观察 → 全量)
5. 保留降级能力(旧版本固件在服务器永久存档)

4. 安全——IoT 产品的命门

2016 年 Mirai 僵尸网络感染了数百万 IoT 设备,就是因为默认密码没改。

安全措施必须/建议说明
MQTT 用户名密码✅ 必须每个设备独立密码,不要用同一个
TLS 加密✅ 必须MQTT over TLS (8883端口)
OTA 固件签名⚠️ 建议防止恶意固件刷入
关闭调试口✅ 必须量产固件关闭 UART 日志
Flash 加密⚠️ 建议防止固件被读出反编译
安全启动⚠️ 建议防止非授权固件启动
默认密码✅ 必须AP 配网模式加密码

最小安全方案(小产品够用)

// 1. MQTT 用 TLS
esp_mqtt_client_config_t mqtt_cfg = {
    .broker.address.uri = "mqtts://your-broker.com:8883",
    .broker.verification.certificate = server_cert_pem_start,
    .credentials = {
        .client_id = device_unique_id(),
        .username = device_unique_id(),
        .authentication.password = device_password(),
    },
};

// 2. 关闭调试日志
esp_log_level_set("*", ESP_LOG_NONE);  // 量产版本,关掉所有日志

// 3. AP 配网加密码
wifi_config_t ap_cfg = {
    .ap = {
        .ssid = "SmartSocket_Setup",
        .password = "setup123456",
        .max_connection = 1,
    },
};

5. 云平台——从自建到商业

方案成本适用规模
Docker 自建服务器 ¥100/月< 1000 设备
EMQX Cloud 免费版¥0< 5 设备
阿里云 IoT¥0.01/设备/月不限
腾讯云 IoT¥0.01/设备/月不限
涂鸦智能按模块收费快速出产品

建议路线:Docker 自建(验证)→ 阿里云/腾讯云 IoT(量产)


6. 量产测试——治具 + 自动化

100 台还能手动测,1000 台必须自动化。

# 产测脚本(Python)
import paho.mqtt.client as mqtt
import serial
import time

def test_device(serial_port):
    """单个设备测试"""
    ser = serial.Serial(serial_port, 115200, timeout=5)

    # 1. 上电 → 等待启动日志
    line = ser.readline().decode()
    assert "WiFi connected" in line, "WiFi 连接失败"

    # 2. 连 MQTT → 等状态上报
    client = mqtt.Client()
    client.connect("192.168.1.100", 1883)

    msg_received = False
    def on_message(client, userdata, msg):
        nonlocal msg_received
        data = json.loads(msg.payload)
        assert 200 < data["voltage"] < 250, f"电压异常: {data['voltage']}"
        msg_received = True

    client.on_message = on_message
    client.subscribe("device/test/status")
    client.loop_start()

    # 等 10 秒
    time.sleep(10)
    assert msg_received, "MQTT 数据未上报"

    return True  # PASS

7. 认证——合规才能卖

认证适用范围费用(参考)
SRRC所有带无线电的产品¥2-5 万
3C220V 市电产品(插座类)¥3-8 万
CE (出口欧盟)出口欧洲¥1-3 万
FCC (出口美国)出口美国¥1-3 万
RoHS出口欧盟¥0.3-0.5 万

对于 ESP32 产品:如果用乐鑫官方模组(ESP32-C3-MINI-1),模组本身已过 SRRC 和 FCC → 整机认证会简化很多。


8. 量产 Checklist 汇总

□ 原理图 Review(至少 2 人交叉检查)
□ PCB 天线净空区域检查
□ 强电爬电距离检查
□ EMC 预测试(传导、辐射)
□ BLE 配网 + AP 配网均测试通过
□ OTA 升级 + 自动回滚测试通过
□ 连续运行 72 小时不重启
□ 产测脚本跑通 50 台
□ 说明书 + 包装设计完成
□ 认证申请提交
□ 售后流程建立

下一篇:专栏总结——你已经是 IoT 全栈工程师了