bclose

Conectarse a Internet mediante GPRS

Realizar una conexión HTTP mediante Arduino y el módulo GRPS

Objetivos

 

 

    • Seguir ampliando las funcionalidades del módulo GPRS.
    • Aprender a configurar el GPRS para poder conectarnos a Internet.
    • Realizar una conexión TCP con servidor.
    • Enviar una petición HTTP a un servidor.
 

Material requerido.

 

  Tienda España Tienda Mexico
Vista principal de un arduino uno Arduino UNO Arduino UNO
Vista principal Shield GPRS Shield GPRS

 

CONFIGURAR LA CONEXIÓN A INTERNET

 

Si habéis seguido las sesiones que hemos dedicado hasta ahora al GPRS, no vais a tener ningún problema con esta. Y si no las habéis leído, os recomendamos que lo hagáis, porque vamos a pasar muy por encima las cosas que ya hemos explicado y vamos a reutilizar (con algunos cambios) la mayoría de las funciones que ya hemos usado antes. Concretamente vamos a basarnos en el programa que utilizamos en la sesión dedicada a Enviar y recibir llamadas y SMS.

De hecho las funciones que hemos usado para encender, apagar, reiniciar y enviar lo comandos AT y recibir las respuestas vamos a dejarlas tal cual.

int enviarAT(String ATcommand, char* resp_correcta, unsigned int tiempo)
{

  int x = 0;
  bool correcto = 0;
  char respuesta[100];
  unsigned long anterior;

  memset(respuesta, '\0', 100); // Inicializa el string
  delay(100);
  while ( SIM900.available() > 0) SIM900.read(); // Limpia el buffer de entrada
  SIM900.println(ATcommand); // Envia el comando AT
  x = 0;
  anterior = millis();
  // Espera una respuesta
  do {
    // si hay datos el buffer de entrada del UART lee y comprueba la respuesta
    if (SIM900.available() != 0)
    {
        respuesta[x] = SIM900.read();
        x++;
      // Comprueba si la respuesta es correcta
      if (strstr(respuesta, resp_correcta) != NULL)
      {
        correcto = 1;
      }
    }
  }
  // Espera hasta tener una respuesta
  while ((correcto == 0) && ((millis() - anterior) < tiempo));
  Serial.println(respuesta);

  return correcto;
}

void power_on()
{
  int respuesta = 0;

  // Comprueba que el modulo SIM900 esta arrancado
  if (enviarAT("AT", "OK", 2000) == 0)  
  {
    Serial.println("Encendiendo el GPRS...");

    pinMode(9, OUTPUT);
    digitalWrite(9, HIGH);
    delay(1000);
    digitalWrite(9, LOW);
    delay(1000);

    // Espera la respuesta del modulo SIM900
    while (respuesta == 0) {
      // Envia un comando AT cada 2 segundos y espera la respuesta
      respuesta = enviarAT("AT", "OK", 2000);
      SIM900.println(respuesta);
    }
  }
}

void power_off()
{
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(9, LOW);
  delay(1000);
}

void reiniciar()
{
  Serial.println("Reiniciando...");
  power_off();
  delay (5000);
  power_on();
}

La función void iniciar(); en la que configuramos el módulo GPRS, la vamos a tener que cambiar para enviar los comandos AT que necesitamos para conectarnos correctamente a Internet. Lo primero es que vamos a necesitar conectarnos a la red GPRS.

Aunque no lo hemos dicho claro hasta ahora, os habréis dado cuenta que en cuanto activamos la tarjeta y metemos el PIN correcto el módulo se conecta a la red de forma automática. No hay más que esperar y comprobar que realmente lo haya hecho con el comando AT+CREG?.

Sin embargo para conectarnos a la red GPRS y adjuntarnos al servicio de paquetes que nos posibilite conectarnos a Internet tendremos que utilizar el siguiente comando:

AT+CGATT=1 //Conectamos a la red GPRS

 

Contenido solo disponible para suscriptores. ¡Accede al contenido!

Ya estamos preparados para cargar el sketch en nuestro Arduino, y si está todo correcto deberíamos ver cómo se va configurando en el monitor serie:

monitor serie internet gprs

Si ahora escribimos “h” en el monitor serie y pulsamos “Intro”, veremos cómo empiezan a llegar un montón de datos. La gran mayoría de ellos no nos interesan y corresponden a la programación de la página, que además, al ser de tipo WordPress tiene un montón de cosas. Pero si os fijáis veréis como tenemos lo que nos interesaba, y de esta forma podemos verificar que la conexión ha ido bien.

resultado http grps arduino

Aquí os dejamos el programa completo para que lo podáis descargar: gprs_internet.

 

Resumen de la sesión

 

En esta sesión hemos aprendido varias cosas importantes:

 
    • A configurar el módulo GPRS para conectarse a Internet.
    • Hemos realizado una conexión TCP con un servidor.
    • A enviar una petición Http.
    • Hemos realizado una conexión Http sin utilizar un navegador, utilizando nuestro Arduino.
    • Podemos utilizar nuestro Arduino para conectarnos a Internet desde cualquier lugar en el que tengamos cobertura de red móvil
 
 
 

LikeUsOnFacebook_Icon

 

No Comments

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login
Tienda y Tutoriales Arduino