Thingspeak es una plataforma de datos abierta para el Internet de las cosas, que permite la recogida de datos en tiempo real con una API abierta y sofisticadas capacidades de procesamiento de datos y análisis. Con plugins, visualizaciones de datos y la capacidad de integrar sus datos con una variedad de plataformas de terceros, sistemas y tecnologías, incluyendo otras plataformas líderes de la IO como ioBridge y Arduino, ThingSpeak es el complemento perfecto para un sistema empresarial existente para aprovechar el Internet de las Cosas
Las Características principales de este servicio es de contar con un API abierta, integración con Raspberry Pi, Arduino, ioBridge / RealTime.io y Netduino Datos de localización geográfica, procesamiento de datos y visualizaciones, mensajes de estado del dispositivo,integración con redes sociales,integraciones con el análisis de datos y servicios de terceros y todo ello con un costo GRATIS.
Gracias al método HttpWebRequest incluido en el Micro Framework 4.2 es posible conectar con un servidor remoto desde Netduino 2+ de una forma bastante sencilla mediante el citado método :
WebRequest request = HttpWebRequestCreate(url);
Donde en la variable url preferiblemente se incluirá a ser posible el nombre del servicio en formato numerico (la direccion IP) en lugar del nombre completo para evitar problemas .Asimismo lo ideal es acceder al servicio a través de HTTP en lugar de HTTPS pues no hay soporte para SSL en Netduino Plus 2 en el firmware actual.
Además, es posible que desee agregar una “verificación para asegurarse de que mi placa tiene una dirección de Internet” poco de código en la superior si se está utilizando DHCP … en caso de que se necesite unos segundos para obtener y resolver una dirección IP de su router.
Por cierto el código de ejemplo no sólo sirve para enviar información de sensores a la plataforma Think Speak ,pues modificando los valores de configuración del servidor, los valores de api_key y el valor del nombre del campo a enviar , es posible el envío a cualquier otra plataforma de IoT ( por ejemplo cosm.com)
Veamos un ejemplo de programa que actualiza el estado del interruptor Netduino Plus para Thingspeak :
/*This program updates the Netduino Plus switch state to Thingspeak*/ using System; using SystemNet; using SystemNetSockets; using SystemThreading; using MicrosoftSPOT; using MicrosoftSPOTHardware; using SecretLabsNETMFHardware; using SecretLabsNETMFHardwareNetduino; using SystemText; using SystemIO; namespace LED__control_Thingspeak { public class Program { public static void Main() { var SwitchPort = new InputPort(PinsONBOARD_BTN, false, PortResistorMode Disabled); //Open the switchport bool onned = SwitchPortRead();//Read the status of switchport if (onned) { update_thingspeak("30"); } else { update_thingspeak("60"); } }//Main ends static void update_thingspeak(string value) { //Create a http response object WebRequest request = HttpWebRequestCreate("http://api.thingspeak.com/update"); //Setting the request method requestMethod = "POST"; //The data to be sent string data = "api_key=" + "T5Q1Y9QBY1TULCBG" + "&field1=" + value; //Creating the byte array byte[] bytearray = EncodingUTF8GetBytes(data); //Setting the MIME requestContentType = "application/x-www-form-urlencoded"; requestContentLength = bytearrayLength; //Opening the datastream Stream datastream = requestGetRequestStream(); //Writing to the datastream datastreamWrite(bytearray, 0, bytearrayLength); //Closing the stream datastreamClose(); //Obtaining a response WebResponse response = requestGetResponse();//Creating a response datastream = responseGetResponseStream();//Getting the response stream StreamReader reader = new StreamReader(datastream);// Read the content. string responseFromServer = readerReadToEnd();// Display the content. DebugPrint(responseFromServer); }//update_thingspeak ends }//class program ends }//namespace ends Fuente aqui