NEPU · mill

智能磨坊

基于 STM32F103 + G780s 的智能磨坊控制与维护系统,覆盖 Modbus 现场采集、A/B 固件升级、远程 MQTT 通信和 Flutter 移动端监控。

Notes

该项目下的笔记

2026-06-29

从 RT-Thread 迁移到 Zephyr:API 对照与实战

Mill 控制器固件从 RT-Thread 迁移到 Zephyr 的完整记录:线程/互斥锁/消息队列/信号量/看门狗 API 对照表、K_THREAD_DEFINE 静态线程、HAL 到 Zephyr 驱动迁移、业务模块命名统一、初始化顺序调整。

zephyrrt-threadmigration
2026-06-28

Zephyr NVS:配置持久化与 HMAC 鉴权

Mill 项目用 Zephyr NVS 子系统持久化配置镜像和诊断快照:storage_partition 4KB 分区、配置 CRC16 校验、V1/V2 诊断快照兼容加载、HMAC-SHA256 鉴权(PSA Crypto + cJSON)、设备密钥从 WSL 私有配置注入。

zephyrnvspsa-crypto
2026-06-27

Zephyr LittleFS VFS:从裸 lfs API 到 VFS 集成

Mill 项目 Zephyr 侧的 LittleFS 集成:SPI NOR DTS 节点、FS_LITTLEFS_DECLARE_DEFAULT_CONFIG、VFS API 替代裸 lfs API、K_MSGQ_DEFINE 异步日志队列、K_THREAD_DEFINE 静态线程、K_SEM_DEFINE 初始化同步、按天日志轮转与云端上报。

zephyrlittlefsvfs
2026-06-26

Zephyr 原生 Modbus:主站与 RAW 模式从站

Mill 项目用 Zephyr 原生 Modbus 库替代 nanomodbus:DTS modbus-serial 节点配置主站(USART2 + de-gpios=PD7)、RAW ADU 模式从站(USART3 三协议复用)、user_callbacks 桥接 DR154 寄存器、BusService 互斥锁串行化多线程总线访问。

zephyrmodbusrtu
2026-06-25

SMP-over-MQTT:Zephyr 自定义 smp_transport 传输

在 Zephyr 中注册自定义 smp_transport,通过 USART3 + RS485 + DR154 DTU 传输 SMP CBOR 帧。包含 COBS 编解码、USART3 三协议时分复用状态机路由器、RS485 DE 控制时序、JSON 帧工作队列延迟解析、MCUmgr OTA 状态钩子。

zephyrsmpmcumgr
2026-06-24

MCUboot 集成:A/B 槽位与镜像确认

Zephyr sysbuild 双镜像构建、imgtool 自动签名、Flash 分区布局(mcuboot 64KB + slot0/slot1 各 220KB)、boot_write_img_confirmed 确认机制、防降级、MCUmgr 镜像管理配置、OTA 状态钩子。

mcubootzephyrota
2026-06-23

Zephyr WSL 跨系统构建:Windows 写码、WSL 构建、Windows 烧录

Mill 项目的 Zephyr 构建工作流:Windows 侧 git push → WSL 侧 git pull + west sysbuild → 构建产物复制回 Windows → J-Link Commander 烧录。包含 build-config.psd1 配置、私有密钥注入、生产构建分离、日志记录。

zephyrwslpowershell
2026-06-22

Zephyr 自定义 Board:STM32F103ZE 的 DTS 配置

在 Zephyr 中为 STM32F103ZE 自定义 Board:文件结构、DTS 时钟树(HSE 8MHz × PLL9 = 72MHz)、USART1/2/3 三串口分工、RS485 DE 引脚、TIM2/3/4/8 流量计、SPI2 外接 NM25Q128 16MB NOR Flash,以及 Flash 分区布局(mcuboot/slot0/slot1/scratch/storage)。

zephyrdtsstm32
2026-06-21

Inno Setup 安装包:.NET Desktop Runtime 检测与静默安装

OTA 桌面工具的 Inno Setup 安装包工程:.NET Desktop Runtime 10 注册表+文件系统双重检测、静默安装+修复回退双策略、20秒轮询等待、退出码 0/3010/1641 处理、[Code] 段 Pascal Script 实践。

inno-setupdotnetwindows
2026-06-20

Docker 小内存 VPS 部署:三服务编排与 MySQL 调优

Mill 系统的 Docker Compose 部署:MySQL 8.4 小内存调优(64M buffer pool)、Mosquitto 2 TLS 8883、Node.js API 内网通信,使用 Docker profiles 分离部署组合,环境变量强制校验敏感配置。

