Para Cambiar el idioma de Packet Tracer a español seguimos los siguientes pasos:
Primero vamos a descargar el parche para el idioma en español desde Aquí una vez descargado lo colocamos en la carpeta de Packet Tracer > LANGUAGES como yo estoy usando ubuntu entraré a la terminar y pondré el siguiente comando
Para realizar esta cuarta entrega se ha trabajado con lo que es el módulo GSM para enviar y recibir mensajes, para esto también he utilizado el módulo de cuatro relés en los cuales voy a poder conectar lo que son dos focos y una radio, los mismos que funcionan con energía de 110 voltios.
La finalidad de trabajar con el módulo GSM es para mediante un mensaje nosotros poder controlar nuestra alarma, es decir que podamos activar y desactivar nuestra alarma de seguridad, es este caso como no contamos aún con la alarma simularemos encendiendo lo que son focos y una radio mediante el envío de un mensaje.
Para ello utilizaremos lo siguiente:
MÓDULO GSM
Añade capacidades de monitoreo y control remoto, datos, SMS y llamadas de voz con Arduino. El shield GSM GPRS SIM900 o ICOMSAT, permite conectar el Arduino a la red de telefonía celular de tu preferencia y hacer uso de todos los servicios que esta te ofrece (voz y datos). El módulo de SIMCOM SIM900 es capaz de funcionar en cualquier red GSM en el mundo gracias a que se trata de un dispositivo de 4 bandas (850/900/1800/1900MHz.
CARACTERÍSTICAS
- Operación global y con cualquier proveedor (multibanda).
- Se controla mediante comandos AT y comandos AT extendidos.
- La interfaz de control del módem GSM se puede asociar con varios pines del Arduino no solamente los del UART, permitiendo usar librerías como SoftSerial
- Incluye super capacitor para almacenamiento persistente de datos
- Librería para funcionar con Arduino.
PLACA ARDUINO
Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador y puertos de entrada y salida.Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación que es ejecutado en la placa. Se programa en el ordenador para que la placa controle los componentes electrónicos.
El protoboard o breadboard
Es una especie de tablero con orificios, en la cual se pueden insertar componentes electrónicos y cables para armar circuitos. Como su nombre lo indica, esta tableta sirve para experimentar con circuitos electrónicos, con lo que se asegura el buen funcionamiento del mismo.
MÓDULO DE 4 RELÉS
El relé es el elemento que necesitas si quieres gestionar grandes voltajes y corrientes (como los que pueden tener en la red eléctrica de tu casa). Se trata simplemente de un interruptor eléctrico que puedes encender y apagar enviando señales desde tu placa Arduino, o cualquier otro controlador . Esto te permite desde encender y apagar la luz de tu habitación cuando alguien entre, hasta hacer una casa domótica completa, el límite aquí es tu imaginación.
CONEXIÓN
Para comenzar vamos a conectar la placa arduino con el módulo GSM de la siguiente manera.
Una vez conectado realizamos el siguiente circuito.
CÓDIGO
#include <SoftwareSerial.h>
SoftwareSerial mySerial(7, 8);
char numero_cell[]="0981762111";//meter numero de telefonoint pulsador =9;
int rele1 =10;
int rele2 =11;
int reler =12;
boolean valor=true;
int a=0;
int b=0;
char DAT;
char DAT_dos;
boolean condicion=true;
char datosSERIAL[3];
char clave_1[]={'1','O','N'};//AQUI CAMBIAMOS TODO EL MENSAJE DE CONTROLchar clave_2[]={'1','O','F'};//AQUI CAMBIAMOS TODO EL MENSAJE DE CONTROLchar clave_3[]={'2','O','N'};//AQUI CAMBIAMOS TODO EL MENSAJE DE CONTROLchar clave_4[]={'2','O','F'};//AQUI CAMBIAMOS TODO EL MENSAJE DE CONTROLchar clave_5[]={'3','O','N'};//AQUI CAMBIAMOS TODO EL MENSAJE DE CONTROLchar clave_6[]={'3','O','F'};//AQUI CAMBIAMOS TODO EL MENSAJE DE CONTROLvoidsetup()
{
pinMode(pulsador,INPUT);
pinMode(rele1,OUTPUT);
pinMode(rele2,OUTPUT);
pinMode(reler,OUTPUT);
Serial.begin(9600);
mySerial.begin(9600);
delay(2000);
configuracion_inicial();
Serial.println("sistema de alarma EDITRONIKX m95 encendida");
delay(1000);
}
/////////////////////////voidloop()
{
Serial.println("esperando recibir mensaje...");
while(true)
{
leer_mensaje();
}
}
///////////////////////void configuracion_inicial()//configura los codigos de lectura de mensajes
{
mySerial.println("AT+IPR=9600");//modo textoSerial.println("AT+IPR=9600");//modo textodelay(300);
mySerial.println("AT+CMGF=1");//modo textoSerial.println("AT+CMGF=1");//modo textodelay(300);
mySerial.println("AT+CMGR=?");//ACTIVAMOS CODIGO PARA RECIBIR MENSAJESSerial.println("AT+CMGR=?");//ACTIVAMOS CODIGO PARA RECIBIR MENSAJESdelay(300);
mySerial.println("AT+CNMI=2,2,0,0");//ACTIVAMOS PARA VER MENSAJESSerial.println("AT+CNMI=2,2,0,0");//ACTIVAMOS PARA VER MENSAJES//Serial1.println("AT+CNMI=3,3,0,0");//ACTIVAMOS PARA VER MENSAJES//Serial.println("AT+CNMI=3,3,0,0");//ACTIVAMOS PARA VER MENSAJESdelay(300);
Serial.println("configuracion terminada");
delay(300);
}
///////////////////void leer_mensaje()
{
salir:
if (mySerial.available()>0)
{
char DAT =mySerial.read();
if(DAT=='@'){
while(true)
{
if (mySerial.available()>0){
char DAT_dos =mySerial.read();
datosSERIAL[b]= DAT_dos;
b++;
if (DAT_dos=='\n'){
Serial.println("Lectura:");
for(int a=0;a<=b;a++){
Serial.print(datosSERIAL[a]);}
led_on();
led_off();
delay(500);
for(int a=0;a<=b;a++){
datosSERIAL[a]==0;
DAT_dos=0;
DAT=0;}
b=0;
goto salir;}
}
}
}
}
}
//////////////////void led_on()
{
if(datosSERIAL[0]==clave_1[0] && datosSERIAL[1]==clave_1[1] && datosSERIAL[2]==clave_1[2])
{
digitalWrite(rele1,HIGH);
Serial.println(" LED ON ACTIVADO");
//mensaje_encendido();
}
if(datosSERIAL[0]==clave_3[0] && datosSERIAL[1]==clave_3[1] && datosSERIAL[2]==clave_3[2])
{
digitalWrite(rele2,HIGH);
Serial.println(" LED ON ACTIVADO");
//mensaje_encendido1();
}
if(datosSERIAL[0]==clave_5[0] && datosSERIAL[1]==clave_5[1] && datosSERIAL[2]==clave_5[2])
{
digitalWrite(reler,HIGH);
Serial.println(" LED ON ACTIVADO");
//mensaje_encendido2();
}
}
void led_off()
{
if(datosSERIAL[0]==clave_2[0] && datosSERIAL[1]==clave_2[1] && datosSERIAL[2]==clave_2[2])
{
digitalWrite(rele1,LOW);
Serial.println(" LED OFF DESACTIVADO.....");
//mensaje_apagado();
}
if(datosSERIAL[0]==clave_4[0] && datosSERIAL[1]==clave_4[1] && datosSERIAL[2]==clave_4[2])
{
digitalWrite(rele2,LOW);
Serial.println(" LED OFF DESACTIVADO.....");
//mensaje_apagado1();
}
if(datosSERIAL[0]==clave_6[0] && datosSERIAL[1]==clave_6[1] && datosSERIAL[2]==clave_6[2])
{
digitalWrite(reler,LOW);
Serial.println(" LED OFF DESACTIVADO.....");
//mensaje_apagado2();
}
}
///////////////////////////////////////// ENVIO DE MENSAJES //////////////////////////////////////////////////////////////////void mensaje_encendido()
{
mySerial.println("AT+CMGF=1");//modo texto //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carrodelay(2000);
mySerial.print("AT+CMGS=");// comando de envio de mensaje //Imprime los datos al puerto serie como texto ASCII
mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envia caracter por caracter
mySerial.print(numero_cell);//colocamos numero de telefono
mySerial.println((char)34);//volvemos a poner el caracter "delay(200);//tiempo para que de respuesta el modulo >
mySerial.print("El foco de la habitacion 1 esta encendida");//mensaje que enviare
mySerial.print((char)26);//ponemos el simbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms terminoSerial.print("El foco de la habitacion 1 esta encendida");//mensaje que enviare
}
void mensaje_encendido1()
{
mySerial.println("AT+CMGF=1");//modo texto //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carrodelay(2000);
mySerial.print("AT+CMGS=");// comando de envio de mensaje //Imprime los datos al puerto serie como texto ASCII
mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envia caracter por caracter
mySerial.print(numero_cell);//colocamos numero de telefono
mySerial.println((char)34);//volvemos a poner el caracter "delay(200);//tiempo para que de respuesta el modulo >
mySerial.print("El foco de la habitacion 2 esta encendida");//mensaje que enviare
mySerial.print((char)26);//ponemos el simbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms terminoSerial.print("El foco de la habitacion 2 esta encendida");//mensaje que enviare
}
void mensaje_encendido2()
{
mySerial.println("AT+CMGF=1");//modo texto //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carrodelay(2000);
mySerial.print("AT+CMGS=");// comando de envio de mensaje //Imprime los datos al puerto serie como texto ASCII
mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envia caracter por caracter
mySerial.print(numero_cell);//colocamos numero de telefono
mySerial.println((char)34);//volvemos a poner el caracter "delay(200);//tiempo para que de respuesta el modulo >
mySerial.print("La radio se a encendido");//mensaje que enviare
mySerial.print((char)26);//ponemos el simbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms terminoSerial.print("La radio se a encendido");//mensaje que enviare
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void mensaje_apagado()
{
mySerial.println("AT+CMGF=1");//modo texto //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carrodelay(2000);
mySerial.print("AT+CMGS=");// comando de envio de mensaje //Imprime los datos al puerto serie como texto ASCII
mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envia caracter por caracter
mySerial.print(numero_cell);//colocamos numero de telefono
mySerial.println((char)34);//volvemos a poner el caracter "delay(200);//tiempo para que de respuesta el modulo >
mySerial.print("El foco de la habitacion 1 esta apagado");//mensaje que enviare
mySerial.print((char)26);//ponemos el simbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms terminoSerial.print("El foco de la habitacion 1 esta apagado");//mensaje que enviare
}
void mensaje_apagado1()
{
mySerial.println("AT+CMGF=1");//modo texto //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carrodelay(2000);
mySerial.print("AT+CMGS=");// comando de envio de mensaje //Imprime los datos al puerto serie como texto ASCII
mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envia caracter por caracter
mySerial.print(numero_cell);//colocamos numero de telefono
mySerial.println((char)34);//volvemos a poner el caracter "delay(200);//tiempo para que de respuesta el modulo >
mySerial.print("El foco de la habitacion 2 esta apagado");//mensaje que enviare
mySerial.print((char)26);//ponemos el simbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms terminoSerial.print("El foco de la habitacion 2 esta apagado");//mensaje que enviare
}
void mensaje_apagado2()
{
mySerial.println("AT+CMGF=1");//modo texto //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carrodelay(2000);
mySerial.print("AT+CMGS=");// comando de envio de mensaje //Imprime los datos al puerto serie como texto ASCII
mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envia caracter por caracter
mySerial.print(numero_cell);//colocamos numero de telefono
mySerial.println((char)34);//volvemos a poner el caracter "delay(200);//tiempo para que de respuesta el modulo >
mySerial.print("la radio se a apagado");//mensaje que enviare
mySerial.print((char)26);//ponemos el simbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms terminoSerial.print("la radio se a apagado");//mensaje que enviare
}