0% encontró este documento útil (0 votos)
3 vistas22 páginas

Sistema Automatizado para Portón Eléctrico

El proyecto presenta un sistema automatizado para la apertura y cierre de un portón eléctrico utilizando Arduino UNO y Mega, integrando componentes como RFID, sensor ultrasónico y pantalla LCD. El sistema mejora la seguridad y eficiencia en entornos residenciales o comerciales, registrando eventos y adaptándose a diferentes condiciones. Se concluye que este diseño innovador ofrece comodidad y bajo costo de mantenimiento, aunque presenta limitaciones en condiciones adversas.

Cargado por

Fernanda Rosales
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas22 páginas

Sistema Automatizado para Portón Eléctrico

El proyecto presenta un sistema automatizado para la apertura y cierre de un portón eléctrico utilizando Arduino UNO y Mega, integrando componentes como RFID, sensor ultrasónico y pantalla LCD. El sistema mejora la seguridad y eficiencia en entornos residenciales o comerciales, registrando eventos y adaptándose a diferentes condiciones. Se concluye que este diseño innovador ofrece comodidad y bajo costo de mantenimiento, aunque presenta limitaciones en condiciones adversas.

Cargado por

Fernanda Rosales
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

FACULTAD DE AGRONOMÍA
INGENIERÍA EN INDUSTRIAS ALIMENTARIAS

CONTROL DE PROCESOS DE ALIMENTOS


PRODUCTO INTEGRADOR DE APRENDIZAJE: SISTEMA
AUTOMATIZADO DE SENSORÍA PARA LA APERTURA Y
CIERRE DE UN PORTÓN ELÉCTRICO.
Integrantes:
Melissa Guadalupe Maldonado Cortés 2016748
Fernanda Rubí Rosales Garza 2017241
Brayan Antonio Rodriguez Sifuentes 2084238
Alma Sofía Puente Martinez 2008685
Melany Aide Treviño Diaz 1948480

General Escobedo, N.L. a 27 de noviembre del 2024


INTRODUCCIÓN
Este proyecto utiliza un Arduino UNO y un
Arduino Mega para automatizar la apertura
y cierre de un portón eléctrico, integrando
componentes como RFID, sensor
ultrasónico, RTC, y una pantalla LCD. Ofrece
seguridad, precisión, registro de eventos, y
adaptabilidad, mejorando la eficiencia y
reduciendo mantenimiento en entornos
residenciales o comerciales.
OBJETIVO
Desarrollar un sistema automatizado de
sensoría para la apertura y cierre de un
portón eléctrico, utilizando un Arduino UNO
y Mega como controlador principal.
METODOLOGÍA
Elementos utilizados

1. Arduino UNO y Arduino Mega 7. Reloj RTC (DS3231)


2. Motor DC 8. Sensor Ultrasónico (HC-SR04)
3. Controlador de Motor L293D 9. Buzzer
4. Pantalla LCD con I2C 10. LEDs (Azul, Verde, Rojo)
5. Lector de Tarjetas RFID 11. Botones (Izquierda, Derecha,
(MFRC522) Confirmar)
6. Módulo de Tarjeta SD 12. Resistencias, cables y otros
componentes básicos
FUNCIONAMIENTO DEL SISTEMA

SENSOR
INICIALIZACIÓN: LECTURA DE TARJETAS CONTROL DEL MOTOR:
ULTRASÓNICO:
RFID:
Al encender el sistema, El motor DC es El sensor ultrasónico
El sistema monitorea
el Arduino UNO y Mega continuamente la presencia de controlado por el monitorea la
inicializa todos los una tarjeta RFID. L293D. presencia de
Cuando una tarjeta es
componentes (LCD, detectada, el sistema lee su ID El motor gira en personas cerca del
RFID, SD, RTC, LEDs, y la compara con una lista de
una dirección para portón.
IDs aprobadas.
motor, sensor Si la tarjeta es aprobada, se abrir el portón y en Si no detecta a nadie
ultrasónico, botones y enciende el LED verde, el
la dirección después de un
buzzer emite un pitido y el
buzzer). portón se abre. opuesta para tiempo, el portón se
Si la tarjeta es rechazada, se cierra
enciende el LED rojo y el
cerrarlo.
buzzer emite dos pitidos.
automáticamente.
FUNCIONAMIENTO DEL SISTEMA

