Professional Documents
Culture Documents
3 Automatización de Circuitos Beneficiosos para El Módulo Tecnológico Productivo.
3 Automatización de Circuitos Beneficiosos para El Módulo Tecnológico Productivo.
Escala de calificación
< a 51 INSUFICIENTE
51 – 79 BUENA
80 – 89 SOBRESALIENTE
90 – 100 EXCELENTE
Dirección: Zona Santiago II Calle 12 Entre calle “E” y calle “F” Email:modulotecnologicoelalto@gmail.com
Teléfonos de contacto: 65561015 - 7629269
DEDICATORIA
I
AGRADECIMIENTO
Agradecemos a nuestro docente por la
amplia información que nos ha
brindado y llenado de conocimiento.
Asimismo, agradecemos a la
tecnología por su aporte para realizar
distintas investigaciones.
II
INDICE
1. CAPITULO I: INTRODUCCIÓN ....................................................................................... 1
1.1. MARCO CONTEXTUAL ............................................................................................... 2
1.1.1. Datos referenciales del Contexto ..................................................................................... 2
1.1.2. Localización de proyecto .................................................................................................. 5
2. CAPITULO II: PLANTEAMIENTO DEL PROYECTO ...................................................... 7
2.1. Descripción del problema ............................................................................................. 7
2.2. Objetivos ...................................................................................................................... 7
2.2.1. Objetivo General .............................................................................................................. 7
2.2.2. Objetivos Específicos ........................................................................................................ 7
2.3. Límites y Alcances del proyecto o propuesta ............................................................... 8
2.4. Justificación Social ....................................................................................................... 8
2.5. Justificación Técnica .................................................................................................... 8
3. CAPITULO III: PROPUESTA DE INNOVACION DEL PROYECTO. ............................. 10
3.1. Antecedentes históricos ............................................................................................. 10
3.2. Marco teórico ............................................................................................................. 11
3.2.1 ¿Qué es Software? ................................................................................................................ 11
3.2.2 ¿Qué es Hardware? ............................................................................................................... 11
3.2.3.¿Qué es la automatización? .................................................................................................. 12
3.2.4.¿Qué significa inalámbrico? .................................................................................................. 12
3.2.5. ¿Qué es una placa Arduino?................................................................................................. 13
3.2.6. ¿Para qué sirve Arduino? ..................................................................................................... 14
3.2.7. Programación en Arduino .................................................................................................... 15
3.2.8. Módulo Bluetooth ................................................................................................................ 37
3.2.9. Modulo RTC 1307 ................................................................................................................. 39
3.3. Definición del proyecto ............................................................................................... 41
3.4. Diseño o planteamiento del proyecto ......................................................................... 41
3.5. Insumos, Materiales y Herramientas .......................................................................... 49
3.6. Procedimiento ............................................................................................................ 50
3.7. Valoración .................................................................................................................. 50
3.8. Costos y presupuesto................................................................................................. 51
4. CAPITULO IV: CONCLUSIONES Y RECOMENDACIONES ........................................ 52
4.1. Conclusiones.............................................................................................................. 52
III
4.2. Recomendaciones ..................................................................................................... 52
5. BIBLIOGRAFÍA Y WEBGRAFÍA ................................................................................... 54
6. ANEXOS ....................................................................................................................... 55
ÍNDICE GRÁFICO
IV
1. CAPITULO I: INTRODUCCIÓN
Hoy en día, con el avance de la tecnología ́ se observa que el ser humano busca
constantemente optimizar y satisfacer necesidades diarias.
Para la cortina también tuvimos que profundizar en algunos temas en especial para
así hacer o dar un resultado más prometedor y que esté a la altura de lo aprendido en
las especialidades.
1
1.1. MARCO CONTEXTUAL
Los distritos municipales 1 y 2 de El Alto, sector de la Ceja de El Alto, son los más
poblados y donde están establecidos los centros comerciales de gran concurrencia de
este municipio. El distrito municipal 1 (de los 848.452 habitantes que tiene todo El Alto)
cuenta con 87.997 habitantes; el distrito 2 con 73.939 habitantes, La densidad es
significativa ante un promedio de El Alto que alcanza a 18,45 por Km2. (Fuente: Censo
de población y vivienda INE. 2012).
b) Cultural.
Respecto a los padres de familia que son parte del Módulo tecnológico Productivo El
Alto, en la formación Técnica Tecnológica Productiva, se tiene una percepción
2
generalizada de que ellos comprenden y hablan la lengua Castellana, de la misma
manera hay una buena cantidad de personas que hacen uso del quechua y aymara
como una lengua originaria.
c) Socio – económica.
d) En lo Institucional.
e) Recursos humanos
f) Pedagógico
4
En lo técnico pedagógico está se desarrolla desde el plan anual de actividades
pedagógicas, bajo un calendario escolar que es emanada desde las autoridades del
ramo educativo. Para posteriormente el MTPEA, ser parte activa desde la planificación
de las actividades curriculares de todo el proceso educativo, con la finalidad de formar
y transformar integral y holísticamente a los estudiantes, bajo los lineamientos de la
ley educativa 070 de Avelino Siñani – Elizardo Pérez.
g) Infraestructura.
DEPARTAMENTO: La Paz
5
MUNICIPIO: El Alto
Fuente: https://www.facebook.com/TecnologicoElAlto
6
2. CAPITULO II: PLANTEAMIENTO DEL PROYECTO
Además de que sea muy beneficioso para el MTPEA, también es algo que la sociedad
e instituciones pueden ocupar.
2.2. Objetivos
7
Construir una estructura que se maneje de forma tanto alámbrica
como inalámbrica y simple.
Socializar y demostrar el funcionamiento de dichos proyectos.
Queremos que este proyecto de las cortinas automáticas sea de gran utilidad para la
especialidad de Sistemas Informáticos-Electrónica y así también presentar un proyecto
de calidad que sea de uso diario, esto será posible a la unión de las especialidades de
sistemas informáticos y electrónica que tiene el conocimiento necesario para hacerlo
realidad.
Queremos que nuestro proyecto de las cortinas automáticas haga más simple la acción
de cerrar las cortinas del salón y no solo solucionar este tema sino darle un toque más
agradable al ambiente de trabajo con cortinas. También una mejor organización al
momento de indicar los horarios de ingreso, receso y salida.
Luego de observar los ambientes del Módulo Tecnológico Productivo El Alto, notamos
que las aulas no cuentan con cortinas, muchos de los docentes trabajan con proyector
de pantalla, sin embargo, la luz no permite una buena proyección, dejando de lado
nuestro instituto, las personas necesitan un proyecto como el que realizamos, podría
ser de gran ayuda para las personas con alguna discapacidad que no son capaces de
pararse para quitarse una molestia (la luz) o al contrario. Además, actualizar los
ambientes académicos de nuestro MTPEA como también otros ambientes académicos
de El Alto-Bolivia.
8
Figura 2: Observación del problema.
Fuente: Propio.
Fuente: Propio.
9
3. CAPITULO III: PROPUESTA DE INNOVACION DEL PROYECTO.
Los ambientes académicos han ido evolucionando más y más, el papel de la educación
en la sociedad ha cambiado debido al surgimiento de paradigmas y nuevas
mediaciones que exigen las tecnologías de la información y la comunicación. Los
ambientes de aprendizaje, entendidos como los espacios en los cuales se desarrollan
los procesos de enseñanza y de aprendizaje, también están evolucionando de forma
rápida y efectiva. Las nuevas generaciones son afectadas cada vez desde más
temprana edad, por la inclusión de las diferentes tecnologías en su vida cotidiana. La
transformación de los ambientes de enseñanza y de aprendizaje es una necesidad
clara en el país.
-Las cortinas fueron creadas y utilizadas con el propósito de evitar los rayos solares.
Recolectamos estas ideas para añadir la automatización de circuitos y hacerlos más
eficientes para el MTPEA. Nuestro objetivo
10
3.2. Marco teórico
acceder a los servicios y recursos. Al igual que un equipo no puede trabajar sin un
para que el usuario de cada estación, pueda utilizar sus programas y archivos
específicos. Este software puede ser tan amplio como se necesite ya que puede
Para lograr el enlace entre las computadoras y los medios de transmisión (cables
red (NIC, Network Card Interface), con la cual se puedan enviar y recibir paquetes
por el medio (bits, ceros y unos). Cabe señalar que a cada tarjeta de red le es
11
asignado un identificador único por su fabricante, conocido como dirección
MAC (Media Access Control), que consta de 48 bits (6 bytes). Dicho identificador
El trabajo del adaptador de red es el de convertir las señales eléctricas que viajan
por el cable (p.e.: red Ethernet) o las ondas de radio (p.e.: red Wi-Fi) en una señal
3.2.3.¿Qué es la automatización?
“La automatización consiste en usar la tecnología para realizar tareas con muy poca
intervención humana. Se puede implementar en cualquier sector en el que se lleven
a cabo tareas repetitivas.”
La principal diferencia entre estas es que la red cableada se conecta mediante cables
de datos (Ethernet), y la red inalámbrica no se conecta físicamente, sino que utiliza
ondas electromagnéticas para transmitir la información necesaria.
Una red inalámbrica conecta las computadoras sin utilizar cables de red. Los equipos
utilizan comunicaciones por radio para enviar datos entre sí. Puede comunicarse
directamente con otras computadoras inalámbricas o conectarse a una red.
12
A través de estas redes o ondas es posible enviar señales a dispositivos lejanos o que
no están al alcance así pudiendo los controlar a gusto en cualquier momento y lugar
que desees.
El proyecto de Arduino nació en 2005 con el único objetivo de proveer a los estudiantes
del “Interaction Design Institute Ivrea” de una placa o sistema electrónico que
permitiera a cualquier tipo de persona ya sea estudiante o profesional, crear
dispositivos digitales que pudieran interactuar con el entorno mediante sensores como
micrófonos o detectores de movimiento, y a la vez poder también generar una
respuesta visible mediante diodos leds o motores u otros medios. Todo esto siempre
intentando hacerlo con el menor coste posible y de la forma más simple, lo cual permite
hacer dispositivos simples como termostatos, y también dispositivos más complejos
como robots con varias funciones. El nombre del proyecto también proviene de la
misma universidad, más concretamente de un bar donde los fundadores solían quedar,
13
el cual se llamaba “Arduin of Ivrea” en honor a quien fue rey de Italia entre los años
1002 y 1014.
La propia marca tiende varios modelos en su pagina web, con diferentes variantes y
revisiones, siendo el más popular el Arduino Uno, que es la placa más todo terreno,
con un buen número de conectores y hasta opción de wifi. Por otro lado, estarían las
Nano, la versión más pequeña de la familia, la cual tiene varias variantes con sensores
dedicados y sirve para tener una placa programable de un tamaño de apenas
45x18mm. Justo en el extremo opuesto estaría la Arduino Mega, con chips más
potentes y con muchísimos más conectores, casi cuadriplicando los de una placa Uno,
lo cual la hace perfecta para proyectos complejos con un montón de elementos.
También, aparte de las placas para poder sacarlas partido necesitaremos elementos
externos como cables, diodos, motores, sensores y demás para que la placa pueda
hacer algo, ya que por sí solas la mayoría de ellas serán solo un procesador
programable, sin ningún sensor que procesar ni formas por las que interactuar con el
entorno.
14
Figura 4: Partes de una placa Arduino.
Fuente: https://aprendiendoarduino.wordpress.com/tag/esquemas-electricos/
void setup()
{
estamentos;
} void loop()
15
{
estamentos;
}
setup()
La función setup() se invoca una sola vez cuando el programa empieza. Se utiliza
para inicializar los modos de trabajo de los pins, o el puerto serie. Debe ser incluido
en un programa aunque no haya declaración que ejecutar.
void setup()
{
pinMode(pin, OUTPUT); // configura el 'pin' como salida
}
16
loop()
void loop()
{
digitalWrite(pin, HIGH); // pone en uno (on, 5v) el ´pin´
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin, LOW); // pone en cero (off, 0v.) el ´pin´
delay(1000);
}
funciones
17
type nombreFunción(parámetros)
{
estamentos;
}
int delayVal()
{
int v; // crea una variable temporal 'v' v=
analogRead(pot); // lee el valor del potenciómetro v /= 4;
// convierte 0-1023 a 0-255 return v; // devuelve el
valor final
}
{} entre llaves
type funcion()
18
{
estamentos;
}
Una llave de apertura “{“ siempre debe ir seguida de una llave de cierre “}”, si no
es así el programa dará errores.
; punto y coma
Nota: Olvidarse de poner fin a una línea con un punto y coma se traducirá en un
error de compilación. El texto de error puede ser obvio, y se referirá a la falta de
una coma, o puede que no. Si se produce un error raro y de difícil detección lo
primero que debemos hacer es comprobar que los puntos y comas están
colocados al final de las instrucciones.
19
Los bloques de comentarios, o multi-línea de comentarios, son áreas de texto
ignorados por el programa que se utilizan para las descripciones del código o
comentarios que ayudan a comprender el programa. Comienzan con / * y terminan
con * / y pueden abarcar varias líneas.
// línea de comentarios
// esto es un comentario
20
variables
Una vez que una variable ha sido asignada, o re-asignada, usted puede probar su
valor para ver si cumple ciertas condiciones (instrucciones if..), o puede utilizar
directamente su valor. Como ejemplo ilustrativo veamos tres operaciones útiles
con variables: el siguiente código prueba si la variable “entradaVariable” es inferior
a 100, si es cierto se asigna el valor 100 a “entradaVariable” y, a continuación,
establece un retardo (delay) utilizando como valor “entradaVariable” que ahora
será como mínimo de valor 100:
21
entradaVariable = 100;// si es cierto asigna el valor 100 a esta
}
delay(entradaVariable); // usa el valor como retardo
Nota: Las variables deben tomar nombres descriptivos, para hacer el código más
legible. Nombres de variables pueden ser “contactoSensor” o “pulsador”, para
ayudar al programador y a cualquier otra persona a leer el código y entender lo
que representa la variable. Nombres de variables como “var” o “valor”, facilitan muy
poco que el código sea inteligible. Una variable puede ser cualquier nombre o
palabra que no sea una palabra reservada en el entorno de Arduino.
declaración de variables
Todas las variables tienen que declararse antes de que puedan ser utilizadas. Para
declarar una variable se comienza por definir su tipo como int (entero), long (largo),
float (coma flotante), etc, asignándoles siempre un nombre, y, opcionalmente, un
valor inicial. Esto sólo debe hacerse una vez en un programa, pero el valor se
puede cambiar en cualquier momento usando aritmética y reasignaciones
diversas.
int entradaVariable = 0;
Una variable puede ser declarada en una serie de lugares del programa y en
función del lugar en donde se lleve a cabo la definición esto determinará en que
partes del programa se podrá hacer uso de ella.
22
Utilización de una variable
Una variable puede ser declarada al inicio del programa antes de la parte de
configuración setup(), a nivel local dentro de las funciones, y, a veces, dentro de
un bloque, como para los bucles del tipo if.. for.., etc. En función del lugar de
declaración de la variable así se determinara el ámbito de aplicación, o la
capacidad de ciertas partes de un programa para hacer uso de ella.
Una variable global es aquella que puede ser vista y utilizada por cualquier función
y estamento de un programa. Esta variable se declara al comienzo del programa,
antes de setup().
Una variable local es aquella que se define dentro de una función o como parte de
un bucle. Sólo es visible y sólo puede utilizarse dentro de la función en la que se
declaró.
Por lo tanto, es posible tener dos o más variables del mismo nombre en diferentes
partes del mismo programa que pueden contener valores diferentes. La garantía
de que sólo una función tiene acceso a sus variables dentro del programa simplifica
y reduce el potencial de errores de programación.
void loop()
{ for (int i=0; i<20;) // 'i' solo es visible
{ // dentro del bucle for i++;
} float f; // 'f' es visible
solo
} // dentro del bucle
byte
Byte almacena un valor numérico de 8 bits sin decimales. Tienen un rango entre 0
y 255
Int
Nota: Las variables de tipo entero “int” pueden sobrepasar su valor máximo o
mínimo como consecuencia de una operación. Por ejemplo, si x = 32767 y una
posterior declaración agrega 1 a x, x = x + 1 entonces el valor se x pasará a ser -
32.768. (algo así como que el valor da la vuelta)
24
long
float
El formato de dato del tipo “punto flotante” “float” se aplica a los números con
decimales. Los números de punto flotante tienen una mayor resolución que los de
32 bits con un rango comprendido 3.4028235E +38 a +38-3.4028235E.
Nota: Los números de punto flotante no son exactos, y pueden producir resultados
extraños en las comparaciones. Los cálculos matemáticos de punto flotante son
también mucho más lentos que los del tipo de números enteros, por lo que debe
evitarse su uso si es posible.
operadores lógicos
Los operadores lógicos son usualmente una forma de comparar dos expresiones
y devolver un VERDADERO o FALSO dependiendo del operador. Existen tres
operadores lógicos, AND (&&), OR (||) y NOT (!), que a menudo se utilizan en
estamentos de tipo if..:
Logical AND:
if (x > 0 && x < 5) // cierto sólo si las dos expresiones son ciertas
25
Logical OR:
if (x > 0 || y > 0) // cierto si una cualquiera de las expresiones es
cierta
Logical NOT:
if (!x > 0) // cierto solo si la expresión es falsa
constantes
cierto/falso (true/false)
Estas son constantes booleanas que definen los niveles HIGH (alto) y LOW (bajo)
cuando estos se refieren al estado de las salidas digitales. FALSE se asocia con 0
(cero), mientras que TRUE se asocia con 1, pero TRUE también puede ser
cualquier otra cosa excepto cero. Por lo tanto, en sentido booleano, -1, 2 y -200
son todos también se define como TRUE. (esto es importante tenerlo en cuanta)
if (b == TRUE);
{
ejecutar las instrucciones;
}
26
high/low
Estas constantes definen los niveles de salida altos o bajos y se utilizan para la
lectura o la escritura digital para las patillas. ALTO se define como en la lógica de
nivel 1, ON, ó 5 voltios, mientras que BAJO es lógica nivel 0, OFF, o 0 voltios.
input/output
Estas constantes son utilizadas para definir, al comienzo del programa, el modo de
funcionamiento de los pines mediante la instrucción pinMode de tal manera que el
pin puede ser una entrada INPUT o una salida OUTPUT.
if (si)
27
if (unaVariable ?? valor)
{
ejecutaInstrucciones;
}
En el ejemplo anterior se compara una variable con un valor, el cual puede ser una
variable o constante. Si la comparación, o la condición entre paréntesis se cumple
(es cierta), las declaraciones dentro de los corchetes se ejecutan. Si no es así, el
programa salta sobre ellas y sigue.
Nota: Tenga en cuenta el uso especial del símbolo '=', poner dentro de if (x = 10),
podría parecer que es valido pero sin embargo no lo es ya que esa expresión
asigna el valor 10 a la variable x, por eso dentro de la estructura if se utilizaría
X==10 que en este caso lo que hace el programa es comprobar si el valor de x es
10.. Ambas cosas son distintas por lo tanto dentro de las estructuras if, cuando se
pregunte por un valor se debe poner el signo doble de igual “==”
if… else viene a ser un estructura que se ejecuta en respuesta a la idea “si esto no
se cumple haz esto otro”. Por ejemplo, si se desea probar una entrada digital, y
hacer una cosa si la entrada fue alto o hacer otra cosa si la entrada es baja, usted
escribiría que de esta manera:
{
instruccionesA; //ejecuta si se cumple la condición
28
} else
{ instruccionesB; //ejecuta si no se cumple la condición
} else
{ instruccionesC; // ejecuta las operaciones C
for
29
La declaración for se usa para repetir un bloque de sentencias encerradas entre
llaves un número determinado de veces. Cada vez que se ejecutan las
instrucciones del bucle se vuelve a testear la condición. La declaración for tiene
tres partes separadas por (;) vemos el ejemplo de su sintaxis:
for (int i=0; i<20; i++) // declara i, prueba que es menor que
20, incrementa i en 1
{
digitalWrite(13, HIGH); // envía un 1 al pin 13 delay(250);
// espera ¼ seg.
digitalWrite(13, LOW); // envía un 0 al pin 13
delay(250); // espera ¼ de seg.
}
30
Nota: El bucle en el lenguaje C es mucho más flexible que otros bucles encontrados
en algunos otros lenguajes de programación, incluyendo BASIC. Cualquiera de los
tres elementos de cabecera puede omitirse, aunque el punto y coma es obligatorio.
También las declaraciones de inicialización, condición y expresión puede ser
cualquier estamento válido en lenguaje C sin relación con las variables declaradas.
Estos tipos de estados son raros pero permiten disponer soluciones a algunos
problemas de programación raras.
while
31
}
do… while
El bucle do while funciona de la misma manera que el bucle while, con la salvedad
de que la condición se prueba al final del bucle, por lo que el bucle siempre se
ejecutará al menos una vez.
do
{
Instrucciones;
} while (unaVariable ?? valor);
do
{ x = leeSensor();
delay(50);
} while (x < 100);
pinMode(pin, mode)
32
pinMode(pin, OUTPUT); // configura ‘pin’ como salida
Los terminales de Arduino, por defecto, están configurados como entradas, por lo
tanto no es necesario definirlos en el caso de que vayan a trabajar como entradas.
Los pines configurados como entrada quedan, bajo el punto de vista eléctrico,
como entradas en estado de alta impedancia.
Estos pines tienen a nivel interno una resistencia de 20 KΩ a las que se puede
acceder mediante software. Estas resistencias se accede de la siguiente manera:
Los pins configurado como OUTPUT (salida) se dice que están en un estado de
baja impedancia estado y pueden proporcionar 40 mA (miliamperios) de corriente
a otros dispositivos y circuitos. Esta corriente es suficiente para alimentar un diodo
LED (no olvidando poner una resistencia en serie), pero no es lo suficiente grande
como para alimentar cargas de mayor consumo como relés, solenoides, o motores.
Un cortocircuito en las patillas Arduino provocará una corriente elevada que puede
dañar o destruir el chip Atmega. A menudo es una buena idea conectar en la
OUTUPT (salida) una resistencia externa de 470 o de 1000 Ω.
digitalRead(pin)
33
Lee el valor de un pin (definido como digital) dando un resultado HIGH (alto) o LOW
(bajo). El pin se puede especificar ya sea como una variable o una constante (0-
13).
digitalWrite(pin, value)
Envía al ´pin´ definido previamente como OUTPUT el valor HIGH o LOW (poniendo
en 1 o 0 la salida). El pin se puede especificar ya sea como una variable o como
una constante (0-13).
void setup()
{
34
pinMode(led, OUTPUT); // configura el led (pin13) como salida
pinMode(boton, INPUT); // configura botón (pin7) como entrada
}
void loop()
{ valor = digitalRead(boton); //lee el estado de la entrada botón
digitalWrite(led, valor); // envía a la salida ´led´el valor leído }
analogRead(pin)
Lee el valor de un determinado pin definido como entrada analógica con una
resolución de 10 bits. Esta instrucción sólo funciona en los pines (0-5). El rango de
valor que podemos leer oscila de 0 a 1023.
Nota: Los pins analógicos (0-5) a diferencia de los pines digitales, no necesitan ser
declarados como INPUT u OUPUT ya que son siempre INPUT´s.
analogWrite(pin, value)
35
se puede enviar a estos pines de salida analógica puede darse en forma de
variable o constante, pero siempre con un margen de 0-255.
255 genera una salida de 5 voltios de salida en el pin especificado. Para valores
de entre
0 y 255, el pin saca tensiones entre 0 y 5 voltios - el valor HIGH de salida equivale
a 5v
void loop()
{
valor = analogRead(analog); // lee el pin 0 y lo asocia a la
variable valor
valor /= 4; / /divide valor entre 4 y lo reasigna a valor
analogWrite(led, value); // escribe en el pin10 valor }
delay(ms)
37
El Módulo Bluetooth HC-06 es un dispositivo que soporta conexiones inalámbricas a
través del protocolo “Bluetooth”.
Se pueden comportar como esclavo o maestro, lo que sirve para escuchar peticiones
de conexión y para generar peticiones de conexión. Si algún dispositivo se conecta, el
módulo transmite a este todos los datos que recibe desde un microcontrolador y
viceversa.
El módulo Bluetooth HC-06 dispone de 4 pines, solo puede actuar como esclavo,
dispone de un juego reducido de instrucciones a las que atiende, permite:
Los módulos HC-06 están montados sobre una interfaz en la que se incluye cuatro
pines para su conexión, Vcc, Gnd, Txd y Rxd, además cuentan con un LED para indicar
el estado de conexión del Bluetooth; si el LED parpadea es que no está emparejado,
si este está activado de forma continua el Bluetooth esta emparejado.
El módulo HC-06 cumple con las especificaciones del estándar Bluetooth 2.0 a 2.4
GHz que es perfectamente compatible con Arduino y PIC, celulares o Smartphone
Android, más no con los IPhone.
Funciones
· Ideal para controlar proyectos Arduino, PIC, Atmel, etc. en forma inalámbrica con la
PC
38
En la siguiente infografía se detallan elementos importantes.
Fuente: https://aprendiendoarduino.wordpress.com/tag/hc-05/
Los RTC (Real Time Clock) o reloj en Tiempo Real son la solución ideal cuando
necesitamos integrar mediciones de tiempo a nuestros proyectos. Los RTC son de
muy bajo consumo por lo que pueden ser alimentados por baterías y de esa forma no
perder la sincronización. Si bien los microcontroladores poseen contadores internos,
estos no son tan exactos como un RTC dedicado.
39
Hora: Segundos, minutos, horas
Fecha: número día, día de la semana, mes y año
Compensación de año bisiesto
Pin de salida a 1 Hz para llevar el tiempo en otros componentes
ESPECIFICACIONES TÉCNICAS
-Puede ser usado en cascada con otro dispositivo I2C, la dirección del AT24C32
puede ser modificada (por defecto es 0x57)
-Dimensiones: 28*27 mm
-Peso: 5 gramos
CONEXIÓN
SCL - A5
SDA - A4
VCC - 5V
GND – GND
40
Figura 6: Módulo RTC 1307
Fuente: https://www.youtube.com/watch?v=xTVGEdiaX3s
Realizar una automatización de circuitos para mejorar una cortina simple y sencilla
como también el timbre/alarma. Todo será elaborado en el siguiente orden:
-Elaboración de códigos.
41
-Pruebas en protoboard.
Códigos:
CORTINAS
char vigila = 0;
int Mot1_izq = 4;
int Mot1_der = 5;
int btn1 = 6;
int btn2 = 7;
int btn3 = 8;
int Mot2_izq = 9;
Serial.begin(9600);
BT1.begin (9600);
42
pinMode (Mot2_der, OUTPUT);
if (BT1.available ()){
vigila = BT1.read();
if (vigila == 'A'){
if (vigila == 'B'){
if (vigila == 'C'){
43
}
if(digitalRead(btn1)== HIGH){
if(digitalRead(btn2)== HIGH){
if(digitalRead(btn3)== HIGH){
ALARMA
#include <SoftwareSerial.h> //libreria con las funciones para el modulo I2C
#include <LiquidCrystal_I2C.h> //libreria contiene funciones para la pantalla lcd con
extencion I2C
#include "RTClib.h" //libreria contiene funciones para el modulo RTC-1307
#include <Wire.h> //libreria que permite la comunicación I2C
}
void loop(){
DateTime now = rtc.now(); // "now" es la que guardará los datos del tiempo
45
lcd.print(now.month()); //imprimimos en la pantalla LCD el mes
lcd.print("/"); //imprimimos en la pantalla LCD el texto entre comillas
lcd.print(now.year()); //imprimimos en la pantalla LCD el año mantenido por el modulo
lcd.setCursor (0,0);
lcd.print(now.hour()); //imprimimos en la pantalla LCD la hora sguida por el RTC
lcd.print(":"); //imprimimos en la pantalla LCD el texto
lcd.print(now.minute()); //imprimimos en la pantalla LCD el minuto correspondiente
lcd.print(":"); //imprimimos en la pantalla LCD el texto o simbolo
lcd.print(now.second()); //imprimimos en la pantalla LCD los segundos en los que se
encuentra el RTC
delay(1000); //detenemos el codigo 1000 milisegundos (1 segundo)
lcd.clear(); //mandamos la instruccion de limpiar la pantalla lcd completa
if (Bt1.available ()){ //preguntamos si el objeto "Bt1" tiene valores guardados
//si la condición se cumple se ejecutan las intrucciones siguientes
lectura = Bt1.read(); //las variable "lectura" es igual a la lectura del objeto "Bt1" o los
valores guardados por el modulo Bluetooth
//timbre enrada
if (lectura == 'A'){ //preguntsmos si la variable lectura es igual al caracter 'A'
digitalWrite (rele, HIGH); //ordenamos la escritura digital para el pin "rele"
encendido
lcd.setCursor (0,3); //seleccionamos la columna (0) y la fila (3) del LCD
lcd.print("Entrada"); //imprimimos el texto "Entrada" en la pantalla LCD
}
if(lectura == 'B'){ //preguntsmos si la variable lectura es igual al caracter 'B'
digitalWrite (rele,LOW); //ordenamos la escritura digital para el pin "rele" apagado
lcd.setCursor (0,3); //seleccionamos la columna (0) y la fila (3) del la pantalla LCD
lcd.print("Entrada"); //imprimimos el texto "Entrada" en la pantalla LCD
}
46
//timbre del recreo
if (lectura == 'C'){ //preguntsmos si la variable lectura es igual al caracter 'C'
digitalWrite (rele, HIGH); //ordenamos la escritura digital para el pin "rele"
encendido
lcd.setCursor (0,3); //seleccionamos la columna (0) y la fila (3)
lcd.print("Recreo"); //imprimimos el texto "Recreo" en la pantalla LCD
}
if(lectura == 'D'){ //preguntsmos si la variable lectura es igual al caracter 'D'
digitalWrite (rele,LOW); //ordenamos la escritura digital para el pin "rele" en estado
bajo
lcd.setCursor (0,3); //seleccionamos la columna (0) y la fila (3) de la pantalla
display (LCD)
lcd.print("Recreo"); //imprimimos el texto "Recreo" en la pantalla LCD
}
if (lectura == 'E'){ //preguntsmos si la variable lectura es igual al caracter 'E'
digitalWrite (rele, HIGH); //ordenamos la escritura digital para el pin "rele"
encendido
lcd.setCursor (0,3); //seleccionamos la columna (0) y la fila (3)
lcd.print("Recreo"); //imprimimos el texto "Recreo" en la pantalla LCD
}
if(lectura == 'F'){ //preguntsmos si la variable lectura es igual al caracter 'F'
digitalWrite (rele,LOW); //ordenamos la escritura digital para el pin "rele" en estado
bajo
lcd.setCursor (0,3); //seleccionamos la columna (0) y la fila (3) de la pantalla
display (LCD)
lcd.print("Recreo"); //imprimimos el texto "Recreo" en la pantalla LCD
47
lcd.setCursor (0,3); //seleccionamos la columna (0) y la fila (3) del LCD
lcd.print("Salida"); //imprimimos el texto "Salida" en la pantalla LCD
}
if(lectura == 'H'){ //preguntsmos si la variable lectura es igual al caracter 'H'
digitalWrite (rele,LOW); //ordenamos la escritura digital para el pin "rele" apagado
lcd.setCursor (0,3); //seleccionamos la columna (0) y la fila (3)
lcd.print("Salida"); //imprimimos el texto "Salida" en la pantalla LCD
}
}
}
Fuente: Propio.
48
Figura 8: Diafragma esquemático.
Fuente: Propio.
49
3.6. Procedimiento
Como primer paso realizamos la elaboración de los códigos y diseño de ambas apps
utilizando MIT App inventor, luego comprobar el funcionamiento de estos, también
realizamos la parte física apoyados del protoboard para así luego pasarlo a una placa
de cobre, en la parte de la estructura será creada una vez que esté comprobado que
el proyecto funciona adecuadamente, utilizaremos rieles, poleas motorreductores y
distintos otros materiales para la elaboración de ambos proyectos.
Fuente: Propio.
3.7. Valoración
Podemos destacar que ambos proyectos son bastantes beneficiosos para el MTPEA ,
y la sociedad, ya que creamos e innovamos con proyectos realmente útiles, aplicamos
de nuestros conocimientos para poder elaborar, diseñar y armar los proyectos (cortina
y alarma /timbre), a la vez continuamos creciendo y evolucionando junto con la
50
tecnología , a la vez queremos inspirar a más jóvenes para continuar creando,
creciendo e innovando.
UNIDAD COSTOS
CANTIDAD
N° DESCRIPCIÓN DE OBSERVACIONES
UTILIZADA UNITARIO TOTAL
MEDIDA
ARDUINOS 2 80 bs.
1
MÓDULO 2 45 90 bs
2
BLUETOOTH
MÓDULO 1 17 bs.
3
RELÉ
PANTALLA 1 25 bs
4
LCD
MÓDULO I2C 1 25 bs.
5
MÓDULO RTC 1 27 bs
6
1307
PUENTE 1 22 bs.
7
HL298N
RIELES DE 2 20 bs.
8
CORTINA
MOTOR 2 15 bs.
9
REDUCTOR
FINAL DE 2 5 bs
10
CARRERA
326 bs.
TOTAL
51
4. CAPITULO IV: CONCLUSIONES Y RECOMENDACIONES
4.1. Conclusiones
El proyecto fue un gran reto para los de sistemas al tratar de realizar los diferentes
algoritmos no solo de Arduino si no de toda la aplicación q fue utilizada para controlar
de forma inalámbrica los diferentes aparatos electrónicos, como las cortinas y el
timbre.
En un punto de vista electrónico, se logró cumplir con los objetivos propuestos, se logro
realizar un buen manejo de programación en Arduino, ampliando nuestros
conocimientos con distintas apps, como la App inventor, la elaboración del hardware
fue realizado de manera correcta, gracias a los conocimientos adquiridos no tuvimos
muchas dificultades al momento de elaborarlo.
4.2. Recomendaciones
52
otro problema q tuvimos fue la falta de información teníamos una gran idea, pero no
sabíamos como realizarlo así q nos apoyamos con ayuda del internet especialmente
en informática ya q el internet fue un apoyo casi completo al realizar nuestro proyecto
y los diferentes algoritmos.
Nos dimos cuenta q el trabajo en equipo es muy importante no solo por q nos
ayudamos entre especialidades si no q al momento en q no avanzábamos tuvimos q
compartir información y ayudarnos entre nosotros para poder superar esa barrera entre
nosotros así que lo más importante q podemos resaltar es q un proyecto en grupo debe
de ser unido.
Se recomienda lo siguiente:
53
5. BIBLIOGRAFÍA Y WEBGRAFÍA
54
6. ANEXOS
55
Anexo C: Diseño de la app.
56