Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

IoT 设备工具(IoT Device Tooling)

向导第 1 步「领域」的第二个选项。挑了这个,后面的模块、方案、参数 都会按 IoT 设备的口径过滤 —— 跟车控、家庭数据中心、边缘 AI 都不重叠。

覆盖范围:ESP32 系芯片上的传感器集线器、网关、面板、开发探针、 总线分析仪、家庭自动化端点,以及围绕它们的 Home Assistant / 原生 MQTT / Zigbee2MQTT / Matter / 独立本地设备生态。

明确不包括车 / 机控制 —— 那条线归 载具控制系统, 因为车的安全模型(电机断电、失控保护)和 IoT 完全不一样。

一个核心原则

IoT 的对手是「无声的数据丢失」,不是「肉眼可见的崩溃」。

车飞起来摔下来,你立刻看见。IoT 不一样:一台传感器在 Wi-Fi 重启 期间丢了 3 小时数据,没人会注意 —— 直到一个月后翻账单 / 翻图, 才发现某段时间是空的。

所以这个域的向导里有一个车控向导没有的轴:数据行为 (Data Behavior)。每个方案要声明 5 个字段:

字段在问什么
retention本地存多久 / 多少条(RAM 环形 / Flash 环形 / 外置 Flash / SD)
cache_on_disconnect断网时怎么办(直接丢 / 重连重放 / 聚合统计 / 带时间戳排队)
dedup怎么去抖动(阈值变化 / 固定间隔 / 两者)
rate_limit上报节流(none / 1Hz / 0.1Hz / 0.01Hz / 仅事件)
power_loss_behavior掉电怎么办(volatile / persist_state / persist_queue / persist_both)

默认值偏向「不丢」一侧 —— replay_on_reconnectpersist_statethreshold_change,而不是 dropvolatilenone。探针类 (probe_tool)是例外:本地查看、用户自己就是消费者,允许 (none, drop, volatile)

三轴模型

车控的三条逻辑链,在 IoT 这里换成了三个正交的选择轴:

在问什么数量
Category(品类)这个设备为了什么而存在27 种,跨 6 个家族
Network Profile(网络剖面)它怎么联网 / 拓扑长什么样17 种预设
MCU Role(角色)MCU 在拓扑里扮演什么5 种

这三个轴在向导里就是第 2 / 3 / 4 步(车控对应的是 FormFactor / Topology / Architecture)。挑完 Category 之后,某些「品类锁死了 NetworkProfile / Role」的情况下会自动跳两步(例如选了 lorawan_gateway,Profile 自动定为 LoRaWAN,Role 自动定为 gateway_bridge)—— 但 Back 一步随时可以回去改。

27 个 Category(品类) ÷ 6 个家族

家族数量都装些什么
Sensing(传感)7sensor_hub / env_sampler / presence_detector / energy_monitor / air_quality_station / water_leak_sensor / soil_moisture_sensor
Actuation(执行)4actuator_controller / status_notifier / lock_controller / irrigation_valve_bank
Bridging(桥接)5mqtt_bridge / ble_scanner_proxy / zigbee_thread_gateway / lorawan_gateway / industrial_bus_bridge
Tooling(工具)4bus_analyzer / sigrok_probe / uart_debug_probe / esp_prog_replacement
Presentation(展示)3dashboard_panel / alarm_panel / indicator_bar
Specialty(特殊)4thread_zigbee_endpoint / esp_now_peer / data_logger / industrial_io_bank

向导会按你选的家族把后面的 NetworkProfile 候选过滤一遍 —— 例如选 bus_analyzer 之后,只剩下 4 个 Wi-Fi 类剖面(包含 wifi_captive_local), Zigbee / Thread / LoRaWAN 这些根本不会出现。

17 个 Network Profile(网络剖面)

按连接类型分,过滤后大致是这五组:

剖面
Wi-Fi 系wifi_ha_native(ESPHome 原生 API)、wifi_mqtt_starwifi_esphome_apiwifi_captive_local(纯本地 AP)
BLE 系ble_gatt_standaloneble_mesh_distributedble_scanner_proxy_uplink
802.15.4 系zigbee_leaf / zigbee_coordinator / thread_leaf / thread_border_router(C6 独占)、matter_over_wifi / matter_over_thread
专网 / 远距esp_now_p2p(免路由器)、lorawan_endnode(SX1276/1262)
有线wired_rs485_modbuswired_can_bus

每个剖面预先绑了一个默认链(uplink / downlink / HA 发布), 向导在你挑完之后会把这个三元组填进方案,你可以在「参数」步骤里覆盖。

