Envio de tweets con Netduino 3


En 2011, el autor misenhower  publicó   una biblioteca de cliente de la API OAuth de Twitter para Micro net llamado MicroTweet que  permitía enviar tweets  usando una placa Netduino Plus y Netduino 2 Plus.Han pasado ya  más 5  años  y desde luego el API v1.0 de  Twitter  ha quedada  obsoleta 8   (y desactivada)  a partir de que  Twitter comenzara a aplicar el uso de conexiones de SSL a extremos de acceso al API , lo cual significa que la biblioteca original de MicroTweet no ha sido funcional durante mucho tiempo..

Después de la aparición de Netduino 3  , que ha  incorporado entre  su  muchas nuevas características soporte SSL, el autor  ha visto  interesante revisar esta biblioteca  actualizandola con nuevos requerimientos de API de Twitter. El resultado es MicroTweet 2, cuyo código  ya está disponible  en GitHub ,  y también como un paquete binario de NuGet.

MicroTweet 2 es pues una reescritura completa de la biblioteca original contando  con varias características nuevas útiles para proyectos NETMF . Como requisitos  necesita  NETMF v4.3 , así como una placa  que soporte SSL.

Algunas de las características diferenciadoras  respecto  a la versión anterior son las siguientes

  • Se usa  la clase HttpWebRequest estándar (de System.Http) en lugar de un cliente HTTP a la medida. Esto es en parte debido al nuevo requisito de HTTPS, y en parte porque las más modernas placas  NETMF tiene mucho más espacio de programa que la versión de Netduino Plus .El original Netduino Plus tenía solamente 64 KB de espacio de código disponibles. Ensamblar  System.Http habría exigido más de la mitad de ese espacio, dejando muy poco espacio para el código de usuario. Netduino 3 Wi-Fi cuenta con más de 1.400 KB de espacio de código así como tras  modernas placasNETMF que tienen al menos 384 KB, por lo que ahora es mucho menos preocupante de lo que solía ser.
  • La original biblioteca de MicroTweet podría realmente hacer una cosa: publicar tweets. El autor siempre tenía la intención de añadir más características, pero la memoria limitada de la original Netduino Plus a analizar las respuestas de la API de Twitter lo convertian en una tarea relativamente difícil.El 3 de Netduino tiene significativamente más memoria RAM, por lo que ahora es mucho más fácil de procesar las respuestas recibidas desde Twitter.
  • Todas las respuestas de la API de Twitter se serializan como JSON, así que para 2 de MicroTweet el autor construyó un parser JSON. La aplicación es bastante simple: se toma una matriz de caracteres y va a través de él, analizandocarácter por carácter. Existen otros analizadores JSON para NETMF pero el autor quería construir uno propio para permitir una mayor flexibilidad al añadir cuenta y optimización de rendimiento. En la construcción de esta biblioteca encontró que el Netduino 3 , por decirlo suavemente, no es excesivamente rápido en el análisis de las respuestas JSON(toma alrededor de 4 segundos para analizar una respuesta de 20KB, lo cual es mucho pues  además hay que sumar el tiempo que tarda en recibir la respuesta en primer lugar, que se suma al menos unos segundos más para el tiempo total de procesamiento).
  • La versión anterior de MicroTweet utiliza la bibliotecaMicroLinq .Para MicroTweet 2 se  ha quitado esta dependencia y añadido un método de tipo de inserción sencilla para controlar esta necesidad. Haciendo MicroTweet enteramente autónomo debe ayudar a hacer un poco más fácil mantener actualizado el proyecto.

 

Esta biblioteca como vamos ver puede ser utilizada para registrar y recuperar tweets directamente desde un dispositivo NETMF través de la API de Twitter.

 

 

Para empezar  primero deberá  hacer referencia a la biblioteca de MicroTweet, bien Agregando  el proyecto deMicroTweet a la solución de VS o simplemente instalando la biblioteca a través de NuGet.

Para instalarlo desde NuGet, ejecute el siguiente comando en la consola del administrador de paquetes:

Install-Package MicroTweet

Pueden encontrar instrucciones para usar NuGet y la consola del administrador de paquetes   aqui.
Una vez haga referencia a  MicroTweet assembly  en su aplicación, agregue una  Directiva para el espacio de nombres MicroTweet  en la parte superior del archivo de programa (por ejemplo, Program.cs):
 using MicroTweet;

