从固件到云端是一条链,每一环都有明确的兜底,而不是「大概能收到」。
浏览器里 2 秒刷新,按级别着色,可按设备与时间范围回看,不用再插线。
WiFi 断了先落 littlefs,恢复后按批次序号补传;服务端靠 seq 去重,重发多少次都只入库一条。
批次跳号会被记成缺失区间。补齐是「无损」还是「有洞」,页面上有客观指标,不靠猜。
下达目标后 AI 生成诊断计划,你能看到它将要执行的每一条命令;敏感命令必须你点头才下发。
命中自动抓取上下文快照,冷却时间与每小时上限可调,不再靠人熬夜盯串口。
新固件从后台上传,设备自行拉取升级,几十台也是一次操作。
确定性优先。AI 只出现在头尾两端(生成计划、生成文档),中间的执行是纯代码,命令只能来自模板白名单。写操作会弹确认卡,出厂复位与刷写类命令在协议层直接拒绝。
第一次配网大约十分钟。之后这块板子就自己待在机柜里干活。
TX / RX / GND 三根线接目标板 UART,支持 115200 到 3 Mbps。
设备经 WSS 443 连到 broker,批次 50 行或 200 ms 触发一次上报,QoS 1 且带 LWT 遗嘱。
服务端先入队再串行落库,MQTT 回调里不碰磁盘,避免 PUBACK 超时引发的重发雪崩。
浏览器实时看流,或让 AI 基于证据包生成诊断文档 —— 每条结论都要标出依据是哪一行日志。
对外开放的接口都在这一页上,固件与服务端共用同一份契约。
| 主控 | ESP32-C3 | RISC-V 单核,WiFi 2.4 GHz |
|---|---|---|
| 抓取接口 | UART | 115200 ~ 3,000,000 bps |
| 上行通道 | MQTT over WSS | 443 出站,QoS 1;1883 端口不对公网开放 |
| 在线判定 | status/{device_id} + LWT | retain=1,掉电由 broker 代发 offline |
| 批次策略 | 50 行 / 200 ms | 单批硬上限 512 行,超出截断并计数 |
| 单行上限 | 512 B | 超长部分固件侧截断 |
| 级别 | E / W / D / I | ERROR、ERR、F→E,WARN→W,DEBUG→D,其余 I |
| 离线缓存 | RAM → littlefs | 重连退避 1→2→5→10→30 s,期间不丢日志 |
| 设备标识 | SW-XXXXXX | 由 MAC 后 6 位生成,出厂写入 NVS,终身不变 |
| 固件升级 | OTA | 后台上传,设备从 HTTPS 拉取 |
首批小批量供货中。硬件与云端服务分开计价,批量与私有化单独报价 —— 把场景和数量发过来,我们回一个能落地的方案。
先拿一台跑通自己的场景,确认链路和数据都符合预期。
多台设备批量上线,固件统一维护,成员分权限协作。
整套服务部署到你自己的服务器或内网,数据不出域。
不用。设备走 MQTT over WSS 的 443 出站,和普通 HTTPS 一样。1883 端口不对公网开放。
不会。设备侧按批次序号补传,服务端以 seq 去重,同一批重发多少次都只入库一条;跳号会被记成缺失区间,可在页面上查。
用 MB 计量而不是行数:一行的计费字节 = 内容字节 + 254 B 固定开销。账户日流量 100 MB(≈33.4 万行),设备保留 40 MB / 7 天,账户总存储 300 MB,设备数上限 20 台。
115200 到 3,000,000 bps。高波特率下建议缩短线长,并确认目标板 UART 引脚未被复用。
命令只能来自模板白名单,写操作(如重载驱动)会弹确认卡需你点头,出厂复位与刷写类命令在协议层直接拒绝。每条 AI 结论都要标出依据的日志行。
可以。整套服务支持私有化部署到你自己的机器或内网,交付 compose 编排、部署脚本与运维文档。