基于STM32的RFID公交充值消费系统

news2024/9/22 13:43:05

1.简介

  基于RFID技术的公交卡充值消费系统,以其高效快速、安全可靠、方便快捷、易于管理和环保节能等特点,为用户带来优质的公交出行体验。通过非接触式的数据读写,该系统实现了快速充值和消费,同时采用先进的加密和防碰撞算法确保数据安全。24小时自助服务为用户提供了极大的便利性,实时跟踪和记录功能则帮助管理者进行数据分析和决策。此外,RFID公交卡减少了物理磨损,延长了使用寿命,并降低了能源消耗,具有显著的环保节能优势。这些特色使得基于RFID的公交卡充值消费系统在现代公共交通领域中具有广泛的应用前景。
  本系统设计选择以Cortex-M3为核心的STM32F103C8作为核心控制器,1.4寸显示屏幕用于扣款信息和乘车信息,设计有充值、消费两个界面。可通过按键输入充值或消费金额。选择RC522射频刷卡模块,IC卡进行模拟消费充值,通过蜂鸣器提示刷卡状态。

  整体功能展示如视频所示:

RFID公交充值消费功能展示

2.背景意义

  随着城市公共交通的快速发展,公交卡作为一种便捷的支付工具,已经广泛应用于人们的日常生活中。然而,传统的公交卡充值消费系统往往存在着操作繁琐、效率低下、安全性不足等问题[1]。为了解决这些问题,提高公交服务的效率和质量,基于RFID技术的公交卡充值消费系统应运而生。
  RFID(无线射频识别)技术作为一种先进的自动识别技术,具有非接触式、高效快速、安全可靠等优点,非常适合应用于公交卡充值消费系统中。通过引入RFID技术,可以实现对公交卡的快速识别和数据读写,从而提高充值和消费的效率,提升用户体验。
  目前,基于RFID的公交卡充值消费系统已经在一些城市的公共交通系统中得到了应用。这些系统通过采用RFID技术,实现了公交卡的快速充值和消费,提高了公交服务的效率和质量。同时,这些系统还采用了先进的加密和防碰撞算法,保证了公交卡数据的安全性。

3.方案设计

  基于RFID的公交卡充值消费系统是一种新型的IC卡消费系统。本系统采用RFID技术,非接触式数据通讯,实现充值消费功能。以单片机作为微控制器,LCD显示屏幕实现人机交互界面设计,矩阵按键实现充值消费数据输入,WIFI模块完成设备联网,实现远程数据共享。

  选择STM32F103C8T6作为主控制器,RC522为RFID射频刷卡设备,LCD屏幕完成人机交互界面设计,矩阵键盘用来输入消费或者充值金额信息,WIFI设备完成联网功能,将本地数据同步至云端,LED灯指示当前系统工作状态,蜂鸣器模块在进行充值或消费时发出提示音。系统总体框图如下所示:
在这里插入图片描述
  根据系统设计要求,系统硬件选型为主控制器为最新系统板STM32F103C8T6、射频刷卡模块RC522、4*4矩阵按键、有源蜂鸣器2.4GHz ESP8266WIFI、1.4寸TFTLCD屏幕和一个电源状态指示LED灯。整体硬件原理图设计如2-1所示:
在这里插入图片描述

4.程序设计

  本系统运行流程如下:首先接通电源,完成各个模块初始化(RC522、LCD屏幕、4*4矩阵键盘、2.4G ESP8266WIFI、蜂鸣器、LED灯),初始化LCD界面,默认显示消费界面。通过WIFI连接,将设备连接到物联网平台,至此,系统初始化完成,进入系统主体。接着可通过矩阵键盘选择消费或者充值功能,输入消费或者充值金额,确认后IC靠近RC522模块即可消费或者充值完成,蜂鸣器提示操作状态,LCD屏幕显示显示IC卡信息和剩余金额。并将本次操作数据上传至云端保存。当超过30s未进行任何操作,这屏幕背光自动熄灭,系统进入待机模式。整体运行流程如3-1所示:
在这里插入图片描述

5.功能分析

  本次设计采用了PCB电路板作为载体,PCB板即印刷电路板,从一开始的原理图绘制,元原理图库绘制,然后完成封装库绘制、PCB布局,再到最后的投板制作,元器件焊接,软件编程,硬件调试。通过PCB布局可以很好的保证硬件的设备的稳定性。整体硬件实物如图4-1所示:
在这里插入图片描述
  硬件组成部分有RFID射频模块、1.4寸LCD显示屏幕、ESP8266wifi模块、主控制器STM32F103C8T6最小系统板、有源蜂鸣器、44矩阵键盘已经LED状态指示灯。设备上电完成各个硬件初始化,LCD屏幕显示系统实时时间,支持串口时间校准,时间显示如图4-2所示:
在这里插入图片描述
  时间获取成功,则整个系统初始化完成,进入主循环。接下来可通过矩阵键盘上的A、B、C、D按键切换界面。其中按键A对应消费界面,按键B对应充值界面,按键C对余额查询界面,按键D对应日志记录查询界面,按键#则回到时间显示界面,各个界面效果如下:
在这里插入图片描述
  通过按键B进入充值界面,在充值界面可通过矩阵键盘输入充值金额,设置的充值金额范围为0~999,界面效果如下:
在这里插入图片描述
  通按键D进入日志查询界面,日志消息保存格式为”时间+卡号+操作记录”方式,单个界面最多小时4条日志信息,当日志信息超过4条则可通过
和#进行上下翻页显示,界面效果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1921579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈后置处理器之调试后置处理程序

浅谈后置处理器之调试后置处理程序 “调试后置处理程序”(Debug PostProcessor) 是一个特别的组件,它主要用于帮助测试人员深入理解测试脚本执行过程中的变量和属性状态,便于调试和故障排查。 调试后置处理程序简介 功能概述: 调试后置处…

中科亿海微亮相慕尼黑上海电子展

7月8-10日,备受瞩目的全球电子行业盛会“慕尼黑上海电子展”以空前规模启幕,汇聚了超过1600家参展企业,涵盖了从终端产品制造商到元器件供应商、组装/系统供应商、EMS、ODM/OEM、材料供应商及生产设备供应商的完整产业链。中科亿海微电子科技…

Java将Excel转为图片

1. 支持多个Sheet 2. 支持识别 换行 / 文字居中 / 文字居左 3. 支持识别 背景颜色 / 字体颜色 4. 支持识别 计算公式 原Excel表单 识别后生成的图片 下载地址 : https://download.csdn.net/download/dongyan3595/89535740

Linux C语言基础 day7

目录 思维导图: 学习目标: 学习内容: 1. 数组 1.1 对数组元素的常规操作 1.1.1 逆序 1.1.2 挑选数据 1.1.3 排序 1. 冒泡排序 2. 选择排序 2. 二维数组 2.1 二维数组的概念 2.1.1. 定义格式 2.2.2.初始化 2.2 二维数组的相关操…

深度学习pytorch多机多卡网络配置桥接方法

1 安装pdsh(Parallel Distributed Shell) sudo apt install pdsh sudo -s # 切换超级用户身份 …

Vscode ssh远程连接Linux服务器登录时密码password无法输入

问题 最近在用Vscode远程连接Linux服务器时,在终端提示输入密码password的时候用键盘输入没有反应。 以为是键盘坏了,然后尝试复制粘贴没有用。 后来找到了原因以及解决方法,感谢原帖作者(原贴链接粘在下面) 原因 …

Java 多继承与接口

Java 多继承与接口 1、为什么Java不支持多继承?2、使用接口实现多继承2.1 接口的定义与实现 3、接口的优点4、结论 💖The Begin💖点点关注,收藏不迷路💖 多继承是指一个类可以继承多个父类,从而获得多个父类…

RHCE-autofs自动挂载

要求 一、在主机上提供web,dns服务 服务端 IP:172.25.250.131/24 dns:172.25.250.131 [rootlocalhost ~]# cd /etc/httpd/conf.d[rootlocalhost conf.d]# vim vhost.conf [rootlocalhost conf.d]# mkdir /nfs/rhce -p[rootlocalhost conf…

基于企业微信第三方接口开发,移除群成员通知

