ARDUINO
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É NECESIT AMOS?
Para el desarrollo de este proyecto dispondremos de los siguientes materiales:
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
2
ARDUINO - PROYECTOS
DESARROLLO
LECTURA DE TIEMPO (F ECHA 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 lectura 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 <LiquidCrystal.h>
#include <DS3231.h>
#include <Wire.h>
#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; // Led azul
int LED_2 = 3; // 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 P ROYECT O
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.