dockerdocker-composemysql
2026-06-19

Nginx 反向代理:API + SCADA + WebSocket + 登录限速

Mill 系统 Nginx 配置解析:SCADA 静态服务 auth_basic 保护与 SPA 回退、静态资源 immutable 缓存、API 反向代理、登录限速 5r/m 防暴力破解、WebSocket /ws/live 长连接代理、Certbot SSL 证书。

nginxreverse-proxywebsocket
2026-06-18

micro-ecc 椭圆曲线固件签名:STM32F1 上的 ECDSA-P256 实现

在 STM32F1 上集成 micro-ecc 库实现 ECDSA-P256 固件签名验证:签名清单 50 字节结构设计、设备端公钥嵌入、SHA256+uECC_verify 验证流程、.NET 侧签名工具的三子命令、与 imgtool 工具链的配合。

micro-eccecdsafirmware-signing
2026-06-17

Flutter 依赖注入与路由架构:Provider DI 树 + GoRouter 状态保持

Mill 客户端的 Flutter 架构:MultiProvider 装配完整DI树、.value vs create 生命周期区分、Mock模式切换、远程配置引导启动、GoRouter StatefulShellRoute 五Tab状态保持、登录态路由重评估、生命周期管理。

flutterdartprovider
2026-06-16

MySQL 数据库设计:10张表的工业物联网 Schema

STM32 Mill 控制系统的数据库设计:程序化建表、JSON列+索引列混合策略、组态布局draft/published双份设计、版本快照回滚、操作审计三索引,覆盖遥测、告警、配置、组态、审计五大领域。

mysqldatabaseschema
2026-06-15

GitHub Actions CI/CD:VPS 部署的完整流水线

两个GitHub Actions workflow覆盖后端API和前端SCADA的部署:pnpm检查、SSH密钥注入、VPS运行时备份、rsync上传、Nginx配置热重载、docker compose重建、容器健康轮询、HTTPS端到端验证。

github-actionsci-cddeploy
2026-06-14

W25Q128 + LittleFS + 异步日志:Flash 持久化全栈实现

STM32F1 外接 W25Q128 SPI Flash 的日志持久化全栈:SPI 驱动、LittleFS 块设备适配层(544B RAM)、磨损均衡、空白分区检测保护、DataLogger 按天日志轮转、LogService 异步消息队列,以及 Flash 长操作期间喂狗策略。

w25q128littlefsrt-thread
2026-06-13

SMP 升级协议:从零实现 Zephyr mcumgr 串口/MQTT 升级

在.NET侧从零实现Zephyr mcumgr的SMP协议:8字节Header、CBOR payload、COBS帧分隔、状态机帧读取器、串口与MQTT双传输路径,以及升级流程编排和踩坑记录。

smpmcumgrzephyr
2026-06-12

RT-Thread 多线程任务架构:三线程协作的工业控制器内核

STM32F1 + RT-Thread 的三线程架构设计:维护线程、采集线程、日志线程的职责拆分,互斥锁保护配置快照、邮箱上报健康标志、消息队列异步持久化日志,以及继电器规则引擎、DI去抖、现场设备故障冷却、A/B槽位升级确认等关键业务逻辑。

rt-threadstm32rtos
2026-05-19

项目改造历程:从「有人云」到自建 MQTT 平台

STM32 磨坊系统从商业物联网平台迁到自建 MQTT + API 服务器的完整历程:G780s 边缘 JSON 组包、服务端字段映射、Flutter 客户端适配,以及 18 项任务清单的推进记录。

mqttiotmigration
2026-05-18

OTA Bug 分析:Bootloader 模式下 A/B 槽位选择的陷阱

深入分析一个隐蔽的 OTA 升级 Bug:为何 Bootloader 模式下刷 App_A.bin 会"假成功"?根因在于 Bootloader 自行决定目标槽位,上位机的镜像选择并未约束写入目标。

stm32bootloaderota
2026-05-17

软件发布与代码签名:Inno Setup + Authenticode

.NET WPF 桌面应用的发布流程:dotnet publish 生成自包含程序、Inno Setup 打包安装器、静默安装 .NET Runtime、Authenticode 代码签名,以及 PowerShell 一键发布脚本。

dotnetinno-setupcode-signing
2026-05-16

FUXA 本地 SCADA 适配器:Node.js 桥接后端 API

在 Windows 本机运行 FUXA Electron 组态平台,通过 Node.js 适配器桥接 mill-api 后端,实现实时遥测标签、继电器双模控制、本地告警评估,以及一键启动脚本。

fuxascadanodejs
2026-05-15