También, si utiliza DHCP, puede que desee esperar a que una dirección IP para ser adquirida antes de realizar cualquier operación de red, aunque  también puede hacer esto marcando el valor de   IPAddress.GetDefaultLocalAddress()  en el comienzo de su   programa, por ejemplo usando el siguiente código

while (IPAddress.GetDefaultLocalAddress() == IPAddress.Any) 

    Thread.Sleep(50);

 

Ajuste de la hora actual

Es importante destacar  que  las solicitudes de la API de Twitter deben tener un válido timestamp (actual), por  lo que el autor ha incluido  para nuestra comodidad  una clase  SNTP    dentro de la biblioteca MicroTweet para recuperar el tiempo actual de un servidor NTP.

Puede actualizar la hora actual en su placa  puede usar  el código siguiente:

Microsoft.SPOT.Hardware.Utility.SetLocalTime(Sntp.GetCurrentUtcTime());

Inicializando  TwitterClient

Para usar la API de Twitter desde la aplicación usted debe primero registrarlo con Twitter para obtener un conjunto de claves API. Para ello tendrá que ir a la página de gestor de aplicaciones de Twitter para crear una nueva aplicación y obtener las claves necesarias. Usted recibirá dos juegos de llaves: una para la aplicación que creó y otra para su cuenta de usuario acceder a la API a través de la aplicación. Éstas  claves se conocen como las credenciales de la aplicación y las credenciales de usuario.

Puede inicializar una nueva instancia de TwitterClient con un código similar al siguiente:

// Set up application and user credentials
var appCredentials = new OAuthApplicationCredentials()
{
    ConsumerKey = "YOUR_CONSUMER_KEY_HERE",
    ConsumerSecret = "YOUR_CONSUMER_SECRET_HERE",
};
var userCredentials = new OAuthUserCredentials()
{
    AccessToken = "YOUR_ACCESS_TOKEN",
    AccessTokenSecret = "YOUR_ACCESS_TOKEN_SECRET",
};

// Create new Twitter client with these credentials
var twitter = new TwitterClient(appCredentials, userCredentials);

 Enviando  un tweet
Enviando un Tweet uso el método SendTweet para enviar un tweet:

try
{
    var tweet = twitter.SendTweet("Trying out MicroTweet!");
}
catch (Exception e)
{
    // Couldn't send the tweet, the exception may have more information
}

 

Si se recibe un error de API de Twitter, se producirá un TwitterException con más detalles.La propiedad de mensaje de la excepción contiene el mensaje de error real proveniente de Twitter.

 

Recuperar su línea de tiempo inicio

Utilice el método GetHomeTimeline para recuperar los más recientes tweets y retweets, escritos por personas que siguen:

 

try
{
    var tweets = twitter.GetHomeTimeline();
    foreach (Tweet tweet in tweets)
        Debug.Print("Tweet from @" + tweet.User.ScreenName + ": \"" + tweet.Text + "\"");
}
catch (Exception e)
{
    // Couldn't retrieve the timeline, the exception may have more information
}

GetHomeTimeline acepta dos argumentos, sinceID y maxID, para especificar la gama de tweets para recuperar.

Puede utilizar argumentos con nombre para especificar estos valores.

Por ejemplo: var tweets = twitter. GetHomeTimeline(maxID: 603281686600683520);
Recuperar la línea de tiempo de un usuario específico

Utilice el método GetUserTimeline para ver los tweets y retweets publicadas por un usuario específico:

try
{
    var tweets = twitter.GetUserTimeline("twitter");
    foreach (Tweet tweet in tweets)
        Debug.Print("Tweet from @" + tweet.User.ScreenName + ": \"" + tweet.Text + "\"");
}
catch (Exception e)
{
    // Couldn't retrieve the timeline, the exception may have more information
}

De un forma parecida a GetHomeTimeline, puede especificar la gama de tweets para recuperar con sinceID y maxID: var tweets = twitter. GetUserTimeline (“twitter”, sinceID: 600728701584576512);

Otras clases de TwitterClient

Hay  en esta biblioteca   algunos otros métodos muy útiles:

GetCurrentUser puede utilizarse para verificar las credenciales proporcionadas (claves de API). Si las credenciales son válidas, se devolverá un objeto de usuario con los detalles para el usuario de autenticación.
GetUser recupera la información del usuario con el nombre de usuario especificado o el ID.

Proyecto de muestra

MicroTweet 2 incluye un proyecto de muestra simple que envía un tweet y recupera los últimos tweets de personas que siguen.No hay ninguna funcionalidad de hardware específico en el proyecto de ejemplo incluido, funciona igualmente bien en cualquier junta (o incluso el emulador NETMF).

