Reto: Trabajando con Arduino y Azure

¿Tienes un Arduino con Shield de Ethernet? Entonces aquí tienes un buen reto para divertirte unos días (bueno, de hecho no lo sé, quizá ya hasta tienes un ejercicio similar resuelto).

El reto

Es sencillo, copia y pega este código en un proyecto de Arduino.

#include <SPI.h>
#include <Ethernet.h>
 
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0xEC, 0x6C };
EthernetClient client;
 
void setup() 
{
   Serial.begin(9600);
   if (Ethernet.begin(mac) == 0) 
   {
      Serial.println("Datos: Fallidos");
      for (;;) ;
   }
}
 
void loop()
{
  send_request();
  wait_response();
  read_response();
  end_request();
 
  delay(5000);
}
 
void send_request()
{
  Serial.println("Datos:Conectando");
 
  if (client.connect("internetofthingsservice.azure-mobile.net", 80)) 
  {
    client.println("GET /tables/FocosDomotica HTTP/1.1");
    client.println("Host: internetofthingsservice.azure-mobile.net");
    client.println("X-ZUMO-APPLICATION: NQUWuGZifGtkFdLSJuCjeFrBYhCXcB59");
    client.println("Accept: application/json");
    client.println();
 
    Serial.println("Datos: Enviados "); 
  } 
  else 
  {
    Serial.println("Conexion: Fallida");
  }
}
 
void wait_response()
{
  while (!client.available()) 
  {
    if (!client.connected()) 
    {
      return;
    }
  }
}
 
void read_response()
{
  bool print = true;
  while (client.available()) 
  {
    char c = client.read();
    Serial.print(c);
  }
}
 
void end_request()
{
  client.stop();
}

 

Una vez que lo hayas hecho, ejecuta el proyecto y notarás que el resultado es el siguiente en cada iteración (cinco segundos).

resultado
Como puedes ver el resultado realmente necesario es:

ResultadoJSON

Si deseas ver el resultado de una manera más cómoda puedes entrar a este sitio y ver el resultado al ingresar los siguientes parámetros.

ConsultaREST

Aquí los datos en texto plano:

Destino: internetofthingsservice.azure-mobile.net/tables/focosdomotica

Headers:

Host: internetofthingsservice.azure-mobile.net

X-ZUMO-APPLICATION: NQUWuGZifGtkFdLSJuCjeFrBYhCXcB59

Accept: application/json

 

Así que el reto consiste en lograr obtener esta cadena sin los headers que la acompañan. Es decir, de la respuesta obtenida debes eliminar toda la respuesta y mantener únicamente el resultado del JSON.

Se vale utilizar el lenguaje únicamente o bibliotecas de terceros para obtener el resultado pero cuidando al máximo el rendimiento del procesador.

El primero en responder se ganará una playera de C# y una memoria de 16 GB además de recibir el merecido crédito en cada demo que utilice esta funcionalidad.

¿Quién dice yo?

Deja un comentario

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

This blog is kept spam free by WP-SpamFree.