Вы находитесь на странице: 1из 21

1.

- introduccin:

En introduccin van los aspectos introductorios al tema del proyecto. Esto


involucra: resea histrica, situacin actual en el Per y el mundo,
productos comerciales existentes y usuarios potenciales.
Para nuestro proyecto hemos planteado el control de iluminacin de un
hogar mediante un mdulo SIM 900 que utiliza la tecnologa GSM para
recibir la informacin va mensaje de texto y dar las ordenes necesarias al
arduino, que ser nuestro sistema de procesamiento para el control de los
elementos del hogar.
El arduino se encargara de controlar las conmutaciones en nuestro mdulo
de relays que funciona a 12 voltios, por lo cual tendremos una
alimentacin externa para dicho mdulo que recibir las seales de baja
potencia, para lo cual estamos haciendo uso de la electrnica de potencia,
lo cual nos fue enseado en el curso de microcontroladores, la parte de la
conexin de lneas de potencia, fue parte del curso de circuitos elctricos y
electrnicos. La conmutacin y control de los relays, la forma en cmo
trabajan, lo aprendimos tanto en el curso de sistemas automticos de
control y maquinas elctricas.
LOS MATERIALES VAN DESPUS
1.1.- elementos del proyecto

1.1.a.- modulo SIM 900

Es un mdulo de conexin externa compatible con arduino, que transmite


seales de tipo GSM (Global System for Global Communications) es el
sistema de comunicaciones que ms se utiliza en telfonos mviles y es un
estndar en Europa. La primera funcionalidad de esta tecnologa es la
transmisin de voz, pero tambin permite la transmisin de datos (SMS,
Internet) y GPRS. (General Packet Radio Service) es una extensin del GSM
basada en la transmisin por paquetes que ofrece un servicio ms eficiente
para las comunicaciones de datos, especialmente en el caso del acceso a
Internet.
Hemos visto varias formas de conectar nuestro Arduino al exterior, como
Ethernet y wifi, pero puede que alguna vez queramos comunicarnos con l y
no tengamos acceso a ninguna de estas redes, o no queramos depender de
ellas es muy til el modulo SIM 900
Escogimos dicho modulo por ser ideal para transmitir datos de tipo GPRS, y en modo
de texto, adems de la ventaja de tener una librera funcional para Arduino.

Operacin global y con cualquier proveedor (multibanda).


Se controla mediante comandos AT y comandos AT extendidos.
Incluye stack TCP/IP soporta TCP, HTTP, FTP mediante comandos AT.
Ideal para transmisin de datos sobre GPRS.
Ancho de banda de descarga 85.6 kbps.

Ancho de banda de subida 42.8 kbps.


SMS en modo PDU y Texto
La interfaz de control del mdem GSM se puede asociar con varios
pines del Arduino no solamente los del UART, permitiendo usar
libreras como SoftSerial
Incluye super capacitor para almacenamiento persistente de datos
Librera para funcionar con Arduino.

1.1.b.- Relay module de 12V con 4 canales

Tarjeta de rels opto acoplada, incluye 4 canales para ser controlados en


forma remota. Ideal para controlar dispositivos en el hogar o en la industria.
Cada canal es controlado por una entrada TTL, la cual puede ser fcilmente
controlada por un microcontrolador. Esta placa requiere de una alimentacin
de 12V.
Escogimos este mdulo por que deseamos trabajar con una tensin baja de
12V y por su aislamiento galvnico que nos garantiza la proteccin de
nuestra tarjeta arduino en caso de un cortocircuito o pico de amperaje en la
etapa de potencia.

4 canales independientes protegidos con opto acopladores


4 Rels (Relays) de 1 polo 2 tiros
El voltaje de la bobina del rel es de 12 VDC
Led indicador para cada canal (enciende cuando la bobina del rel
esta activa)
Activado mediante corriente: el circuito de control debe proveer una
corriente de 15 a 20 mA
Puede controlado directamente por circuito lgicos
Terminales de conexin de tornillo (clemas)
Terminales de entrada de seal lgica con headers macho.

