Sunteți pe pagina 1din 9

PROYECTO FINAL DE CIRCUITOS DE

RADIOCOMUNICACION

1. Objetivos

Construccin de un sistema de alarma inalmbrico y verstil usando un micro


controlador ATmega8 y mdulos de comunicacin
Interaccin de este sistema con el usuario via remota, sin lmite de distancia

2. Marco Terico

En la actualidad, los sistemas de alarmas estn asociados siempre a una


comunicacin con ciertos usuarios de manera que estos puedan interactuar
directamente con las situaciones que se presenten. Pero a veces surge el
inconveniente de que estos tienen un costo relativamente elevado y ameritan
algn plan de aseguramiento o tarifario constante.

El presente proyecto busca la construccin de uno, a bajo costo , con costo nico
y en el que solo el usuario y el hardware se vern involucrados. La interaccin con
antes externos es nula. Y en tema de costos, resulta, a largo plazo muy bajo

3. Procedimiento

En este proyecto, hemos visto por conveniente la comunicacin va telefnica


(Modulo GSM) con el usuario para un sensor de alarma por temperatura usando el
LM35
Diagrama esquemtico:

El Microcontrolador entablara comunicacin unidireccional

Diagrama de flujo:
Manejo de comandos para el modulo celular (GSM):

COMANDO RESPUESTA
ATENCION/TEST AT OK

INDICA AL AT+CMGF=1 OK Pag 225


MODULO QUE
ENVIAREMOS UN
MENSAJE
LLAMADA DIAL ATD+991261838; OK , NO ANSWER
COLGAR ATH OK
LLAMADA
HANG-UP
MENSAJE NUEVO +CMTI: SM,21
AL RECIBIR RING ,NO CARRIER
LLAMADA
AT+CLIP=1
+CLIP: 951351871,129,,,,0

+CLIP: "989969307",129,"",,"",0

PARA CONTESTAR ATA OK


INFORMACION ATI SIM900 R11.0
DEL PRODUCTO
INFORMACION AT+CGMI SIMCOM_Ltd
DEL FABRICANTE
OPERADOR DE AT+COPS? +COPS: 0,0,"Claro"
TELEFONIA
CELULAR
NUMERO DE IMEI AT+CGSN 013949000116213
(IDENTIFICACION)
VELOCIDADES DE AT+IPR=? +IPR:
TRASMISION (),(0,1200,2400,4800,9600,19200,38400,57600,115200)
VELOCIDAD POR +IPR: 0
DEFECTO AT+IPR?
AT+IPR=9600 OK
ENVIAR MENSAJE AT+CMGS="991261838" >HOLA MUNDO(CARCTER CONTROL+Z) ASCII 26
RECIBIR MENSAJE
MOSTRAR AT+CMGS="991261838" MUESTRA TODOS LOS MENSAJES RECIBIDOS
MENSAJES
MOSTRAR AT+CMGR=1 MENSAJE SELECCIONADO
MENSAJE UNO 1 ,2, 3,
POR UNO
El ATmega8 debe enviar a travs del puerto serie los comandos que estn
arriba, en este caso solo para el envo de mensajes de texto, previo testeo,
conexin a la red, seteo a mensajes y enviado del mismo. Esto se puede
tardar varios segundos

Codigo comentado :
#define F_CPU 1000000UL
#include <util/delay.h>
#include <avr/io.h>
#include <stdio.h>
#include <avr/pgmspace.h>
#include <string.h>
#include "lcd.h"

#define VAL_UBRR 2 //((F_CPU/(16UL*BAUDIOS))-1) VELOCIDAD A 19200 BAUDIOS