C6 = 802.15.4 的唯一选项。 想做 Zigbee 协调器 / Thread border router / Matter-over-Thread 的方案,芯片自动锁 ESP32-C6,这是 硬件决定的(只有 C6 带 802.15.4 射频)。

5 个 MCU 角色

车控有 7 个角色(因为有 TX / RX 这种成对的链路);IoT 因为板间协同更少, 压缩成 5 个:

角色它干什么典型电源
sensor_leaf采样 → 去重 → 上行 → 睡。单向遥测。电池(锂 / AA / 纽扣 / 太阳能)
aggregator_hub本地 I²C / SPI / BLE 多点扇入,一个出口,断网时缓存。市电 / PoE
gateway_bridge协议翻译:Zigbee↔MQTT、BLE↔Wi-Fi、RS485↔MQTT、LoRaWAN↔TCP。无状态。市电 / PoE
probe_tool开发者面对的仪器,USB 供电,只走本地数据通路。usb_only
panel_hmi用户面对的显示 / 输入(LCD / OLED / 键盘 / 报警)。市电 / PoE

27 个方案的形状

完整目录在 iot-device-tooling-dag-v2.md §6 (私有仓,仅 reference)。这里挑几个有代表性的,看「Category + Network Profile + Role」是怎么凑出一个方案的:

方案CategoryNetworkProfileRole一句话
sensor_hub_solutionsensor_hubwifi_ha_nativeaggregator_hubI²C / SPI 多传感器集线器,ESPHome 原生 API
presence_mmwave_solutionpresence_detectorwifi_ha_nativesensor_leafmmWave 存在感应(LD2410 这类)
energy_ct_clamp_solutionenergy_monitorwifi_mqtt_starsensor_leafCT 钳形电表,Flash 缓存 + 聚合统计
water_leak_solutionwater_leak_sensorble_gatt_standalonesensor_leafBLE 漏水报警,IP67 户外,AA 电池
soil_moisture_solutionsoil_moisture_sensorlorawan_endnodesensor_leaf太阳能 + LoRaWAN,0.01Hz 上报
mqtt_gateway_bridge_solutionmqtt_bridgewifi_mqtt_stargateway_bridgeMQTT 网关,RAM 环形缓存 + 重放
zigbee_thread_gateway_solutionzigbee_thread_gatewayzigbee_coordinatorgateway_bridgeZigbee 协调器(C6)
sigrok_logic_analyzer_solutionsigrok_probewifi_captive_localprobe_toolSUMP / OLS 协议,USB 供电
alarm_keypad_solutionalarm_panelwifi_ha_nativepanel_hmiHA alarm_control_panel 实体 + 键盘
esp_now_sensor_solutionesp_now_peeresp_now_p2psensor_leaf纽扣电池 + ESP-NOW,无路由器

向导里这个领域长什么样

内容备注
1领域 = IoT Device Tooling共用步骤
2Category(品类)27 选 1,先选 6 个家族再选品类
3Network Profile(网络剖面)17 选 1,按 Category 过滤后通常剩 3–8 个
4MCU Role(角色)5 选 1,按 Profile 过滤
5Device选芯片(D0WD / C6 / S3),如上面 Profile 已锁定 C6 则跳
6Module选模组,模组只剩 1 个时跳
7Solution候选基本已收敛到 1–3 个
8Variant(变种)同方案下的硬件子配置,例如继电器 4 / 8 通道,LCD / OLED / e-ink
9Parameters全枚举,无手填(I²C 地址、Modbus slave ID、LoRaWAN DevEUI 等)
10Review + Build共用步骤

车控向导是 7 步,IoT 是 10 步 —— 多出来的是 Category(2)、 NetworkProfile(3)、Variant(8)。这些步骤都支持自动跳过 + Back 回去改:某些选择从前一步推得出唯一答案时,直接前进两步, 但 Back 按钮永远能回到被跳过的步骤手动覆盖,顶部 banner 提示 「我们替你选了 X — 要改吗?」。

覆盖什么

  • 车 / 机 / 飞行器控制 —— 去 载具控制系统。 尤其要躲开的反模式是「用 IoT 的 actuator_controller 来开车」 —— 数据行为模型完全不一样(IoT 怕丢数据,车怕失控保护没生效)。
  • OTA 密钥管理 / 安全启动密钥流转 —— 在另一份安全文档里。向导 只负责生成固件骨架,不负责签名链。
  • RF 合规(FCC / CE / SRRC) —— 各国法规自己处理。向导给你 power profile(mains_jack / battery_li / solar_harvest 等), 不给你天线证书。
  • 微文案 / i18n 字符串 —— 由 copy.ts 管,不在领域定义里。

另见