Arduino orientado a IoT


Luego de tener todos los componentes es necesario ahora conectar el backend (click aquí) con los Arduino necesarios el cual tendrán un código genérico ya que todos harán lo mismo, encender el led que trae por defecto cuando una aplicación de FrontEnd de la orden.

Si va a compilar desde Raspberry PI

Suponiendo que no se tiene instalado Arduino IDE es necesario ejecutar los siguientes comandos en la consola, cada uno por separado y donde dice “pi” es el usuario.

sudo apt-get update
sudo apt-get install arduino
sudo usermod -a -G tty pi
sudo usermod -a -G dialout pi

Read More

Raspberry PI orientado a IoT


Bien, ahora se usará una Raspberry PI para poder conectarse con nuestro backend creado anteriormente con Node.js (click aquí) y así poder interactuar con nuestra aplicación de frontend y los dispositivos conectados.

Para mayor agilidad en el taller se conectarán por medio de USB ya que esto no requiere de ninguna configuración ni dispositivos externos.

Conectarse por escritorio remoto

  • Conociendo la IP asignada a la Raspberry presione en su teclado las teclas Windows + R, tener en cuenta que la tecla Windows tiene la bandera de Windows y por lo general está al lado del botón ALT, este comando ejecutará un ventana y allí escribir “mstsc

Read More

Mini sistema orientado a IoT


El pasado lunes 6 de abril se llevó a cabo IoT Expert Day, el cual durante el día se llevaron a cabo charlas introductorias al Internet de las Cosas y se mostraron ejemplos de cada tema; luego, después del medio día se llevó a cabo un taller para crear un sistema orientado a IoT para que todos los participantes pudieran tener un primer acercamiento.

Este taller que ahora dejo en disposición de manera online consta de los siguientes elementos:

  • Programa escrito en Arduino para encender un led
  • Aplicación hecha con Node.js y Socket.io, para servir de interface de conexión
  • Aplicación en Python para recibir todos los comandos por medio de Internet
  • Web App para controlar el led
  • Event Hub para registrar todos los eventos
  • Programa en C# para demostrar el funcionamiento de los Event Hub
  • Finalmente dejaré una aplicación móvil para que sea más realista el ejemplo

diagrama del sistema Read More

Eventos en WinJS


En el desarrollo de software es indispensable el manejo de eventos que se tiene X tecnología, en algunos se llaman triggers, events, delegates, en fin… En JavaScript estándar existen varios métodos, sin embargo cuando se está construyendo una aplicación WinJS nativa es necesario implementar el API de Microsoft.

Así que para ello y sin dar tantos rodes se necesita un disparador y un escuchador de eventos.

Dispatcher

Para disparar un evento solo es necesario declarar alguno de los dos ejemplos a continuación, el primero si es un evento básico y el segundo por si es necesario adjuntar información a este evento.

Método 1

WinJS.Application.queueEvent("nameOfEvent");

Método 2

WinJS.Application.queueEvent({ type: "nameOfEvent", information: { someProperty: "someValue" } });

Listener

 WinJS.Application.addEventListener("nameOfEvent", function (data) {
     console.log(data.information);
 });

Ejecutar Socket.io en Xamarin.Android


Es muy frecuente querer ejecutar esta grandiosa tecnología en la mayoría de recursos que usamos, por lo que esta vez les enseñaré a implementar Socket.io sin necesidad de usar terceros y sacarse las canas entre versiones y dependencias en servidor, etc etc… como me pasó a mi.

La ejecución es muy sencilla, tenemos un WebView donde se ejecuta código en Razor, HTML y un poco de JS donde se hará un hilo de comunicación de doble vía entre el WebView y el Code-Behind, a esta técnica la llamé BlackOps, ya que aquí se harán todas estas tareas oscuras y transparentes al usuario final, la cual darán una sensación de que corre de manera nativa.

  • En Xamarin Studio crear un nuevo proyecto tipo “Android WebView Application”, en este caso lo llamaré “EtonMessy_And”. 
  • En la carpeta Assets crear otra carpeta llamada “js” y crear un archivo llamado “blackOpsHelper”, descargar el cliente de Socket.io desde https://cdn.socket.io/socket.io-1.0.4.js y JQuery desde http://code.jquery.com/jquery-1.11.0.min.js 
  • En el archivo RazorView.cshtml agregar las referencias necesarias a los script.
  • Como buena práctica es encapsular toda la lógica en un archivo *.js que podría llamarse BlackOpsHelper.js, sin embargo, por razones del diseño del control WebView en Xamarin no es posible ejecutar llamados a Internet (probablemente se corrija más adelante), por el momento..  añadir el código base que he diseñado en una etiqueta “script”.

Read More