¿Te gustaría aprender a desarrollar tu propio sistema de identificación y rastreo de objetos? Los proyectos de Arduino con tecnología RFID pueden lograr esto y mucho más. Veamos cómo la combinación de estas tecnologías puede generar soluciones innovadoras para nuestro día a día. Aquí te contamos todo lo que necesitas saber sobre los proyectos de Arduino RFID. ¡No te lo pierdas!
Los proyectos Arduino RFID se están volviendo más populares cada día que pasa. Esto se debe a las increíbles posibilidades que ofrecen. ¡Con un Arduino y algunas etiquetas y lectores RFID, puede hacer casi cualquier cosa! En este artículo, responderemos algunas preguntas comunes sobre los proyectos Arduino RFID. También le proporcionaremos algunos consejos para ayudarlo a comenzar sus propios proyectos. ¿Estás listo para aprender más? ¡Empecemos!
arduino en general
La plataforma Arduino consta de dos componentes principales: la placa del microcontrolador (MCB) y el entorno de desarrollo integrado (IDE). El MCB contiene un conjunto de chips de procesamiento de señales digitales (DSP), que le permiten interactuar con sensores y otros dispositivos. El IDE proporciona una interfaz fácil de usar para escribir código que se puede cargar en el MCB.
Utilizando> Esto puede implicar cualquier cosa, desde la construcción de un simple intermitente LED hasta la creación de complejos sistemas de automatización del hogar. Con Arduino, es fácil integrar tecnologías modernas como RFID y dispositivos de Internet de las cosas (IoT) en sus proyectos.
Arduino es una plataforma increíblemente versátil que permite a los usuarios crear proyectos innovadores de forma rápida, sencilla y rentable. También es muy accesible gracias a su interfaz fácil de usar y sus completos recursos en línea.
RFID significa identificación por radiofrecuencia y es una tecnología utilizada para identificar objetos o personas. RFID utiliza ondas de radio para transmitir datos desde una etiqueta, un lector o ambos a un dispositivo electrónico. Es similar a la tecnología de código de barras, pero puede almacenar más información que los códigos de barras.
Los proyectos RFID son proyectos que involucran el uso de la tecnología RFID. Arduino es una plataforma ideal para crear proyectos RFID, ya que las placas Arduino son potentes y rentables. Con unos pocos componentes simples y algo de programación, puede crear todo tipo de proyectos RFID con Arduino. [1]
Los mejores proyectos RFID de Arduino
Ahora que tiene una mejor comprensión de Arduino y RFID, cubriremos algunos de los proyectos Arduino RFID más populares que puede realizar.
Bloqueo RFID para PC con Windows
Lo primero que deberá hacer al construir una cerradura Arduino RFID con soporte para PC con Windows es conseguir todos los componentes. Aquí hay una lista de artículos esenciales:
- Arduino Pro Micro/Arduino Leonardo.
- Módulo RFID MFRC-522 con tarjeta RFID.
- Cabeceras masculinas y femeninas.
- Prototipo de placa PCB.
- Alambres.
- Resistencias de 10k ohmios – 3
Una vez que tenga el hardware listo, el siguiente paso sería construir un prototipo en el protoboard. Para hacer esto, deberá conectar los encabezados macho y hembra a cada uno de los componentes. Esto es importante ya que garantizará que todos los componentes estén bien conectados.
Una>
El pin MISO va al pin 14 de Arduino, mientras que MOSI se conecta al pin 16. SCK va al pin 15. Por último, SDA debe conectarse al pin 10 de Arduino.
Ahora que tiene todo conectado y listo, es hora de comenzar a escribir código en el IDE de Arduino. Primero, deberá incluir las bibliotecas necesarias para el módulo RFID utilizando las siguientes líneas:
#incluir
#incluir
#incluir
#definir SS_PIN 10
#definir RST_PIN 5
#define KEY_RETURN 0xB0 //El valor hexadecimal de la clave de retorno es 0xB0.
MFRC522 mfrc522 (SS_PIN, RST_PIN);
char Entrar = KEY_RETURN; //La tecla de retorno se declara como Enter.
Cadena readid;
Cadena tarjeta1=”48b45a10″; //Cambia este valor al UID de tu tarjeta.
configuración vacía ( )
{
Serial.begin(9600);
Teclado.begin();
SPI.begin();
mfrc522.PCD_Init();
}
void temp(byte *buffer, byte bufferSize)//función para almacenar el uid de la tarjeta como un tipo de datos de cadena.
{
readid=””;
for(byte i = 0;i
readid=readid+String(búfer[i]HEXAGONAL);
}
}
bucle vacío()
{
if(!mfrc522.PICC_IsNewCardPresent())
{
devolver;
}
si(!mfrc522.PICC_ReadCardSerial())
{
devolver;
}
mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); // Muestra los detalles de la tarjeta en el Monitor serial.
temp(mfrc522.uid.uidByte, mfrc522.uid.tamaño);
if(readid==tarjeta1)
{
Teclado.prensa(KEY_LEFT_GUI); //Presione la tecla de Windows izquierda.
Teclado.prensa(‘l’); //Presione la tecla «l».
Teclado.releaseAll(); //Liberar todas las llaves.
retraso (100);
Teclado.presione(Entrar); //Presione la tecla Intro.
Teclado.liberar(Entrar); // Suelte la tecla Intro.
retraso (100);
Teclado.imprimir(“CONTRASEÑA”); // Cambie este valor a su PIN/Contraseña de Windows.
Teclado.releaseAll();
retraso (100);
Teclado.presione(Entrar);
Teclado.releaseAll();
}
demás
{
devolver;
}
}
Cerradura de puerta RFID y Bluetooth
El próximo proyecto Arduino RFID que vamos a abordar es una cerradura de puerta Bluetooth. Este es uno de los proyectos Arduino RFID más interesantes. Se trata de utilizar un lector RFID para controlar una cerradura de puerta con Bluetooth como protocolo de comunicación. Para completar este proyecto, necesitará:
- arduino uno
- servo de 360 grados
- Módulo Bluetooth HC-06
- Lector RFID RC522 (Posiblemente Sintron, no recuerdo)
- Pantalla LCD de 16 x 2 – 4 hilos
- LED RGB
- Dos resistencias de 220 Ω
- Interruptor pulsador momentáneo (para operar desde el interior para bloquear/desbloquear la puerta)
- Resistencia de 10kΩ
- Dos cajas traseras dobles (1 de aproximadamente 45 mm de profundidad y la otra de aproximadamente 33 mm de profundidad)
- Cables de puente
- Fuente de alimentación
- Tornillos o cinta fuerte de doble cara
- Servo Holder (diseñé e imprimí el mío propio)
- Dos placas ciegas dobles
- Longitud del cable de alarma de 12 núcleos (la longitud depende de la ubicación)
- Dos conectores de bloque de 5 amperios (12 cables cada uno)
Una vez que tenga todos los componentes necesarios, ahora puede comenzar a ensamblar el proyecto Arduino RFID. Comience conectando el Lector RFID con el Arduino Uno. El VCC debe estar conectado a los 3.3V de Arduino, el GND debe estar conectado al GND de Arduino, el RST (restablecimiento) debe estar conectado al pin digital 9 y el SDA (datos) debe estar conectado al pin digital 10. MOSI, MISO, y SCK deben estar todos conectados a sus respectivos pines (11, 12, 13).
A> El VVC debe estar conectado a 5V, el cable GND debe estar conectado a GND y el cable de señal debe estar conectado al pin digital 5.
Ahora es el momento de conectar la pantalla LCD. El VCC debe estar conectado a 5V de Arduino y el cable GND debe estar conectado a GND. Conecte el cable SDA al pin A4 y el cable SCL al pin A5.
Se debe conectar un interruptor momentáneo al Arduino Uno. Al igual que con otros componentes, VCC y GND deben conectarse a 5V y GND respectivamente. El cable de señal debe conectarse al pin digital 4.
El servo también debe conectarse al Arduino Uno de manera similar. Conecte el VCC a 5V, GND a GND y el cable de señal al pin digital 5.
El pin LED rojo debe conectarse al pin digital 7 a través de una resistencia de 220 Ω y el pin LED verde debe conectarse al pin digital 6 nuevamente usando una resistencia. Finalmente, conecte el cable largo común del LED a GND.
Finalmente, conecte el Módulo Bluetooth HC-06 con el Arduino Uno. El VCC debe conectarse a 5V, GND a GND, Rx (recepción) al pin digital 0 y el cable Tx (transmisión) debe conectarse al pin digital 1.
Una vez que se hayan cableado todos los componentes, es hora de colocar todos los componentes en una caja posterior. Deje los dos agujeros en la tapa de la caja trasera doble para LED y un interruptor. Una vez que los haya conectado, fije el lector RFID y el servomotor al exterior con tornillos o cinta adhesiva fuerte de doble cara.
Finalmente, fije el dispositivo a la cerradura de la puerta con algunos tornillos.
Ahora que el hardware está ensamblado y conectado, es hora de configurar el software. Para hacer esto, deberá descargar bibliotecas adicionales para Arduino y cargar el código en el microcontrolador. Luego, puede conectar su dispositivo con una aplicación Bluetooth en su teléfono inteligente o tableta. La aplicación le permitirá controlar la cerradura de la puerta desde cualquier lugar dentro del alcance de la conexión Bluetooth.
#incluir
#incluir
#incluir
#incluir
#incluir
#incluir
#define RST_PIN 9 // Configurable, vea el diseño de pin típico arriba
#definir SS_PIN 10
#define Green_LED 6 // pin para el indicador LED verde de «puerta desbloqueada»
#define Red_LED 7 //pin para el indicador LED rojo de «puerta bloqueada»
Cadena cadena de entrada = “”;
Comando de cadena = «»;
valor de cadena = «»;
Cadena contraseña = “contraseña”; // esta es la contraseña para abrir y cerrar su puerta por Bluetooth
// puede establecer cualquier contraseña que desee usando dígitos y símbolos
cadena completa booleana = falso;
matriz de caracteres1[]=»Deslizar para desbloquear»; // la cadena para imprimir en la pantalla LCD
matriz de caracteres2[]=» Puerta Cerrada «;
matriz de caracteres3[]=» Puerta desbloqueada «;
matriz de caracteres4[]=» Bloqueo «;
matriz de caracteres5[]=” Desbloqueo “;
matriz de caracteres6[]=” Aceptado “;
matriz de caracteres7[]=» Deslizar para bloquear «;
tiempo int = 1; //el valor del tiempo de retraso
// inicializa la biblioteca con los números de los pines de la interfaz
LiquidCrystal_I2C lcd (0x3F, 16,2); // establece la dirección LCD en 0x27 para 16 caracteres y 2 líneas
MFRC522 mfrc522(SS_PIN, RST_PIN); // Crear instancia MFRC522.
Servo miservo;
Cadena read_rfid; // Identificación de etiquetas RFID
Cadena ok_rfid_1=”c6ecd82b”;
Cadena ok_rfid_2=”f5642a50″;
Cadena ok_rfid_3=”4314622993c81″;
// Cadena ok_rfid_4=”43ef222993c81″;
dir int = 1; // inicializar dirección eeprom
int eVal = 0; // inicializa el valor que se almacenará en eeprom
posición de bloqueo int; // inicializar lockPosition, usado para valorizar dolor en eVal
int posición_servo;
int BOTÓN1 = 8; // inicializa la entrada del pin del botón de bloqueo/desbloqueo
configuración vacía () {
Serial.begin(9600); // Inicializar comunicaciones seriales con la PC
mientras (! Serie);
SPI.begin();
mfrc522.PCD_Init();
inputString.reserva(50); // reserva 50 bytes en la memoria para guardar para la manipulación de cadenas
comando.reserva(50);
valor.reserva(50);
cadena booleanaOK = falso;
{
lcd.init(); //inicializar la pantalla LCD
LCD luz de fondo(); //abrir la luz de fondo
lcd.begin(16,2);
}
// establece los modos pin de entrada/salida y las luces led
pinMode(Green_LED, SALIDA);
pinMode(Red_LED, SALIDA);
escritura digital (LED_verde, BAJO);
escritura digital (LED_rojo, ALTO);
pinMode(BOTÓN1,ENTRADA);
myservo.adjuntar(5); // número de pin del servo
// establece la posición inicial de locl
posición de bloqueo = EEPROM.read(1);
// Serie.imprimir(EEPROM.leer(1));
if(posición de bloqueo == 1){
escritura digital (LED_rojo, BAJO);
escritura digital (LED_verde, ALTO);
}
demás {
escritura digital (LED_rojo, ALTO);
escritura digital (LED_verde, BAJO);
bloqueo y desbloqueo();
}
deslizarTexto();
}
/*
* Volcar una matriz de bytes como valores hexadecimales a Serial.
*/
void dump_byte_array(byte *buffer, byte bufferSize) {
leer_rfid=””;
for (byte i = 0; i < tamaño del búfer; i++) {
read_rfid=read_rfid + String(búfer[i]HEXAGONAL);
}
}
void lockUnlock() { // bloquea o desbloquea la puerta
myservo.adjuntar(5);
if(posición de bloqueo == 1) {
cerradura1();
posición_servo = 0;
myservo.write(servo_position);
escritura digital (LED_rojo, ALTO);
escritura digital (LED_verde, BAJO);
retraso (2500);
posición de bloqueo = 2;
eVal = posición de bloqueo;
EEPROM.escribir(1,eVal);
// Serie.imprimir(eVal);
}
más si (posición de bloqueo == 2) {
cerradura2();
posición_servo = 180;
myservo.write(servo_position);
escritura digital (LED_rojo, BAJO);
escritura digital (LED_verde, ALTO);
retraso (2500);
posición de bloqueo = 1;
eVal = posición de bloqueo;
EEPROM.escribir(1,eVal);
// Serie.imprimir(eVal);
}
myservo.detach();
}
void swipeText() // envía texto a la pantalla LCD
{
if(posición de bloqueo == 1){
lcd.claro(); // Borra la pantalla LCD y coloca el cursor en la esquina superior izquierda.
lcd.setCursor(0,0); // coloca el cursor en la columna 15, línea 0
for (int positionCounter1 = 0; positionCounter1 < 15; positionCounter1++)
{
lcd.imprimir(matriz3[positionCounter1]); // Imprime un mensaje en la pantalla LCD.
retraso (tim); //esperar 250 microsegundos
}
lcd.setCursor(0,1); // coloca el cursor en la columna 15, línea 1
for (int positionCounter = 0; positionCounter < 15; positionCounter++)
{
lcd.imprimir(matriz7[positionCounter]); // Imprime un mensaje en la pantalla LCD.
retraso (tim); //esperar 250 microsegundos
}
}
más si (posición de bloqueo == 2){
lcd.claro(); // Borra la pantalla LCD y coloca el cursor en la esquina superior izquierda.
lcd.setCursor(0,0); // coloca el cursor en la columna 15, línea 0
for (int positionCounter1 = 0; positionCounter1 < 15; positionCounter1++)
{
lcd.imprimir(matriz2[positionCounter1]); // Imprime un mensaje en la pantalla LCD.
retraso (tim); //esperar 250 microsegundos
}
lcd.setCursor(0,1); // coloca el cursor en la columna 15, línea 1
for (int positionCounter = 0; positionCounter < 15; positionCounter++)
{
lcd.imprimir(matriz1[positionCounter]); // Imprime un mensaje en la pantalla LCD.
retraso (tim); //esperar 250 microsegundos
}
}
}
void lock1() // envía texto al bloqueo de pantalla LCD
{
lcd.claro();
lcd.setCursor(0,0);
for (int positionCounter1 = 0; positionCounter1 < 15; positionCounter1++)
{
lcd.imprimir(matriz6[positionCounter1]);
retraso (tim);
}
lcd.setCursor(0,1);
for (int positionCounter1 = 0; positionCounter1 < 10; positionCounter1++)
{
lcd.imprimir(matriz4[positionCounter1]);
retraso (tim);
}
}
void lock2() // envía texto a la pantalla LCD para desbloquear
{
lcd.claro();
lcd.setCursor(0,0);
for (int positionCounter1 = 0; positionCounter1 < 15; positionCounter1++)
{
lcd.imprimir(matriz6[positionCounter1]);
retraso (tim);
}
lcd.setCursor(0,1);
for (int positionCounter1 = 0; positionCounter1 < 12; positionCounter1++) { lcd.print(array5[positionCounter1]); retraso (tim); } } void loop() { // verifica el botón de bloqueo/desbloqueo presione if(digitalRead(BUTTON1) == HIGH){ lockUnlock(); deslizarTexto(); } si (stringComplete) { //Serial.println(inputString); retraso (100); int pos = inputString.indexOf('='); // valor de la variable pos > o = 0 significa ‘=’ presente en la cadena recibida.
si (posición > -1) {
// la función substring(start, stop) corta una parte específica de la cadena de principio a fin
// aquí el comando será la parte de la cadena recibida hasta ‘=’
// dejar que la cadena recibida esté abierta=test123
// entonces el comando es ‘abrir’
comando = inputString.substring(0, pos);
valor = inputString.substring(pos+1, inputString.length()-1); // extrae el comando hasta \n excluido
if(!contraseña.compareTo(valor) && (comando == “ABRIR”)){
bloqueo y desbloqueo(); // llamar a la función lockUnlock()
Serial.println(«ABRIR»); // envió comentarios abiertos al teléfono
retraso (100);
deslizarTexto();
}
if(!contraseña.compareTo(valor) && (comando == “CERRAR”)){
// si la contraseña coincide y el comando es ‘CERRAR’, entonces la puerta debe cerrarse
bloqueo y desbloqueo();
Serial.println(” CERRAR”); // envió la cadena «CERRAR» al teléfono
retraso (100);
deslizarTexto();
}
if(contraseña.comparar(valor)){
// si la contraseña no coincide, envió un comentario incorrecto al teléfono
Serial.println(” INCORRECTO”);
retraso (100);
deslizarTexto();
}
}
// borra la cadena para la próxima iteración
cadena de entrada = «»;
cadena completa = falso;
}
// busca la etiqueta rfid que se presentará
si ( ! mfrc522.PICC_IsNewCardPresent())
devolver;
// Selecciona una de las cartas
si (! mfrc522.PICC_ReadCardSerial())
devolver;
dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.tamaño);
// comprueba si una identificación de etiquetas RFID coincide con la lista almacenada, si es así, bloqueará o desbloqueará la puerta
Serial.println(leer_rfid);
si (leer_rfid==ok_rfid_1) {
//ok, abre la puerta.
bloqueo y desbloqueo();
deslizarTexto();
}
//Agregue a continuación tantas «claves» como desee
si (leer_rfid==ok_rfid_2) {
// también está bien, abre la puerta
bloqueo y desbloqueo();
deslizarTexto();
}
//Agregue a continuación tantas «claves» como desee
si (leer_rfid==ok_rfid_3) {
// también está bien, abre la puerta
bloqueo y desbloqueo();
deslizarTexto();
}
}
void serialEvent() {
while (Serial.disponible()) {
// obtener el nuevo byte:
char inChar = (char)Serial.read();
//Serial.write(inChar);
// agregarlo a la cadena de entrada:
cadena de entrada += inChar;
// si el carácter entrante es una nueva línea o un retorno de carro, establece una bandera
// para que el ciclo principal pueda hacer algo al respecto:
if (inChar == ‘\n’ || inChar == ‘\r’) {
cadena completa = verdadero;
}
}
}
Preguntas>
¿Cómo programo RFID con Arduino?
Sí, puedes programar RFID con Arduino. Para hacer esto, necesita un lector RFID, una etiqueta para leer y la placa Arduino. También necesita algunos componentes, como resistencias y LED, para ayudar a completar el circuito. Una vez que todos sus componentes estén conectados y listos para funcionar, puede comenzar a programar el Arduino.
¿Cómo usar RFID para proyectos?
Esta tecnología se puede utilizar en una variedad de proyectos que se basan en la identificación de elementos o personas de forma rápida y precisa. Por ejemplo, podría usar RFID para crear un sistema de control de acceso para su hogar o lugar de trabajo, o incluso hacer sus propias etiquetas de seguridad personalizadas para artículos valiosos.
¿Cómo hacer una cerradura de puerta RFID?
Hacer una cerradura de puerta Arduino RFID es un gran proyecto para aquellos que buscan mejorar su juego de bricolaje. Hay dos componentes principales necesarios para completar el proyecto: una placa Arduino y un lector RFID compatible. Cada vez que los usuarios deseen ingresar, deben colocar su tarjeta RFID cerca del lector para que se escanee y autentique. Una vez autenticado, la puerta se abrirá automáticamente con un solo golpe.
Este es un proyecto bastante simple y se puede completar con conocimientos técnicos mínimos. Para comenzar, primero ensamble los componentes y conéctelos correctamente. La placa Arduino debe conectarse al lector RFID con 4 cables: dos para alimentación, uno para tierra y otro para transferencia de datos. Una vez conectado, consulte su manual de usuario sobre cómo programar el microcontrolador.
Video útil: Cómo conectar el módulo Rfid con Arduino || Electrónica Tomson
Conclusión
Los proyectos Arduino RFID pueden proporcionar una forma emocionante de explorar y desarrollar sus habilidades en programación y electrónica. Con los muchos componentes diferentes disponibles, las posibilidades son casi infinitas. Ya sea que desee monitorear la actividad en un edificio o controlar su propio sistema de seguridad para el hogar, los proyectos Arduino RFID pueden ayudarlo a hacerlo todo. Es posible que pueda usar su proyecto para crear un entorno más seguro para los residentes o incluso ayudar a proteger el medio ambiente al monitorear la vida silvestre. Cualquiera que sea su proyecto, ¡seguro tendrá un impacto!
¡Gracias por leer nuestra guía de proyectos Arduino RFID! Esperamos que esta información le haya resultado útil para comenzar con su propio proyecto. Asegúrese de consultar nuestros otros recursos, incluidos tutoriales y ejemplos de código, para obtener inspiración sobre cómo aprovechar aún más su experiencia con Arduino. ¡Buena suerte!
Referencias
- https://learn.sparkfun.com/tutorials/what-is-an-arduino/all
- https://www.watelectronics.com/arduino-projects/
- https://www.instructables.com/Windows-PC-LockUnlock-Using-RFID/
- https://www.instructables.com/RFID-Bluetooth-Door-Lock/