El autor pensó que sería divertido hacer un proyecto de muestra basado en hardware simple, así que aquí está el reloj de seguidores de Twitter:

Twitter Follower Count

Este proyecto recupera  datos de usuario y muestra su actual cuenta de seguidor en un display de 7 segmentos. Usted podría también, por supuesto, configurar para recuperar el recuento de seguidores de cualquier usuario en Twitter. Aquí está el código para este proyecto.

 

 

 

Fuente aqui

Anuncios

Nueva actualización para Netduino 2plus


En la pagina de Netduino de descargas   ofrecen una actualización  para Netduino 2 Plus,  para pasar del sdk 4.2  a 4.3 , lo cual nos beneficia grandemente, pues entre otras mejoras  se  deberá usar Visual Studio 2013 Express  y por supuesto la versión profesional VS2013 como ambiente de desarrollo para nuestros proyectos.
Algunas otras mejoras contempladas en esta actualizacion:
1. Dirección MAC ahora repoblado automáticamente después de la actualización (de flash de OTP)
2. Modelo universal optimizada “Netduino aplicación” ahora compatible
3. Solución de error: control de flujo COM2 habilitado ahora
4. Solución de error: HTTP clases System.Net ahora comprueban nula durante Deseche

 

Las placas actualizables son las siguientes:

Netduino 2

Netduino2     actualizado a 4.3.2.0

Netduino Plus 2  actualizado  a 4.3.2.1

Netduino go

Netduino Go  actualizada a 4.3.2.0 Beta1

Netduino 3

Netduino 3  actualizado a 4.3.2.2

Netduino 3 Ethernet actualizado a 4.3.2.3

Netduino 3Wifi actualizado a 4.3.2.2

 

 

Pre-requisitos para este firmware
1. Visual 2012 o Visual Studio 2013. O Visual Studio 2015 (beta) Studio.
2. .NET Micro Framework SDK v4.3 qfe2 o más reciente
3. NETMF plug-in para Visual Studio 2012, NETMF plug-in para Visual Studio 2013 o NETMF plug-in para Visual Studio 2015 (beta).
4. Netduino SDK v4.3.2.1 o más reciente

 

 

Para actualizar dichas placas en primer lugar descargaremos el sw desde la página de descargas en la sección de firmware updates  o desde el siguiente enlace de descarga   :

Download Netduino v4.3.2.1 firmware now

netduino

 

Una vez descargado el  fichero zip ,procederemos a descomprimirlo en una carpeta de nuestro equipo

netduion2

 

Como podemos ver el método de actualización es diferente  de los anteriores pues ya no se hace con el mdfeploy sino con la herramienta NetduinoUpdate.

Gracias  a la carpeta firmware que contiene todos los binarios  necesarios   para cada  versión de Netduino compatible,  se actualizará cada placa con su versión de firmware correspondiente..

 

versionesnetduino

 

Pasos siguientes para actualizar  alguna de esas tres placas:

1. Separe su Netduino de su ordenador para apagarlo.
2. Mantenga pulsado el botón de Netduino mientras conectarlo vía USB; esto va a ponerlo en modo de arranque.
3. Ejecute la herramienta Netduino Update (ver enlace más arriba).
a. Si el dispositivo no aparece, instale STDFU drivers + tools v3.0.3.
b. Si el dispositivo aparece como “Dispositivo STM en modo DFU”, haga clic en “Opciones”, seleccione el tipo de tarjeta de la caja de la selección del producto y cerrar la ventana Opciones.

n2+

options
4. Seleccione la casilla junto a su dispositivo y pulse el botón “Actualizar”
5. Espere a que la operación de actualización completa. Después de parpadear, su Netduino se reiniciará y se eliminará de la lista de actualización.

update
6. Opcional: después de parpadear, establezca la configuración de red utilizando MFDeploy. En MFDeploy, seleccione el destino> Configuración> menú Redes. Vuelva a introducir su configuración de la dirección IP y la dirección MAC.

 

¿Cómo encontrar la versión actual de firmware Netduino ?
1. Vaya al menú Inicio> Programas> Microsoft .NET Micro Framework 4.3
2. MFDeploy Ejecutar.
3. Conecte su Netduino en su PC mediante un cable USB Micro.
4. En la sección de dispositivos en la parte superior, seleccione USB en lugar de en serie. Su Netduino debería aparecer en la lista desplegable; si no, seleccionarlo.
5. Seleccione el menú Destino> opción capacidades del dispositivo.
6. En el cuadro de salida, encontrar el valor “SolutionReleaseInfo.solutionVersion”. Esta es la versión del firmware.

 

 

 

 

 

