Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Proponer
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Nick


Contraseña


Nuevo usuario


English

Arduino: Realizar una conexión a Internet con la placa Arduino y un módulo GPRS GSM
Hardware


Explicamos cómo realizar una conexión a Internet, a una página web por socket mediante Arduino UNO y un módulo GPRS/GSM. Mostramos todos los requisitos hardware y software para realizar este proyecto de prueba con Arduino. Indicamos cómo conectar dos Arduinos para enviar la salida serie de uno de ellos (el que lleva el módulo GPRS/GSM) a otro.



 

 

Requisitos para realizar conexión a Internet desde Arduino con GPRS

En la siguiente sección del siguiente artículo explicamos los requisitos hardware y software necesarios para realizar el envío de SMS con Arduino y un módulo GPRS, dichos requisitos son los mismos que para la conexión a Internet:

Requisitos para enviar SMS y hacer llamadas desde placa Arduino

Básicamente necesitaremos un Módulo GPRS (en nuestro caso usamos un GPRS Sagem Quadband Module for Arduino), una Placa Arduino UNO y los requisitos software explicados en este otro artículo, donde también indicamos cómo conectar Arduino al PC paso a paso y cómo enviar programas desde el IDE de Arduino a la memoria Flash de la placa:

Primer proyecto hardware con Arduino, encender un LED

 

 

Cómo conectar el módulo GPRS a la placa Arduino UNO

En la siguiente sección del siguiente artículo explicamos paso a paso cómo conectar la antena externa al módulo GPRS y cómo conectar el módulo GPRS a la placa Arduino UNO:

Cómo conectar módulo GPRS a placa Arduino UNO

 

Consideraciones importantes a tener en cuenta antes de enviar el programa a Arduino para usar el módulo GPRS

Hay que tener en cuenta que el módulo GPRS tiene "dos posiciones" para la conexión con Arduino:

1. Por un lado hay que indicarle al módulo GPRS cuándo está conectado al PC por el puerto USB (serie emulado), esto se hace colocando dos jumpers que incorpora en la parte superior de la siguiente forma:

Considereciones importantes a tener en cuenta antes de enviar el programa a Arduino para usar el módulo GPRS

Es muy importante tener esto en cuenta, cuando queramos enviar el programa a Arduino, los dos jumpers deben estar como se indica en la imagen anterior, si no es así el Upload (envío) del programa dará error.

El error que nos mostrará el IDE de desarrollo de Arduino si no hemos colocado los jumpers correctamente será:

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

2. Para probar el programa de conexión a Internet o cualquier otra tarea que hayamos programado con Arduino y el módulo GPRS deberemos desconectarlo del USB del PC y alimentarlo externamente. Además, deberemos cambiar los jumpers mencionados anteriormente a esta nueva posición:

Considereciones importantes a tener en cuenta antes de enviar el programa a Arduino para usar el módulo GPRS

Si no se hace esto, cuando desconectemos Arduino del PC y lo alimentemos externamente, el módulo GPRS no funcionará.

 

Programar Arduino UNO para realizar una conexión a Internet con el módulo GPRS

Para realizar una conexión a Internet con la placa Arduino UNO, insertaremos una tarjeta SIM en el módulo GPRS con la opción de datos activa, conectaremos el módulo GPRS a la placa Arduino, colocaremos los jumpers del módulo en su posición para conexión con PC y conectaremos Arduino UNO al PC por el puerto USB. Una vez realizados todos estos pasos (explicados anteriormente), abriremos el IDE de desarrollo de Arduino y escribiremos el siguiente programa:

/* 
 *  Conexion a Internet con modulo GPRS y Arduino
*/ 
  
int pinActivarGPRS = 2;  // pin para activar el módulo GPRS

//procedimiento para activar el módulo GPRS
void activarModuloGPRS()
{
  digitalWrite(pinActivarGPRS, HIGH);
  delay(2000);
  digitalWrite(pinActivarGPRS, LOW);
}

