Envio de datos mediante GPRS

Hoy vamos a añadir la última parte a nuestro dispositivo que nos va a permitir enviar los datos a nuestro servidor. Mediante el uso de http://requestb.in/ y https://www.hurl.it/ ya sabemos como el el protocolo de comunicación mediante HTTP y como podemos enviar cadenas de caracteres mediante el método POST. Nuestro servidor está configurado para recibir datos en la siguiente dirección: http://****** y de momento recibe 15 variables separadas por coma con los siguientes campos:
DEVICE_ID,
id,
strTemp,
fluo,
strLat,
strLng,
gps.time.hour(), //uint_8t
gps.time.minute(),
gps.time.second(),
gps.date.day(),
gps.date.month(),
gps.date.year(), //uint_16t
gps.satellites.value(), //uint_32t
strvBat,
strSpeed

por ejemplo, una cadena válida sería:

test,0,18.5,0,43.54,-5.69,12,3,20,23,2,2017,1,1,1

lo ponemos en el body de hurl.it enviándolo a la dirección del servidor arriba indicada. Si luego vamos a www.oceanoabierto.es >> Datos podremos ver en el mapa la nueva entrada que acabamos de generar.


Para poder enviar un POST desde el Autonomo necesitamos un módulo GPRS:

Para utilizar el GPRS lo primero que tenemos que hacer es instalar la librería de Arduino que nos permite utilizar dicho dispositivo. Para ello instalaremos la librería GPRSbee de Sodaq, vamos a

Programa>>> Librerias >>> Gestionar Librerias  buscamos GPRSbee e instalamos

Para el envío de datos utilizaremos una tarjeta SIM como la de cualquier movil. Lo primero que haremos será quitar el codigo PIN de la tarjeta para poder utilizarla directamente sin clave de acceso. Con un móvil introduciremos la tarjeta SIM y cambiaremos el PIN a acceso sin PIN.

Ya podemos introducir la tarjeta SIM en el GPRS

y conectar el GPRS al autónomo:

Ya está todo listo para programar el Autonomo, abrimos Arduino y vamos a subir el siguiente programa:

 

// Fill in your own APN here
 #define APN "gprs-service.com"
 #define APN_USERNAME ""
 #define APN_PASSWORD ""

char* serverURL = "http:/*****";
 #include <GPRSbee.h>
 #define MAX_LINE_SIZE 128

void setup()
 {
 SerialUSB.begin(115200);
 Serial1.begin(57600);
 delay(5000);

// initialize GPRSbee
 digitalWrite(BEE_VCC, HIGH);
 gprsbee.initAutonomoSIM800(Serial1, BEE_VCC, BEEDTR, BEERTS);

const char testData[] = "test,0,18.5,0,43.54,-5.69,13,12,20,23,2,2017,1,1,1";

char buffer[MAX_LINE_SIZE];
 memset(buffer, 0, sizeof(buffer));

SerialUSB.println("Try to send");
 bool retval = gprsbee.doHTTPPOSTWithReply(APN, serverURL,
 testData, strlen(testData), buffer, sizeof(buffer));

SerialUSB.print("Valor devuelto (0 es fracaso, 1 es exito) = ");
 SerialUSB.println(retval);
 SerialUSB.print("Respuesta recibida = ");
 for (int i = 0; i < strlen(buffer); i++) {
 SerialUSB.print(buffer[i]);
 }
 SerialUSB.println();
 }
 void loop()
 {
 }

 

Envio de datos mediante GPRS

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *