AUTOMATIZAR PORTONES POR MEDIO DE ARDUINO UNO

AUTOMATIZAR PORTONES POR MEDIO DE ARDUINO UNO

Componentes :

  • Modulo Relay 4 canales de Arduino
  • Arduino UNO
  • 4 Jumper hembra-macho
  • Cable USB

Software:

  • Windows o Linux.
  • Arduino IDE.

El hardware Arduino es una placa con todos los elementos necesarios para Conectar Periféricos en las Entradas y Salidas de un Microcontrolador, puede ser programada en Windows, macOS y GNU/Linux. Este hardware es muy interesante puesto que puedes hacer automatizaciones sencillas como: Aperturas de Puertas, Portones, Garajes, Monitoreo de alguna variable, etc. En este caso realizaremos una apertura de portón desde un software de lectura de placas vehiculares  ALICE-LPR (Stop and go),  el software envía una señal TCP (Protocolo de Control de Transmisión) a un servidor TCP (este servidor se encuentra en el PC), este a su vez envía un comando por puerto Serial/USB al Arduino y allí tenemos un código que se encarga de recibir esa señal y ejecutar una salida.

/*
 ACTIVACION DE CUATRO 
 SALIDAS 
 */
int incomingByte = 0;   // for incoming serial data
int boton = 4;
int estado = 0;
void setup()                                 // Built-in initialization block
{
  pinMode(9, OUTPUT);                       // Set digital pin 9 -> output
  digitalWrite(9, HIGH);
  pinMode(12, OUTPUT);           
  digitalWrite(12, HIGH);                     // Set digital pin 12 -> output
  pinMode(11, OUTPUT);                       // Set digital pin 11 -> output
  digitalWrite(11, HIGH);
  pinMode(10, OUTPUT);                       // Set digital pin 10 -> output
  digitalWrite(10, HIGH);
  Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
  pinMode(boton, INPUT);
  pinMode(13, OUTPUT);
  digitalWrite(4, HIGH);
}  

void loop()                                  // Main loop auto-repeats
{   

if(Serial.available()>0 ) {
                // read the incoming byte: 
                   char  incomingCharacter = Serial.read();
                   switch (incomingCharacter) {
                   case '1':
                    digitalWrite(9, LOW);                    // Pin 12 = 5 V, LED emits light
                    delay(100);                                // ..for 0.5 seconds
                    digitalWrite(12, HIGH); 
                   break;
                                    case '2':
                    digitalWrite(11, LOW);                    // Pin 11 = 5 V, LED emits light
                    delay(100);                                // ..for 0.5 seconds
                    digitalWrite(11, HIGH); 
                   break;
                                    case '3':
                    digitalWrite(12, LOW);                    // Pin 12 = 5 V, LED emits light
                    delay(100);                                // ..for 0.5 seconds
                    digitalWrite(12, HIGH); 
                   break;
                                    case '4':
                    digitalWrite(11, LOW);                    // Pin 11 = 5 V, LED emits light
                    delay(100);                                // ..for 0.5 seconds
                    digitalWrite(11, HIGH); 
                   break;
                                    case '5':
                    digitalWrite(12, LOW);                    // Pin 12 = 5 V, LED emits light
                    delay(100);                                // ..for 0.5 seconds
                    digitalWrite(12, HIGH); 
                   break;

    }

 }                              // ..for 0.5 seconds
}

Después de compilar el código en el Arduino  estamos preparados para correr el mini servidor TCP en Python, recibir una señal y enviarla al Arduino.

/*
 ACTIVACION DE CUATRO 
 SALIDAS 
 */
int incomingByte = 0;   // for incoming serial data
int boton = 4;
int estado = 0;
void setup()                                 // Built-in initialization block
{
  pinMode(9, OUTPUT);                       // Set digital pin 9 -> output
  digitalWrite(9, HIGH);
  pinMode(10, OUTPUT);           
  digitalWrite(10, HIGH);                     // Set digital pin 10 -> output
  pinMode(11, OUTPUT);                       // Set digital pin 11 -> output
  digitalWrite(11, HIGH);
  pinMode(12, OUTPUT);                       // Set digital pin 11 -> output
  digitalWrite(12, HIGH);
  Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps

}  

void loop()                                  // Main loop auto-repeats
{   

if(Serial.available()>0 ) {
                // read the incoming byte: 
                   char  incomingCharacter = Serial.read();
                   switch (incomingCharacter) {
                   case '1':
                    digitalWrite(9, LOW);                    // Pin 12 = 5 V, LED emits light
                    delay(100);                                // ..for 0.5 seconds
                    digitalWrite(9, HIGH); 
                   break;
                                    case '2':
                    digitalWrite(10, LOW);                    // Pin 11 = 5 V, LED emits light
                    delay(100);                                // ..for 0.5 seconds
                    digitalWrite(10, HIGH); 
                   break;
                                    case '3':
                    digitalWrite(11, LOW);                    // Pin 12 = 5 V, LED emits light
                    delay(100);                                // ..for 0.5 seconds
                    digitalWrite(11, HIGH); 
                   break;
                                    case '4':
                    digitalWrite(12, LOW);                    // Pin 11 = 5 V, LED emits light
                    delay(100);                                // ..for 0.5 seconds
                    digitalWrite(12, HIGH); 
                   break;

    }

 }                              // ..for 0.5 seconds
}

Este debería ser el resultado si ejecutas el Serial Monitor de ARDUINO, y lo mas interesante es que con estos códigos puedes automatizar cualquier control de acceso.

En este vídeo estamos automatizando un Control de Acceso Vehicular por medio de lectura de placas vehiculares (ALICE-LPR Stop and Go)  el cual compara listas blancas y  permite el acceso del vehículo, en unos cuantos milisegundos, por medio del ARDUINO.

Cuéntanos un poco de proyectos en los cuales te podamos ayudar, déjanos un comentario y te responderemos.

, , ,