Привет! Я расскажу тебе‚ как я создал программу на Arduino‚ которая считывает метку с помощью RFID RC522‚ сохраняет данные на Micro SD Card Module с помощью ESP32 и добавляет временную метку от модуля часов реального времени DS1302. Файл будет открываться и закрываться с помощью кнопки‚ и после каждого закрытия будет создаваться новый файл. В названии файла или папки будет указана дата и время‚ а сам файл будет содержать записи считывания меток RFID.
Для начала‚ я подключил модуль RFID RC522 и модуль Micro SD Card к Arduino и ESP32. Затем я соединил модуль часов DS1302 с Arduino. Убедитесь‚ что вы подключили все компоненты согласно их даташитам и настроили их пины в коде.
Далее я загрузил библиотеки для работы с RFID RC522 и Micro SD Card Module‚ а также библиотеку для модуля часов DS1302. Вы можете найти их в официальном репозитории Arduino или в Интернете.Теперь давайте перейдем к коду. Я начал с определения всех необходимых пинов для каждого модуля и настройки соответствующих объектов из библиотек.cpp
#include
#include
#include
#include
#include
#define SS_PIN 10
#define RST_PIN 9
#define BTN_PIN 8
MFRC522 rfid(SS_PIN‚ RST_PIN);
File dataFile;
RtcDS1302
void setup {
Serial.begin(9600);
SPI.begin;
rfid.PCD_Init;
pinMode(BTN_PIN‚ INPUT_PULLUP);
SD.begin(4);
rtc.Begin;
rtc.SetIsWriteProtected(true);
rtc.SetIsSqwEnabled(false);
rtc.SetIs32kHzEnabled(true);
if (!rtc.GetIsRunning) {
rtc.SetDateTime(__DATE__‚ __TIME__);
}
rtc.Enable32kHzPin(false);
rtc.SetSquareWavePin(DS1302_SquareWaveOut_Low);
}
В функции `setup` я инициализирую соединения с RFID RC522 и SD Card Module‚ устанавливаю пин для кнопки и настраиваю модуль DS1302.Теперь перейдем к основной части программы‚ где мы будем считывать метки RFID‚ записывать данные на SD-карту и добавлять временную метку.cpp
void loop {
if (rfid.PICC_IsNewCardPresent nn rfid.PICC_ReadCardSerial) {
String tag ″″;
for (byte i 0; i < rfid.uid.size; i ) {
tag.concat(String(rfid.uid.uidByte[i] < 0x10 ? ″0″ ⁚ ″″));
tag.concat(String(rfid.uid.uidByte[i]‚ HEX));
}