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 | |
---|---|---|
![]() |
Arduino UNO | Arduino UNO |
![]() |
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
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:

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.

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
