Arduino Nano - RFID - Relé

Este tutorial ensina como usar um Arduino Nano e o módulo RFID NFC RC522 para controlar um relé. Você pode ampliar este tutorial usando o relé para controlar motores, atuadores, fechadura de porta, lâmpada e muito mais.

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×RFID/NFC RC522 Kit (reader + tags)
1×Relé
10×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
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ê não conhece o Módulo RFID/NFC RC522 e o relé (pinagem, como funcionam, como programar ...), você pode saber mais nos tutoriais a seguir:

Arduino Nano arduino rfid relay component

Como Funciona

  • O leitor RFID/NFC lê o UID da tag quando o usuário a encosta nele.
  • O Arduino Nano então obtém o UID do leitor.
  • Ele compara esse UID com os UIDs que foram predefinidos no código do Arduino Nano.
  • Se o UID corresponder a um dos UIDs predefinidos, o Arduino Nano ativa o relé.

Diagrama de Ligação

The wiring diagram between Arduino Nano and RFID RC522 relay

This image is created using Fritzing. Click to enlarge image

Para simplificar a conexão, os pinos do módulo RC522 são conectados diretamente aos pinos do Arduino. No entanto, em certos casos, isso pode fazer o Arduino funcionar mal, já que seus pinos de saída geram 5V, enquanto os pinos do módulo RC522 operam normalmente a 3.3V. Portanto, é aconselhável regular a tensão entre os pinos do Arduino e do módulo RC522. Para mais detalhes, consulte o Tutorial Arduino Nano - RFID RC522. O diagrama abaixo ilustra como regular 5V para 3.3V usando resistores:

The wiring diagram between Arduino Nano and RFID RC522 with voltage regulated

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

※ Nota:

A disposição dos pinos pode variar dependendo do fabricante. SEMPRE consulte os rótulos impressos no módulo. A imagem acima mostra a pinagem dos módulos do fabricante DIYables.

Código Arduino Nano - Uma Única Tag RFID/NFC

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-rfid-relay */ #include <SPI.h> #include <MFRC522.h> #define RC522_SS_PIN 10 // The Arduino Nano pin connected to RC522's SS pin #define RC522_RST_PIN 5 // The Arduino Nano pin connected to RC522's RST pin #define RELAY_PIN A5 // The Arduino Nano pin connected to relay MFRC522 rfid(RC522_SS_PIN, RC522_RST_PIN); byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, LOW); // deactivate the relay Serial.println("Tap RFID/NFC Tag on reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::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 seconds delay(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

Para descobrir o UID de uma tag RFID/NFC, o primeiro passo é fazer o upload do código para o Arduino Nano e abrir o Serial Monitor. Depois, encoste a tag no módulo RFID-RC522 e veja o UID no Serial Monitor.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 Nano on COM15
2

Depois de obter o UID:

  • Altere a linha 18 do código para refletir o UID, por exemplo, mudando byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; para byte authorizedUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
  • Faça o upload do código atualizado para o Arduino Nano
  • Coloque uma tag RFID/NFC no módulo RFID-RC522
  • Confira a saída no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader Authorized Tag
Ln 11, Col 1
Arduino Nano on COM15
2
  • Coloque uma tag RFID/NFC no módulo RFID-RC522 e observe a saída no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 Nano on COM15
2

※ Nota:

  • Para deixar o teste simples, o tempo de ativação está definido em 2 segundos; porém, ele deve ser aumentado para uso prático/demonstração.
  • É necessário instalar a biblioteca MFRC522. Para mais informações, consulte o Tutorial Arduino Nano - RFID/NFC RC522.

Código Arduino Nano - Várias Tags RFID/NFC

É possível ativar o relé com várias tags RFID/NFC. Aqui, duas tags são usadas como ilustração.

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-rfid-relay */ #include <SPI.h> #include <MFRC522.h> #define RC522_SS_PIN 10 // The Arduino Nano pin connected to RC522's SS pin #define RC522_RST_PIN 5 // The Arduino Nano pin connected to RC522's RST pin #define RELAY_PIN A5 // The Arduino Nano pin connected to relay MFRC522 rfid(RC522_SS_PIN, RC522_RST_PIN); byte authorizedUID1[4] = {0x3A, 0xC9, 0x6A, 0xCB}; byte authorizedUID2[4] = {0x30, 0x01, 0x8B, 0x15}; void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, LOW); // deactivate the relay Serial.println("Tap RFID/NFC Tag on reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); if (rfid.uid.uidByte[0] == authorizedUID1[0] && rfid.uid.uidByte[1] == authorizedUID1[1] && rfid.uid.uidByte[2] == authorizedUID1[2] && rfid.uid.uidByte[3] == authorizedUID1[3] ) { Serial.println("Authorized Tag 1"); digitalWrite(RELAY_PIN, HIGH); // activate the relay for 2 seconds delay(2000); digitalWrite(RELAY_PIN, LOW); // deactivate the relay } else if (rfid.uid.uidByte[0] == authorizedUID2[0] && rfid.uid.uidByte[1] == authorizedUID2[1] && rfid.uid.uidByte[2] == authorizedUID2[2] && rfid.uid.uidByte[3] == authorizedUID2[3] ) { Serial.println("Authorized Tag 2"); digitalWrite(RELAY_PIN, HIGH); // activate the relay for 2 seconds delay(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 } } }

Repita os mesmos passos mencionados anteriormente e depois encoste cada tag no módulo RFID-RC522. A saída no Serial Monitor deve aparecer assim:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Tap RFID/NFC tag on reader Authorized Tag 2 Authorized Tag 1
Ln 11, Col 1
Arduino Nano on COM15
2

Você pode expandir o código acima para incluir três, quatro ou mais tags.

Vídeo

※ NOSSAS MENSAGENS

  • 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!