第一章 项目全景与硬件选型:共享单车锁控系统架构解析

各位同学,大家好。我是你们这门课的老朋友。今天咱们正式开篇,聊聊共享单车锁控系统的整体架构和硬件选型。

说实话,我第一次接触这个项目时,心里也犯过嘀咕:一个车锁而已,能有多复杂?但真正深入进去才发现,这里面的门道还真不少。你想想看,一个每天风吹日晒、被成千上万人折腾的锁,既要省电,又要稳定,还得扛得住各种暴力破坏——这可不是随便拿个开发板就能搞定的。

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年以上。

好了,第一章的内容就到这里。硬件选型是基础,基础打牢了,后面写代码、调电路才能顺风顺水。下一章咱们开始搭建开发环境,手把手教你把第一个程序跑起来。

记住一句话:选型不是选最贵的,也不是选最便宜的,而是选最合适的。这个道理,做硬件的人都懂。