1.1.b.- Arduino

Arduino es una plataforma de prototipos electrnica de cdigo abierto (open-source)


basada en un microcontrolador. Puede percibir el entorno mediante la recepcin de
entradas desde una variedad de seales elctricas y puede afectar a su alrededor
mediante el control de luces, motores y otros artefactos. El microcontrolador de la
placa se programa usando el Arduino Programming Language (basado en Wiring) y
el Arduino Development Environment (basado en Processing).
Elegimos a arduino por encima de PIC por el lenguaje de programacin que es ms
amigable con el usuario a comparacin de PIC y por su amplia cantidad de libreras,
especficamente la librera para nuestro modulo SIM 900, y por permitirnos el
monitoreo en vivo desde el ordenador.

1.1. C.- Maqueta


Para emular un hogar y el control de su iluminacin armamos un prototipo de una casa
a la escala de una maqueta de proporciones oficiales para el diseo de un inmueble.

2.- Planteamiento del problema


El planteamiento esta para un control de casa de domtica convencional, nuestro
trabajo es control GSM, tienes que hacerlo respecto a eso, aqu tambin van los
antecedentes de este proyecto por ejemplo en peru si se usa desde cuando, etc
Hoy en da la domtica se encuentra muy desarrollada, las casas modernas cuentan
con todo tipo de control electrnico para un mayor confort de los inquilinos, como el
control de la temperatura, tanto del ambiente como del agua, hasta el control de los
electrodomsticos mediante un Smartphone para reducir el nmero de controladores
necesarios.

Hoy en da se utiliza el telfono en la domtica para:


Abrir y cerrar los cerrojos de las puertas al salir y entrar al hogar
Activar y desactivar las alarmas
Controlar la temperatura del ambiente
Controlar los electrodomsticos como equipos de sonido y televisores
Acceder a cmaras de seguridad instaladas en el interior y exterior
Activar y desactivar los sistemas de riego del jardn
Abrir y cerrar la cochera
Regular la iluminacin en los ambientes del hogar
Imprimir documentos mediante wifi y sincronizar datos sin utilizar el ordenador

Nuestro objetivo es simular el control de la iluminacin en un hogar desde nuestro telfono


aprovechando la tecnologa GPRS para la transmisin de datos, de una manera cmoda
para el usuario.
Dicha tecnologa para la domtica no se encuentra muy desarrollada en nuestro pas y
mediante nuestro proyecto, demostraremos que no solo es posible, si no tambin
implementable a un costo no muy elevado y que puede garantizar una gran comodidad
para quien decida utilizarlo en su hogar.

3.- Justificacin
Justifica el desarrollo del proyecto a nivel cientfico, tcnico, econmico,
social, etc. (a partir del problema planteado), estableciendo una solucin
innovadora o mejorando las ya existentes. NO ES EXPLICAR LA TEORA
Nuestro telfono mvil ser el elemento de control para el hogar, va SMS o
mensaje de texto. El modulo SIM 900, recibir dicho mensaje y dar las
instrucciones al arduino. An estamos desarrollando el cdigo para la parte
de control, pues es otro lenguaje de programacin llamado comandos AT.
Los comandos AT son instrucciones codificadas que conforman un lenguaje de
comunicacin entre el hombre y un terminal modem, o un lenguaje de programacin
de bajo nivel, con una estructura en forma de lnea en vez de bucle.
3.1.- ejemplo de comandos AT

Para el proyecto necesitamos aprender el funcionamiento y estructura de


dicho cdigo, pero tenemos una ventaja al tener conocimiento de la
estructura y lgica del lenguaje assembler que tambin es un lenguaje de
bajo nivel y en forma lnea a lnea.

