Neste tutorial, vamos aprender a usar uma tag RFID/NFC para ativar um relé com Arduino. Você pode expandir este tutorial usando o relé para controlar motor, atuador...
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre o Módulo RFID/NFC RC522 e o Relé
Se você ainda não conhece o Módulo RFID/NFC RC522 e o relé (pinagem, como funcionam, como programar...), aprenda sobre eles nos seguintes tutoriais:
Os UIDs de algumas tags RFID/NFC são predefinidos no código Arduino
O usuário aproxima uma tag RFID/NFC do leitor RFID/NFC
O leitor lê o UID da tag.
O Arduino obtém o UID do leitor
O Arduino compara o UID lido com os UIDs predefinidos
Se o UID corresponder a um dos UIDs predefinidos, o Arduino ativa o relé.
Diagrama de Ligação
This image is created using Fritzing. Click to enlarge image
Para simplificar a montagem, os pinos do módulo RC522 são conectados diretamente aos pinos do Arduino. No entanto, isso pode fazer o Arduino parar de funcionar em certas situações, pois os pinos de saída do Arduino fornecem 5V, enquanto os pinos do módulo RC522 foram projetados para funcionar em 3.3V. Por isso, é recomendável regular a tensão entre os pinos do Arduino e os pinos do módulo RC522. Para mais informações, consulte o tutorial Arduino - RFID RC522. O diagrama a seguir mostra como usar resistores para regular 5V para 3.3V:
This image is created using Fritzing. Click to enlarge image
※ Nota:
A ordem dos pinos pode variar de acordo com o fabricante. SEMPRE use as etiquetas impressas no módulo. A imagem acima mostra a pinagem dos módulos do fabricante DIYables.
Código Arduino - Uma Única Tag RFID/NFC
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-rfid-nfc-relay*/#include <SPI.h>#include <MFRC522.h>#define SS_PIN 10#define RST_PIN 5#define RELAY_PIN A5 // the Arduino pin connects to relayMFRC522 rfid(SS_PIN, RST_PIN);byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF};voidsetup() {Serial.begin(9600);SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output.digitalWrite(RELAY_PIN, LOW); // deactivate the relaySerial.println("Tap RFID/NFC Tag on reader");}voidloop() {if (rfid.PICC_IsNewCardPresent()) { // new tag is availableif (rfid.PICC_ReadCardSerial()) { // NUID has been readedMFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);if (rfid.uid.uidByte[0] == authorizedUID[0] && rfid.uid.uidByte[1] == authorizedUID[1] && rfid.uid.uidByte[2] == authorizedUID[2] && rfid.uid.uidByte[3] == authorizedUID[3] ) {Serial.println("Authorized Tag");digitalWrite(RELAY_PIN, HIGH); // activate the relay for 2 secondsdelay(2000);digitalWrite(RELAY_PIN, LOW); // deactivate the relay }else {Serial.print("Unauthorized Tag with UID:");for (int i = 0; i < rfid.uid.size; i++) {Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");Serial.print(rfid.uid.uidByte[i], HEX); }Serial.println(); } rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } }}
Passos Rápidos
Como o UID normalmente não vem impresso na tag RFID/NFC, o primeiro passo é descobrir o UID da tag. Isso pode ser feito assim:
Copie o código acima e abra-o na Arduino IDE
Clique no botão Upload na Arduino IDE para carregar o código no Arduino
Abra o Serial Monitor
Aproxime uma tag RFID/NFC do módulo RFID-RC522
Obtenha o UID no Serial Monitor
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Unauthorized Tag with UID: 3A C9 6A CB
Ln 11, Col 1
Arduino Uno on COM15
2
Depois de obter o UID:
Atualize o UID na linha 18 do código acima. Por exemplo, altere byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; PARA byte authorizedUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
Carregue o código no Arduino novamente
Aproxime uma tag RFID/NFC do módulo RFID-RC522
Veja a saída no Serial Monitor
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Authorized Tag
Ln 11, Col 1
Arduino Uno on COM15
2
Aproxime outra tag RFID/NFC do módulo RFID-RC522
Veja a saída no Serial Monitor
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader
Authorized Tag
Unauthorized Tag with UID: BD 1E 1D 00
Ln 11, Col 1
Arduino Uno on COM15
2
※ Nota:
Para facilitar o teste, o tempo de ativação é de 2 segundos; ele deve ser aumentado no uso prático/demonstração
Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!