Mas información  aqui

Muy pronto Netduino 3


En los últimos cuatro años y medio juntos, decenas de miles de usuarios hemos construido proyectos increíbles con Netduino, pero  siempre por desgracia  todos nuestros proyectos que  necesitaban conectividad , literalmente necesitaban  un cable de red.

Hoy en este post vamos a hablar de un nuevo Netduino insignia que no usa cables  y con una función de SSL, es decir el  Netduino 3 Wi-Fi, el Netduino inalámbrico de última generación.

n3wbottom-sm.jpg

Aunque puede  que aún necesite en muchos proyecto conectividad ethernet, es cierto que en muchas  otras ocasiones puede que no tenga conectividad  por cable    así que precisamente se ha creado Netduino 3 Wi-Fi para cubrir esa necesidad tan demandada .

Netduino 3 Wi-Fi se basa en las mejores características de la anteriores versiones de Netduino,y además añade un montón de nuevas características.

Éstos son algunos aspectos destacados de lo que es el nuevo y mejorado con Netduino 3 Wi-Fi:

  • Micro: STM32F427VI Rev 3  ,es decir un  nuevo microcontrolador mucho mas potente que el incluido en las anteriores versiones
  • 2 MB de flash de doble banco (el doble que NP2)
  • 256KB de RAM incluyendo 64KB de RAM central acoplada (33% más que NP2), ahora tiene 64 KB más RAM también.
  • Wi-Fi: TI CC3100, 802.11b / g / n (2.4GHz)
  • Soporta redes abierta, WEP y WPA2
  • El soporte integrado para la última seguridad SSL (incluyendo TLS 1.2)
  • Tres puertos GoBus 2.0 (para componentes plug and play)
  • Soporte  incluso de muchos mas  escudos de Arduino (con almohadillas de cabecera ICSP)
  • Nueva pulsador-escudo amigable miniatura
  • Más potencia (mA) a disposición de sus proyectos, la capacidad de apagar los subsistemas que no sean necesarios de forma inteligente y el potencial de todo tipo de nuevos proyectos Netduino.
  • Nuevo subsistema de alimentación de marca y gestión de energía:  alimentación cc desde 12V hasta  5V (idela 9v)  ,pues lo ideal son  tensiones más bajas para mantener el calor hacia abajo ,ya que cualquier cosa por encima de ~ 7.5V es sólo va a conseguir quemar  el LDO).
  • Más de la mitad de todos los componentes son nuevos.

En cuanto al software, Netduino 3 Wi-Fi utiliza una pila de red Netduino.IP híbrido especial (integrado plenamente en el CLR).Sólo tiene que escribir código NETMF regular usando System.Net.Socket, HttpWebRequest, SslStream, etc.

Y, por supuesto Netduino 3 Wi-Fi es impresionante para los proyectos que utilizan Microsoft Azure, por ejemplo  soportando  AMQP.

Esta placa está diseñada con el futuro en mente, y también es ideal para proyectos conectados a Internet de hoy en día.

Netduino 3 Wi-Fi también tendrá firmware actualizable (incluyendo funcionalidad integrada de actualización de firmware para el CC3100) y ganará aún más rica funcionalidad en el tiempo.

Por defecto en realidad asigna el flash como dos secciones 1MB (con 384KB disponibles para el código, como antes). Es un tipo especial de destello del flash de doble llamada del banco que, en teoría, va a recibir una actualización de firmware completa (NETMF, aplicación, etc.) por el aire … y Flash la segunda 1MB con él … y luego reiniciar en la segunda mitad del flash.

En cuanto al nuevo SDK Netduino siguiente sera el  4.3.2  y el IDE recomendado  sera Visual Studio 2013

Para las plantillas … se puede utilizar la aplicación Netduino Plus 2 por ahora. El nuevo SDK incluye un esquema de plantilla simplificado y la nueva plantilla es un super-conjunto de la plantilla Netduino Plus 2.

Por cierto   ,para configurar los ajustes de Wi-Fi, simplemente abrir la red Config de MFDeploy y configurar su SSID y contraseña. WPA2 / PSK se selecciona automáticamente para que usted (y cubre WPA2 también).

Algunos  vínculos  sobre las características  de esta estupenda placa

Fuente   aqui