void setup()
{
  pinMode(pinActivarGPRS, OUTPUT);
  Serial.begin(19200); //velocidad de conexión con módulo GPRS
  activarModuloGPRS(); //activar el módulo GPRS
 
  delay(20000); //esperamos 20 segundos a que se active el módulo GPRS  

  Serial.println("AT&k3");  //activa el control de flujo RTS/CTS en el modem
  delay(1000);
  Serial.print("AT+KCNXCFG=0,"); //inicia la configuración para el GPRS
  Serial.print(34,BYTE);
  Serial.print("GPRS");  //tipo de conexión
  Serial.print(34,BYTE);
  Serial.print(",");
  Serial.print(34,BYTE);
  Serial.print("gprs-service.com");  //punto de acceso
  Serial.print(34,BYTE);
  Serial.print(",");
  Serial.print(34,BYTE);
  Serial.print("");  //usuario del operador
  Serial.print(34,BYTE);
  Serial.print(",");
  Serial.print(34,BYTE);
  Serial.print("1234");  //contraseña del operador, para Simyo "1234"
  Serial.print(34,BYTE);
  Serial.println();
  delay(1000);
  //establecer configuraciones de tiempos de espera, reintentos de conexion y demas
  Serial.println("AT+KCNXTIMER=0,60,2,70"); 
  delay(1000);
  Serial.println("AT+KCNXPROFILE=0");
  delay(1000);
  Serial.println("AT+CGATT=1");  //para conectarnos a la red movil del operador
  delay(1000);
  Serial.print("AT+KTCPCFG=0,0,");  //para indicar el host o IP al que nos conectaremos
  Serial.print(34,BYTE);
  Serial.print("www.ajpdsoft.com");
  Serial.print(34,BYTE);
  Serial.println(",80");  //puerto por el que se realizará la conexión
  delay(1000);
  Serial.println("AT+KTCPCNX=1"); //para iniciar un intercambio de datos TCP
  delay(7000);
  //para envio de datos a la conexion
  //el 18 indica la cantidad de datos que queremos enviar "GET / HTTP/1.0\r"
  Serial.println("AT+KTCPSND=1,18"); 
  delay(2000);
  Serial.println("GET / HTTP/1.0");
  Serial.print(10,BYTE); //salto de línea
  Serial.print(13,BYTE); //retorno de carro
  Serial.print("--EOF--Pattern--"); //fin de la cadena de envio de datos
  delay(2000);
  Serial.println("AT+KTCPRCV=1,807"); //activar recepcion de datos
  delay(1000);
  Serial.println("AT+KTCPCLOSE=1,1");  //cerrar la conexion
  delay(1000);   
}

void loop()
{ 
}

Como siempre, verificaremos el código pulsando en el botón "Verify" del IDE de desarrollo de Arduino:

Programar Arduino UNO para realizar una conexión a Internet con el módulo GPRS

Y lo enviaremos a la placa Arduino pulsando en "Upload":

Programar Arduino UNO para realizar una conexión a Internet con el módulo GPRS

 

Enviar salida serie de un Arduino a otro para comprobar resultado de la conexión a Internet

En este proyecto, para poder comprobar la placa Arduino con el módulo GPRS GSM realiza la conexión a Internet correctamente, deberemos conectar una segunda placa Arduino al primero como explicamos a continuación.

Por un lado conectaremos un cable del pin TX - 1 del Arduino sin el módulo GPRS GSM al jumper USB del módulo GPRS GSM como se muestra en la imagen y por otro lado conectaremos un segundo cable del pin GND del Arduino sin el módulo GPRS al ping GND del Arduino con el módulo:

1. Vista del Arduino con el módulo GPRS GSM:

Enviar salida serie de un Arduino a otro para comprobar resultado de la conexión a Internet

2. Vista del Arduino sin el módulo GPRS:

Enviar salida serie de un Arduino a otro para comprobar resultado de la conexión a Internet

3. Vista de los dos Arduinos conectados:

Enviar salida serie de un Arduino a otro para comprobar resultado de la conexión a Internet

Una vez conectados los dos Arduinos, conectaremos el segundo (el que no lleva el programa ni el módulo GPRS) al PC por el puerto USB, iniciaremos el IDE de Arduino, seleccionaremos el puerto desde el menú "Tools" - "Serial Port":

Enviar salida serie de un Arduino a otro para comprobar resultado de la conexión a Internet

Pulsaremos en el botón "Serial Monitor" y en la ventana que nos mostrará debemos seleccionar la misma velocidad que hayamos indicando en el programa para la conexión serie, en nuestro caso 19200 baud (si no hacemos esto puede que veamos caracteres raros en la pantalla):

Enviar salida serie de un Arduino a otro para comprobar resultado de la conexión a Internet

Ahora alimentaremos eléctricamente el Arduino con el módulo GPRS GSM, tras unos segundos, si la conexión de los dos Arduinos mediante los dos cables es correcta, iremos viendo la salida serie del primer Arduino en el PC y así podremos verificar y testear el resultado de la conexión a Internet:

Enviar salida serie de un Arduino a otro para comprobar resultado de la conexión a Internet

 

 

Artículos relacionados

 

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft, con la inestimable colaboración de Antonio RN de RS.

Artículo en inglés.



Nota: Revisado por Alonsojpd el 18-10-2011.
Anuncios


Enviado el Martes, 18 octubre a las 01:01:16 por ajpdsoft
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+