MÓDULO DE
PANTALLA LCD:
TARJETA SD:
La pantalla LCD
muestra mensajes Cada vez que se
de estado del detecta una
sistema, como tarjeta, el sistema
"Acceso Permitido" registra el ID de la
o "Acceso tarjeta y la hora en
Denegado". la tarjeta SD.
También muestra Esto permite
la hora actual mantener un
obtenida del registro de los
módulo RTC. accesos.
RESULTADOS
Tras la implementación y prueba del sistema, se obtuvieron los siguientes resultados:
1. Funcionamiento Integral:
• El portón opera de manera automática, validando tarjetas RFID para apertura y cierre.
• Los eventos de acceso se registran correctamente con fecha y hora en una tarjeta SD.
• El sensor ultrasónico detecta obstáculos, garantizando seguridad.
2. Interfaz y Señalización:
• Pantalla LCD muestra mensajes claros (acceso concedido, denegado, o errores).
• LEDs y buzzer brindan retroalimentación visual y sonora sobre el estado del sistema.
3. Pruebas Exitosas:
• Alta precisión en la validación de tarjetas y detección de obstáculos.
• Registro confiable de eventos durante pruebas continuas.
4. Ventajas:
• Adaptabilidad a distintos entornos (residencial o comercial).
• Bajo costo de mantenimiento con componentes accesibles.
5. Limitaciones:
• Reducción en la precisión del sensor ultrasónico en condiciones adversas.
• Velocidad del motor mejorable para mayor eficiencia.
CONCLUSIONES
Un sistema automatizado para portones eléctricos basado
en Arduino Mega ofrece automatización, seguridad y
eficiencia. Este proyecto integra tecnologías como control
RFID, sensores de seguridad y registro de eventos,
destacando por su diseño adaptable y bajo costo. Su
implementación mejora la comodidad y permite futuras
expansiones, posicionándose como una solución innovadora
para entornos residenciales y comerciales.
ANEXOS
#include <SPI.h>
#include <MFRC522.h> // Lista de IDs de tarjetas aprobadas con
sus nombres
// Pines del lector RFID struct Tarjeta {
#define SS_PIN 10 String id;
#define RST_PIN 9 String nombre;
MFRC522 rfid(SS_PIN, RST_PIN); };

// Pines del motor de pasos y ULN2003 Tarjeta approvedCards[] = {

CODIGO
#define IN1 8 {"7A6B4C81", "Juan Perez"},
#define IN2 7 {"0452596A3C5880", "Maria Gomez"},
#define IN3 6

ARDUINO
{"ID1", "Carlos Lopez"},
#define IN4 5 {"ID2", "Ana Ruiz"},
{"ID3", "Luis Fernandez"}

UNO
// Pines de los LEDs };
#define LED_ROJO A0
#define LED_VERDE A1 void setup() {
// Inicializar comunicación serial
// Pin del buzzer [Link](9600);
#define BUZZER_PIN A3
// Inicializar el lector RFID
// Pines del sensor ultrasónico [Link]();
#define TRIG_PIN 3 rfid.PCD_Init();
#define ECHO_PIN 2
// Configurar pines de LEDs, buzzer y // Buscar la tarjeta en la lista de tarjetas
motor aprobadas
pinMode(LED_ROJO, OUTPUT); Tarjeta tarjetaAprobada;
pinMode(LED_VERDE, OUTPUT); bool accessGranted = false;
pinMode(BUZZER_PIN, OUTPUT); for (Tarjeta t : approvedCards) {
pinMode(IN1, OUTPUT); if (tagID == [Link]) {
pinMode(IN2, OUTPUT); tarjetaAprobada = t;
pinMode(IN3, OUTPUT); accessGranted = true;
pinMode(IN4, OUTPUT); break;
}
// Configurar pines del sensor ultrasónico }
pinMode(TRIG_PIN, OUTPUT);

CODIGO
pinMode(ECHO_PIN, INPUT); if (accessGranted) {
[Link]("Acceso Permitido");
// Apagar LEDs y buzzer inicialmente [Link]([Link]); //

ARDUINO
digitalWrite(LED_ROJO, LOW); Número de tarjeta
digitalWrite(LED_VERDE, LOW); [Link]([Link]);
digitalWrite(BUZZER_PIN, LOW); // Nombre de la tarjeta

UNO
}
digitalWrite(LED_VERDE, HIGH);
void loop() { digitalWrite(LED_ROJO, LOW);
// Detectar tarjeta RFID buzzerPita(1); // Buzzer pita una vez
if (rfid.PICC_IsNewCardPresent() && abrirPorton();
rfid.PICC_ReadCardSerial()) {
String tagID = ""; // Enviar mensaje al Arduino 2
for (byte i = 0; i < [Link]; i++) { enviarMensaje("Tarjeta Aprobada",
tagID += String([Link][i] < 0x10 [Link],
? "0" : ""); [Link]);
tagID += String([Link][i], HEX);
} while (detectarPresencia()) delay(500);
[Link](); cerrarPorton();
digitalWrite(LED_VERDE, LOW);
} else {
[Link]("Acceso Denegado");
digitalWrite(LED_ROJO, HIGH); void girarMotor(int pasos) {
buzzerPita(2); // Buzzer pita dos veces for (int i = 0; i < abs(pasos); i++) {
delay(5000); if (pasos > 0) pasoAdelante();
digitalWrite(LED_ROJO, LOW); else pasoAtras();
delay(1);
// Enviar mensaje al Arduino 2 }

CODIGO
enviarMensaje("Acceso Denegado", }
tagID, "No autorizado");

ARDUINO
} void pasoAdelante() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3,

UNO
rfid.PICC_HaltA(); LOW); digitalWrite(IN4, LOW); delay(2);
} digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3,
} LOW); digitalWrite(IN4, LOW); delay(2);
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3,
void abrirPorton() { HIGH); digitalWrite(IN4, LOW); delay(2);
girarMotor(290); digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3,
} LOW); digitalWrite(IN4, HIGH); delay(2);
}
void cerrarPorton() {
girarMotor(-290);
}
void pasoAtras() {
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); delay(2);
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); delay(2);
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); delay(2);
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); delay(2);
}

