Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tesis de Envio y Recepcion SMS (Ojoj) PDF
Tesis de Envio y Recepcion SMS (Ojoj) PDF
FACULTAD DE INGENIERIA
Microcontroladores
Por
-Temuco, 2006-
UNIVERSIDAD CATOLICA DE TEMUCO
FACULTAD DE INGENIERIA
Temuco,...................................................................
Dedicado:
Gracias Totales.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica i
INDICE
INDICE DE CONTENIDOSi
INDICE DE FIGURAS.vi
INDICE DE TABLASviii
1.4. Justificacin..3
2. Microcontroladores.4
2.3.1. Procesador...7
2.3.1.1. CISC..7
2.3.1.2. RISC..8
2.3.1.3. SISC..8
2.3.2. Memoria9
2.3.2.2. OTP10
2.3.2.3. EPROM.10
2.6.10.1. UART..19
2.6.10.2. USART19
2.6.10.4. USB 19
2.6.10.6. CAN. 20
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica iii
3.1. Introduccin..21
4. El Microcontrolador PIC12F675...25
6. Java 31
7. Que es un Socket? . 34
8. Bluetooth.37
8.1. Caractersticas 37
9.1. Definicin..38
9.2. Introduccin 38
11.1.Control de llamadas. 52
11.2.Leer Mensajes. 52
11.3.Envi de Mensajes53
11.5.Enviar un SMS.. 58
12.2.Descripcin de acciones61
13.6.Consultas SQL.. 68
15. Conclusin. 87
16. Bibliografa 88
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica vi
INDICE DE FIGURAS
INDICE DE TABLAS
El uso de Celulares desde hace algunos aos dejo de ser objeto de lujo o
6,1 de cada 10 Chilenos posee un celular y que los mensajes de texto o SMS
esta el de los juegos de azar, los mensajes a correos electrnicos, los envos
servicios.
2.- Desarrollar una Aplicacin en Java que permita manejar informacin por
1.4. Justificacin
lo largo del tiempo es muy atractivo como programador utilizar esta herramienta
como un medio para generar aplicaciones que sean tiles y aplicables al mercado
actual, es por esto que crear una aplicacin que por medio de mensajes cortos de
medio por ejemplo tal como podemos pedir el estado del tiempo por SMS
tantos los problemas que podran encontrar solucin con una aplicacin de este
2. MICROCONTROLADORES
2.1. Qu es un Microcontrolador?
programador.
de proceso, o CPU, esta conectada a una memoria nica que contiene las
datos, por lo que permite que cada instruccin solo ocupe una sola
2.3.1. Procesador
procesadores actuales.
2.3.1.1. CISC
2.3.1.2. RISC
2.3.1.3. SISC
Especfico).
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 9
2.3.2. Memoria
unidades.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 10
2.3.2.2. OTP
lectura programable una sola vez por el usuario. OTP (One Time
2.3.2.3. EPROM
material plstico.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 11
relativamente lenta.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 12
2.3.2.5. FLASH
puede escribir y borrar. Funciona como una ROM y una RAM pero
una onda cuadrada de alta frecuencia, que configura los impulsos de reloj
seal del reloj es el motor del sistema y la que hace que el programa y los
son:
Temporizadores o Timers.
Comparador analgico.
Puertas de comunicacin.
automticamente en el sistema.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 16
alimentacin.
por una de las patillas del chip. Existen muchos circuitos que trabajan
fija de referencia y otra variable que se aplica por una de las patitas de
segn una seal sea mayor o menor que la otra. Tambin hay modelos
los comparadores.
encapsulado.
Serie)
asncrona
2.6.10.3. Puerta paralela esclava para poder conectarse con los buses
de otros microprocesadores.
2.6.10.5. Bus I2C, que es un interfaz serie de dos hilos desarrollado por
Philips.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 20
3.1. Introduccin
bajo costo lo hacen muy til en pequeas aplicaciones as como parte de otras
lgicos convencionales.
cdigo.
4. El Microcontrolador PIC12F675
sensores, tienen que ser convertidas a nmeros binarios para que el micro las
pueda procesar.
para conversin A/D de 10bit (1024) que van desde AN0 AN3.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 27
1 entrada.
1 = Anlogo.
siguiente formula:
F = 9/5 * C + 32
32 F = 0 C
Por Ejemplo:
F = 122 F
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 31
6. Java
con los procesadores Java). Por lo tanto, para ejecutar una aplicacin Java es
Linux, Windows 95/NT, Macintosh, etc.) existe una mquina virtual especfica. As
multiplataforma de Java, que con slo codificar una vez, podemos ejecutar en
varias plataformas.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 32
Manifest-Version: 1.0
Created-By: 1.4.1_02 (Sun Microsystems Inc.)
Main-Class: socket.Aplicacion1
7. Qu es un socket?
con otra mquina (que puede ser incluso la misma) y otro puerto.
7.1. Qu es un puerto?
(2 elevado a 16 menos 1)
usar ese puerto. Los puertos 1024 hacia abajo estn reservados a las
rutinas del sistema operativo, o mejor dicho a los programas estndares del
TCP/IP.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 35
Las RFC son los documentos en los que se empez a publicar el estndar
de conexiones entrantes.
individuales.
8. Bluetooth
8.1. Caractersticas
9.1. Definicin
9.2. Introduccin
operacin falle.
este disponible.
Los beneficios del servicio SMS para el proveedor son los siguientes:
Paging.
Es una entidad que puede enviar o recibir mensajes cortos. Puede ser
sistemas de datos.
Estacin Base del sistema. (Base Station System - BSS): Todas las
necesarias:
fijas.
pueden ser entregados al SMSC por abonados mviles o por otros medios.
Por ejemplo es muy comn utilizar las pginas Web gratuitas que tienen
reuniones, etc.
en otras redes.
usado para transferir datos binarios que pueden ser interpretados por la
Mvil.
System) la seguridad no
exista
Service) comunicacin de
datos.
actualizar a 3G.
con los aparatos GSM existentes, inclusive con los que ya soportan el
11. Comandos AT
11.1.Introduccin
11.2.Control de Llamada
llamadas.
AT Atencin
11.3.Comandos SMS
AT+CSCA="+5698890005"
AT+CNMI=2,1,0,0,0
AT+CPMS ="ME","ME"
celular.
AT+CMGD=N
AT+CMGL=?
SENT","ALL")
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 54
N = 6,
Largo del SMSC - N
0 06 "91" - 1 byte
Tamao del SMSC + Numero.
"56 89 45 00 02" - 5 bytes
15 00 - Protocolo identificador
05 Ao
14:27:25:32 Hora
El mensaje "Hello" seria representado por la cadena "0x48 0x65 0x6C 0x6F" de 7
bits.
El comando AT+CMGS = 27, pre -notifica al Celular que el PDU que ser enviado
Usa la Informacin SMSC interna del largo es 0, lo que significa que el SMSC
0 00
celular guardado en el telfono tiene que ser
usado.
10 00 - Protocolo Identificador
mensajes de texto SMS. Para ello se realizo una aplicacin en Java que
un telfono mvil.
de mensajes de la aplicacin.
(MODEM con soporte para SMS o bien un telfono mvi l con cable de
datos o bluetooth).
remitente.
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 63
servidor de mensajes.
aqu vemos el puerto com4 que es el puerto serial por defecto para el
13.6.Consultas SQL
Aqu vemos distintas opcione s para consultar a una base de datos la cual
y otros mensajes.
operativo DOS.
Figura 24.Respaldo BD
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 70
***********************************************************
// conectarse al servidor y procesar mensajes del servidor
public void ejecutarCliente()
{
// conectarse al servidor, obtener flujos, procesar la conexin
try {
conectarAServidor(); // Paso 1: crear un socket para realizar la conexin
obtenerFlujos(); // Paso 2: obtener los flujos de entrada y salida
procesarConexion(); // Paso 3: procesar la conexin
}
// el servidor cerr la conexin
catch ( EOFException excepcionEOF ) {
System.err.println( "El cliente termino la conexin" );
}
finally {
cerrarConexion(); // Paso 4: cerrar la conexin
}
// conectarse al servidor
private void conectarAServidor() throws IOException
{
mostrarMensaje( "Intentando realizar conexin\n" );
14.2.Servidor Socket
while ( true ) {
try {
esperarConexion(); // Paso 2: esperar una conexin.
obtenerFlujos(); // Paso 3: obtener flujos de entrada y salida.
procesarConexion(); // Paso 4: procesar la conexin.
}
finally {
cerrarConexion(); // Paso 5: cerrar la conexin.
++contador;
}
include "modedefs.bas"
DEFINE OSC 4
deFINE OSCCAL_1K 1
ini:
ADCON0.1 = 1 ' da inicio a la conversion A/D
loop:
if ADCON0.1 = 1 then loop
nTI=(((ADRESH-32)*5)/9)
nTD=(((ADRESH-32)*5)//9)
else
low GPIO.4
low GPIO.5
Serout GPIO.2,N9600,[#nTI,".",#nTD,10]
pause 1000
endif
goto ini
end
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 76
package msms;
import java.io.*;
import java.util.*;
import javax.comm.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
try {
inputStream = serialPort.getInputStream();
} catch (IOException e) {}
try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {}
serialPort.notifyOnDataAvailable(true);
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {}
System.out.println("FC. LEE ");
try
{
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 78
outputStream = serialPort.getOutputStream();
} catch (IOException e) {}
try {
inputStream = serialPort.getInputStream();
} catch (IOException e) {}
try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {}
serialPort.notifyOnDataAvailable(true);
}
}
}
if (!portFound) {
System.out.println("port " + defaultPort + " not found.");
jTextArea1.append("Puerto " + defaultPort + " No Funciona.\n");
}
SwingUtilities.invokeLater( new SalidaRunnable(Marco1.jTextArea1,
jTextArea1.getText() ) );
}
SimpleRead();
SimpleWrite sw2= new SimpleWrite(outputStream,nOpcion);
Thread thread2 = new Thread(sw2);
thread2.setDaemon(true);
thread2.start();
while(true)
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 79
{
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
serialPort.close();
}
}
}
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 80
try {
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
if(str.indexOf("OK")!=-1 )
{
jTextArea1.append("OK \n");
System.out.println("OK");
}
if(str.indexOf("ERROR")!=-1 )
{
jTextArea1.append("ERROR Encontrado \n");
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 81
System.out.println("ERROR Encontrado");
}
if(str.indexOf("CMGS")!=-1 ) // aviso de envio de MSJ
{
jTextArea1.append("MSJ Enviado \n");
System.out.println("MSJ Enviado ");
}
if(str.indexOf("CMTI") !=-1) // aviso de msj recibido
{
smsInd = str.substring(14,16);
jTextArea1.append("MSJ Recibido :"+smsInd.trim()+"\n");
if(smsInd.endsWith(",")){
smsInd = smsInd.substring(14,15);
}
nOpcion = "at+cpms=\"ME \",\"ME\"\r";
SimpleWrite sw1 = new SimpleWrite(outputStream, nOpcion);
nOpcion = "at+cmgr="+smsInd.trim()+" \r";
sw1 = new SimpleWrite(outputStream, nOpcion);
if ( (str.indexOf("UNREAD") != -1)) {
smsRemitente = str.substring(23, 34);
if (smsRemitente.indexOf(" \"") != -1) {
smsRemitente = smsRemitente.substring(0, 8);
}
else{
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 82
if (strsms.indexOf("temperatura") != -1){
StringBuffer buffer = new StringBuffer(smsRemitente);
char arreglo[] = new char[buffer.length()];
buffer.getChars(0, buffer.length(), arreglo, 0);
//****Pido la t al micro****
SwingUtilities.invokeLater(new Micro());
//**********Llama al Micro*****************************
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 83
//*****Envio la temperatura*******
nOpcion = "LA T ES:" + tempe + " \032";
sw2 = new SimpleWrite(outputStream, nOpcion);
jTextArea1.append("\n TEMPERATURA ENVIADA \n");
SwingUtilities.invokeLater(new Registro(smsRemitente,
strsms));
}
}
}// END CMGR
if ( (str.indexOf("UNREAD") != -1)){
} // END CMGL
if(str.indexOf("RING") !=-1)
{
jTextArea1.append("\n LLAMADA ENTRANTE!!! \n");
System.out.println("\n LLAMADA ENTRANTE!!! \n" );
}
} catch (IOException e) {}
SwingUtilities.invokeLater( new SalidaRunnable(
jTextArea1,jTextArea1.getText()) );
SwingUtilities.invokeLater( new SalidaRunnable(Marco1.jTextArea1,
jTextArea1.getText() ) );
jTextArea1.setText("");
//SwingUtilities.invokeLater( new EnviaDatos(jTextArea1.getText() ) );
break;
}
}
public SimpleRead() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
}
}
class SimpleWrite implements Runnable
{
static String XMSJ = "AT\r";
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 86
Thread t;
SimpleWrite(OutputStream outputStream,String nOpcion)
{
//Listo Para Enviar MSJ
this.outputStream=outputStream;
XMSJ = nOpcion;
t=new Thread(this);
t.run();
}
public void run()
{
try{
Thread.sleep(1000);
outputStream.write(XMSJ.getBytes());
}catch(IOException e) {System.out.println(e);}
catch(InterruptedException e) {}
}
}
Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 87
15. Conclusin.
16. Bibliografa.
www.todopic.com.ar
http://perso.wanadoo.es/luis_ju
www.hvwtech.com
www.cursoderobotica.com.ar/robotica/Libros/control.htm
www.cursoderobotica.com.ar/robotica/Libros/analogico.htm
http://www.ifent.org/Lecciones/digitales/secuenciales/ConvertA_D.htm
http://java.sun.com/products/javacomm/index.jsp
www.multingles.net/docs/conceptosTCP.htm
www.programacion.com/java/tutorial/red/11
www.itapizaco.edu.mx/paginas/JavaTut/froufe/index.html
www.mysql-hispano.org/page.php?id=24&pag=1
http://bibuct.uct.cl/ALEPH
http://voltio.ujaen.es/casanova/pics/intro.htm
http://usuarios.lycos.es/sfriswolker/pic/cuatro.htm
http://www.telefonos-moviles.com/
Titulo: Como Programar en Java Autor: Deitel, Harvey M. 5a. ed. 2004.