Modulo gsm
Enviado por Ensa05 • 29 de Abril de 2018 • 1.536 Palabras (7 Páginas) • 305 Visitas
...
Nuestro teléfono móvil será el elemento de control para el hogar, vía SMS o mensaje de texto. El modulo SIM 900, recibirá dicho mensaje y dará las instrucciones al arduino. Aún estamos desarrollando el código para la parte de control, pues es otro lenguaje de programación llamado “comandos AT”.
Los comandos AT son instrucciones codificadas que conforman un lenguaje de comunicación entre el hombre y un terminal modem, o un lenguaje de programación de bajo nivel, con una estructura en forma de línea en vez de bucle.
3.1.- ejemplo de comandos AT
[pic 2]
Para el proyecto necesitamos aprender el funcionamiento y estructura de dicho código, pero tenemos una ventaja al tener conocimiento de la estructura y lógica del lenguaje “assembler” que también es un lenguaje de bajo nivel y en forma línea a línea.
Una vez que programado el código para el modulo SIM 900, tendremos la orden que llegara al arduino mediante sus puertos de entrada digital, y con el siguiente código, hará el procesamiento necesario para dar las ordenes de conmutación a los relays.
Nuestro módulo de 4 relays mediante las técnicas de electrónica de potencia serán quienes den o corten el paso de la corriente a las lámparas instaladas dentro de la maqueta.
3.2.- Código de Arduino:
#include
#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);
...