Skip to the content.

ESP32_Dev_Kit_V1

Mô tả

image

Lập trình

Thông số chi tiết

image

Tra cứu bản đồ địa chỉ bộ nhớ

https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf image

Demo

Using RC522 NFC 13.56MHz with DOIT ESP32 DevKit.
Youtube: Using RC522 NFC 13.56MHz with DOIT ESP32 DevKit image

#include <Arduino.h>
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 21     //   SS/SDA
#define RST_PIN 0     //   Reset

MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class
MFRC522::MIFARE_Key key; 
// Init array that will store new NUID 
byte nuidPICC[4];

/**
	* Helper routine to dump a byte array as hex values to Serial. 
	*/
void printHex(byte *buffer, byte bufferSize) {
	for (byte i = 0; i < bufferSize; i++) {
	Serial.print(buffer[i] < 0x10 ? " 0" : " ");
	Serial.print(buffer[i], HEX);
	}
}
/**
	* Helper routine to dump a byte array as dec values to Serial.
	*/
void printDec(byte *buffer, byte bufferSize) {
	for (byte i = 0; i < bufferSize; i++) {
	Serial.print(buffer[i] < 0x10 ? " 0" : " ");
	Serial.print(buffer[i], DEC);
	}
}
void setup() { 
	Serial.begin(9600);
	SPI.begin(); // Init SPI bus
	rfid.PCD_Init(); // Init MFRC522 
	for (byte i = 0; i < 6; i++) {
	key.keyByte[i] = 0xFF;
	}
	Serial.println(F("This code scan the MIFARE Classsic NUID."));
	Serial.print(F("Using the following key:"));
	printHex(key.keyByte, MFRC522::MF_KEY_SIZE);
}
	
void loop() {
	// Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
	if ( ! rfid.PICC_IsNewCardPresent())
	return;
	// Verify if the NUID has been readed
	if ( ! rfid.PICC_ReadCardSerial())
	return;
	Serial.print(F("PICC type: "));
	MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
	Serial.println(rfid.PICC_GetTypeName(piccType));
	// Check is the PICC of Classic MIFARE type
	if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && 
	piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
	piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
	Serial.println(F("Your tag is not of type MIFARE Classic."));
	return;
	}
	if (rfid.uid.uidByte[0] != nuidPICC[0] || 
	rfid.uid.uidByte[1] != nuidPICC[1] || 
	rfid.uid.uidByte[2] != nuidPICC[2] || 
	rfid.uid.uidByte[3] != nuidPICC[3] ) {
	Serial.println(F("A new card has been detected."));
	// Store NUID into nuidPICC array
	for (byte i = 0; i < 4; i++) {
		nuidPICC[i] = rfid.uid.uidByte[i];
	}
	
	Serial.println(F("The NUID tag is:"));
	Serial.print(F("In hex: "));
	printHex(rfid.uid.uidByte, rfid.uid.size);
	Serial.println();
	Serial.print(F("In dec: "));
	printDec(rfid.uid.uidByte, rfid.uid.size);
	Serial.println();
	}
	else Serial.println(F("Card read previously."));
	// Halt PICC
	rfid.PICC_HaltA();
	// Stop encryption on PCD
	rfid.PCD_StopCrypto1();
}

Vỏ in 3D

Mua