Una vez que programado el cdigo para el modulo SIM 900, tendremos la
orden que llegara al arduino mediante sus puertos de entrada digital, y con
el siguiente cdigo, har el procesamiento necesario para dar las ordenes
de conmutacin a los relays.

Nuestro mdulo de 4 relays mediante las tcnicas de electrnica de


potencia sern quienes den o corten el paso de la corriente a las lmparas
instaladas dentro de la maqueta.

3.2.- Cdigo de Arduino:

#include<SoftwareSerial.h>
#define RxD 6
#define TxD 7
SoftwareSerial BTSerial(RxD, TxD);
byte Encedido;
byte DatoOK;
byte DatoOK2;
byte Dato1;
byte Dato2;
byte Dato3;
byte Dato4;
byte Dato5;
byte Dato6;
byte Dato7;
byte Dato8;

const char *comando0="AT";

//Comando de inicializacion

const char *comando1="AT+CMGF=1";

//Formato de SMS

const char *comando2="AT+CNMI=2,2"; //Indicaciones de nuevo SMS


const char *comando3="AT+CREG?";

//Indicacion de red

const char *comandoSMS1="AT+CMGS="; //Envio de SMS

const byte ONrele1[7]={'1','r','e','l','e','1'};


const byte OFFrele1[7]={'0','r','e','l','e','1'};
const byte ONrele2[7]={'1','r','e','l','e','2'};
const byte OFFrele2[7]={'0','r','e','l','e','2'};
const byte ONrele3[7]={'1','r','e','l','e','3'};
const byte OFFrele3[7]={'0','r','e','l','e','3'};

const char *rpta0NRele1="Rele 1 encendido";


const char *rpta0FFRele1="Rele 1 apagado";
const char *rpta0NRele2="Rele 2 encendido";
const char *rpta0FFRele2="Rele 2 apagado";
const char *rpta0NRele3="Rele 3 encendido";
const char *rptaOFFRele3="Rele 3 apagado";

const byte CR=13;

//Retorno de carro

const byte AL=10;

//Avance de linea

const byte CTRZ=26;

//Control Z

const byte SMS[6]="+CMT:";


byte NUMERO[10]={0,0,0,0,0,0,0,0,0};
byte CODIGO[8]={0,0,0,0,0,0,0};
byte Mensaje;
byte N;
int contador1=0;
int contador2=0;
int i;
int flag;
int flag2;
int flagR1;
int flagR2;
int flagR3;
int flagR4;
int flagR5;
int flagR6;

void setup()
{
BTSerial.begin(9600); //(115200);
delay(100);
pinMode(10, OUTPUT);
digitalWrite(10,LOW);
pinMode(11, OUTPUT);
digitalWrite(11,LOW);
pinMode(12, OUTPUT);
digitalWrite(12,LOW);
pinMode(13, OUTPUT);
digitalWrite(13,LOW);
DatoOK='0';
DatoOK2='0';
Dato1=0;
Dato2=0;
Dato3=0;
Dato4=0;
Dato5=0;
Dato6=0;
Dato7=0;
Dato8=0;

BTSerial.println(comando0);
CompararOK();
DatoOK='0';
DatoOK2='0';
contador1=0;
BTSerial.println(comando1);
CompararOK();
DatoOK='0';
DatoOK2='0';
contador1=0;
BTSerial.println(comando2);
CompararOK();
contador1=0;

BTSerial.println(comando3);
CompararCREG();
digitalWrite(10,HIGH);
contador1=0;
DatoOK='0';
DatoOK2='0';
Dato1=0;
Dato2=0;
Dato3=0;
Dato4=0;
Dato5=0;
Dato6=0;
Dato7=0;
Dato8=0;
i=0;
flag=0;
flag2=0;
}
void loop()
{
//Esperando un mensaje de confirmacion
if(BTSerial.available()){
N=BTSerial.read();
contador1++;
if(Dato2==0 && Dato4==0 && Dato6==0){
SMSentrante();
}
if(Dato2==1)
{
SMSnumero();
}
if(Dato4==1)
{
SMScodigo();
}
}

if(Dato6==1){
SMScomparar();
SMSresponder();
Dato1=0;
Dato2=0;
Dato3=0;
Dato4=0;
Dato5=0;
Dato6=0;
Dato7=0;
Dato8=0;
i=0;
flag=0;
flag2=0;
//Dato6=0;
}
}
void SMSentrante()
{
if(N=='C'){
Dato1=0;
contador2=contador1;
}
if(N=='M'){
contador1--;
if(contador1==contador2){
contador1++;
contador2=contador1;
Dato1++;
}
}
if(N=='T'){
contador1--;
if(contador1==contador2){
contador1++;
contador2=contador1;

Dato1++;
}
}
if(N==':'){
contador1--;
if(contador1==contador2){
contador1++;
contador2=contador1;
Dato1++;
}
}
if(Dato1==3){
//Leemos el numero
Dato2=1;
Dato1=0;
contador2=contador2+6;
}
}
void SMSnumero()
{
if(contador2==contador1){
flag=1;
i=0;
}
if(flag==1){
NUMERO[i]=N;
i++;
}
if(i==9){
Dato2=0;
flag=0;
i=0;
Dato4=1;
}
}
void SMScodigo()

