mirror of
https://github.com/Sucareto/ESP32-CardReader.git
synced 2025-02-17 11:18:35 +01:00
同步更新。
This commit is contained in:
parent
0c3fbcc07b
commit
de13617c08
@ -1,49 +1,20 @@
|
|||||||
#ifdef ARDUINO_NodeMCU_32S
|
|
||||||
#pragma message "当前的开发板是 NodeMCU_32S"
|
|
||||||
#define SerialDevice Serial
|
|
||||||
#define LED_PIN 13
|
|
||||||
#define PN532_SPI_SS 5
|
|
||||||
|
|
||||||
|
|
||||||
#define SW1_MODE 33
|
|
||||||
#define SW2_OTA 25
|
|
||||||
#define SW3_CARD 26
|
|
||||||
#define SW4_FW 27
|
|
||||||
bool ReaderMode, FWSW;
|
|
||||||
|
|
||||||
// #define OTA_Enable
|
|
||||||
#ifdef OTA_Enable
|
|
||||||
#pragma message "已开启 OTA 更新功能"
|
|
||||||
#define STASSID "SSIDNAME"
|
|
||||||
#define STAPASS "PASSWORD"
|
|
||||||
#define OTA_URL "http://esp-update.local/Sucareto/ESP32-Reader:2333/"
|
|
||||||
#include <WiFi.h>
|
|
||||||
#include <HTTPUpdate.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error "未适配的开发板!!!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "ReaderCmd.h"
|
#include "ReaderCmd.h"
|
||||||
|
|
||||||
void (*ReaderMain)();
|
void (*ReaderMain)();
|
||||||
unsigned long ConnectTime = 0;
|
|
||||||
bool ConnectStatus = false;
|
|
||||||
uint16_t SleepDelay = 10000; // ms
|
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
pinMode(SW1_MODE, INPUT_PULLUP); // Switch mode
|
pinMode(SW1_MODE, INPUT_PULLUP); // Switch mode
|
||||||
pinMode(SW2_OTA, INPUT_PULLUP); // Enable OTA
|
|
||||||
pinMode(SW3_CARD, INPUT_PULLUP); // Hardcode mifare
|
pinMode(SW3_CARD, INPUT_PULLUP); // Hardcode mifare
|
||||||
pinMode(SW4_FW, INPUT_PULLUP); // (Aime) Baudrate & fw/hw | (Spice) 1P 2P
|
pinMode(SW4_FW, INPUT_PULLUP); // (Aime) Baudrate & fw/hw | (Spice) 1P 2P
|
||||||
|
|
||||||
u8g2.begin();
|
u8g2.begin();
|
||||||
u8g2.setFont(u8g2_font_6x12_mf);
|
u8g2.setFont(u8g2_font_6x12_mf);
|
||||||
|
u8g2.clearBuffer();
|
||||||
FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, 8);
|
FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, 8);
|
||||||
FastLED.setBrightness(20); // LED brightness
|
FastLED.setBrightness(20); // LED brightness
|
||||||
FastLED.showColor(0);
|
FastLED.showColor(0);
|
||||||
|
|
||||||
#ifdef OTA_Enable
|
#ifdef OTA_Enable // update check
|
||||||
|
pinMode(SW2_OTA, INPUT_PULLUP); // Enable OTA
|
||||||
if (!digitalRead(SW2_OTA)) {
|
if (!digitalRead(SW2_OTA)) {
|
||||||
WiFi.begin(STASSID, STAPASS);
|
WiFi.begin(STASSID, STAPASS);
|
||||||
u8g2.drawStr(0, 28, "WiFi Connecting...");
|
u8g2.drawStr(0, 28, "WiFi Connecting...");
|
||||||
@ -61,7 +32,6 @@ void setup() {
|
|||||||
case HTTP_UPDATE_FAILED:
|
case HTTP_UPDATE_FAILED:
|
||||||
u8g2.drawStr(0, 41, "Check failed. ");
|
u8g2.drawStr(0, 41, "Check failed. ");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HTTP_UPDATE_NO_UPDATES:
|
case HTTP_UPDATE_NO_UPDATES:
|
||||||
u8g2.drawStr(0, 41, "Already up to date. ");
|
u8g2.drawStr(0, 41, "Already up to date. ");
|
||||||
break;
|
break;
|
||||||
@ -82,6 +52,7 @@ void setup() {
|
|||||||
nfc.SAMConfig();
|
nfc.SAMConfig();
|
||||||
u8g2.clearBuffer();
|
u8g2.clearBuffer();
|
||||||
|
|
||||||
|
// mode select
|
||||||
ReaderMode = !digitalRead(SW1_MODE);
|
ReaderMode = !digitalRead(SW1_MODE);
|
||||||
FWSW = !digitalRead(SW4_FW);
|
FWSW = !digitalRead(SW4_FW);
|
||||||
if (ReaderMode) { // BEMANI mode
|
if (ReaderMode) { // BEMANI mode
|
||||||
@ -98,9 +69,11 @@ void setup() {
|
|||||||
FastLED.showColor(FWSW ? CRGB::Green : CRGB::Blue);
|
FastLED.showColor(FWSW ? CRGB::Green : CRGB::Blue);
|
||||||
ReaderMain = AimeCardReader;
|
ReaderMain = AimeCardReader;
|
||||||
}
|
}
|
||||||
memset(&req, 0, sizeof(req.bytes));
|
|
||||||
memset(&res, 0, sizeof(res.bytes));
|
memset(req.bytes, 0, sizeof(req.bytes));
|
||||||
|
memset(res.bytes, 0, sizeof(res.bytes));
|
||||||
u8g2.sendBuffer();
|
u8g2.sendBuffer();
|
||||||
|
|
||||||
ConnectTime = millis();
|
ConnectTime = millis();
|
||||||
ConnectStatus = true;
|
ConnectStatus = true;
|
||||||
}
|
}
|
||||||
@ -108,6 +81,7 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
ReaderMain();
|
ReaderMain();
|
||||||
|
|
||||||
if (ConnectStatus) {
|
if (ConnectStatus) {
|
||||||
if ((millis() - ConnectTime) > SleepDelay) {
|
if ((millis() - ConnectTime) > SleepDelay) {
|
||||||
u8g2.sleepOn();
|
u8g2.sleepOn();
|
||||||
@ -126,7 +100,7 @@ void SpiceToolsReader() { // Spice mode
|
|||||||
uint16_t SystemCode;
|
uint16_t SystemCode;
|
||||||
char card_id[17];
|
char card_id[17];
|
||||||
if (nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, res.mifare_uid, &res.id_len)
|
if (nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, res.mifare_uid, &res.id_len)
|
||||||
&& nfc.mifareclassic_AuthenticateBlock(res.mifare_uid, res.id_len, 1, 0, MifareKey)
|
&& nfc.mifareclassic_AuthenticateBlock(res.mifare_uid, res.id_len, 1, 0, DefaultKey)
|
||||||
&& nfc.mifareclassic_ReadDataBlock(1, res.block)) {
|
&& nfc.mifareclassic_ReadDataBlock(1, res.block)) {
|
||||||
sprintf(card_id, "%02X%02X%02X%02X%02X%02X%02X%02X",
|
sprintf(card_id, "%02X%02X%02X%02X%02X%02X%02X%02X",
|
||||||
res.block[0], res.block[1], res.block[2], res.block[3],
|
res.block[0], res.block[1], res.block[2], res.block[3],
|
||||||
@ -167,59 +141,62 @@ void SpiceToolsReader() { // Spice mode
|
|||||||
|
|
||||||
void AimeCardReader() { // Aime mode
|
void AimeCardReader() { // Aime mode
|
||||||
switch (packet_read()) {
|
switch (packet_read()) {
|
||||||
case SG_NFC_CMD_RESET:
|
|
||||||
sg_nfc_cmd_reset();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_GET_FW_VERSION:
|
|
||||||
sg_nfc_cmd_get_fw_version();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_GET_HW_VERSION:
|
|
||||||
sg_nfc_cmd_get_hw_version();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_POLL:
|
|
||||||
sg_nfc_cmd_poll();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_MIFARE_READ_BLOCK:
|
|
||||||
sg_nfc_cmd_mifare_read_block();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_FELICA_ENCAP:
|
|
||||||
sg_nfc_cmd_felica_encap();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_AIME_AUTHENTICATE:
|
|
||||||
sg_nfc_cmd_aime_authenticate();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_BANA_AUTHENTICATE:
|
|
||||||
sg_nfc_cmd_bana_authenticate();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_MIFARE_SELECT_TAG:
|
|
||||||
sg_res_init();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_MIFARE_SET_KEY_AIME:
|
|
||||||
sg_nfc_cmd_mifare_set_key_aime();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_MIFARE_SET_KEY_BANA:
|
|
||||||
sg_nfc_cmd_mifare_set_key_bana();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_RADIO_ON:
|
|
||||||
sg_nfc_cmd_radio_on();
|
|
||||||
break;
|
|
||||||
case SG_NFC_CMD_RADIO_OFF:
|
|
||||||
sg_nfc_cmd_radio_off();
|
|
||||||
break;
|
|
||||||
case SG_RGB_CMD_RESET:
|
|
||||||
sg_led_cmd_reset();
|
|
||||||
break;
|
|
||||||
case SG_RGB_CMD_GET_INFO:
|
|
||||||
sg_led_cmd_get_info();
|
|
||||||
break;
|
|
||||||
case SG_RGB_CMD_SET_COLOR:
|
|
||||||
sg_led_cmd_set_color();
|
|
||||||
break;
|
|
||||||
case 0:
|
case 0:
|
||||||
return;
|
return;
|
||||||
|
case CMD_TO_NORMAL_MODE:
|
||||||
|
sys_to_normal_mode();
|
||||||
|
break;
|
||||||
|
case CMD_GET_FW_VERSION:
|
||||||
|
sys_get_fw_version();
|
||||||
|
break;
|
||||||
|
case CMD_GET_HW_VERSION:
|
||||||
|
sys_get_hw_version();
|
||||||
|
break;
|
||||||
|
// Card read
|
||||||
|
case CMD_START_POLLING:
|
||||||
|
nfc_start_polling();
|
||||||
|
break;
|
||||||
|
case CMD_STOP_POLLING:
|
||||||
|
nfc_stop_polling();
|
||||||
|
break;
|
||||||
|
case CMD_CARD_DETECT:
|
||||||
|
nfc_card_detect();
|
||||||
|
break;
|
||||||
|
// MIFARE
|
||||||
|
case CMD_MIFARE_KEY_SET_A:
|
||||||
|
memcpy(KeyA, req.key, 6);
|
||||||
|
res_init();
|
||||||
|
break;
|
||||||
|
case CMD_MIFARE_KEY_SET_B:
|
||||||
|
res_init();
|
||||||
|
memcpy(KeyB, req.key, 6);
|
||||||
|
break;
|
||||||
|
case CMD_MIFARE_AUTHORIZE_A:
|
||||||
|
nfc_mifare_authorize_a();
|
||||||
|
break;
|
||||||
|
case CMD_MIFARE_AUTHORIZE_B:
|
||||||
|
nfc_mifare_authorize_b();
|
||||||
|
break;
|
||||||
|
case CMD_MIFARE_READ:
|
||||||
|
nfc_mifare_read();
|
||||||
|
break;
|
||||||
|
// FeliCa
|
||||||
|
case CMD_FELICA_THROUGH:
|
||||||
|
nfc_felica_through();
|
||||||
|
break;
|
||||||
|
// LED
|
||||||
|
case CMD_EXT_BOARD_LED_RGB:
|
||||||
|
FastLED.showColor(CRGB(req.color_payload[0], req.color_payload[1], req.color_payload[2]));
|
||||||
|
break;
|
||||||
|
case CMD_EXT_BOARD_INFO:
|
||||||
|
sys_get_led_info();
|
||||||
|
break;
|
||||||
|
case CMD_EXT_BOARD_LED_RGB_UNKNOWN:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
sg_res_init();
|
res_init();
|
||||||
}
|
}
|
||||||
|
u8g2.sendBuffer();
|
||||||
ConnectTime = millis();
|
ConnectTime = millis();
|
||||||
packet_write();
|
packet_write();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user