移除群成员通知 返回示例 {"flag": 0, "receiver": 0, "sender_name": "", "is_room": 1, "server_id": 15318083, "send_time": 1687688952, "sender": 1688855749266556, "referid&…

根据视图矩阵, 恢复相机的世界空间的位置

根据视图矩阵, 恢复相机的世界空间的位置 一、方法1 glsl 实现: // 从本地局部坐标系(相机空间) 到 世界空间的旋转变换 mat3 getLocal2WorldRotation() {mat3 world2localRotation mat3(viewMatrix[0].xyz,viewMatrix[1].xyz,viewMatrix[2].xyz);return inverse(world2loca…

推出新的LMK6x 低抖动高性能 BAW 振荡器(器件编号包括LMK6DA、LMK6HA)标准时钟振荡器

前言 体声波 (BAW) 是一种微谐振器技术,能够将高精度 BAW 谐振器直接集成到具有超低抖动时钟电路的封装中。 相关型号:LMK6DA05184ADLER LMK6DA10000ADLFR LMK6DA12288ADLER LMK6HA10000ADLER LMK6HA10000ADLFR LMK6HA10000BDLFR 概述 LMK6x 器件是一…

nsightcompute进阶

一、定义 1 python 代码测试 2 roofline analysis 屋檐模型分析 3 summary 分析 4 Speed of light throughput 分析 5 带宽分析 6 内存分析 二、实现 python 代码测试 2. >>ncu --version 3. >>ncu --list-sets #查看set 类型 4. >>ncu --set full -…

IP 地址:优化网络游戏

IP地址和网络游戏 在现代网络游戏中,IP地址不仅用于服务器分配,还能针对性进行玩家匹配与优化网络延迟。本文将探讨IP地址在网络游戏中的具体应用。 *服务器分配* 全球服务器分布: 网络游戏需要在全球范围内提供快速、稳定的连接&#xff…

3D工艺大师快速生成装配动画,驱动汽车工业装配流程革新

在现代制造业的一般生产流程中,车间装配环节是产品由蓝图迈向市场前至关重要的一道工序。随着产品结构的日益复杂化和个性化需求的不断增长,车间装配工作面临着前所未有的挑战。高精密度的装配要求、错综复杂的组件关系以及频繁变更的生产计划&#xff0…

flutter 列表下拉框加搜索

1.使用控件搜索加下拉框dropdown_search: ^0.4.9和获取中文拼音lpinyin: ^1.1.1 2.加入中文查询和首字查询 在当中找到相应的packages,再在SelectDialog.dart当中加入引入拼音搜索 import package:lpinyin/lpinyin.dart; 更改匹配方法manageItemsByFilter使其可…

一文读懂DNS和CDN

一.什么是DNS DNS(Domain Name System)全称为域名系统,是一个将域名和IP地址相互映射的分布式服务,他的作用就是把一个域名解析成为IP地址。我们平时输入的网址(或者域名)不能被计算机直接识别,…

oracle控制文件详解以及新增控制文件

文章目录 oracle控制文件1、 控制文件包含的主要信息如下:2、查看目前系统的控制文件信息,主要是查看相关的字典视图 oracle新增控制文件 oracle控制文件 控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括数据…

数据结构(Java):单链表面试OJ题

1、题一:获取链表倒数第k个节点 . - 力扣(LeetCode) 1.1 思路解析 此题我们使用双指针法求解。 首先,我们要知道,倒数的第k个节点,距离倒数第一个节点还需要移动k-1次。 1.那么我们可以定义出两个指针&a…

设计模式-工厂模式的完整代码示例及测试验证

工厂模式 工厂模式 什么是工厂模式? 工厂模式是一种创建对象的设计模式,用来替代传统的 如 A anew A() 创建对象的方式,提供了一种 统一的接口来创建对象, 封装创建的过程,达到解耦的目的。 优缺点 优点 封装对象的创…

pytorch官网examples 实现

Getting started with transforms v2 — Torchvision 0.18 documentation (pytorch.org) 官网我导入包都报错官网代码如下: 不太理解所以我自己写了一段修改之后的代码,效果是一样的 import torch from torchvision.io import read_image import mat…