{
if(N==CR){
flag=1;
}
if(N==AL && flag==1){
flag2=1;
i=0;
}
if(flag2==1){
CODIGO[i]=N;
i++;
}
if(i==7){
Dato4=0;
flag=0;
flag2=0;
i=0;
Dato6=1;
}
}
void SMScomparar()
{
Mensaje='0';
flagR1=1;
flagR2=1;
flagR3=1;
flagR4=1;
flagR5=1;
flagR6=1;
for(i=1;i<8;i++){
if(CODIGO[i]==ONrele1[i-1]){
flagR1++;
//break;
}
}
if(flagR1==8){

digitalWrite(11,HIGH);
Mensaje='1';
return;
}
for(i=1;i<8;i++){
if(CODIGO[i]==OFFrele1[i-1]){
flagR2++;
//break;
}
}
if(flagR2==8){
digitalWrite(11,LOW);
Mensaje='2';
return;
}
for(i=1;i<8;i++){
if(CODIGO[i]==ONrele2[i-1]){
flagR3++;
//break;
}
}
if(flagR3==8){
digitalWrite(12,HIGH);
Mensaje='3';
return;
}
for(i=1;i<8;i++){
if(CODIGO[i]==OFFrele2[i-1]){
flagR4++;
//break;
}
}
if(flagR4==8){
digitalWrite(12,LOW);
Mensaje='4';
return;

}
for(i=1;i<8;i++){
if(CODIGO[i]==ONrele3[i-1]){
flagR5++;
//break;
}
}
if(flagR5==8){
digitalWrite(13,HIGH);
Mensaje='5';
return;
}
for(i=1;i<8;i++){
if(CODIGO[i]==OFFrele3[i-1]){
flagR6++;
//break;
}
}
if(flagR6==8){
digitalWrite(13,LOW);
Mensaje='6';
return;
}
}
void SMSresponder()
{
switch(Mensaje){
case '1':
EnvioCmdNumero();
BTSerial.write(rpta0NRele1);
BTSerial.write(CTRZ);
BTSerial.write(CR);
BTSerial.write(AL);
delay(500);
break;
case '2':

//controlZ

EnvioCmdNumero();
BTSerial.write(rpta0FFRele1);
BTSerial.write(CTRZ);

//controlZ

BTSerial.write(CR);
BTSerial.write(AL);
delay(500);
break;
case '3':
EnvioCmdNumero();
BTSerial.write(rpta0NRele2);
BTSerial.write(CTRZ);

//controlZ

BTSerial.write(CR);
BTSerial.write(AL);
delay(500);
break;
case '4':
EnvioCmdNumero();
BTSerial.write(rpta0FFRele2);
BTSerial.write(CTRZ);

//controlZ

BTSerial.write(CR);
BTSerial.write(AL);
delay(500);
break;
case '5':
EnvioCmdNumero();
BTSerial.write(rpta0NRele3);
BTSerial.write(CTRZ);

//controlZ

BTSerial.write(CR);
BTSerial.write(AL);
delay(500);
break;
case '6':
EnvioCmdNumero();
BTSerial.write(rptaOFFRele3);
BTSerial.write(CTRZ);
BTSerial.write(CR);

//controlZ

BTSerial.write(AL);
delay(500);
break;
default:
break;
}
}
void EnvioCmdNumero(){
BTSerial.write(comandoSMS1);
BTSerial.write('"');
BTSerial.write(NUMERO[0]);
BTSerial.write(NUMERO[1]);
BTSerial.write(NUMERO[2]);
BTSerial.write(NUMERO[3]);
BTSerial.write(NUMERO[4]);
BTSerial.write(NUMERO[5]);
BTSerial.write(NUMERO[6]);
BTSerial.write(NUMERO[7]);
BTSerial.write(NUMERO[8]);
BTSerial.write('"');
BTSerial.write(CR);
BTSerial.write(AL);
delay(500);
}
void CompararOK()
{
while(1)
{
if(BTSerial.available()){
N=BTSerial.read();
contador1++;
if(N=='O'){
DatoOK='1';
contador2=contador1;
}
if(N=='K'){

contador1--;
if(contador1==contador2){
contador1++;
DatoOK2='1';
}
}
if(DatoOK=='1' && DatoOK2=='1'){
// digitalWrite(10,HIGH);
return;
}
}
}
}
void CompararCREG()
{
while(1)
{
if(BTSerial.available()){
N=BTSerial.read();
contador1++;
if(N=='C'){
Dato1='1';
contador2=contador1;
}
if(N=='R'){
contador1--;
if(contador1==contador2){
contador1++;
contador2=contador1;
Dato2='1';
}
}
if(N=='E'){
contador1--;
if(contador1==contador2){
contador1++;

contador2=contador1;
Dato3='1';
}
}
if(N=='G'){
contador1--;
if(contador1==contador2){
contador1++;
contador2=contador1;
Dato4='1';
}
}
if(N==':'){
contador1--;
if(contador1==contador2){
contador1++;
contador2=contador1;
Dato5='1';
}
}
if(N=='0'){
contador1--;
contador1--;
if(contador1==contador2){
contador1++;
contador1++;
contador2=contador1;
Dato6='1';
}
}
if(N=='1'){
contador1--;
contador1--;
if(contador1==contador2){
contador1++;
contador1++;

contador2=contador1;
Dato7='1';
}
}
if(Dato1=='1'&&Dato2=='1'&&Dato3=='1'&&Dato4=='1'&&Dato5=='1'&&Dato6=='1'&&Da
to7=='1'){
return;
}
}
}

4.- Objetivos
Nuestro objetivo principal es:
OTRA VEZ EL PROYECTO ESTA ENFOCADO A LA DOMOTICA USANDO

GSM
Investigar una rama de la domtica que no se encuentra desarrollada en
nuestro pas, ya que la electrnica est siendo muy utilizada en la domtica
hoy en da en pases ms desarrollados para brindar confort a las personas y
puede llegar a representar un modelo de negocio el brindar comodidad
mediante mayor sencillez en el control del hogar.

Objetivos secundarios:
Demostrar una reduccin viable en el nmero de controladores fsicos en el
hogar.
Investigar la tecnologa GPRS ms all de la comunicacin entre personas y
transferencia de documentos.
Asimilar el Smartphone a un uso ms dentro del hogar, pues hoy en da gran
parte de la poblacin tiene como parte de su vida un telfono inteligente.

Вам также может понравиться