Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?
18/01/2015 #1

Avatar de george.manson.69

Lpc1114 + modem gprs
Hola,

En este post, lo que vamos a ver es como realizar una comunicación GPRS utilizando el modem de Telit el GL865 quad, utilizando un microcontrolador LPC1114 que utiliza como procesador un ARM CORTEX M0, en esta instancia sea creado una librería necesaria para manipular el modem GL865.


Características del Modem:

Soporta protocolos GSM\GPRS stack 3GPP
Soporta frecuencias GSM\GPRS 850/900/1800/1900 Mhz
En el PCB contiene un Conector para antena de 3.5 mm
En el PCB contiene ya un socket para la SIM


Principal Idea de Comunicación GPRS:


Como se ve en la imagen de arriba, el procedimiento para recibir datos de nuestro modulo al PC, se requiere los siguientes pasos:

Haber Configurado el GL865 con el APN, USER y PASSWORD.
Haber Configurado el GL865 con la IP y PORT del HOST (en este caso la IP es la publica de nuestro Modem y el PUERTO)
Realizar un Nateo de nuestra IP local (la computadora que va a recibir los datos) en el Modem o Router.
Realizar el Algoritmo en algún lenguaje que se encarge de recibir los datos en IP y PORT asignado en el modem GL865.
El APN es el acceso a la red que es necesaria para la conexion a la internet, algunas APN requieren usuario y contraseña.

La librería que se ha realizado para manejar el Modem GL865 en el Microcontrolador es la que se muestra en la imagen siguiente:


Nosotros solo requerimos introducir los parametros Socket, APN, USER, PASS, HOST(IP y PORT),
para después llamar la función 'Connect' para que realice una rutina de envío de comandos AT.
Si el Modem se ha conectado a la red y al HOST entonces solo es cuestión de estar revisando la conexión antes de enviar los datos.

El diagrama en general de como es la conexión es el siguiente:


Código:
#include	<lpc11xx.h>
#include	"GL865.h"
#include	"SetClock48Mhz.h"

/*Variables*/

uint8_t timeout=0;

/* Struct for the New Nework */

GL865Nework Mynework;

/*Main Function*/


int main(void){
	
	/*Set to 48Mhz*/
	
	SetClockTo48Mhz();
	
	/*Set Serial by Software to Debug*/
	
	SetSoftUART(SoftUARTBaudRate);
	
	/*Set Serial by Hardware to GL865*/
	
	SetUartTo(HardUARTBaudRate);
	
	/*Set Nework & Host & Init Pin of Reset*/
	
	Mynework.Socket=1;
	Mynework.APN="MYAPN";
	Mynework.USER="MYUSER";
	Mynework.PASS="MYPASS";
	Mynework.HOST="MyIP";
	Mynework.PORT="MyPort";
	GL865_Reset_Init;
	
	/*Can it connect?*/
	
	soft_write_string_rom("ModemGL865 is Connecting...\r");
	
	if(!ModemGL865_Connect(Mynework)){
		soft_write_string_rom("ModemGL865 was not Connected to Red!!\r");
		while(1);
	}

	soft_write_string_rom("ModemGL865 Connected to the Host\r");
	
	while(1){
		
		/*Connection is OK?*/
		
		if(!ModemGL865IsConnected(Mynework)){
		
			for(timeout=0;timeout<10;timeout++){
				delay_ms(200);
			}
		
			ModemGL865_write("HOLA MUNDO",10);
			soft_write_string_rom("Data sent = HOLA MUNDO\r");
			
		}else{

			soft_write_string_rom("ModemGL865 Reconnect to the Host\r");
			
			while(!ModemGL865_Connect(Mynework))
				continue;
			
			soft_write_string_rom("ModemGL865 Connected to the Host\r");
			
		}
	}
}
Python:

Código:
@author: jorge
'''
import socket


ip="192.168.1.95"
port=7777

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.bind((ip,port))

print("Connect...",ip,",",port)
while True:
    print("Waiting for data...",ip,",",port)
    data,addr = sock.recvfrom(1024)
    print("Data -> ",data)
http://www.mediafire.com/download/f2..._GPRS_RFID.zip

Saludos!
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.