1
0
mirror of https://github.com/Sucareto/ESP32-CardReader.git synced 2024-11-13 18:20:53 +01:00
一个 Arduino 读卡器,OLED 显示,DIP 开关切换功能,OTA 更新。
Go to file
2023-04-15 14:03:19 +08:00
OTA 添加 OTA 更新用 php 脚本。 2022-05-30 15:07:39 +08:00
PCB 添加外壳盖板设计文件,感谢 CoolBreezeArcanine。 2022-05-30 15:07:00 +08:00
src 复制库,删除未使用函数: 2023-02-04 18:04:36 +08:00
ESP32-CardReader.ino 无操作一段时间后关闭 OLED 防止烧屏。 2023-04-15 14:03:19 +08:00
ReaderCmd.h 更新内容: 2023-02-04 21:51:04 +08:00
README.md 更新内容: 2023-02-04 21:51:04 +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 设计并作出修改后再进行制作

拨码开关:

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

SW 1-4用于更改读卡器功能切换后需要重启

  • SW1切换读卡器模式
    • ONSpiceTools 模式,需要在 SpiceTools 添加启动参数 -apiserial COM1 -apiserialbaud 115200"COM1" 改为实际的端口号
    • OFFAime 模式,和 Arduino-Aime-Reader 使用方法一致
  • SW2切换启动时的 OTA 开关
    • ON连接 WiFi 获取更新,如未能连接到 WiFi 则会持续到连接成功后才能启动
    • OFF跳过检查更新直接启动
  • SW3切换 LED 亮度
    • ON全亮度
    • 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引脚

此处是直接与 CH340通信所以不需要反转如果正常使用 ESP32 不断开这两个引脚,会影响串口信息接收。
把 TTL 的拨码开关全部调为 ONPN532 的拨码开关也要设置为 HSU 模式,重新通电即可使用。

OTA 更新:

在代码里修改以下定义:

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

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

感谢: