第一章 项目全景与硬件选型:共享单车锁控系统架构解析
各位同学,大家好。我是你们这门课的老朋友。今天咱们正式开篇,聊聊共享单车锁控系统的整体架构和硬件选型。
说实话,我第一次接触这个项目时,心里也犯过嘀咕:一个车锁而已,能有多复杂?但真正深入进去才发现,这里面的门道还真不少。你想想看,一个每天风吹日晒、被成千上万人折腾的锁,既要省电,又要稳定,还得扛得住各种暴力破坏——这可不是随便拿个开发板就能搞定的。
1.1 系统架构:从云端到锁端
先看整体架构。共享单车锁控系统,说白了就是一个典型的物联网终端。它由三部分组成:
- 云端平台:负责用户认证、计费、车辆管理
- 手机App:用户交互界面,扫码开锁
- 车锁终端:咱们今天的主角,执行开锁/关锁动作
车锁终端内部又分几个模块:主控芯片、通信模块(蓝牙/蜂窝)、电机驱动模块、电源管理模块、传感器模块。嗯,这里要注意,每个模块的选择都会直接影响整机的成本和可靠性。
核心要点:车锁终端是系统的执行层,也是故障率最高的环节。我见过太多因为选型不当导致的返工案例——比如蓝牙连接不稳定、电机堵转烧毁、电池续航不足。所以,硬件选型这一步,咱们得走稳了。
1.2 核心芯片选型:STM32 vs ESP32
这是大家最关心的问题。主控芯片选什么?我个人的习惯是,先看需求,再定方案。
共享单车锁控系统对主控芯片的要求:
- 低功耗:待机电流要控制在微安级
- 实时性:响应开锁指令要快,不能让人等
- 外设接口:至少需要UART(蓝牙)、GPIO(电机控制)、ADC(电池检测)
- 成本:批量采购价最好在10元以内
咱们对比一下两款主流芯片:
| 参数 | STM32F103C8T6 | ESP32-WROOM-32 |
|---|---|---|
| 内核 | Cortex-M3 | Xtensa LX6双核 |
| 主频 | 72MHz | 240MHz |
| SRAM | 20KB | 520KB |
| Flash | 64KB | 4MB |
| 蓝牙 | 无(需外挂) | 内置BLE+WiFi |
| 待机功耗 | 约2μA | 约5μA(深度睡眠) |
| 批量价格 | 约6元 | 约12元 |
看到这个表格,你可能会问:ESP32功能这么强,为什么还要用STM32?
原因很简单:功耗和成本。我在项目中遇到过这样的情况——用ESP32做原型开发特别快,蓝牙WiFi全集成,调试也方便。但到了量产阶段,客户要求待机电流必须低于3μA,ESP32的深度睡眠模式虽然标称5μA,实际测试往往在8-10μA,而且唤醒时间不稳定。最后我们换回了STM32+独立蓝牙模块的方案。
我的建议:
- 如果你做的是共享单车这种对功耗和成本极度敏感的产品,选STM32。外挂一个蓝牙模块,总成本控制在15元以内。
- 如果你做的是智能锁(比如门锁、柜锁),对功耗要求没那么苛刻,ESP32更省事,开发周期短。
1.3 电机驱动模块选型
车锁的核心执行机构是电机。共享单车锁通常使用直流减速电机,配合蜗轮蜗杆机构,实现锁舌的伸缩。
电机驱动芯片的选择,我总结了几条经验:
- 驱动电流:电机堵转电流通常在200-500mA,驱动芯片要能承受至少1A的峰值电流
- H桥结构:必须支持正反转控制
- 保护功能:过流保护、过热保护,这两样缺一不可
- 封装:SOP-8或QFN小封装,方便PCB布局
常用的驱动芯片有:
- L9110S:便宜(不到1元),驱动电流800mA,适合小电机
- DRV8837:TI的芯片,驱动电流1.5A,带过流保护,我比较推荐
- TB6612FNG:东芝的,驱动能力强(3.2A),但封装大一些
我个人习惯用DRV8837。为什么?因为它的电流检测功能特别实用。你可以通过检测电机电流来判断锁舌是否到位——当锁舌顶到限位时,电机堵转,电流会突然上升。这个信号可以直接用来停止电机,省掉一个限位开关。
避坑指南:我曾经在一个项目中用了L9110S,结果连续烧了好几片。后来发现是电机堵转时电流超过了800mA,芯片直接冒烟。所以,选驱动芯片时一定要留足余量,至少按电机堵转电流的2倍来选。
1.4 蓝牙模块选型
共享单车锁的通信方式,目前主流是蓝牙BLE。为什么不用WiFi?因为WiFi功耗高,而且需要配网,用户体验差。NB-IoT?成本高,而且有些地下车库信号不好。
蓝牙模块选型要点:
- BLE 4.2以上:支持蓝牙Mesh,方便组网
- 发射功率:至少+4dBm,保证10米以上稳定连接
- 接收灵敏度:-95dBm以下
- 功耗:广播电流低于100μA,连接状态低于1mA
- AT指令控制:方便MCU通过UART下发指令
推荐几款:
- HC-08:经典款,便宜(8元左右),稳定,但体积稍大
- JDY-23:国产,体积小,功耗低,支持BLE 5.0
- nRF52832模块:Nordic方案,性能最强,但价格贵(20元以上)
嗯,这里要注意一个细节:蓝牙模块的天线设计。很多同学买现成模块直接焊上去,结果发现通信距离只有两三米。为什么?因为天线周围有金属遮挡,或者PCB走线影响了天线阻抗。我建议,如果条件允许,选带陶瓷天线的模块,或者用IPEX接口外接天线。
最终推荐方案(共享单车锁):
- 主控:STM32F103C8T6
- 蓝牙:JDY-23(BLE 5.0,低功耗)
- 电机驱动:DRV8837
- 电池:18650锂电池(2600mAh)
- 电源管理:TP4056充电+HT7533稳压
整套BOM成本控制在25元以内,待机功耗约5μA,理论续航2年以上。
好了,第一章的内容就到这里。硬件选型是基础,基础打牢了,后面写代码、调电路才能顺风顺水。下一章咱们开始搭建开发环境,手把手教你把第一个程序跑起来。
记住一句话:选型不是选最贵的,也不是选最便宜的,而是选最合适的。这个道理,做硬件的人都懂。