La idea con este post es que también la gente que solo sabe electrónica entienda que hoy en día programar un backend para nuestros proyectos, ni siquiera necesita código. Nuestro backend será un servicio Node.js creado a través de los Wizard de Azure.
Así que bueno, para empezar vamos algo cool y simple, vamos a crear un servicio en Azure Mobile Service para que nuestro Netduino pueda enviar información.
En la consola de Azure encontrarán esa opción
Al seleccionar la opción nuevo se abre un submenú donde iniciamos la creación
Llenamos los datos de nuestro servicio
También de la base de datos que utilizará
Esperamos a que Azure finalice las tareas necesarias
Hasta que nuestro servicio aparezca como listo para usarse
Presionamos la opción adicionar tabla y le asignamos un nombre
Podemos observar que la tabla no contiene registros
Al ir a la pestaña columnas vemos como azure crea algunos campos en nuestra tabla NoSql de forma automática. Presionamos el botón añadir columna para crear una propia.
Ahora damos un nombre a nuestra columna y elegimos el tipo de dato.
Después de confirmar verificamos que efectivamente la tabla tenga nuestra nueva columna
Para que nuestro demo sea más simple voy a cambiar los permisos de la tabla para que cualquiera pueda ingresar datos en ella.
Y ahora si lo que estabamos esperando empezar nuestro primer proyecto en Netduino. Como ven crear un proyecto de .NET Micro Framework es tan simple con cualquier proyecto de .NET en Visual Studio. Simplemente buscamos la sección y vemos todas las plantillas. Seleccionamos la que es acorde al Netduino que tenemos.
En el interior del proyecto encontramos algo familia, un punto de entrada Main típico de aplicaciones de consola.
Siendo nuestra intención probar si la red de nuestro Netduino quedo funcionando vamos a agregar dos referencias a nuestro proyecto, System.Http y System.IO
Además agregaremos un paquete de Nuget
Agregamos el Json.NETMF, para ayudarnos a serializar más facilmente.
Además creamos una entidad que nos permitrá guardar los datos en nuestra table. Ahora luce sencilla, sin embargo en otros laboratorios añadiremos más columnas.
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
using Netduino.NetworkTest.Entities;
using System.IO;
namespace Netduino.NetworkTest
{
public class Program
{
public static void Main()
{
try
{
EventLog eventLog = new EventLog()
{
Description = "Hello Cloud"
};
string json = Json.NETMF.JsonSerializer
.SerializeObject(eventLog);
Debug.Print("Message: " + json);
var httpWebRequest = (HttpWebRequest)WebRequest
.Create(
"http://netduinotest.azure-mobile.net/tables/EventLog");
httpWebRequest.Method = "POST";
httpWebRequest.Accept = "application/json";
httpWebRequest.ContentType = "application/json; charset=UTF-8";
httpWebRequest.ContentLength = json.ToCharArray().Length;
using (var streamWriter =
new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader
= new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
Debug.Print(result);
}
}
catch (Exception ex)
{
Debug.Print("Error: " + ex.Message);
}
finally
{
Thread.Sleep(Timeout.Infinite);
}
}
}
}
En este punto revisamos la versión del .NET Micro Framework a usar, si aun no has actualizado tu Firmware, debes cambiarla a la correspondiente.
Además nos aseguramos que en la opción .NET Micro Framework este el método de transporte USB y este seleccionado nuestro Netduino
Luego inicia la ejecución de nuestra aplicación y ups, así se vería un error. En el código que les copié ya está corregido, sin embargo cuando di ejecutar por primera vez olvide remover el HTTPS y dejar solo HTTP en la ruta del servicio de Azure Mobile Services. Como vemos en la imagen, el error es que no es soportado. Netduino no soporta SSL.
Volvemos a ejecutar la aplicación y ahora si tenemos una ejecución exitosa.
Si revisamos nuestro servicio en Azure, veremos el registro enviado desde nuestro Netduino
No hay comentarios:
Publicar un comentario