рфайди
#include <MFRC522.h>
#include <SPI.h>
// В настройках можно указать пины, на которых находятся RC522
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Создаем экземпляр объекта RC522
void setup()
{
Serial.begin(9600);
SPI.begin(); // Инициализируем SPI
mfrc522.PCD_Init(); // Инициализируем RC522
Serial.println("RFID ready!");
}
void loop()
{
// Находимся в ожидании RFID-карты
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Cчитываем серийный номер карты
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
// Выводим серийный номер карты
Serial.print(F("Card UID:"));
String cardContent = "";
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
cardContent.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
cardContent.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
// Перезаписываем значения метки
byte newData[] = {11, 22, 33, 44}; // Новые данные для записи0xDE, 0xAD, 0xBE, 0xEF
byte dataLen = sizeof(newData);
if (mfrc522.MIFARE_Write(1, newData, dataLen))
{
Serial.println(F("Data written successfully"));
}
else
{
Serial.println(F("Error writing data"));
}
// Для того, чтобы проверить, что значения метки были перезаписаны, можем считать данные с метки
byte readData[dataLen];
if (mfrc522.MIFARE_Read(1, readData, &dataLen) && memcmp(newData, readData, dataLen) == 0)
{
Serial.println(F("готово"));
}
else
{
Serial.println(F("нет"));
}
mfrc522.PICC_HaltA(); // Завершаем работу с картой
}
этот код на С++ меняет рфайди метки значение на раннее указанное через модуль RFID- RC522
распиновка
GND GND
питанию 3.3V
SDA 10
SCK 13
MOSI 11
MISO 12
#include <MFRC522.h>
// Определение пинов, на которых подключены RC522 модуль
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Создание экземпляра MFRC522
void setup() {
pinMode(3, OUTPUT);//мае
Serial.begin(9600); // Настройка Serial
SPI.begin(); // Настройка SPI
mfrc522.PCD_Init(); // Настройка RC522 модуля
// Serial.println("RC522 started"); // Вывод сообщения о запуске модуля
Serial.println("RFID MFRC522 подключен и готов к работе!");
}
void loop() {
// Проверка наличия RFID-карты
if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
// Вывод значений UID карты
Serial.print("UID tag :");
String content = "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "1D 62 22 3E") { // Здесь нужно заменить на нужный UID ||F0 34 EC 19 FF B2 8E DF 04 69 56 3A E6 4C 81
Serial.println("открыто"); // Вывод сообщения об открытии двери
digitalWrite(3, HIGH);//мае
delay(2000); // Задержка на 2 секунды
digitalWrite(3, LOW);//мае
}
else {
Serial.println("ошибка перепрелажите ключ"); // Вывод сообщения об отказе
digitalWrite(4, HIGH);//мае
delay(2000); // Задержка на 2 секунды
digitalWrite(4, LOW);//мае
}
}
}
а этот код проверяет рфайди метки через модуль RFID- RC522
распиновка
ножку 9 модуля RFID к пину 9 на Arduino;
ножку 10 модуля RFID к пину 10 на Arduino;
ножку SDA модуля RFID к пину MOSI на Arduino;
ножку SCK модуля RFID к пину SCK на Arduino;
ножку MOSI модуля RFID к пину MISO на Arduino;
ножку MISO модуля RFID к пину MOSI на Arduino;
ножку 3.3V модуля RFID к 3.3V на Arduino;
ножку GND модуля RFID к GND на Arduino.
Комментарий недоступен
Кажется, человек решил использовать DTF как альтернативу GitHub Gist
Что за калыч
ардуинка-это вещь!