1
0
mirror of https://github.com/Sucareto/ESP32-CardReader.git synced 2024-11-23 14:50:57 +01:00
一个 Arduino 读卡器,OLED 显示,DIP 开关切换功能,OTA 更新。
Go to file
2024-11-06 00:02:42 +08:00
OTA 添加 OTA 更新用 php 脚本。 2022-05-30 15:07:39 +08:00
PCB 同步更改,更新说明 2024-04-18 20:48:28 +08:00
src 同步更新,移除不再使用的库文件。 2023-07-02 02:26:05 +08:00
Aime_Reader.h 同步更改 2024-11-06 00:02:42 +08:00
ESP32-CardReader.ino 同步更改 2024-11-06 00:02:42 +08:00
README.md 同步更改,更新说明 2024-04-18 20:48:28 +08:00

ESP32-CardReader

  • 此项目为 Arduino-Aime-Reader 的使用示例,使用的主控模块是 NodeMCU-32S
  • 添加了 SSD1306 模块展示状态
  • 添加了拨码开关用于切换读卡器模式和波特率,也可以切换为 HSU 直通模式
  • 在原版 Aime 读卡器的基础上添加了 SpiceTools 模式,可以读取自定义的 MIFARE 卡和 FeliCa 卡
    • MIFARE 读取 sector 0 block 1 的前半部分作为卡号发送(可以通过代码定义)
    • FeliCa 读取 idm 作为卡号发送
    • 仅用于分辨卡片和账号,读卡逻辑和卡号计算未正确实现

本项目仅用于展示原项目 Arduino-Aime-Reader 的使用示例,未曾开展或参与成品售卖,也不会向商业化制作提供任何支持。

实物图:

点击展开

读卡器 拨码开关

https://user-images.githubusercontent.com/28331534/170975661-137f3474-f61a-4a4d-8ec2-b13b3c165761.mp4

使用说明:

PCB 设计:

  • 该 PCB 方案仅用于我自己快速测试,并非最佳实现方案
  • 如果需要使用此 PCB 方案,请务必把 logo 删掉,然后根据需求认真审查 PCB 设计并作出修改后再进行制作
  • 建议使用 PN532 HSU 模式,可以去掉 TTL 拨码开关,需要直通 PN532 时,在代码里实现 Serial 数据转发

拨码开关:

在 PCB 放置了两个 4P 拨码开关:

SW 1-4

  • SW1读卡器模式切换重启生效
    • ONSpiceTools 模式,需要在 SpiceTools 添加启动参数 -apiserial COM1 -apiserialbaud 115200"COM1" 改为实际的端口号
    • OFFAime 模式,和 Arduino-Aime-Reader 使用方法一致
  • SW2OTA 开关(重启生效)
    • ON连接 WiFi 获取更新,如未能连接到 WiFi 则会持续到连接成功后才能启动
    • OFF跳过检查更新直接启动
  • SW3无卡测试模式
    • ON跳过读卡使用硬编码的 mifare_data 数据
    • OFF读取实际卡片
  • SW4固件功能切换
    • Spice 模式
      • ON卡号发送到 2P 槽位(需要游戏支持)
      • OFF卡号发送到 1P 槽位
    • Aime 模式(重启生效)
      • ON使用 38400 波特率初始化,固件版本是 TN32MSEC003S
      • OFF使用 115200 波特率初始化,固件版本是 837-15396

TTL用于切换至 “USB PN532 读卡器”模式,需要在断电情况下切换)

  • SW1连接到 ESP32 的 EN 引脚,调为 ON 后会停用 ESP32只使用 CH340 串口通信芯片
  • SW2在目前版本v2为空置
  • SW3 & SW4连接 CH340 和 PN532 的 RX TX 引脚

把 TTL 的拨码开关全部调为 ON 后,主机通过 ESP32 的 CH340 和 PN532 通信PN532 的拨码开关也要设置为 HSU 模式,重新通电即可。
如果正常使用 ESP32 时连接 RX TX 引脚,会影响串口信息接收。

OTA 更新:

在代码里修改以下定义:

  • STASSIDWIFI 名
  • STAPSKWIFI 密码
  • OTA_URL:更新包下载地址,可以使用文件地址,或者使用 index.php 来控制是否需要更新

index.php 默认是判断文件 MD5 是否一致,不一致就会发送更新。

参考: