Primeros Pasos con Netduino como webserber


En estas lineas vamos a mostrar cómo crear un pequeños servidor web, que ejecutaremos en nuestro Netduino (+). El servidor web debe responder ante cada petición HTTP con un «Hola Mundo».

Empezamos creando un nuevo proyecto de tipo Netduino Plus en nuestro Visual Studio–> Botón derecho sobre el proyecto y elige «Añadir nuevo elemento». –>Añade una nueva clase llamada WebServer.cs.
Aquí presentamos una versión muy simple de nuestro servidor web  que se mantiene a la escucha, atendiendo las peticiones, y respondiendo «Hola Mundo» mientras hace parpadear el led de nuestro Netduino Plus.
public class WebServer : IDisposable
{
   private Socket socket = null;
   private OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
   public WebServer()
  {
       //Inicializamos el socket
       socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
       //Conectamos el socket
       socket.Bind(new IPEndPoint(IPAddress.Any, 80));
      //Iniciamos la escucha
      socket.Listen(10);
      ListenForRequest();
 }
 public void ListenForRequest()
{
  while (true)
  {
     using (Socket clientSocket = socket.Accept())
     {
       //Aceptamos el cliente
       IPEndPoint clientIP = clientSocket.RemoteEndPoint as IPEndPoint;
       EndPoint clientEndPoint = clientSocket.RemoteEndPoint;
       int bytesReceived = clientSocket.Available;
       if (bytesReceived > 0)
      {
           //Obtenemos la petición
           byte[] buffer = new byte[bytesReceived];
           int byteCount = clientSocket.Receive(buffer, bytesReceived, SocketFlags.None);
           string request = new string(Encoding.UTF8.GetChars(buffer));
           Debug.Print(request);
         //Componemos la respuesta (Nota 1)
           string response = «Hola Mundo»;
           string header = «HTTP/1.0 200 OK\r\nContent-Type: text; charset=utf-8\r\nContent-Length: » + response.Length.ToString() + «\r\nConnection: close\r\n\r\n»;
           clientSocket.Send(Encoding.UTF8.GetBytes(header), header.Length, SocketFlags.None);
           clientSocket.Send(Encoding.UTF8.GetBytes(response), response.Length, SocketFlags.None);
           //Parpadeo del led
           led.Write(true);
           Thread.Sleep(150);
           led.Write(false);
      }
    }
  }
}
#region IDisposable Members
~WebServer()
{
      Dispose();
}
public void Dispose()
{
     if (socket != null)
        socket.Close();
}
#endregion
}
El siguiente paso es añadir el siguiente código para iniciar el servidor web.
public static void Main()
{
    Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()[0].EnableDhcp();
    WebServer webServer = new WebServer();
    webServer.ListenForRequest();
}
En el siguiente paso, tenemos que desplegar el código en nuestro Netduino haciendo click en las propiedades del proyecto.
Una vez cambiadas las propiedades del proyecto, seleccionamos la pestaña «.Net Micro Framework» y cambiamos las siguientes propiedades:
Transport: USB
Device: NetduinoPlus_NetduinoPlus
Ahora solo nos queda pulsar F5 para pasar nuestro código a Netduino ,esperar unos inst asegurando que  nuestro Netduino-plus esta conectado a internet   realizamos la siguiente petición mediante nuestro navegador.
http://192.168.1.2/ ( o la ip que le haya asignado nuestro router a nuestro netduino)

TOP TEN DE PROYECTOS CON NETDUINO


El proyecto . NET Micro (. NET MF) es un código abierto (bajo licencia Apache), versión de. NET Framework diseñado para funcionar en microcontroladores. Debido a que es software libre, usted puede portarlo con el kit de portabilidad (enlace al final) a cualquier procesador que desea, si usted tiene el know-how. Por suerte, existen una serie de tablas con el MF. NET que haya sido portado, con la adición de una serie de características y los controladores para el tablero de la funcionalidad específica. Cada uno de los tableros varían en el número de E / S, dispositivos periféricos, MCU velocidad, memoria, etc Algunos incluso incluyen pantallas integradas. Usted no necesita saber mucho acerca de la electrónica para conseguir unos resultados realmente buenos de estas tablas. Se pueden codificar para el MF. NET con Visual Studio (VS 2010 para la versión 4.1 de 2008 para las versiones anteriores). También puede utilizar Visual C # Express y hacerlo todo de forma gratuita. Muy bonito! Yo mismo he estado jugando con algunas de las juntas, especialmente la Netduino . Otras personas han creado algunos proyectos muy interesantes. Debido a la naturaleza de estos proyectos, que tienden a encontrarlos más en YouTube que en los blogs.
A continuación muestro 10 proyectos que mas me han gustado:.
1. Tetris

Tetris se ejecuta en un tablero de Tahoe con una pantalla incorporada
2. Etch A Sketch


CNC Etch-a-Sketch
3. Inicio del termómetro

Mostrando la temperatura con los sensores y los. NET MF
4. WiFi 802.11 de red inalámbrica y cámara IP

Buen proyecto con una cámara IP y unas cuantas tablas
5. Netduino Servidor Web

Una web muy ligero servidor utilizando el Netduino. Hay un montón de ellos ahí fuera
6. ChipworkX RPL de reproducción de vídeo

Una reproducción de vídeo / decodificación de la prueba
7. . NET Micro Framework Juego

Un juego limpio pequeño video con una pantalla incorporada
8. Tank-pista Robot

Un ingenioso depósito de la banda de rodadura del robot
9. Motor paso a paso Midi Player (esto es impresionante)

Esto es muy bueno. La automatización de un motor paso a paso lo que toca música
10. Aquarium Controller

Un monitor de acuario y el motor
Muchos más videos de un proyectos con Netduino .