desktop

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.

GL865[1].jpg

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:

GL8652[1].jpg

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:

GL8653[1].jpg

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:

GL8654[1].jpg

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/f2e9ddcr1ixted6/GL865_GPRS_RFID.zip

Saludos!
 

Adjuntos

  • GL865 GPRS RFID.zip
    465.8 KB · Visitas: 1
Última edición por un moderador:
saludos, excelente post, tengo un LPC1765 que se conecta a un G610 de fibocom. Apenas estoy investigando para reprogramarlo. sabes si el g610 tiene libreria como el integrado tuyo?
 
saludos, excelente post, tengo un LPC1765 que se conecta a un G610 de fibocom. Apenas estoy investigando para reprogramarlo. sabes si el g610 tiene libreria como el integrado tuyo?

No hay librería que yo sepa, la librería del modulo gprs yo la desarrolle (con sus defectos), para crear tu propia librería te recomiendo que leas la hoja de datos del G610 y empieces a crear la tuya, es muy fácil crear una librería y es mucho mas recomendable, así le entiendes al 100% al modulo.
 
Atrás
Arriba