AR A R D U I N O PROYECTOS
CONTENIDOS INTRODUCCIÓ N ........................................................................................................................... V MONITOREO DE TEMPERATURA, TIEMPO Y OBJETOS ................................................................... 1 ¿Qué necesitamos? ...................................................................................................................... 2 Desarrollo .................................................................................................................................... 3 Lectura de Tiempo (Fecha y Hora) ............................................................................................ 3 Lectura de Temperatura .......................................................................................................... 3 Lectura de Objetos detectados ................................................................................................ 3 Procesamiento de información ................................................................................................ 3 Circuito ........................................................................................................................................4 Programación...............................................................................................................................4 Funcionamiento del proyecto .......................................................................................................6 MENSAJES DE TEXTO GSM ..............................................................................................................9 ¿Qué necesitamos? .................................................................................................................... 10 Desarrollo .................................................................................................................................. 10 Módulo GSM/GPRS SIM900 ................................................................................................... 10 Recepción de mensajes de texto SMS .................................................................................... 11 Transmisión de mensajes de texto SMS ................................................................................. 11 Procesamiento....................................................................................................................... 11 Conexiones del módulo al Arduino ......................................................................................... 12 Circuito ...................................................................................................................................... 12 Programación............................................................................................................................. 13 Funcionamiento del proyecto ..................................................................................................... 14 IDENTIFICACIÓN DE NÚMEROS CELULARES................................................................................. 19 ¿Qué necesitamos? .................................................................................................................... 20 Desarrollo .................................................................................................................................. 20 Recepción de datos ................................................................................................................ 20 Segmentación de datos ......................................................................................................... 20
I
Conexiones del módulo al Arduino ......................................................................................... 21 Circuito ...................................................................................................................................... 22 Programación............................................................................................................................. 23 Funcionamiento del proyecto ..................................................................................................... 24 ESTACIÓN DE MONITOREO GSM .................................................................................................. 29 ¿Qué necesitamos? .................................................................................................................... 30 Desarrollo .................................................................................................................................. 31 Lectura de Tiempo (Fecha y Hora) .......................................................................................... 31 Lectura de Temperatura ........................................................................................................ 32 Lectura de Objetos detectados .............................................................................................. 32 Recepción de datos ................................................................................................................ 32 Transmisión de mensajes de texto SMS ................................................................................. 32 Segmentación de datos ......................................................................................................... 33 Procesamiento de información .............................................................................................. 33 Conexiones del módulo al Arduino ......................................................................................... 34 Circuito ...................................................................................................................................... 36 Programación............................................................................................................................. 36 Funcionamiento del proyecto ..................................................................................................... 42 SISTEMA DE SEGURIDAD GSM ...................................................................................................... 49 ¿Qué necesitamos? .................................................................................................................... 50 Desarrollo .................................................................................................................................. 51 Procesamiento de información .............................................................................................. 51 Conexiones del módulo al Arduino ......................................................................................... 53 Circuito ...................................................................................................................................... 54 Programación............................................................................................................................. 55 Funcionamiento del proyecto ..................................................................................................... 61 CERRADURA ELECTRÓNICA RFID .................................................................................................. 71 ¿Qué necesitamos? .................................................................................................................... 72 Desarrollo .................................................................................................................................. 74 Tarjetas RFID (tags) ............................................................................................................... 74
II
Lectura de tags ...................................................................................................................... 75 Esquemáticos ............................................................................................................................. 75 Diseño de circuitos en PCB ......................................................................................................... 76 Programación............................................................................................................................. 77 Proceso de contrucción del proyecto .......................................................................................... 81 Funcionamiento del proyecto ..................................................................................................... 88 CONTROL DE PERSIANAS POR BLUETOOTH ................................................................................ 91 ¿Qué necesitamos? .................................................................................................................... 92 Desarrollo .................................................................................................................................. 94 Modulo Bluetooth HC-05 ....................................................................................................... 94 Configuración del módulo HC-05............................................................................................ 94 Lectura de datos ....................................................................................................................96 Esquemáticos ............................................................................................................................. 97 Diseño de circuitos en PCB ......................................................................................................... 97 Programación.............................................................................................................................99 Desarrollo de la aplicación Android en AppInventor .................................................................. 100 Proceso de contrucción del proyecto ........................................................................................ 102 Funcionamiento del proyecto ................................................................................................... 108 PANTALLA LED 48X8 ....................................................................................................................111 ¿Qué necesitamos? .................................................................................................................. 112 Desarrollo ................................................................................................................................ 114 Multiplicación ...................................................................................................................... 114 Desplazamiento ................................................................................................................... 115 Presentación de texto en la pantalla ..................................................................................... 115 Pantalla LED ........................................................................................................................ 115 Esquemáticos ........................................................................................................................... 116 Diseño de circuitos en PCB ....................................................................................................... 119 Programación........................................................................................................................... 122 Funcionamiento del proyecto ....................................................................................................131
III
IV
INTRODUCCIÓN Este texto tiene 8 increíbles proyectos en Arduino útiles y prácticos para aplicaciones en el mundo real. Estos proyectos son diseñados a base de las necesidades de los clientes y de quienes ven en la electrónica una forma nueva de cambiar al mundo. Es maravilloso disponer una plataforma de fácil acceso a microcontroladores, ya que literalmente pueden transformar el desarrollo de aplicaciones más sutiles y al alcance de todo principiante o diseñador electrónico. Todo es posible realizar en la plataforma Arduino, por su compactibilidad, disponibilidad y por el diseño electrónico que lo hace fácil y divertido.
V
VI
ARDUINO - PROYECTOS
MONITOREO DE TEMPERATURA, TIEMPO Y OBJETOS
1
MONITOREO DE TEMPERATURA, TIEMPO Y OBJETOS
Este proyecto permite detectar objetos con un sensor ultrasónico Maxbotix LV-EZ4, leer de tiempo (fecha y hora) y temperatura con el módulo RTC DS323, presentar información de diferentes fuentes en una pantalla LCD de 16x2 como monitor de usuario. Este proyecto sirve como inicio de futuros proyectos.
¿QUÉ NECESITAMOS? Para el desarrollo de este proyecto dispondremos de los siguientes materiales:
2
1x Arduino UNO o MEGA 2560 1x módulo RTC DS323 1x Maxbotix LV-EZ4 1x pantalla LCD 16x2 2x LEDS (rojo y azul) 4x resistencias de 330 Ω 1x potenciómetro de 10 KΩ Cables Protoboard.
Arduino UNO o MEGA
Módulo RTC DS323
Maxbotix LV-EZ4
Pantalla LCD 16x2
LEDS (rojo y azul)
Resistencias de 330 Ω
Potenciómetro
Cables
Protoboard
ARDUINO - PROYECTOS
DESARROLLO LECTURA DE TIEMPO (FECHA Y HORA)
La lectura del tiempo se obtiene del Módulo RTC DS323. Este es un dispositivo que trabajar con eventos precisos, puntuales y exactos a lo largo del tiempo. Este pequeño dispositivo es muy útil en relojes RTC (Real Time Clock) por su sencillez de uso y por su confiabilidad a largo plazo, y preparado para ofrecerte el tiempo hasta el año 2100 y bisiestos. Para la lectura de hora y fecha se usa el bus I2C, la cual se obtiene las horas, minutos, segundos, día de la semana, día del mes, meses y años que contempla los años bisiestos hasta fin de siglo. Por lo tanto, las conexiones entre Arduino Uno y Mega son las siguientes:
PINES DS3231 (I2C)
ARDUINO UNO
ARDUINO MEGA
1
SDA
A4
20
2
SCL
A5
21
3
GND
GND
GND
4
VCC
5V
5V
LECTURA DE TEMPERATU RA
La lectura de temperatura se obtiene del mismo Módulo RTC DS3231, en él se encuentra integrado en el interior un dispositivo o sensor de temperatura. Por lo tanto, la lectura de esta variable se la hace por el puerto I2C cuyas unidades son en grados Celsius o centígrados. LECTURA DE OBJETOS D ETECTADOS
El sensor Ultrasónico Maxbotix LV-EZ4 permite detectar objetos entre 0 a 6.45 metros. La ventaja de usar este sensor es la disponibilidad de tres interfaces de salida, de las cuales son activadas simultáneamente: salida digital por Ancho de Pulso (PW), salida analógica de voltaje (AN), y salida digital serial asíncrona (RX, TX). Para este proyecto se usara el puerto analógico de voltaje para la l ectura de objetos. PROCESAMIENTO DE INFORMACIÓN
Para obtener las variables de tiempo y temperatura es necesario leer la información del módulo RTC desde su memoria EEPROM en la dirección correcta, pero la ventaja de usar librerías externas permite facilitar esta tarea, mediante la función
3
MONITOREO DE TEMPERATURA, TIEMPO Y OBJETOS
Clock.getX() donde X es el tipo de variable para hacer la captura de los datos
correspondientes (hora, minuto, temperatura, año, etc). Para obtener la variable de distancia de un objeto detectado, se usa la librería externa para realizar la tarea de transformar datos analógico (0-1023) a unidades métricas según la distancia del objeto a través de la función rangeSensorAD.getRange() . Para un objeto detectado se encenderá un LED rojo como indicador de advertencia o indicador fuera de un rango permitido de detección (0.3 a 5 metros), por lo contrario se mantendrá encendido un LED azul como indicador permitido de detección de objetos, es decir dentro del rango permitido de detección.
CIRCUITO
PROGRAMACIÓN La programación desarrollada en el IDE de Arduino utiliza las librerías Wire. h y DS3231.h para el uso del módulo DS3231, la librería Maxbotix.h para el uso del sensor Maxbotix LV-EZ4, y LiquidCrystal.h para la pantalla LCD. Las librerías para el modulo DS3231 y sensor Maxbotix LV-EZ4 pueden ser descargados en el siguiente enlace: www.ecuduino.wordpress.com/librerias/
4
ARDUINO - PROYECTOS
/***************************************************************** * Proyecto: * * Monitoreo de temperatura, tiempo y objetos * ****************************************************************** Este programa permite mostrar temperatura, detección de objetos fecha y hora en un monitor serial y pantalla LCD con un modulo RTC RS3231 y MaxSonar. *****************************************************************/ /* * * * * * * * * * * */
LCD RS pin to digital pin 11 LCD Enable pin to digital pin 10 LCD D4 pin to digital pin 9 LCD D5 pin to digital pin 6 LCD D6 pin to digital pin 5 LCD D7 pin to digital pin 4 LCD R/W pin to ground 10K resistor: ends to +5V and ground wiper to LCD VO pin (pin 3)
#include #include #include #include
"Maxbotix.h"
Maxbotix rangeSensorAD(A0, Maxbotix::AN, Maxbotix::LV); LiquidCrystal lcd(11, 10, 9, 6, 5, 4); DS3231 Clock; bool Century=false; bool h12; bool PM; int LED_1 = 2; int LED_2 = 3;
// Led azul // Led rojo
void setup(){ Wire.begin(); // Iniciamos la interfaz I2C Serial.begin(115200); // Iniciamos la interfaz serial pinMode(LED_1,OUTPUT); pinMode(LED_2,OUTPUT); digitalWrite(LED_1,LOW); digitalWrite(LED_2,LOW); lcd.begin(16,2); } void loop (){ int second,minute,hour,date,month,year,temperature; second=Clock.getSecond(); minute=Clock.getMinute(); hour=Clock.getHour(h12, PM); date=Clock.getDate(); month=Clock.getMonth(Century); year=Clock.getYear(); temperature=Clock.getTemperature(); float distance = (rangeSensorAD.getRange())/100;
//metros
5
MONITOREO DE TEMPERATURA, TIEMPO Y OBJETOS
if((distance<=0.30)||(distance>=5)){ digitalWrite(LED_2,HIGH); digitalWrite(LED_1,LOW); } else{ digitalWrite(LED_1,HIGH); digitalWrite(LED_2,LOW); } //Presentación en pantalla LCD lcd.clear(); lcd.setCursor(0,0); lcd.print(date,DEC); lcd.print('/'); lcd.print(month,DEC); lcd.print('/'); lcd.print(year,DEC); lcd.print(' '); lcd.setCursor(0,1); lcd.print(hour,DEC); lcd.print(':'); lcd.print(minute,DEC); lcd.print(':'); lcd.print(second,DEC); lcd.setCursor(9,0); lcd.print("T="); lcd.print(temperature); lcd.print("'C"); lcd.setCursor(9,1); lcd.print("D="); if (distance>=10){ lcd.print("Error"); } else{ lcd.print(distance); } lcd.print("m"); delay(1000); }
FUNCIONAMIENTO DEL PROYECTO Una vez culminado con todo los procesos correspondientes al armado y a la programación, debemos asegurarnos que todo funciones correctamente; lectura de datos del módulo y sensor ultrasónico, presentación de datos en pantalla LCD, y encendido de LEDs. La tarjeta implementada es el Arduino MEGA, para esta práctica no hay restricciones para el uso de diferentes tarjetas Arduino.
6
ARDUINO - PROYECTOS
Por ultimo realizamos la detección de objetos a ciertas distancias para asegurarnos de su correcta funcionalidad, p. ej. 15cm y led rojo encendido.
Listo, este proyecto está listo para aplicarlo a una infinidad de aplicaciones útiles.
7