🚲 共享单车锁控
嵌入式实战
📘 30章 · 从入门到进阶
01
项目全景与硬件选型
共享单车锁控系统架构解析 · 核心芯片选型 (STM32/ESP32) · 电机驱动与蓝牙模块
02
开发环境搭建
Keil MDK / Arduino IDE 安装配置 · STM32CubeMX 初始化 · J-Link/ST-Link 连接
03
GPIO 与按键控制
GPIO 模式配置 · 按键消抖 (硬件+软件) · 外部中断唤醒
04
PWM 与电机驱动
PWM 原理与定时器配置 · 直流减速电机 (L9110S/H桥) · 占空比与转速控制
05
UART 串口通信
UART 协议基础 · 蓝牙模块 (HC-05/HC-08) AT 指令 · 串口 DMA 收发
06
I2C 与传感器
I2C 总线协议 · 加速度计 MPU6050 姿态检测 · 震动唤醒与关锁检测
07
ADC 与电量监测
ADC 原理与 STM32 配置 · 锂电池分压采集 · 低电量报警与保护
08
定时器与 RTC
SysTick 滴答定时器 · 通用定时器精确延时 · RTC 实时时钟与时间戳
09
Flash 与 EEPROM 存储
片内 Flash 读写 · 外部 EEPROM (AT24C02) · 掉电保存机制
10
蓝牙 BLE 通信基础
BLE 协议栈简介 · 广播与扫描 · Service 与 Characteristic
11
蓝牙配网与绑定
手机 App 配对流程 · UUID 自定义服务 · 配对密码与安全校验
12
电机锁控逻辑
开锁指令解析执行 · 关锁到位检测 (霍尔/电流) · 堵转保护与超时复位
13
低功耗设计
STM32 睡眠/停止/待机 · 蓝牙功耗管理 · 定时与事件唤醒
14
看门狗与异常处理
独立看门狗 IWDG · 窗口看门狗 WWDG · 死机自动复位
15
OTA 远程升级
Bootloader 设计 · 蓝牙分包传输 · Flash 分区与 CRC32 校验
16
状态机与业务逻辑
有限状态机 FSM · 锁控状态迁移 (待机/开锁/骑行/关锁) · 事件驱动
17
数据协议设计
自定义应用层协议 (帧头/命令/长度/数据/校验) · JSON vs 二进制 · 解析组包
18
日志与调试
串口打印日志 (printf 重定向) · 日志等级 · RTT 与 SEGGER 工具
19
RTOS 基础与任务管理
FreeRTOS 移植配置 · 任务创建与优先级 · 消息队列与信号量
20
RTOS 在锁控中的应用
蓝牙任务 · 电机控制任务 · 电量监测 · 低功耗任务协同
21
安全机制
加密通信 AES-128 · 防破解固件加密 · 物理防拆检测 (防拆开关+陀螺仪)
22
生产测试与校准
产线测试流程 · 电机行程校准 · 蓝牙 RSSI 测试
23
故障诊断与容错
故障码定义 (电机堵死/蓝牙断连/电量低) · 自动重连 · 故障上报
24
手机 App 端开发要点
Android/iOS 蓝牙 API · 扫描连接 · 指令发送与回调
25
云平台对接
MQTT 接入 (阿里云 IoT/OneNET) · 设备影子 · 远程开锁指令
26
整机联调与压力测试
多车并发连接 · 蓝牙距离穿透测试 · 连续开关锁寿命测试
27
EMC 与可靠性设计
电源滤波 TVS · PCB 布局 (电机驱动隔离) · 静电防护 ESD
28
固件版本管理与发布
Git 版本控制 · CHANGELOG · 固件签名与发布流程
29
项目文档与交付
硬件原理图 BOM · 软件架构文档 · 测试报告与用户手册
30
总结与进阶
项目复盘与坑点 · 单车锁→智能门锁/共享充电宝 · 行业趋势与职业建议