Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ESTACIONAMIENTO
VA WI-FI
INDICE
INTRODUCCIN .... 2
FUNCIONAMIENTO .... 3
CONCLUSION .... 29
Introduccin
A partir del Proyecto Anterior mantuvimos la idea del estacionamiento inteligente,
en donde la tarea principal era el control de los motores paso a paso unipolares
por medio de pulsadores que actuaban como sensor, junto con el programa o el
cerebro principal que es el pic 16f877a que daba las instrucciones de ejecucin de
una tarea dependiendo de la decisin del usuario, como por ejemplo abrir y cerrar
la barrera de acceso al estacionamiento. Actualmente recurrimos a la ayuda de un
Arduino uno y el mdulo wifi esp8266, cuya misin es reemplazar los controles
fsicos o interruptores en la entrada del pic 16f877a por un control inalmbrico Wi-
Fi en donde la accin de la tarea (abrir y cerrar la barrera de acceso al
estacionamiento) ser transmitida por medio de un equipo mvil conectado
inalmbricamente con el mdulo wifi cuya cualidad es que actuar como receptor,
el cual el equipo mvil tendr los pulsadores y emitir una seal de control que
ser recibida por el receptor y activando dichas entradas del pic 16f877a.
Funcionamiento del Estacionamiento inteligente
El funcionamiento es a travs de un pulsador N/A el cual simulara un sensor en
donde se dar inicio al ciclo abriendo la barrera y automticamente al bajar la
barrera el display descontara un cupo luego al avanzar el vehculo se posicionara
en su lugar de estacionamiento.
-Pic 16f877a
-Driver ULN2803
-Display 7 segmentos
-Leds
DESCRIPCIN DE COMPONENTES
MICROCONTROLADOR PIC16F877:
- Arquitectura Harvard
- Tecnologa RISC
- Tecnologa CMOS
Cinco versiones estn disponibles para simplificar la interfaz con familias estndar
de esta lgica: la ULN2801A est diseado para aplicaciones de propsito general
con un lmite de corriente resistencia, la resistencia de entrada ULN2802A tiene
10.5k y zener de 14-25V PMOS, el ULN2803A tiene un 2.7k resistencia de
entrada de 5V TTL y CMOS, el ULN2804A tiene una resistencia de entrada
10.5k de 6-15V CMOS y el ULN2805A est diseado para familias Schottky TTL.
Aqu tenemos el diagrama de este til integrado.
ULN2803 Darlington
ARDUINO UNO
Caractersticas tcnicas del ARDUINO UNO Arduino es una placa con un
microcontrolador de la marca Atmel y con toda la circuitera de soporte, que incluye,
reguladores de tensin, un puerto USB (En los ltimos modelos, aunque el original
utilizaba un puerto serie) conectado a un mdulo adaptador USB-Serie que permite
programar el microcontrolador desde cualquier PC de manera cmoda y tambin hacer
pruebas de comunicacin con el propio chip. Un arduino dispone de 14 pines que pueden
configurarse como entrada o salida y a los que puede conectarse cualquier dispositivo
que sea capaz de transmitir o recibir seales digitales de 0 y 5 V. Tambin dispone de
entradas y salidas analgicas. Mediante las entradas analgicas podemos obtener datos
de sensores en forma de variaciones continuas de un voltaje. Las salidas analgicas
suelen utilizarse para enviar seales de control en forma de seales PWM. Arduino UNO
es la ltima versin de la placa, existen dos variantes, la Arduino UNO convencional y la
Arduino UNO SMD. La nica diferencia entre ambas es el tipo de microcontrolador que
montan.
Cada uno de los 14 pines digitales se puede usar como entrada o como salida.
Funcionan a 5V, cada pin puede suministrar hasta 40 mA.
SPI: Los pines 10, 11, 12 y 13 pueden utilizarse para llevar a cabo
comunicaciones SPI, que permiten trasladar informacin full dplex en un entorno
Maestro/Esclavo.
Puede alimentarse directamente a travs del propio cable USB o mediante una
fuente de alimentacin externa, como puede ser un pequeo transformador o, por
ejemplo una pila de 9V. Los lmites estn entre los 6 y los 12 V. Como nica
restriccin hay que saber que si la placa se alimenta con menos de 7V, la salida
del regulador de tensin a 5V puede dar menos que este voltaje y si
sobrepasamos los 12V, probablemente daaremos la placa. La alimentacin
puede conectarse mediante un conector de 2,1mm con el positivo en el centro o
directamente a los pines Vin y GND marcados sobre la placa. Hay que tener en
cuenta que podemos medir el voltaje presente en el jack directamente desde Vin.
En el caso de que el Arduino est siendo alimentado mediante el cable USB, ese
voltaje no podr monitorizarse desde aqu.
MODULO WIFI ESP8266
Caractersticas:
protocolo 802.11 b / g / n
Con las conexiones de hardware en lugar usted puede comunicarse con el mdulo
Wi-Fi a travs de una serie
Terminales.
Comandos importantes
Comando de Query (AT + < x>)? : Este comando devuelve el valor actual del
parmetro.
Conjunto de comandos AT + < x> = < ...> : Este comando se utiliza para
establecer el valor de los parmetros definidos por el usuario.
Ejecutar AT + < x> Parmetros variables utilizadas para llevar a cabo en virtud
de procedimientos de control interno del mdulo de comando Nmero de
funciones inmutables.
AT + RST Reinicio Del mdulo.
Respuesta OK
AT + CWMODE Selecciona el modo de aplicacin WIFI.
AT + CWJAP Accede al AP.
AT + CWLAP Listas Disponibles Actualmente AP.
AT + CWQAP Salida de la conexin con el AP.
AT + CWSAP AP Modo configuracin parmetros.
AT + CIFSR Toma la direccin IP local.
AT + CIPSTATUS Obtiene el estado de la conexin.
AT + CIPSTART Establece un tipo de conexin tcp o udp segn el nmero de
puertos registrados.
AT + CIPSEND Envo de dato.
AT + CIPCLOSE Cierra o finaliza TCP o UDP.
AT + CIPMUX Inicia mltiples conexiones.
AT + CIPSERVER configurado como servidor.
MOTOR PASO A PASO UNIPOLAR:
El motor unipolar normalmente dispone de 5 o 6 cables dependiendo si el comn
est unido internamente o no, para controlar este tipo de motores existen tres
mtodos con sus correspondientes secuencias de encendido de bobinas, el
comn ir conectado a +Vcc o masa segn el circuito de control usado y luego tan
solo tendremos que alimentar la bobina correcta para que avance o retroceda el
motor segn avancemos o retrocedamos en la secuencia.
-Profundidad 21.7mm
-Nmero de alambres 6
#FUSES XT,NOWDT
#BYTE TRISB=0X86
#BYTE PORTA=0X05
#BYTE TRISD=0X88
INT X=0;
INT Y=0;
VOID MAIN(){
INICIO:
SET_TRIS_D(0X00);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_LOW(PIN_B3);
OUTPUT_LOW(PIN_B5);
OUTPUT_LOW(PIN_B6);
OUTPUT_LOW(PIN_B7);
Y=0;
X=0;
OUTPUT_HIGH (PIN_C6);
OUTPUT_LOW (PIN_C5);
OUTPUT_HIGH(PIN_C4);
OUTPUT_LOW(PIN_C3);
WHILE(TRUE){ //CICLO
OUTPUT_D(DISPLAY[I]);
{DELAY_MS(30);
OUTPUT_HIGH (PIN_C5);
OUTPUT_LOW (PIN_C6);
OUTPUT_HIGH(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(50);
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(50);
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(50);
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(50);
X=X+1;
WHILE(INPUT(PIN_A0)==1);
IF(INPUT(PIN_A1)==1 && i>0 && X!=0) // CIERRA BARRERA ENTRADA RESTA CUPOS
{DELAY_MS(30);
OUTPUT_LOW (PIN_C5);
OUTPUT_HIGH (PIN_C6);
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
DELAY_MS(50);
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
DELAY_MS(50);
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
DELAY_MS(50);
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
DELAY_MS(50);
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(50);
X=X-1;
OUTPUT_TOGGLE(I--);
WHILE(INPUT(PIN_A2)==1);
}
OUTPUT_D(DISPLAY[I]);
{DELAY_MS(30);
OUTPUT_LOW(PIN_C4);
OUTPUT_HIGH(PIN_C3);
OUTPUT_HIGH(PIN_B5);
OUTPUT_LOW(PIN_B6);
OUTPUT_HIGH(PIN_B7);
DELAY_MS(50);
OUTPUT_LOW(PIN_B4);
OUTPUT_HIGH(PIN_B5);
OUTPUT_HIGH(PIN_B6);
OUTPUT_LOW(PIN_B7);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B4);
OUTPUT_LOW(PIN_B5);
OUTPUT_HIGH(PIN_B6);
OUTPUT_LOW(PIN_B7);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B4);
OUTPUT_LOW(PIN_B5);
OUTPUT_LOW(PIN_B6);
OUTPUT_HIGH(PIN_B7);
DELAY_MS(50);
OUTPUT_LOW(PIN_B4);
OUTPUT_HIGH(PIN_B5);
OUTPUT_LOW(PIN_B6);
OUTPUT_HIGH(PIN_B7);
DELAY_MS(50);
OUTPUT_LOW(PIN_B4);
OUTPUT_HIGH(PIN_B5);
OUTPUT_HIGH(PIN_B6);
OUTPUT_LOW(PIN_B7);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B4);
OUTPUT_LOW(PIN_B5);
OUTPUT_HIGH(PIN_B6);
OUTPUT_LOW(PIN_B7);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B4);
OUTPUT_LOW(PIN_B5);
OUTPUT_LOW(PIN_B6);
OUTPUT_HIGH(PIN_B7);
DELAY_MS(50);
Y=Y+1;
WHILE(INPUT(PIN_A2)==1);
{DELAY_MS(30);
OUTPUT_HIGH(PIN_C4);
OUTPUT_LOW(PIN_C3);
OUTPUT_HIGH(PIN_B4);
OUTPUT_LOW(PIN_B5);
OUTPUT_LOW(PIN_B6);
OUTPUT_HIGH(PIN_B7);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B4);
OUTPUT_LOW(PIN_B5);
OUTPUT_HIGH(PIN_B6);
OUTPUT_LOW(PIN_B7);
DELAY_MS(50);
OUTPUT_LOW(PIN_B4);
OUTPUT_HIGH(PIN_B5);
OUTPUT_HIGH(PIN_B6);
OUTPUT_LOW(PIN_B7);
DELAY_MS(50);
OUTPUT_LOW(PIN_B4);
OUTPUT_HIGH(PIN_B5);
OUTPUT_LOW(PIN_B6);
OUTPUT_HIGH(PIN_B7);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B4);
OUTPUT_LOW(PIN_B5);
OUTPUT_LOW(PIN_B6);
OUTPUT_HIGH(PIN_B7);
DELAY_MS(50);
OUTPUT_HIGH(PIN_B4);
OUTPUT_LOW(PIN_B5);
OUTPUT_HIGH(PIN_B6);
OUTPUT_LOW(PIN_B7);
DELAY_MS(50);
OUTPUT_LOW(PIN_B4);
OUTPUT_HIGH(PIN_B5);
OUTPUT_HIGH(PIN_B6);
OUTPUT_LOW(PIN_B7);
DELAY_MS(50);
OUTPUT_LOW(PIN_B4);
OUTPUT_HIGH(PIN_B5);
OUTPUT_LOW(PIN_B6);
OUTPUT_HIGH(PIN_B7);
DELAY_MS(50);
Y=Y-1;
OUTPUT_TOGGLE(I++);
WHILE(INPUT(PIN_A3)==1);
}
PROGRAMA ARDUINO UNO
CONCLUSIN
A medida que logramos comunicacin con los mdulos inalmbricos, se nos
facilit la realizacin de las tareas programadas con el Arduino uno, que era el que
se encarga de transmitir las acciones de abrir y cerrar la barrera del
estacionamiento segn la instruccin del usuario, ocupando pulsadores que
simulan ser sensores , y de esta forma se enva una seal a travs de un control
inalmbrico (wifi) ya sea a un equipo mvil y para luego ser captado por el modulo
receptor, cuya misin era darle aviso al pic16f877a de cumplir dichas instrucciones
ya programadas(entrada y salida de vehiculos). Gracias a esto se permita el
ingreso de un automvil al estacionamiento y a su vez en la parte posterior la
salida de este, con el mismo funcionamiento que en el de entrada. La etapa de
barreras se mantuvo la idea de ocupar motores paso a paso unipolares, junto con
su respectivo driver unl2803 y el pic 16f877a donde controla las acciones de
subir y bajar la barrera.