ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

基于STM32的物联网智能停车系统设计(RC522刷卡出入库 + 自动计费 + 闸道控制)

基于STM32的物联网智能停车系统设计(RC522刷卡出入库 + 自动计费 + 闸道控制) 基于STM32的物联网智能停车系统设计RC522刷卡出入库 自动计费 闸道控制一、系统功能总览二、核心模块选型对比2.1 主控芯片STM32F103C8T6 vs LPC17682.2 射频刷卡模块RC522 vs ST25R3911B2.3 时钟芯片DS1302 vs PCF85632.4 显示模块OLED12864 vs LCD16022.5 无线模块ESP8266 vs nRF24L012.7 电机驱动ULN2003 vs DRV8825三、系统接线总表四、系统软件设计4.1 主程序流程4.2 RC522 刷卡识别流程4.3 计时计费流程4.4 步进电机闸道控制流程4.5 ESP8266 数据同步流程五、系统实现与测试5.1 自动控制功能测试5.2 无线通信功能测试六、总结基于STM32的物联网智能停车系统设计RC522刷卡出入库 自动计费 闸道控制小区停车场的传统管理模式全靠人工发卡收费出入口排长队、账目对不上、车位找不到都是老大难。本文带来一套基于 STM32F103C8T6 的物联网智能停车系统车主在出入口刷一下 IC 卡闸道自动抬起、时间自动记录出库时系统按停车时长自动算费剩余车位数、出入库记录全部通过 ESP8266 同步到手机 APP。整套方案刷卡识别、计时计费、闸道控制、无线上云一气呵成是单片机综合应用非常典型的练手项目。一、系统功能总览功能模块具体说明刷卡识别RC522 读取 IC 卡唯一卡号识别车主身份入库管理首次刷卡记录入库时间开闸放行出库计费再次刷卡读取时间差按时长自动计算停车费用闸道控制ULN2003 驱动步进电机正转开闸、反转关闸实时时钟DS1302 提供精准计时断电后纽扣电池维持走时信息显示OLED 显示卡片信息、出入库时间、停车费用车位同步剩余车位数、出入库记录经 ESP8266 实时上传 APP二、核心模块选型对比2.1 主控芯片STM32F103C8T6 vs LPC1768对比项方案一STM32F103C8T6方案二LPC1768内核Cortex-M3 72MHzCortex-M3 100MHzFlash/RAM64KB / 20KB512KB / 64KB片上外设SPI、USART、定时器齐全资源更多但本系统用不上生态资料例程丰富、教程极多资料相对较少价格约 10 元约 35 元选择方案一STM32F103C8T6。系统所需的 SPI、USART、GPIO 数量不多C8T6 资源绰绰有余且开发资料最全、成本最低是中小型控制系统的稳妥之选。2.2 射频刷卡模块RC522 vs ST25R3911B对比项方案一RC522方案二ST25R3911B协议ISO14443-AISO14443-A/B、NFC 多协议接口SPI驱动成熟SPI/I2C读卡距离0~5cm0~5cm读写功能支持扇区读写与密钥加密同样支持且安全性更高价格约 8 元约 45 元选择方案一RC522。停车场身份识别只需读取 M1 卡的唯一序列号RC522 的功能完全覆盖SPI 驱动代码公开成熟价格优势明显。2.3 时钟芯片DS1302 vs PCF8563对比项方案一DS1302方案二PCF8563接口三线同步串行I2C备用电源VBAT 外接纽扣电池同样支持计时精度±2s/天晶振决定精度相当价格约 3 元约 5 元选择方案一DS1302。计费业务以秒级时间差为依据DS1302 的精度足够三线接口代码简单、芯片价格低、后备电池方案成熟够用且可靠。2.4 显示模块OLED12864 vs LCD1602对比项方案一OLED12864方案二LCD1602分辨率128×64 点阵16×2 字符显示内容中文、曲线、多行信息仅两行字符无中文接口I2C 两线并口 6~11 线对比度自发光无需调节需电位器调对比度选择方案一OLED12864。出入库时间、车牌/卡号、费用金额需要多行信息同时显示OLED 点阵屏可以自定义中文字库显示内容直观I2C 接口还节省了 GPIO。2.5 无线模块ESP8266 vs nRF24L01对比项方案一ESP8266方案二nRF24L01联网方式WiFi 入网直连云平台2.4G 私有协议需网关覆盖范围随路由器覆盖空旷百米级上云能力TCP 透传即插即用无法独立上云价格约 10 元约 8 元选择方案一ESP8266-01S。停车记录与剩余车位必须同步到手机端数据要经云平台转发ESP8266 独立即可完成入网上云nRF24L01 还需额外部署接收网关整体成本反升。2.7 电机驱动ULN2003 vs DRV8825对比项方案一ULN2003 28BYJ-48方案二DRV8825适配电机四相五线步进电机双极步进/直流电机驱动方式达林顿管阵列灌电流驱动H 桥支持细分控制方式四路 IO 按拍序翻转脉冲方向信号转矩低速大转矩适合闸杆缓动需配套电机成本高价格约 5 元含电机常见套餐约 15 元不含电机选择方案一ULN2003。闸道模型使用 28BYJ-48 步进电机即可带动ULN2003 四路输入直接由 GPIO 按四相八拍时序驱动控制逻辑直观、成本最低。三、系统接线总表模块引脚连接 STM32 引脚备注RC522SDANSSPA4片选与 3.3V 间接 4.7kΩ 上拉RC522SCKPA5SPI1 时钟RC522MISOPA6主入从出RC522MOSIPA7主出从入RC522RSTPB0模块复位DS1302SCLKPB1时钟线DS1302IOPB2双向数据线DS1302CEPB10片选使能VBAT 接纽扣电池OLED12864SCL/SDAPB6/PB7I2C 接口SSD1306 驱动ESP8266TXD/RXDPA3/PA2USART2波特率 115200交叉相连ESP8266RSTPA8复位控制ULN2003IN1~IN4PB12/PB13/PB14/PB15四相八拍驱动 28BYJ-48 步进电机接线说明RC522 与 DS1302 均为 3.3V 供电与 STM32 电平直接兼容28BYJ-48 电机经 ULN2003 驱动板独立供电避免电机电流冲击主控电源。四、系统软件设计4.1 主程序流程系统上电后初始化各外设并从 DS1302 读取当前时间随后进入主循环轮询刷卡事件RC522 检测到卡片 → 读出卡号并在本地记录中查询 → 未查到则记录卡号与入库时间、开闸、剩余车位减一 → 查到记录则计算停车时长与费用、关闸、剩余车位加一 → OLED 刷新显示并将出入库信息经 ESP8266 同步 APP。主程序骨架如下int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); System_Init(); // GPIO/SPI1/USART2/I2C/定时器初始化 OLED_Init(); OLED_ShowString(0, 0, Smart Parking); DS1302_Init(); DS1302_Read_Time(); // 读取当前时间 ESP8266_Rst(); ESP8266_Net_Config(); // 入网 透传 TCP 连接 while (1) { if (RC522_Request() CARD_FOUND) // 寻到卡 { RC522_Read_UID(card_uid); // 读取卡号防冲撞选卡 if (!Find_Record(card_uid)) // 库中无记录 → 入库 { In_Time Get_Current_Time(); // DS1302 记录入库时间 Add_Record(card_uid, In_Time); Motor_Forward(); // 正转开闸 Park_Count--; OLED_ShowIn(card_uid, In_Time); } else // 库中有记录 → 出库 { Out_Time Get_Current_Time(); fee Calc_Fee(In_Time, Out_Time); // 按时长计费 Del_Record(card_uid); Motor_Reverse(); // 反转后复位关闸 Park_Count; OLED_ShowOut(Out_Time, fee); } ESP8266_Sync(card_uid, Park_Count, fee); // 同步 APP } delay_ms(100); } }4.2 RC522 刷卡识别流程RC522 遵循 ISO14443-A 协议一次完整读卡分六步① 天线寻卡Request获得卡类型② 防冲撞Anticollision多张卡同场时提取唯一序列号③ 选卡Select④ 密钥验证Authentication两级密钥加密防数据被篡改⑤ 读写扇区数据⑥ CRC 校验保证传输正确。本系统用防冲撞得到的序列号作为车主唯一标识配合 EEPROM 中的密钥验证防止复制卡冒用。4.3 计时计费流程DS1302 以三线时序读写time_buf数组年月日时分秒出入库各取一次时间快照费用按分钟差 × 单价计算不足一分钟按一分钟计。OLED 出库页面同步显示入库时间、出库时间与应付金额交易信息一并上传云端留档。4.4 步进电机闸道控制流程28BYJ-48 为四相八拍工作方式正转按 A→AB→B→BC→C→CD→D→DA 的拍序依次给四相通电反转按逆序执行停止时四相全部置低const u8 Phase[8] {0x01, 0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x09}; // 八拍拍序 void Motor_Forward(void) // 开闸正转 512 拍约一圈 { for (u16 i 0; i 512; i) for (u8 j 0; j 8; j) { GPIO_Write_Phase(Phase[j]); delay_ms(2); // 拍间延时决定转速 } Motor_Stop(); } void Motor_Reverse(void) // 关闸反序执行 { for (u16 i 0; i 512; i) for (u8 j 0; j 8; j) { GPIO_Write_Phase(Phase[7 - j]); delay_ms(2); } Motor_Stop(); }拍间延时约 2ms闸杆起落平缓无冲击。4.5 ESP8266 数据同步流程模块按标准 AT 序列配置复位 500ms →ATCWMODE1→ATCWJAP入网 →ATCIPMUX0→ATCIPMODE1透传 →ATCIPSEND建立数据通道。出入库事件触发时系统把卡号、剩余车位、出入库时间与费用打包上传APP 端也可下发校时指令用网络时间校准 DS1302保证计费基准精准。五、系统实现与测试系统硬件联调后围绕自动控制与无线通信两大功能展开测试。5.1 自动控制功能测试测试项操作系统动作结果刷卡识别入口处刷 IC 卡OLED 显示卡号识别 1s通过闸道开闭刷卡入库/出库电机正转开闸、放行后关闭通过计时计费停放 35 分钟后刷卡出库OLED 显示时长与费用数值准确通过车位统计连续多车出入库剩余车位数随动增减无误通过5.2 无线通信功能测试APP 端可实时查看剩余车位数与最新出入库记录下发校时指令后OLED 时间在下一刷新周期内与网络时间对齐。多次连续刷卡压力测试中数据上传无丢包、无串扰通信链路稳定。六、总结本文实现了一套完整的物联网智能停车系统以 STM32F103C8T6 为核心RC522 完成秒级刷卡识别DS1302 支撑精准计时计费ULN2003 驱动步进电机完成闸道起落ESP8266 将车位与交易数据实时同步云端。测试表明系统刷卡识别、自动计费、闸道控制与无线通信各环节运行稳定具备实际部署的雏形。后续可扩展 LED 车位引导屏、车牌识别摄像头或微信小程序支付把一张卡管到底升级为无感通行项目延展空间充足非常适合作为物联网方向的综合实践课题。七、资料内容完整工程资料原理图、PCB、代码、元件清单八、资料获取方式
返回列表