Servidor Web GSM

Este programa crea un servidor web para aceptar conexiones entrantes del escudo GSM. Algunos proveedores de red sólo permiten peticiones desde dentro de su propia red. Usted tendrá que consultar con su proveedor de red para asegurarse de que su tarjeta SIM aceptará peticiones HTTP entrantes.

Hardware necesitado

Placa Arduino o Genuino
Tarjeta SIM habilitada para datos

Circuito

Código
A continuación el programa completo

// Servidor Web basico

// Un sencillo servidor web que responde con nada, pero imprime la 
// solicitud del cliente y la dirección IP del servidor. 

// Circuito: 
// * Escudo GSM conectado 

//creado por David Cuartielles 
// modificado el 21 de Noviembre de 2012 por Tom Igoe 

// http://www.arduino.cc/en/Tutorial/GSMToolsTestWebServer 

// Este ejemplo es de dominio público * /

#include <GSM.h>

// numero de PIN 
#define PINNUMBER ""

// datos APN 
#define GPRS_APN       "GPRS_APN" // reemplazar por su APN GPRS
#define GPRS_LOGIN     "login"    // reemplazar por su login GPRS
#define GPRS_PASSWORD  "password" // reemplazar por su password GPRS


// initializa la instancia biblioteca
GPRS gprs;
GSM gsmAccess;     // incluye un parámetro "true" para habilitar la depuración
GSMServer server(80); // puerto 80 (http por defecto)

// timeout
const unsigned long __TIMEOUT__ = 10 * 1000;

void setup() {
  // inicializa las comunicaciones serie y espera a que se abra el puerto:
  Serial.begin(9600);
  while (!Serial) {
    ; // espera a que el puerto serie se conecte. Necesario para Leonardo solamente
  }

  Serial.println("Iniciando,..");
  // estado de la conexion
  boolean connected = true;

  // Inicia el escudo GSM 
  // Si su tarjeta SIM tiene PIN, pasarlo como un parámetro de begin () entre comillas
  while (!connected) {
    if ((gsmAccess.begin(PINNUMBER) == GSM_READY) &
        (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) == GPRS_READY)) {
      connected = true;
    } else {
      Serial.println("No conectado");
      delay(1000);
    }
  }

  Serial.println("Conectado a la red GPRS");

  // inicio del servidor
  server.begin();

  //Get IP.
  IPAddress LocalIP = gprs.getIPAddress();
  Serial.println("Direccion IP del servidor=");
  Serial.println(LocalIP);
}

void loop() {
  GSMClient client = server.available();

  if (client) {
    if (client.available()) {
      Serial.write(client.read());
    }
  }

}









No hay comentarios:

Publicar un comentario