资料介绍
描述
介绍
Touchless Do More ,我们就是这样开始的。在这场COVID-19大流行中,它强调了尽可能避免人与人之间的接触以打破这种传染性传播链的重要性。所以我们选择解决的问题是收费问题。也许归结为同时实现两个目标。这意味着我们的印度确实需要一些强大的系统来在公共交通部门收取车费,即使在这个传染性传播的时期,我们也迫切需要避免人与人之间的接触。唔。两全其美!即使所有发达国家都在实施,但在印度大规模实施仍然不可行。这就是我们的系统发挥作用的地方,A印度公共交通服务的低成本全自动收费系统。
Overview Of The Project
现在,我们将解释如何使用来自 Arduino 的 Arduino MKR WiFi 1010 板、Mifare MFRC522 RFID 读写器、Google firebase 和 Google 表格制作 TapToPay 自动收费系统。MKR 板和读卡器使用 SPI 进行通信。我们使用标签作为巴士站标识符和个人用户的卡片。
Brief Introduction about RFID Technology
RFID或射频识别系统由两个主要组件组成,标签和阅读器。阅读器由射频模块和产生高频电磁场的天线组成。另一方面,标签通常是无源设备。它包含一个存储和处理信息的微芯片。
让我们成功吧
第一步:检测停止卡和用户卡
当 RFID 靠近 RFID 阅读器时,它会与数据库进行核对,以确定它是 Stop Card 还是Passenger Card。如果是停止卡,则更新系统中的当前停止。
Step2:更新旅客名单
如果读取的卡 ID 不存在于公交车站数据库中,则它是乘客卡。为已登机的乘客保留一个单独的列表。读取乘客卡后,将在乘客列表中搜索该 ID。如果 ID 不在列表中,则添加乘客 ID 和当前停靠点作为乘客的登机点。
乘客列表以链表形式维护。
int update_pass_list(byte *rfTag, int point, int amount)
{
passenger_t *pass = NULL;
if (!head) {
/* Passenger on boarding case */
if (amount < min_req_amt(point)) {
Serial.print("Problem");
return -1;
}
pass = (passenger_t *) malloc(sizeof(passenger_t));
if (!pass) {
/* This case will hit only when the system in bad state */
printf("Failed to allocate Memory\n");
exit (-EXIT_FAILURE);
}
head = tail = pass;
memcpy(pass->rfTag, rfTag, RFTAG_MAX_LEN);
pass->startPoint = point;
pass->next = NULL;
} else {
pass = search_tag(rfTag);
if (pass) {
/* Passenger getting off case */
/* Deduct money and write */
byte data[MAX_DATA_SIZE] = { };
byte* out = 0;
int_to_byte(Cal_fare(amount, (point - pass->startPoint)), data);
updated_balance = byte_to_int(data);
/* Deleting entry from list */
delete_entry(rfTag);
} else {
/* Passenger on boarding case */
if (amount < min_req_amt(point)) {
/* If the passenger card has low amount then reject it */
return -1;
}
pass = (passenger_t *) malloc(sizeof(passenger_t));
if (!pass) {Serial.print("Failed to allocate Memory");
/* This case will hit only when the system in bad state */
printf("Failed to allocate Memory\n");
exit (-EXIT_FAILURE);
}
tail->next = pass;
memcpy(pass->rfTag, rfTag, RFTAG_MAX_LEN);
pass->startPoint = point;
pass->next = NULL;
tail = tail->next;
}
}
}
第 3 步:计算票价并更新余额
乘客下车时,应刷卡。我们的系统将读取卡片并在乘客列表中搜索 ID,并从列表中获取乘客登机点。以当前站点和乘客的上车站点计算票价。计算的票价将从该乘客卡的可用余额中扣除,剩余余额将更新到该卡。
int Cal_fare(int amt, int num_stop)
{
return (amt - (num_stop * FARE_PER_STOP));
}
void int_to_byte(int data, byte buffer[MAX_DATA_SIZE])
{
int x = data / MAX_AMT_PER_BYTE;
int y = data % MAX_AMT_PER_BYTE;
int i = 0;
memset(buffer, 0, MAX_DATA_SIZE);
if (x == 0) {
buffer[0] = y;
} else {
/* update dataBlock with new balance amount */
for (i = 0; i < x; i++) {
buffer[i] = 0xff;
}
buffer[x] = y;
}
}
int byte_to_int(byte buffer[MAX_AMT_SIZE])
{
int curr_output = 0;
for(int i = 0; i < MAX_AMT_SIZE; i++) {
curr_output = curr_output + (int) buffer[i];
}
return curr_output;
}
第 4 步:删除条目
将剩余金额更新到乘客卡后,将在列表中搜索乘客 ID,并将条目从列表中删除。该列表仅维护列表中的已登机乘客。
void delete_entry(byte *rfTag)
{
passenger_t *list = head;
passenger_t *prev = NULL;
if (!rfTag)
return;
/* Updating the head in case of first entry itself the match */
if (list && !memcmp(list->rfTag, rfTag, RFTAG_MAX_LEN)) {
head = list->next;
free(list);
return;
}
/* searching the entry in the list */
while (list && memcmp(list->rfTag, rfTag, RFTAG_MAX_LEN)) {
prev = list;
list = list->next;
}
if (!list)
return;
prev->next = list->next;
/* Updating the tail */
if (list == tail)
tail = prev;
free(list);
}
第 5 步:将 UID 发送到 Firebase 并更新 Google 表格
乘客详细信息将在云数据库中更新。这将有助于跟踪乘客的路线,以防他被检测出 COVID-19 呈阳性。
乘客详细信息是乘客 ID、随时间登机的停靠站、随时间停靠的停机坪。
软件流程:
该系统将如何减缓 Covid-19 在印度的传播?
在印度,与世界上许多其他地方一样,冠状病毒对运输造成了巨大打击。提高公共汽车运输的安全性将是最紧迫的问题。在印度的公共汽车运输中,乘客使用现金支付车费,通过这种方式可能会传播病毒。印度摆脱现金的做法得到了政府的帮助。尽管有推动,印度仍然是一个现金密集型经济体。一些州政府也开始为其巴士使用电子票务系统,以尽量减少接触。如果实施,我们基于 Arduino 的 TapToPay 系统将在印度交通系统中发挥重要作用。
增强功能
- 作为原型,我们使用了单个 RFID 读写器。在实时部署中,它可以使用两个或多个 RFID 读取器/写入器。一张用于停车标签,一张用于乘客卡。
- 单独的RFID读写器可用于记录登机乘客和离开乘客的数据。
- 可以使用单独的服务器和新的数据库技术将乘客的旅行详细信息存储在云中。
- CHT系列影像仪全自动测量模切件
- 使用Arduino的公共交通票价监控系统
- 原位清洗站全自动和手动原理图下载 0次下载
- 高性能低成本的蓝牙模块CSR6576原理图 16次下载
- 成本优化的太阳能供电公共服务基础设施
- 低成本的医疗检测与监测方案 8次下载
- 新汉MVS 5200模块化车载系统助力智能公共交通监控 0次下载
- 低成本集成解决方案使新的NFC无线应用程序 7次下载
- 06广州地铁引领中国转向公共交通社会 0次下载
- 汽车的低成本引擎管理系统
- 城市智能公共交通系统理论与方法
- 海尔波轮全自动洗衣机维修服务手册
- 贵阳公共交通网络复杂性分析
- 一个公路自动收费系统的设计
- 基于复杂网络的城市公共交通网络研究
- 如何制作低成本但全自动的洗手液分配器电路 1347次阅读
- NFC设备接口ESD防静电新方案 539次阅读
- 基于GPS和GPRS技术实现公交智能调度系统的应用方案 2487次阅读
- 自动驾驶系统的原理和结构讲解 1.4w次阅读
- 小型车如何选择低成本的电池 1349次阅读
- FPGA和SoC在设计中面临小尺寸和低成本挑战,如何解决 848次阅读
- 基于FPGA可编程逻辑器件实现智能交通车辆识别检测系统的设计 1318次阅读
- 基于ET13X210/ET13X221器件实现汽车电子收费系统的设计 972次阅读
- 全自动回流焊中加热系统的作用是什么? 3194次阅读
- 对现有微带结构的抗金属标签天线进行小型化改进设计详解 2564次阅读
- 可视化设计在公共交通系统的实践应用 3333次阅读
- 汽车电子中公交车GPS车辆管理系统解决方案 1427次阅读
- 摄像头接口对ADAS系统设计至关重要 5193次阅读
- 基于赛灵思FPGA的低成本MIPI接口IP 1.7w次阅读
- 低成本、高性能SOUND BAR系统电路图 5616次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多