Flutter 跨平台 CSV 导出:条件导入与三级回退

Flutter 历史传感器数据导出功能:11 字段秒级去重 CSV 生成、dart:html / dart:io 条件导入实现跨平台文件保存、Android FileProvider 授权,以及三级回退策略。

fluttercsvexport
2026-05-14

网页 SCADA:Vue3 + Konva 实时监控前端

基于 Vue 3 + TypeScript + Konva 的工业 SCADA 前端:11 种可编辑组态元件、WebSocket 实时数据驱动、大屏模式、告警面板、继电器控制,以及完整的工艺流程图布局。

vuescadakonva
2026-05-13

OTA 工具架构重构:从单体 WPF 到五层架构

.NET/WPF 桌面应用的架构演进:从单项目承载全部职责,到 Models/Protocols/Core/ViewModels/UI 五层拆分,引入 CommunityToolkit.Mvvm 和 DI 容器。

dotnetwpfmvvm
2026-05-12

KiCad 硬件设计:STM32F103ZE 控制板

使用 Python 脚本生成 KiCad PCB:STM32F103ZETx 主控、CH340C USB 转串口、双路 MAX485E RS485、AMS1117 供电,以及 100mm×100mm 双层板布局。

kicadpcbstm32
2026-05-11

Bootloader 多层校验链:从 YMODEM 到向量表的 7 层防护

STM32 Bootloader 的完整校验链路:YMODEM 单包 CRC16、状态页 CRC16、Flash 逐字节回读、整包 CRC32、整包 SHA-256、向量表合法性校验,以及 DONE 状态下的上电复核机制。

stm32bootloadercrc
2026-05-10

嵌入式诊断体系:96 个寄存器的远程排障设计

STM32 设备端的远程诊断寄存器布局:固件版本与编译时间、运行时长与上电次数、重启原因追踪、Modbus CRC 错误与 UART 异常分类统计、非法读写记录,以及升级快照。

stm32diagnosticsmodbus
2026-05-09

远程维护与参数配置体系

STM32 的远程参数维护框架:解锁口令与30秒维护窗口、配置暂存/提交/回滚机制、参数范围校验与组合约束、Flash 持久化,以及完整的 Modbus 维护指令集。

stm32modbusremote-maintenance
2026-05-08

本地升级链路:YMODEM 协议适配与 Bootloader 状态机

STM32 本地固件升级的完整链路:Modbus 维护命令触发、YMODEM-C 协议适配、Bootloader 状态机设计,以及 14 种错误码的排障指南。

stm32bootloaderymodem
2026-05-07

继电器控制与 DI 去抖:手动/自动模式

STM32 的继电器输出控制、DI 输入去抖处理、手动/自动模式切换,以及本地按键与远程控制的优先级设计。

stm32relaydi
2026-05-06

服务端架构:Mosquitto + Node API + WebSocket

智能磨坊的服务端设计:MQTT broker 订阅设备数据、Node.js API 持久化与鉴权、WebSocket 实时广播。

mqttnodejswebsocket
2026-05-05

Modbus 寄存器映射:现场主站与维护从站

STM32 双角色 Modbus 设计:USART2 主站轮询传感器,USART3 从站暴露 91 个寄存器供 G780s 和远程维护使用。

modbusrs485register-map
2026-05-04

Flutter 智能磨坊客户端:实时监控与历史回溯

com.varka.mill 的 Flutter 客户端设计,覆盖实时 WebSocket 数据、历史趋势图、告警管理和继电器远程控制。

flutterwebsocketfl-chart
2026-05-03

G780s 边缘 JSON 与 MQTT 上云

G780s 通信模块的 AT 配置、边缘 JSON 组包、MQTT over TLS 上云,以及服务端字段映射的实现。

g780smqtttls
2026-05-02

OTA 桌面工具:从本地升级到远程维护

.NET / WPF 架构的 OTA 工具设计,覆盖本地 YMODEM 升级、虚拟串口远程升级和 Modbus 维护帧生成。

dotnetwpfota
2026-05-01

A/B 双槽位固件升级:Bootloader 设计与回退机制

STM32 的 Flash 分区策略、Bootloader 升级流程、CRC32 + SHA-256 + 向量表三重校验,以及连续失败自动回退的实现细节。

stm32bootloaderfirmware-upgrade
2026-04-30

智能磨坊综述:STM32F103 工业控制与远程维护

围绕 STM32F103 + G780s 构建的智能磨坊控制与维护系统,覆盖 Modbus 现场采集、A/B 双槽位固件升级、远程 MQTT 通信和 Flutter 移动端监控。

stm32modbusg780s