bool detectarPresencia() {
long sum = 0;

CODIGO
int samples = 10;
for (int i = 0; i < samples; i++) {
digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2);

ARDUINO
digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);

UNO
sum += (duration / 2) / 29.1;
}
return (sum / samples) < 9;
}

void buzzerPita(int veces) {


for (int i = 0; i < veces; i++) {
if (i == 0) {
tone(BUZZER_PIN, 1000, 500); // Pitido corto de 1000Hz durante 500ms
} else {
tone(BUZZER_PIN, 500, 500); // Pitido corto de 500Hz durante 500ms
}
delay(600); // Pausa entre pitidos
noTone(BUZZER_PIN); // Detener buzzer
}
}
// Función para enviar los mensajes al Arduino 2 (Pantalla LCD)
CODIGO
ARDUINO
void enviarMensaje(String linea1, String linea2, String linea3) {
[Link](linea1); [Link]();
[Link](linea2); [Link]();

UNO
[Link](linea3); [Link]();
}
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>

// Inicializa los pines del LCD


const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;

// Crea un objeto LiquidCrystal


LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

CODIGO
// Configura SoftwareSerial
SoftwareSerial mySerial(8, 9); // RX, TX

ARDUINO
void setup() {
// Inicializa la comunicación serial

MEGA
[Link](9600);

// Inicializa el LCD con 20 columnas y 4 filas


[Link](20, 4);
[Link](); // Limpia la pantalla LCD
}

void loop() {
// Verifica si hay datos disponibles en el puerto serial
if ([Link]()) {
String message = [Link]('\n');
// Limpiar la pantalla y mostrar el mensaje recibido
[Link]();
[Link](0, 0); // Coloca el cursor en la primera fila
[Link](message);
}
}
CÓDIGO ARDUINO UNO SOFTWARE
CÓDIGO ARDUINO MEGA SOFTWARE
BIBLIOGRAFÍA
Fundación Aquae. (2020, 30 octubre). ¿Sabes qué es un Arduino y para qué sirve? - Fundación Aquae.
[Link]
sirve/#:~:text=Arduino%20se%20utilizado%20como%20un,2.

LearnTube, T. (2023, 25 marzo). The difference between Arduino Uno, Mega, Nano, and other boards.
Learn Tube. [Link]
network-security/the-difference-between-arduino-uno-mega-nano-and-other-boards/

Weinstock, M., & Weinstock, M. (2024, 25 noviembre). How Do Automatic Gates Work? An Explanation
From a Gate Guru. Gate Gurus. [Link]
work/?
_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=rq#:~:text=Automatic%20gates%20operate%20wh
en%20the,open%20or%20close%20the%20gate.

Ostos, E. F. (2021, 11 agosto). Automatizar portones por medio de arduino uno. Ebenezer Technologies -
Artificial Intelligence. [Link]
MUCHAS
GRACIAS

También podría gustarte