void configurar_uart(){

UBRRH=VAL_UBRR>>8; // CONFIGURA EL BAUDIAJE


UBRRL=VAL_UBRR & 0XFF;
UCSRB= (1<<TXEN) | (1<<RXEN); // HABILITA EL TX Y RX
UCSRC= (1<<URSEL) | (3<<UCSZ0); // 8 BITS , NONE, 1 STOP

}
void usart_tx(char dato){ // transmision de datos
while(bit_is_clear(UCSRA,UDRE));
UDR=dato; // escribo en el registro udr para enviar
}
char usart_rx(){
while(bit_is_clear(UCSRA,RXC));
return UDR;
}
void power_SIM900(){
PORTB|=(1<<PB4);
_delay_ms(1000);
PORTB&=~(1<<PB4);
_delay_ms(5000);
}
void USART_imprimir(char cadena[]){
for (int i=0;cadena[i]!='\0';i++)
{ usart_tx(cadena[i]);}
}
void ADC_iniciar(){

ADCSRA=(1<<ADEN)|(7<<ADPS0); // HABILITAMOS EL ADC , 10 BITS PRESCALER 128


}
uint16_t ADC_lectura_canal(uint8_t canal){

ADMUX =(1<<REFS0)|(canal<<MUX0); // SELECCIONA CANAL A LEER


ADCSRA |=(1<<ADSC); // INICIA LA CONVERSION
while(bit_is_clear(ADCSRA,ADIF)); // ESPERA A LA BANDERA
return ADC; // RETORNA LA LECTURA EN EL REGISTRO ADC

int main(void){

ADC_iniciar(); // CONFIGURACION DEL ADC


DDRB=(1<<PB4); // PB0 SERA EL POWER DEL MODULO GSM
configurar_uart();
power_SIM900();

//***********************************************************
LCDInit(LS_NONE);
//Show Intro Message
LCDWriteFStringXY(0,1,PSTR("Por Candiotti"));
LCDWriteFStringXY(0,0,PSTR("GSM (SMS) Based "));
_delay_ms(1500);
LCDWriteFStringXY(0,0,PSTR("Monitoreando ... "));
_delay_ms(1500);
LCDClear();
//*************************************************************
LCDWriteFStringXY(0,0,PSTR("Conectando..."));
_delay_ms(20000); // TIEMPO PARA QUE EL MODULO DETECTE LA RED CELULAR
EXISTENTE
LCDClear();
while(1) {

/*USART_imprimir("ATD991261838;\r\n"); // LLAMAR
_delay_ms(20000);
USART_imprimir("ATH\r\n"); // COLGAR
power_SIM900();*/

uint16_t lectura_LM35= ADC_lectura_canal(PC0); // LECTURA DEL ADC CANAL 0


uint16_t grados_centigrados=500.0*lectura_LM35/1023;

char cadena[32];
sprintf(cadena,"%u",grados_centigrados);

LCDWriteFStringXY(0,0,PSTR("Temperatura: "));
LCDWriteIntXY(0,1,grados_centigrados,2);
_delay_ms(2000);

if (grados_centigrados>=27) //Condicionamiento de la alarma de


temperatura.....
{

LCDWriteFStringXY(0,0,PSTR("Temperatura alta!!"));
LCDWriteFStringXY(0,1,PSTR("Enviando SMS..."));
_delay_ms(1500);

USART_imprimir("AT+CMGF=1\r");
_delay_ms(100);
USART_imprimir("AT+CMGS=");
usart_tx(34); //"
USART_imprimir("978917321");
usart_tx(34); //"
USART_imprimir("\r\n");
_delay_ms(100);
USART_imprimir("TEMPERATURA: ");
USART_imprimir(cadena);
USART_imprimir(" C ");
usart_tx(26); // control + z
USART_imprimir("\r\n");
LCDWriteFStringXY(0,0,PSTR("Mensaje enviado"));
_delay_ms(5000);
LCDWriteFStringXY(0,1,PSTR("Apagando Modulo.."));
power_SIM900();
LCDClear();
do {} while (1);
}

/*USART_imprimir("AT+CMGF=1\r");
_delay_ms(100);
USART_imprimir("AT+CMGS=");
usart_tx(34);
USART_imprimir("991261838");
usart_tx(34);
USART_imprimir("\r\n");
_delay_ms(100);
USART_imprimir("PROBANDO MODULO");
usart_tx(26);
USART_imprimir("\r\n");
_delay_ms(5000);
power_SIM900();*/

Simulacion/resultados:

Al correr el programa en el microcontrolador, tenemos:


El programa nos mostrara la temperatura que hay , si es que aun esta no pasa el
lmite fijado:

Si se fija un lmite y la temperatura pasa este, se enviara n mensaje al celular


destino:
El mismo que ser recepcionado al celular destino :

Y se podr visualizar la temperatura que hay , lo cual simula un posible


icendio:
4. Consideraciones/Sugerencias:

El mdulo GSM consume mucha energa por lo que limita el uso de


ms perifricos. Si no hay suficiente poder de la fuente de
alimentacin, no llega a comunicarse con la estacin celular ms
cercana, por tanto el mensaje no llegara
Se fija un nivel bajo de temperatura , ya que la temperatura de un
ambiente incendindose es de 38 grados a mas, pero basta con fijar
un lmite solo para propsitos de simulacin.
Los mensajes que se manden , pueden llegar con cierto retardo.
Los datasheets mencionados en la bibliografa, vinieron en un CD al
momento de la compra del mdulo GSM, no estn en internet)

5. Conclusiones:

Se logro la comunicacin eficaz entre el microcontrlador y un sistema


remoto (celular)
En algunos casos pueden surgir retardos de conectividad.
Se consigio que actue todo en conjunto como un sistema embebido,
no depende de una PC

6. Bibliografia:

http://store.extremeelectronics.co.in/GSM-Connected-Notice-
Board.html

SIM900_AT 20Command 20Manual_V1.03[1].PDF: Manual de AT


commandos(adjunto en CD)

Datasheet icomsat_DS1.2[1] (adjunto en CD)

Datasheet de ATmega8L(estudiado en clase)

Guias de clases y separatas del curso de Microcontroladores 2014-B

S-ar putea să vă placă și