Cafetera conectada con Netduino


Netduino es una plataforma electrónica de código abierto utilizando .NET Micro Framework   basada en  un microcontrolador de 32 bits y con un entorno de desarrollo muy rico destinada a ingenieros y aficionados por igual. Netduino Plus   ademas añade  Ethernet integrado (hay una pila de TCP/IP completa )y una ranura para tarjetas microSD para almacenar archivos .No menos importante esta el tema de las conexiones externas,pues   Netduino ofrece 20 GPIOs combinados con SPI, I2C, 2 UARTs (1 RTS/CTS), 4 canales PWM y 6 canales ADC. A gran diferencia con Arduino,   para desarrollo se puede usar tanto   para Windows   (  con Visual Studio,)  o con Xamarin Studio en Mac OS X , ambas  perfectas  para complilar ,depurar  y probar nuestra aplicaciones . Incluso se puede  utilizar el Netduino en equipo Linux y Mac con Mono en lugar de .NET de código abierto 

La familia Netduino se basa en el Cortex-M Micro procesador la v4.3 .NET Micro Framework (NETMF) que como comentabamos está repleto de IO; incluyendo 22 entrada/salida de propósito General (GPIO) puertos, de las cuales 6 apoyo generación de modulación de ancho de pulso (PWM) de hardware, 4 UARTs (comunicación serial), I2C y SPI (Serial Bus de interfaz periférico).

.NET micro Framework combina la facilidad de codificación de alto nivel y las características de los  microcontroladores  soportando  eventos programación multi-threading, depuracion  línea por línea, puntos de interrupción y mucho más en clara diferencia con Arduino.

Antes de continuar  debemos recordar que  Netduino también es pin compatible con Arduino shields  permitiendo  asi  usar algunos escudos  de Arduino  que ofrecen funcionalidades preconstruidas como localización GPS, servo control , etc .

 

Realmente la potencia de Netduino+  frente a otras placas de igual factor de forma es su conectividad integrada  en la propia placa al  no necesitar ningún escudo adicional,  lo cual le permite llegar a aplicaciones de una forma  muy sencilla  y de una forma muy rápida como vamos a ver

En este ejemplo   vamos demostrar lo fácil que resulta controlar una cafetera  ( o lo que quiera ) desde Internet  por medio de una placa  Netduino+   que esta conectado a  la red ethernet

Para este  proyecto únicamente se usara el pin digital  D2  que se configurara como salida  y al que  conectaremos  una economica placa de un relé   compatible  con Arduino (5V)

 

Aunque es fácilmente construible por nosotros mismso  usando un relé  ,un transistor  y sus componentes asociados  , debido al bajisimo precio (<2€)   de uno ya montado merece la pena adquirirlo  asi pues comunicante habrá que conectar a un pin de datos binario de Netduino , alimentarlo con 5v DC ( obtenidos del propio Netduino+)    y por ultimo usar los contactos del rele  para encender cualquier cosa que se nos ocurra.

Como se puede apreciar en el esquema del circuito , este no puede ser mas simple pues solo hay que alimentar el circuito del rele con la tensión  de 5V procedente de la placa Netduino, conectar el pin de datos  D2 a la entrada IN de la placa del  relé  y finalmente conectar la carga ( en este caso un cafetera)  a los contactos de salida del relé

Para  probar el funcionamiento del circuito , conecte el Netduino+  a su ordenador , inicie Visual Studio 2012  y cree una nueva aplicación .NET MicroFramework llamada Connected_Coffee_SimpleControl, y agregue referencias a los siguientes dlls:

  • Microsoft.SPOT.Hardware
  • System
  • SecretLabs.NETMF.Hardware.Netduino

A continuación, pegue el siguiente código en su archivo program.cs:

using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
using System.Threading;

namespace Connected_Coffee_SimpleControl
{
    public class Program
    {
        public static void Main()
        {
            // create an output port (a port that can be written to) and 
            // connect it to Digital Pin 2
            OutputPort relay = new OutputPort(Pins.GPIO_PIN_D2, false);

            // run forever
            while (true)
            {
                relay.Write(true); // turn on the relay
                Thread.Sleep(5000); // Leave on for 5 seconds
                relay.Write(false); // turn off the relay
                Thread.Sleep(5000); // leave off for 5 seconds
            }
        }
    }
}
 Si observamos que la cafetera se enciende  por unos 5 segundos  y se apaga por 5 segundos en un bucle indefinido, el circuito funciona  perfectamente. así que con todo esto habremos ya  construido la base de la cafetera conectada mediante la creación de lo que era esencialmente una toma de corriente inteligente que podre controlar con un Netduino. Ademas después de montar el hardware, implantamos una  pequeña aplicación que controla el relé para activar la energía del hogar a la cafetera, efectivamente añadiendo un control muy simple.

Si bien esta aplicación es funcional , vamos a realizar un paso más y añadir una web API a la aplicación Netduino para que nosotros podemos controlar  la salida de forma remota.

Una vez tengamos la web API en su lugar, tenemos un punto final que puede ser aprovechado de una variedad de casos de uso. como por ejemplo  construyendo una aplicación móvil de Xamarin.Forms que use esa API para controlar la cafetera  conectado desde un dispositivo móvil

 

 

 

 

 

 

 

 

El código de ejemplo para el proyecto de la cafetera conectado todo se puede encontrar en el siguiente  repositorio de GitHubb:Netduino_Samples/Connected_CoffeeMaker  y el código que se ejecuta en el Netduino está en la carpeta de la aplicación de ApplianceHost  ( de hecho ese es el código que se va examinar aquí).

Introducción a Maple

Con el fin de exponer la web API para permitir el control remoto de nuestra cafetera, necesitamos un servidor web para acogerla,así que vamos a ver  un servidor web especialmente diseñado para Netduino, el  Servidor de maple.

Maple  es un servidor web en  código abierto, ultra ligero, habilitada  para JSON , soportando RESTful   construido específicamente para dispositivos Netduino  con capacidades de red. También se publica como un paquete nuget, por lo que es muy fácil de añadir  funcionalidades de red a sus proyectos. Este servidor esta diseñado específicamente para Netduino por lo que es increíblemente simple, rápido y super fácil de usar. Debe ejecutarse sin problemas en las placas  N3 Ethernet Wifi N3  y N2 +.

A continuación se muestran los comandos con las respectivas asignaciones en RequestHandler.cs:

  • GET http: // IPADDRESS / status – getStatus ()
  • POST http: // IPADDRESS / turnon – postTurnOn ()
  • POST http: // IPADDRESS / apagado – postTurnOff ()

 

¡Despliegue esto en su Netduino y acceda a estos puntos finales para verlo en acción!

 

Controladores de solicitudes

Criterios de valoración API web de Maple   se definen mediante la creación de clases personalizadas que heredan de la clase RequestHandlerBase.  Maple  utiliza la reflexión para crear direcciones URL basándose en los nombres de método en las clases personalizadas. Soporta tanto los metodos  get y post  asi como  los nombres de métodos que  deben tener el prefijo con cualquiera de esas cadenas para ser automáticamente en un extremo.

Por ejemplo, la siguiente clase expone tres URL endpoints   :/Status,  /TurnOn  y  TurnOff .

Como indican los nombres de los  métodos, las entradas el estado extremo acepta solicitudes get y los métodos de control de potencia (TurnOff y TurnOn) como se puede ver en el siguinte código: 

using System;
 using Microsoft.SPOT;
 using Maple;
 using System.Net;
 using System.Collections;
 
 namespace ApplianceHost
 {
     public class RequestHandler : RequestHandlerBase
     {
         private static bool _isPowerOn;
 
         public RequestHandler(HttpListenerContext context) : base(context)
         {
         }
 
         public void getStatus()
         {
             StatusResponse();
         }
 
         public void postTurnOn()
         {
             TogglePower(true);
             StatusResponse();
         }
 
         public void postTurnOff()
         {
             TogglePower(false);
             StatusResponse();
         }
 
         private void TogglePower(bool val)
         {
             _isPowerOn = val;
             Ports.ONBOARD_LED.Write(val);
             Ports.GPIO_PIN_D1.Write(val);
         }
 
         private void StatusResponse()
         {
             this.Context.Response.ContentType = "application/json";
             this.Context.Response.StatusCode = 200;
             Hashtable result = new Hashtable { 
                { "isPowerOn", _isPowerOn.ToString().ToLower() }
            };
             this.Send(result);
         }
     }
 }
 

Cuando se invoquen a esos extremos, se llama al método adecuado. En el caso de nuestro servidor de control; el método getStatus devuelve un mensaje con formato JSON que contiene el actual estado del relé de encendido/apagado, el método postTurnOnactiva el relé y el método postTurnOffdesactiva el relé. También mantiene el LED a bordo en sincronía con la energía al relé como indicador.

Ports se ha definido la clase ports.cs, que proporcionan accesos OutputPort directos a los objetos que representan el LED a bordo y el pin digital 1, que controla el relé:

using System;
 using Microsoft.SPOT;
 using Microsoft.SPOT.Hardware;
 using SecretLabs.NETMF.Hardware.Netduino;
 
 namespace ApplianceHost
 {
     static class Ports
     {
         static Ports()
         {
             ONBOARD_LED = new OutputPort(Pins.ONBOARD_LED, false);
             GPIO_PIN_D1 = new OutputPort(Pins.GPIO_PIN_D1, false);
         }
 
         public static OutputPort ONBOARD_LED;
         public static OutputPort GPIO_PIN_D1;
     }
 }

Uso de Maple, que es todo el código que se necesita para exponer una web moderna, RESTful API de un Netduino!

Inicialización de la red

A diferencia de aplicaciones tradicionales de escritorio o móvil en el que la interfaz de red durante mucho tiempo se ha inicializado cuando que se ejecuta una aplicación, usted debe inicializar la interfaz de red y espere a obtener su dirección IP, etc, antes de intentar hacer cualquier acceso a la red . Como tal, antes de iniciar el servidor de arce, estas tareas pero ser ejecutado y esperaron en.

La mayor parte del código en el principal program.cs hace justamente eso; Inicializa la red, espera a que una dirección IP y también hace una solicitud web para la validación. Mayoría del código está dedicado a la depuración y salida de información para ilustrar el proceso y proporcionar información para la instrucción y tiempo de desarrollo de exploración. Es bien documentado en la Guía Netduino Networking, y estamos trabajando en el envío de un paquete nuget que controlará todas esta cosas caja negra, en el futuro será aún más fácil de añadir a tus proyectos. Como tal, no voy a cubrir en detalle aquí, excepto to decir que si copia el código de inicialización de la red en su propia aplicación, debe llamar al método y comprobar que es el regreso (de éxito) antes de comenzar cualquier tratamiento que incluye acceso a la red :InitializeNetworktrue

if (InitializeNetwork())
 {
    // start the maple server
    // and start your application processing here 
}

Iniciar servidor de Maple

Una vez que la red se ha inicializado,   servidor Maple necesita ser instanciado y comenzar con método Start :

MapleServer server = new MapleServer();
 server.Start();

Para la mayoría de los casos, esto debe ir directamente después de la llamada de inicialización de red, sin embargo, dependiendo de sus necesidades de aplicación, puede iniciarlo cuando sea necesario.

Configuración de la red

El último paso necesario para configurar la muestra ApplicationHost es configurar la red. Algunas piezas de la red, tales como el nombre de red WiFi y la contraseña (si corresponde), necesita ser configurado en implementar tiempo. Si usted está desarrollando en una máquina Windows, puede utilizar MFDeploy, que se instala como parte del SDK .NET MicroFramework. Para desarrolladores de Mac, existe  MacDeploy, que proporciona la misma funcionalidad:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Si está usando el WiFi  con  Netduino 3, la autenticación y opciones de cifrado pueden ser un poco confusos, sin embargo, si se está conectando a una red WiFi moderna que requiere una contraseña, usted probablemente necesitará ajustar la autenticación para Compartido y la configuración de cifrado WPA. Además, el SSID se refiere al nombre de la red WiFi.

Probar el servidor de Control de aplicaciones API

Una vez que la red se configura y se implementa la aplicación, ya está listo para probar la funcionalidad  de Maple. Si todo va bien, la ventana de Salida de la aplicación en Visual Studio, debe tener algo similar a  lo siguiente:

Getting all the network interfaces.
Found 802.11 WiFi Interface
MAC Address: 60-D7-E3-A0-02-CB
DHCP enabled: True
Dynamic DNS enabled: False
IP Address: 0.0.0.0
Subnet Mask: 0.0.0.0
Gateway: 0.0.0.0
SSID:Cabin in the Woods
Found 802.11 WiFi Interface
No IP Address
DHCP is enabled, attempting to get an IP Address
Sleep while obtaining an IP
Sleep while obtaining an IP
Sleep while obtaining an IP
Got IP Address: 172.16.42.8

Necesitará la dirección IP para probar el punto final de la API. El extremo del estado es fácil de comprobar a través de un navegador; Asegúrese de que usted está en la misma red que el Netduino y abra una ventana del navegador y vaya a la  url. Debe mostrar una respuesta JSON. Sin embargo, recomiendo conseguir el   Postman para probar los extremos. Es gratuito y diseñado específicamente para probar interfaces RESTful. Le  permite publicar solicitudes además de obtener, así como una mirada de otras cosas útiles, incluyendo análisis automático de  respuestas JSON:http://%5BIP Address]/Status

 

 

 

Anuncios

Pushing usando Parse desde Netduino a Xamarin.Forms


Parse es un proveedor BaaS (Backend as a service) que, entre su conjunto de características, ofrece un servicio de notificaciones Push . Se usa  ese servicio para enviar las notificaciones push a nuestros  dispositivos. Es bastante sencillo comenzar, en primer lugar, crear una nueva aplicación, tomar las claves (para ambas REST API y .NET), escribir  un código y empezaré a enviar pushes.

Configurando el Netduino

Se puede utilizar  un simple interruptor de contacto magnético(es decir un rele reed)  para detectar cuándo la puerta se abrió o se cerró, en el código se verá algo así como var doorPort = new InputPort(... y un bucle infinito en el que reside la lógica “principal”). while el netduino lee el estado actual del sensor, lo compara con un estado previo y, si hay algún cambio, envía la notificación de inserción utilizando mi biblioteca parse-dotnetmf .

La biblioteca parse-dotnetmf

Para consumir las funciones REST Api de Parse de un Netduino 3, se puede í crear una biblioteca de clientes para facilitar las cosas , esta biblioteca actualmente solo admite el envío de notificaciones push o Parse, pero puede ampliarse fácilmente para admitir todas las demás funciones también , es fácil de usar simplemente cree un cliente var pc = new ParseClient("AppId", "Api Key"); y luego envíe una notificación push así: pc.SendPushToChannel("Hey!"); .

Esta biblioteca está muy inspirada en la biblioteca MicroTweet2 de Matt Isenhower. Utiliza la clase HttpWebRequest , no requiere dependencias adicionales y cabe fácilmente en un tablero de Wi-Fi Netduino 3.

Configuración de la aplicación Xamarin.Forms

Hay algunos pasos que debe seguir para implementar Parse Push en su aplicación Xamarin, le recomiendo que siga los tutoriales que ya existen en el sitio web de Parse. Voy a hacer un resumen rápido de lo que hice (además de tratar de crear mi propio complemento).

En primer lugar, para Windows Phone no hay pasos obligatorios que no sean seguir este tutorial , por otro lado, para Android tendrás que hacer dos cosas:
1. Marque este tutorial pero haga solo la parte de AndroidManifest.xml .
2. Compruebe la muestra en GitHub , en particular la implementación de la clase ParseApplication en el proyecto de Android.

El complemento CrossParse

Como sabemos, cuando queremos ofrecer experiencias específicas de la plataforma desde una aplicación Xamarin.Forms podemos usar o crear un complemento que nos permita resumir las funcionalidades de cada plataforma para interactuar con cada plataforma a través de una API común.

Tratar de hacer un complemento para manejar todas las interacciones con Parse push o resulta que no es tan fácil como se puede pensar al principio, pues  los Componentes Xamarin de Parse para cada plataforma ya son compatibles con las notificaciones push, pero no existe una capa de abstracción que pueda usarse con formularios, sin mencionar que hay algunos pasos especiales necesarios para cada plataforma que debe gestionar explícitamente en cada proyecto específico de plataforma como por ejemplo crear la clase ParseApplication extra en el proyecto de Android, por ejemplo).

Por lo tanto, este complemento no es tan útil o, pero aún ayuda proporcionando la capa de abstracción mencionada e instalando los nugets de Parse por ti. Con este complemento, puede suscribirse / darse de baja de los canales y gestionar las notificaciones mientras el usuario se encuentra en la aplicación. Realmente esperemos que Parse lance un complemento para formularios pronto, ya que es bastante fácil de hacer dado que ya tienen los componentes.

El autor ha realizado un video donde mostra cómo funciona el sistema:

Enlaces

No pretendemos desde este blog  crear una publicación llena de enlaces, así que aquí están los enlaces a los complementos GitHub repos (y su respectiva página NuGet):

Sistema de aviso de accesos y cortes de suministro eléctrico sin coste


En efecto hoy en día ya no es necesario abonarse a un costosísimo sistema de alarma ni tampoco adquirir un nuevo sistema de alarma  pues hoy en día si tiene  un viejo smartphone  que ya no use, gracias a la nueva aplicación Seguricasa free    disponible  gratuitamente para su descarga en Google Play , se  pueden enviar  notificaciones automáticamente por correo electrónico  ( o por SMS en la version premium  )   en el momento que se detecte la apertura o cierre de la puerta gracias al sensor de proximidad que incluye cualquier Smartphone.  Asimismo, también puede enviar notificaciones si se detecta corte de red ya que dejaría de estar alimentado externamente el Smartphone (por el cargador del terminal), circunstancia que puede ser monitorizada y procesada dentro de la aplicación y que fácilmente podemos entender como falta de red de corriente alterna.

Seguricasa es una solución ideal por tanto  para aquellos que no están dispuestos a pagar una cuota por un sistema de alarma, pero les gustaría saber lo que ocurre en sus propiedades.

La solución es única, pues no es necesario adquirir ningún hardware adicional, ya que se basa en un Smartphone con SO Android 4.1 (Yelly Bean) o superior, para gestionar tanto los accesos, como los cortes de red del suministro eléctrico de una vivienda o local.

Basta con insertar una SIM en su viejo Smartphone, instalar la aplicación Seguricasa y   mantener el Smartphone conectado al cargador, para que desde ese momento, en cuanto defina el número del teléfono y las cuentas de correo de origen y de destino, pueda recibir   a voluntad   notificaciones por SMS o por mail, de cualquier anomalía que suceda en el suministro de corriente alterna de su vivienda.

En el caso de que se desee también monitorizar los accesos, tampoco se necesita ningún hardware especial: simplemente tendrá que fijar su viejo Smartphone   cerca de la puerta de acceso mediante un velcro o similar , y colocar un soporte solidario a la puerta que pueda cubrir aproximadamente al menos 1cm la parte superior del Smartphone, para  que en cuanto  abramos la puerta  automáticamente oculte el sensor  y de esta forma ser envíen según se defina,   notificaciones por SMS o por mail de cualquier acceso  ( obviamente si ha definido  el número del teléfono  y las cuentas de correo de origen y de destino dentro de la propia aplicación).

Montaje

Pare este montaje vamos a necesitar  instalar la aplicación “Seguricasa ” en un Smartphone con SO Android 4.1 (Yelly Bean) o superior. También es importante destacar que   si se desea almacenar las notificaciones de SMS o e-mail, el terminal debería contar al menos con 128MB de espacio en la SD externa para almacenamiento de logs.

 

El montaje es muy sencillo, pues solo habrá que descargar versión gratuita de la aplicación  Seguricasa  desde Google Play  aqui  (o bien  la versión premium   que por poco mas de  1€ permite enviar SMS’s en las condiciones que deseemos)

.

seguricasa.png

 

El terminal Android debe tener SO Android 4.1 (Yelly Bean) o superior y no  es fundamental  que tenga  la pantalla  perfecta ( o la batería)  ya que la interacción con el terminal solo sera necesaria para configurar cuales van a ser las notificaciones  y los destinatarios de estas ( es decir este terminal puede ser perfectamente reciclado  o incluso en mal estado ) .

El siguiente paso si vamos a enviar SMS ( versión premium)  o  si vamos a usar la conexión GPRS en caso de corte de la wifi por falta de suministro eléctrico ,  es insertar la SIM  en el terminal si es que vamos  a enviar SMS o emails estando sin suministro eléctrico  , ya que normalmente cuando no haya red eléctrica tampoco solo tenemos tener wifi. Dependiendo de lo que deseemos (sms o emails ) necesitaremos  un plan mas o menos ajustado ,pero ene general con una tarjeta prepago debería ser suficiente .

Ahora  lo siguiente debería ser fijar el terminal  a un extremo de la puerta si es que vamos a usarlo  también para notificar los accesos a la vivienda o local. Un buen sistema por ejemplo puede ser un belcro auto-adhesivo pegado en la parte de atrás del terminal  , aunque en el mercado  obviamente también existen soportes  para  fijar el terminal de forma vertical de una manera muy simple.

IMG_20170316_191402.jpg

Fijado el terminal   ya solo nos quedaría  si lo que deseamos es  controlar el acceso  fijando un cartón   al extremo de la puerta  con cinta  adhesiva de modo que  al abrir la puerta este  tape el sensor de proximidad del terminal tal y como se ve en la fotografía siguiente

Una vez fijados el terminal  y el cartón es hora de conectar  la alimentación  por medio del cargador original  o en su defecto cualquier cargador con salida micro-usb .En este sentido tenga en cuenta que el cargador debe permanecer siempre enchufado de modo que pueda ser motorizado  el estado de la red eléctrica por lo que este  debería ser preferentemente el original  o por lo menos de buena calidad.

Ya tenemos todo preparado , así que arrancaremos  la aplicación   y  podemos  configurar  todos los  parámetros como vamos a ver  a continuación.

Manejo de la aplicación

Para iniciar la aplicación basta con pulsar sobre el icono “Seguricasa”.

Inmediatamente al iniciar la aplicación, aparecerá la pantalla principal de la aplicación donde se muestra la información básica del estado de los sensores, la cual incluso cerrándola queda en segundo plano con objeto de seguir monitorizando la vivienda o inmueble.

v4new.png

La información mostrada por la aplicación en la pantalla principal es la siguiente:

  • Nivel de carga de la batería expresada en tanto por ciento.
  • Temperatura del terminal en grados centígrados.
  • Estado de suministro eléctrico expresado en voltios.
  • Estado del sensor de proximidad.

Bajo el icono del botoncito de la esquina superior derecha se muestra el nivel de batería expresado en tanto por uno

Asimismo, la aplicación cuenta con  tres botones gráficos:

  • Ayuda( ?): pulsando aquí se accede  al menú básico de ayuda en línea
  • Histórico(brujula): se accede al log de envíos de correos o SMS ’s enviados desde la propia aplicación.
  • configuración( caja de herramientas): se accede al menú de configuración de la aplicación

AYUDA EN PANTALLA

Desde la pantalla principal pulsando el menú ayuda, se accede a una pantalla auxiliar donde se explica sucintamente el sentido de esta aplicación.

Para volver a la pantalla principal,   pulsar el botón volver del terminal, o simplemente se puede pulsar el botón cerrar de esta pantalla.

LOG DE EVENTOS

Desde la pantalla principal, pulsando el menú histórico se pueden acceder al log de envíos de correos o SMS ’s enviados desde la propia aplicación.

Siempre que se haya definido un nombre valido de fichero en la pantalla de configuración,   y el terminal cuente con al menos con 128MB de espacio en la SD externa para almacenamiento de logs, se mostrara en cada línea del log la fecha y hora junto el tipo de notificación (SMS o e-mail) y los motivos (corte o vuelta de red y puerta abierta o cerrada).

Para volver a la pantalla principal   pulse el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

Es interesante destacar que, en esta pantalla que , en cuanto se supera el tamaño visualizable en la pantalla del terminal, sobre esta se podrá hacer scroll vertical para poder acceder al resto de información.

En caso de no que no interese mantener este fichero de log, el usuario siempre puede acceder al administrador de ficheros y acceder a la raíz de la SD para proceder a mover o eliminar dicho fichero de log.

Obviamente si desea personalizar el nombre del fichero de log, simplemente deberá cambiar el nombre del fichero personalizado de fichero de log en la opción Fichero de Log→Carpeta

También si desea no registrar los eventos, simplemente deberá borrar el nombre del fichero personalizado de fichero de log en la opción Fichero de Log→Carpeta

CONFIGURACÓN DE LA APLICACIÓN

Hay una opción muy importante referida a la configuración de la aplicación, la cual se accede pulsando el botón contextual del terminal   de Android o directamente sobre el botón de la caja de herramientas.

Una vez ahí, pulsando sobre el ítem, se mostrara el submenú de configuración de la aplicación:

La pantalla está divida por seis secciones claramente identificadas:

  • Avisos por SMS.
  • Avisos por email.
  • Números de teléfono para SMS.
  • Correo electrónico destino.
  • Usuario Gmail para envíos.
  • Fichero de log.

Avisos por SMS.

Esta opción esta reservada  para la version premium  disponible en Google Play ( coste aprox 1€).

La conectividad a internet de los terminales de última generación junto con el crecimiento exponencial tanto de las redes sociales como los de servicios de mensajería no han frenado la expansión de los mensajes SMS a nivel comercial.

Está claro que  los nuevos métodos de comunicación han tomado la delantera en lo que se refiere a las comunicaciones personales y grupales  ,pero a cambio han dejado a los mensajes SMS cómo líderes absolutos  de las comunicaciones de empresas como bancos,  empresas de transporte público, empresas de telecomunicaciones , compañías de seguros, hospitales ,otras instituciones públicas y un largo etcétera las cuales han adoptado los mensajes SMS como método para enviar notificaciones, confirmar transacciones, recordar citas, etc.

Precisamente pensando en la gran seguridad, accesibilidad y confianza que ofrecen los SMS’s frente a otros servicios de mensajería, en esta aplicación se ha optado por permitir él envió de mensajes de forma selectiva según las necesidades de los usuarios.

Clicando en cualquiera de las tres opciones de este submenú automáticamente se enviaran   un SMS al número que se defina ante las siguientes circunstancias:

  • Corte de suministro de corriente alterna mediante la el suministro de tensión externa al terminal ( opción “Cortes de electricidad”)
  • Aperturas o  cierres de la puerta   ocultando el sensor de presencia(opción “Aperturas puerta”)
  • Al iniciar por primera vez la aplicación Seguricasa (opción “Al iniciar esta app”).

Avisos por e-mail.

Estar dado de alta en una cuenta de correo electrónico, hoy en día es una realidad pues todos los usuarios de la red disponen de una dirección de correo electrónico y lo utilizan diariamente.

En la actualidad, el uso del correo electrónico, se puede dividir en diferentes ámbitos como académico, laboral y personal, por lo que es muy interesante  también poder avisar  por e-mail ante cualquier evento de acceso  o anomalía en el suministro de corriente alterna desde el Core de esta aplicación.

Los avisos por e-mail en esta aplicación son personalizables mediante esta sección:

Clicando en cualquiera de las tres opciones del submenú de avisos por  e-mail, automáticamente se enviaran   un email a la cuenta de correo electrónico que se defina ante las siguientes circunstancias:

  • Corte de suministro de corriente alterna mediante la el suministro de tensión externa al terminal (opción “Cortes de electricidad”).
  • Aperturas o cierres de la puerta ocultando el sensor de presencia (opción “Aperturas puerta”).
  • Al iniciar por primera vez la aplicación Seguricasa (opción “Al iniciar esta app”).

 

Número de teléfono para envíos SMS

Complementando el submenú de avisos por SMS ’s disponible en la version Premium  se incluye esta sección, donde   se definirá el número de teléfono al que se deseen dirigir los mensajes de texto.

Tenemos que definir sobre todo el número del Teléfono hacia el que quieren dirigirán los SMS ‘s ante los eventos que se deseen auditar chequeados en   el submenú de avisos por sms’s.Opcionalmente,   también se puede asignar una cadena de texto en la opción Usuario que nos permita por ejemplo identificar el número de teléfono que hayamos asignado.

Es interesante destacar que si no informamos del número de teléfono destinatario de los SMS ‘s y clicamos alguna opción de SMS, nos saltara un error de número no definido.Si introducimos el numero o el nombre de usuario en esta sección, para volver a la pantalla principal, pulsar el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

Correo electrónico destino

Complementando el submenú de avisos por mail, se incluye esta sección donde   se definirá la cuenta de correo electrónico al que se deseen dirigir los mails.

Tenemos que definir el correo electrónico destino hacia el que quieren dirigirán las e-mail ante los eventos que se deseen auditar chequeados en   el submenú de avisos por e-mail

Clicaremos en la copión E-mail y sobre la caja de texto cumplimentaremos el destinatario donde se dirigirán el e-mail ante los eventos que se deseen auditar chequeados en   el submenú de avisos por e-mail.

Es interesante destacar que si no informamos de la cuenta de correo y clicamos alguna opción de envíos de correos, nos saltara un error de mail no definido.

Para volver a la pantalla, el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

Usuario Gmail para envíos

Complementando el submenú de avisos por mail, en esta sección   se definirá la cuenta de correo electrónico de Gmail desde donde se enviaran los mails.

Obviamente se podría haber definido otro tipo de servidor  de correo saliente, pero  por simplicidad dado que los usuarios de Android están obligados a tener una cuenta vinculada a una dirección de correo de Gmail para instalar nuevas aplicaciones en su terminal , este es el  candidato ideal como  servicio de envió de e-mails.

Dada la facilidad de envíos de correos electrónicos ante las circunstancias definidas, tenemos que definir el correo electrónico origen desde donde se dirigirán las e-mail ante los eventos que se deseen auditar chequeados en   el submenú de avisos por e-mail

La cuenta de Gmail pues se cumplimentara en la opción “cuenta” mediante el formato establecido completo (es decir con el formato [email protected]).

Para volver a la pantalla principal, basta pulsar el botón volver del terminal, o simplemente pulsar el botón cerrar de esta pantalla.

Dado que usaremos la cuenta de Gmail, para poder enviar correos desde esta cuenta, necesitamos cumplimentar en el apartado “Clave” la password de la cuenta de Gmail.

Como vemps en la pantalla anterior al cumplimentar la password de la cuenta de Gmail se ocultara su contenido tanto cuando estamos cumplimentándolo como cuando los revisamos pudiéndolo actualizar o eliminar en cualquier momento desde esta opción.

Es interesante destacar que si no informamos de la cuenta de correo y clicamos alguna opción de envíos de correos, nos saltara un error de mail no definido.

Para volver a la pantalla principal   pulsar el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

Fichero de log

Es importante destacar que   si se desea almacenar las notificaciones de SMS o e-mail, el terminal debería contar al menos con 128MB de espacio en la SD externa para almacenamiento de logs.

Si deseamos registrar los logs de aviso por email o por SMS, simplemente necesitamos apuntar en el apartado “Carpeta” el nombre del fichero que deseamos usar para registrar todos estos eventos en el root de la microsd.

Para volver a la pantalla principal   pulsar el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

En el siguiente vídeo  podemos ver  mas claramente el funcionamiento de todas estas opciones comentadas;

Requisitos

  • Smartphone Android con SO Android 4.1 (Yelly Bean) o superior.
  • Tarjeta SIM (puede ser de Prepago).
  • Cargador original.
  • Es importante destacar que si se desea almacenar las notificaciones de SMS o e-mail, el terminal debería contar al menos con 128MB de espacio en la SD externa para almacenamiento de logs.
  • Opcional: sistema para fijar el smartphone a la pared y soporte solidario a la puerta de acceso que tape parcialmente el sensor de presencia del Smartphone al abrirse.
  • Alguna  de estas aplicaciones : Seguricasa Free  Seguricasa Free  ( envio de emails) o  Seguricasa V4 Seguricasa V4(envio de emails o SMS’S)

IoT con LattePanda


Muy resumidamente LattePanda es un un mini ordenador completo con Arduino integrado   que ejecuta la versión completa de Windows 10. Incluye todo lo que un PC normal tiene  pudiendo hacer cualquier cosa que hace un PC normal. Es ademas compatible con casi todos los aparatos que conoce como  impresoras, joysticks, cámaras y más. Todos los periféricos que funcionan en su PC funcionaran en LattePanda.

Ademas LattePanda viene pre-instalado con una edición completa  pre-activada de Windows 10.


Utilizando las API existentes, puede desarrollar sus propios proyectos de software y hardware en LattePanda como lo haría en un PC normal usando  C #, JavaScript, Ruby y así sucesivamente de modo que no necesita su ordenador portátil  para construir una aplicación con el

Pero no sólo puede ser utilizado como un ordenador normal de bajo costo con  Windows pues LattePanda también está diseñado con un compatible co-procesador Arduino, lo que significa que se puede utilizar para controlar y detectar el mundo físico, al igual que una placa Arduino!

Si usted es un desarrollador de Windows, un desarrollador de la IO, un fanático de hardware de bricolaje, diseñador interactivo, robótica genio o un fabricante, LattePanda puede ayudar a su proceso creativo con los proyectos informáticos físicos!

LattePanda puede ejecutar la versión completa de Windows 10 y Ubuntu.

ESPECIFICACIÓNES

  • Procesador: 1,8 GHz Intel Cherry Trail Z8300 Quad Core
  • Funcionamiento del sistema: Pre-instalado preactivado completa edición de Windows 10 (versión Inicio)
  • Ram: 2 / 4GB DDR3L
  • Capacidad de almacenamiento: 32 / 64GB
  • USB: 1 x USB 3.0, USB 2.0 x 2
  • HDMI de salida de vídeo y el puerto Ethernet
  • 3,5 mm de salida de audio jack
  • Ranura para tarjeta Micro SD
  • Toque y Conector de pantalla
  • Plug and Play Conectores de sensor
  • WiFi y Bluetooth 4.0
  • Coprocesador: ATmega32u4
  • GPIO: 2 GPIO de chips Intel, 20 GPIO para Arduino
  • Potencia: 5v / 2A
  • Dimensiones: 3.46 “x2.76”
  • Peso: 100 g

 Pines

Debajo de cuadros es un diagrama básico que muestra todos los pines del bus de expansión:

LattePanda pines

 

Distribución de los pines en el área U1 se asignan a la base de X-Z8300. Por el momento, no hay información disponible.

Distribución de los pines en el área de U2 se asignan al núcleo ATmega32u4.Cada uno de los 20 pines digitales (A0 – A5, D0 – D13) en la zona de U2 se puede utilizar como una entrada o salida, cada uno operando a 5 voltios. Cada salida puede fijar o recibir 40 mA y cada uno tiene una resistencia de pull-up (desconectada por defecto) de 20-50k ohmios.

Precaución: Superior a 40 mA en cualquier pin de E / S puede causar daños permanentes en el ATmega32u4.

Algunos pines tienen funciones especializadas:

Entradas analógicas: A0 – A5, A6 – A11 (en D4, D6, D8, D9, D10, D12 y). El LattePanda tiene 12 entradas analógicas, etiquetados A0 a A11, todos los cuales también pueden ser utilizados como I / O digital. Cada pin tiene una resolución de 10 bits (es decir, 1024 valores diferentes). Por defecto se miden desde el suelo a 5 voltios.

De serie: D0 (RX) y D1 (TX). Se utiliza para recibir (RX) y transmitir datos en serie (TX) TTL.

Las interrupciones externas: D3 (interrumpir 0), D2 (interrumpir 1), D0 (interrumpir 2), D1 (interrumpir 3) y D7 (interrumpir 4). Estos pines pueden ser configurados para desencadenar una interrupción en un valor bajo, un flanco ascendente o descendente, o un cambio en el valor.

PWM: D3, D5, D6, D9, D10, y D13 proporcionan salida PWM de 8 bits.

SPI: D16 (MOSI), D14 (MISO), D15 (SCK).

LED: D13 Hay un LED integrado impulsado por pin digital 13. Cuando el valor del pin es alto o bajo

TWI: D2 (SDA), D3 (SCL).

Otros pines de la placa:

Reset: Lleva a este BAJA línea para reiniciar el microcontrolador. Normalmente se utiliza para añadir un botón de reinicio para escudos que bloquean la una en la mesa.

¿Cuál es el propósito de este proyecto?

En este ejemplo  vamos a aprender, cómo nos comunicamos entre Arduino (chip de Arduino interna en LattePanda) y Microsoft Visual Studio y envían los datos desde el Arduino para utilizar una aplicación de Windows. Aquí vamos a medir la temperatura y humedad ambiental y enviar los datos del sensor de DHT Thingspeak.

Cómo acceder a la disposición de patillas de Visual Studio

LattePanda.Firmata es una biblioteca de código abierto Firmata proporcionada por LattePanda, que es adecuado para aplicaciones de Windows desarrollado en Visual Studio. Esta clase le permite controlar Arduino GPIO desde aplicaciones de Windows, con funciones que incluyen:

  • La lectura y escritura a los pines digitales
  • La lectura de las entradas analógicas
  • El control de servomotores
  • El envío de datos a los dispositivos y los dispositivos de recepción de formularios de datos a través del bus I2C

Para este proyecto, he hecho algunos cambios en la biblioteca Firmata de datos del sensor DHT leer o cualquier otro sensor.

3 pasos para su proyecto Arduino remoto

  • Descarga e instalación de Visual Studio 2015
  • Configurar el Arduino (Es pre-instalado, a menos que cambiara el programa de Arduino)
  • Crear un proyecto o utilizar el proyecto de ejemplo

Descarga e instalación de Visual Studio 2015

En el primer paso, es necesario instalar Visual Studio en LattePanda. No se instala por defecto.

  • Activar el modo de programador en su sistema operativo, para este fin, vaya a Configuración> Actualización y seguridad> en la sección para desarrolladores> Selección de Modo desarrollador

Estableció el Arduino

  • Descargar este archivo y abra el archivo en Arduino. (Este archivo reemplaza con StandardFirmata . Algunos cambios se han hecho en este archivo)
  • Seleccione Arduino Leonardo del Board sección. A continuación, seleccione el puerto COM correcto, cargar el último boceto.

Cableado

El objetivo de este proyecto es leer los datos de temperatura y humedad por el sensor DHT11 conectado a LattePanda(se puede utilizar en lugar de DHT21 o DHT22).

El sensor  se  debe conectar como en la imagen  siguiente ,es decir el pin de la izquierda (Data) al terminal D7 de LattePanda, el terminal central del sensor al pin +5V de LattePanda  y por ultimo el terminal de la derecha al ping de GND de LattePanda.

 

 

Leer Temperatura y Humedad

Descargar este archivo y abra el archivo con Microsoft Visual Studio.Registrarse en Thingspeak y crear un nuevo canal con dos campos. ( Field 1de la temperatura y Field 2 de la humedad). Después Save Channel , en la API Keys pestaña, copia Key valor y pegar en Program.cs archivo en lugar deTHINGSPEAK_KEY_HERE .

Guardar el archivo y haga clic Start botón. La salida será como se muestra a continuación:

Al final, los datos se pueden ver en el  servidor deThingspeak  apareceran  como se muestra a continuación:

Recursos

Fuente   aqui

Simple modificación de un mando dual para automatización del hogar


En el post de hoy vamos a ver como con una  simple  modificación del circuito comercial (concrétamente el kit jm80) de un receptor de un mando dual podemos convertir el circuito de radio control de un sistema eléctrico del hogar ( persiana eléctrica,puerta eléctrica, etc)  en un elemento  que nos abra la puerta a la automatización del hogar gracias  a que nos va a ser posible el control por tres vías posibles:

  • A distancia por el mando
  • Por control manual   por si perdemos el  mando o deseamos inhibir este
  • Por control mediante  un circuito auxiliar (Arduino).

 

conjunto.PNG

El circuito que vamos a usar es un económico kit  de 12€ que se puede comprar en Amazon aqui  .Sus características mas importantes son las siguientes:

  • 433 MHz, 2 Relay, alrededor de 150 metros
  • Incluye palanca/momentáneo/Latching chip
  • Min Voltaje/Corriente de conmutación: 5VDC 100 mA.
  • Max conmutación Voltaje: 110 VDC 240 VAC. Max Corriente de conmutación: 15 A.
  • Potencia de conmutación nominal: 1,875 va 360 W para cada relé
  • Canal: 2 canales
  • Voltaje de funcionamiento: DC 12 V
  • Corriente estática: < = 7ma electrónico contacto
  • Capacidad: 7 A 240 V AC, 10 A 24 V DC
  • distancia de transmisión: 150 – 200 metros (sin obstáculos)
  • codificación tipo: soldado modificar DIP chip de cambio de modo de control
  • Frecuencia de operación: 433 MHz
  • Modos de control: Elija con cierre o non-latching por el cambio un chip DIP carga nominal: 2000 W
  • Dimensión (LWH) (mm): 55 x 40 mm

 

Un  característica interesante para el caso de que montemos varias unidades es que es posible configurar receptor  y transmisores para otras combinaciones modificando los puentes de la combinación de acceso (por fiabilidad han sustituido el conmutador por puentes)

 

placas.PNG

Este kit incluye ingeniosamente tres chips que insertando alguno de estos  en el zócalo DIL del CI  del receptor permiten operar el receptor en tres  modos muy diferentes:

  • Tipo  Latch : al pulsar un botón,el relé interesado se conecta  hasta que pulse el otro. Muy parecido a los botones de velocidad de los ventiladores  que conectan otro bobinado ( y desconectan el anterior ) al activarlo
  • Tipo de non-latch (momentáneo): al pulsar un botón el relé interesado se conecta hasta que  usted lo libera. Al igual que el botón de claxon, si usted pulsa el claxon suena hasta que lo libera ;
  • Tipo de auto-latch (botón): al pulsar un botón el relé interesado se conecta  hasta que usted pulsar una vez más para desconectarlo.Este modo esta claramente ideado por ejemplo para abrir o cerrar la persiana eléctrica completamente sin necesidad de tener que estar pulsando el botón .También es útil para activar  o desactivar a distancia cualquier dispositivo como por ejemplo una TV, un equipo hifi,etc   funcionando en resumen como  la clave de potencia de mando a distancia de TV: al pulsar  TV, se enciende pero si se pulsa  de nuevo, TV se  apaga. Es esta configuración la que viene predefinida en el kit ,por lo que si necesita modificar el tipo de operación en non-latch o latch tendrá que cambiar el chip  que acompaña el kit

placareles1.png

Centrándonos en el receptor que  como vemos opera a 12 V DC, este cuenta con dos reles de  7A (220V).Cada relé cuenta con  un contacto común  y dos contactos móviles : uno abierto (correspondiente a la operación ) y  otro  cerrado (correspondiente al reposo).

En el siguiente esquema podemos ver claramente su significado:

esquema reles.PNG

Aunque el contacto en reposo(CB)   puede servir para muchas aplicaciones, para el  uso “normal ” se  utilizaran los contactos de trabajo( AB) para activar o desactivar las cargas a las que los conectemos estos , como por ejemplo el motor de una persiana eléctrica que tiene dos bobinados ( uno para subida y otro para bajada)

Este equipo , aun como vemos es muy versátil ,sin embargo  no incluye operación manual en el propio receptor ,ni tampoco  ningún tipo de tele-operación para poder activar los reles por medio  de algún automatismo  (Arduino ;Netduino ,Raspberry Pi,etc),lo cual puede ser un inconveniente  con vistas a automatizar nuestro hogar

La  modificación que se propone a este estupendo Kit es la posibilidad de operarlo via diferente a la de radio ,pero al no tener terminales específicos con objeto de no dañar la electrónica de RF ,el latch o los transistores de salida, lo  mejor es operar directamente  con los bobinados de los reles.

La modificación probada para este kit , no puede ser mas sencilla pues simplemente consiste en localizar los bobinados de los reles (diferentes del positivo)   y  soldar  a estos  sendos cablecillos  permitiéndonos  usarlos si lo conectamos a la masa general  tanto para operar manualmente los reles como para tele-operacion por otro circuito

En la siguiente imagen podemos ver dos cablecillos grises soldados a la placa para el control manual de los reles:

 

IMG_20160904_185521[1].jpg

 

En cuanto a las conexiones de los hilos de control  obtenidos, el conexionado no puede ser mas sencillo ,pues  sólo conectaremos los hilos a dos pulsadores (normalmente abiertos)  y después uno  común  que ira a ambos pulsadores  y a la masa común de la alimentación(ov)

 

IMG_20160904_185441[1].jpg

Obviamente los hilos obtenidos  de la conexión de los bobinados de los relés no solo sirven para la operación por pulsadores , también puedes ser utilizados para la tele-operación del circuito vía un circuito auxiliar( por ejemplo constituido un Arduino con un  transistor de pequeña potencia )

Finalmente  para terminar el montaje se recomienda usar dos regletas de terminales  diferenciadas:

  • Una de muy baja tensión para los tres terminales ( los dos relés y la masa) para el tele-control   o para  el accionamiento manual de los pulsadores
  • Una de Baja Tensión  de  al menos 5 terminales para la alimentación del montaje y para apoyar las conexiones de  utilización del receptor ( en la imagen se ve como se alimenta desde ahí a  la fuente del receptor)

 

IMG_20160904_191156[1].jpg

 

Si le interesa hace esta mejora  , el kit que hemos usado en este post lo puede conseguir en Amazon por menos de 12€  , aunque como se ha comentado tendrá que soldar dos cablecillos a la placa ( puede perder la garantía del producto así que se recomienda probarlo antes de emprender esta sencilla modificación) ,pero la mejora sera bastante ostensible pues abre un abanico inmenso de posibilidades

 

 

Proyecto en c# para Raspberry pi


 

En efecto , aunque hemos hablado en muchísimas ocasiones de múltiples ejemplos en c# usando la plataforma Netduino  es poco frecuente ver aun ejemplos que usen la plataforma de desatollo de Microsoft de IoT  en otros entornos.

Precisamente  en el siguinte  ejemplo  de como implementar  una estación  meteorológica  en una Raspberry Pi , se demuestra cómo aprovechar la potencia de Windows 10 IO Core, y crear una estación meteorológica con  un escudo de Sparkfun(Sparkfun DEV-12081)  en una Raspberry pi que corre Windows 10 (puede ser la versión  2 o también la  3).

Este proyecto forma parte de la iniciativa de Microsoft llamada  Hack the Home , que proporciona componentes de código abierto para minimizar  el esfuerzo en la creación de  interfazes con los dispositivos y servicios a  usar para enfrentarse a sus hogares.

Antes de describir   como lo han hecho en el vídeo podemos ver  una introducción a la plataforma de windows IoT;

 

El nuevo espacio de nombres Windows.Devices de las API de Windows Plataforma universal (UWP) en Windows 10, permite a los desarrolladores aprovechar la potencia de Windows  en la interacción con el mundo real a través de sensores y actuadores utilizando el bus I2C y los puertos de uso general de entrada / salida (GPIO) disponibles en el Raspberry Pi 2, para crear una estación meteorológica conectada a Internet utilizando la protección contra la intemperie Sparkfun.

Las instrucciones proporcionadas darán un desarrollador de primera mano la configuración del hardware requerida junto con la escritura y depuración de Windows recientemente disponible en  windows 10 llamada UWP Windows.Devices API’s.

En este ejemplo,  también se demostrará cómo agregar sus datos en la nube utilizando el Azure Event Hub y  ConnectTheDots API.

Para  empezar , lo primero es conexionar   los  pines desde la Raspberry Pi 2 a la placa Sparkfun(Sparkfun DEV-12081)

Este es el conector de la Raspberry Pi 2:

GPIO esquemática (pata 1 está marcada con una almohadilla de soldadura cuadrada)

El diagrama de conexiones de  la Raspberry Pi  hacia la placa de Sparkfun   es el siguiente:

  •  GND (negro) —— GND
  • 5V (rojo) ——— VIN
  • 3V3 ——- (marrón) —— 5V (escudo truco; no es un error)
  • GPIO2 —– (amarillo) —- SDA
  • GPIO3 —- (naranja) —- SCL
  • GPIO5 —– (verde) —– D8
  • GPIO6 —– (azul) ——- D7

Cableado de cerca del carril exterior (negro, rojo)

 

Con la placa Weather Shield es muy fácil de hacer funcionar con Arduino  ofreciendo  de por sí la presión barométrica, humedad relativa, luminosidad y temperatura. También hay conexiones para sensores opcionales tales como la velocidad del viento, dirección, pluviómetro y GPS para la ubicación.

Utiliza el sensor de humedad HTU21D, de presión barométrica MPL3115A2, un sensor de luz ALS-PT19 y se basa en la librería HTU21D y MPL3115A2 para Arduino. Dispone de dos posiciones para soldar conectores RJ11 (para sensores opcionales de lluvia y viento) y un conector GPS de 6 pines (para conectar un GPS opcional). Puede funcionar desde 3.3V hasta 16V y tiene un regulador de voltaje integrado.

 

En cuanto al sw de  la estación meteorológica  en realidad se compone de  dos aplicaciones:

  • La primera es una bucle largo por tiempo indefinido, que trabaja  de fondo leyendo el estado de los sensores y actúando como un servidor de estación meteorológica.
  • La segunda, una interfaz de usuario que realiza una solicitud al puerto 50001 del servidor mostrando los datos. La aplicación de interfaz de usuario es universal y se puede implementar en cualquier dispositivo Windows desde el Raspberry Pi 2 hasta el final a un PC de escritorio – y en cualquier lugar en el medio!

Es necesario encontrar la siguiente línea en el archivo `Mainpage.xaml.cs` del proyecto` build2015-tiempo-station`, y vuelva a colocar el nombre del equipo, “MINWINPC”, en la dirección URL con el nombre de su dispositivo IO.

//TODO: On the following line, replace "minwinpc" with the computer name of your IoT device (ie "http:// :50001").

private Uri weatherUri = new Uri("http://minwinpc:50001");

 

1-Seleccione la rama “lab_ConnectTheDots”, si desea aprender a utilizar connectthedots y completar el código manualmente

2-Abrir “WeatherStation \ WeatherStation.sln” en Visual Studio 2015

3-Vaya a “WeatherStationTask.cs” en el panel “Explorador de soluciones”

4-Utilice la “Lista de tareas” para saltar a cada “TODO //:” y escribir el código necesario

Los archivos AppSettings, ConnectTheDotsSensor, y ConnectTheDotsHelper son parte del código creado para ayudarle a utilizar la interfaz connectthedots al Hub Evento Azure.

AppSettings: Guarda los ajustes para la conexión al hub de eventos

Esta información se puede encontrar bajo su ServiceBus en Azure.

5-Vaya a su “* ns” instancia ServiceBus -> Evento Ejes -> ehdevices -> Información de conexión -> Busca el SAS “D1”

6-Copiar la cadena de conexión que debe tener este aspecto (Contiene información para sus AppSettings)

"Endpoint=sb://iotbuildlab-ns.servicebus.windows.net/;SharedAccessKeyName=D1;SharedAccessKey=iQFNbyWTYRBwypMtPmpfJVz+NBgR32YHrQC0ZSvId20="

  • servicio de espacio de nombres de autobús (Ej: “iotbuildlab-ns”)
  • nombre del evento cubo (Ej: “ehdevices” – siempre usar esto)
  • nombre de la clave (Ej: “D1”)
  • clave (Ej: “iQFNbyWTYRBwypMtPmpfJVz + NBgR32YHrQC0ZSvId20 =”)
  • nombre de visualización (Ej: “WeatherStation1” – Esto le da un nombre a los datos del dispositivo)
  • organización (Ej: “Construir la IO Lab” – Cambio de personalizar)
  • ubicación (Ej: “EE.UU.” – Cambio de personalizar)

ConnectTheDotsSensor: Contiene la información de un sensor

  • GUID
  • mostrar nombre
  • organización
  • ubicación
  • nombre de la medida
  • unidad de medida
  • hora de creación
  • valor

ConnectTheDotsHelper: Las funciones auxiliares para inicializar el Hub de eventos

  • establece la conexión
  • crea los tokens de autenticación

Si desea iniciar su propio concentrador de sucesos de servicios de fondo, siga las instrucciones del connectthedots GitHub repositorio:https://github.com/msopentech/connectthedots/blob/master/Azure/AzurePrep/AzurePrep.md

.

7-Una vez que haya que desplegado, debe iniciar el envío de datos al cubo evento y los datos debe ser visible en http://iotbuildlab.azurewebsites.net/ o en su propio sitio web.

 

Fuente  aqui

Creación de una app movil para interactuar con Raspberry Pi


¿Piensa que  se necesita mucho tiempo para crear una app  movil para la Raspberry Pi que involucre un proyecto de  IO para conectar sensores de movimiento,  luces , relés  ,etc y se pueda completar en breve ?

La verdad es que  escribir una aplicación, implica leer toneladas de documentación, tomar mucho  tiempo para aprender  lenguajes de programación, código,y mucho tiempo de  trabajo…Pero ¿por qué invertir tanto tiempo en preparar su proyecto, cuando se puede estar en funcionamiento en una fracción de tiempo permitiendo  la construcción de sus proyectos de automatización en cuestión de minutos.?

Entonces, ¿cómo es posible todo esto? Pues gracias  a un  framework  gnerico desarrollado por  myDevices IO Project Builder llamado Cayenne .Cayennese ha creado para los desarrolladores y fabricantes deseosos de construir rápidamente prototipos y proyectos increíbles con  Raspberry Pi  permitiendo con una cuenta gratuita de Cayena, crear un número ilimitado de proyectos.

También tiene capacidades de pleno derecho de la IO  para que pueda controlar de forma remota sensores, motores, actuadores, incluidas los puertos  de GPIO con  almacenamiento ilimitado de datos recogidos por los componentes de hardware,   triggers y alertas,  que proporcionan las herramientas necesarias para la automatización y la capacidad de configurar alertas. Ademas también puede crear cuadros de mando personalizados para mostrar su proyecto con arrastrar y soltar widgets que también son totalmente personalizables.

 

 

 

Ejemplo paso a paso 

Como se puede ver en el video , Cayyene app es una innovadora solución genérica que nos puede ahorrar mucho trabajo a la hora de  crear un proyecto con la Raspberry Pi

En resumen ,algunos de los rasgos que más destacan de la solución de Cayyene es :

  • Tablero de instrumentos flexibles :Personalizar el teléfono o en el salpicadero en línea con arrastrar y soltar widgets.
  • Acciones de activación :Crear disparadores y alertas para dispositivos, eventos, acciones y más.
  • Control de GPIO :configurar a distancia GPIO desde una aplicación móvil o en el salpicadero.
  • El acceso remoto instantáneo :Automáticamente el control remoto y accede a tu Pi desde su teléfono o computadora.
  • Configuración fácil:conectar rápidamente su Pi a Internet y conectar sensores, actuadores y extensiones en cuestión de minutos

Par mostrar lo sencillo que puede ser crear un proyecto con Cayyene, vamos a ver un ejemplo

Todo el equipo que se necesita para la creación de myDevices Cayenne para la Raspbery Pi es muy sencillo (es posible que necesite piezas adicionales si usted está mirando para agregar más sensores, dispositivos y cualquier otra cosa que desee conectado a tu Pi ). :
Necesario:

  • Raspberry  Pi
  • 8gb tarjeta Micro SD si se está utilizando una Raspberry Pi + 2, 3 o B o tarjeta SD de 8 GB para cualquier versión anterior del Pi.
  • Cable Ethernet o Wifi dongle (Pi 3 tiene Wi-Fi incorporado).Usted también tendrá que asegurarse de que tiene una conexión a Internet para la Pi.

Opcional:

  • Caja para la Raspberry Pi
  • Teclado USB y ratón USB

A continuación se presentan los elementos utilizados en el circuito de ejemplo

  • DS 18B20 del sensor de temperatura o similar
  • 4v7k Resistencia
  • Kit de arranque GPIO
  • Cables de conexión
  • Placa prototipos

Instalación de Frambuesa Pi Cayenne

El proceso de instalación de Cayena en la Raspberry Pi es bastante simple y no debería tomar demasiado tiempo para obtener su creación y funcionamiento. Usted tendrá que asegurarse de que ha instalado en su Raspbian Pi. .

  1. En primer lugar, vaya a  myDevices Cayenne y registrarse para obtener una cuenta gratuita.
  2. Una vez que ya se ha registrado usted tendrá que registrarse / conectar el Pi hasta la cuenta que acaba de crear. Para ello sólo tiene que copiar las 2 líneas de comandos que se muestran después de su inscripción. Introduzca estos en el terminal para su Pi. (Estos archivos son únicos para cada instalación nueva)

Únete a la pantalla
Alternativamente, se puede descargar la aplicación y se puede localizar e instalar en su Cayenne Pi automáticamente. (Tenga en cuenta SSH debe estar habilitado )

  1. Tomará unos minutos para instalar en el Pi en función de la velocidad de su conexión a Internet es. El navegador web o aplicación deben actualizar automáticamente con información sobre el proceso de instalación.
  2. Una vez instalado el tablero de instrumentos se mostrará y debe verse como algo más adelante.

Pi tablero de cayena

Configuración de su primer sensor

En este ejemplo vamos a configurar un sensor de temperatura. El sensor usado es el DS18B20,ahora bien  el uso de Cayyene hace que sea muy sencillo.

Todo lo que necesita hacer es configurar el circuito y lo han conectado a la Pi.  También se he añadido un LED que está conectado a la clavija # 17 con una resistencia de 100 ohmios al carril de suelo.
Diagrama del sensor de temperatura Frambuesa Pi
Ahora bien, cuando  configuran el sensor se detecta automáticamente y se añade al tablero de instrumentos.Si no se agrega automáticamente a continuación, tendrá que añadir manualmente. Para añadir manualmente, simplemente, hacer lo siguiente.

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Elija un dispositivo en el cuadro desplegable.
  3. Encontrar el dispositivo, en este caso se trata de un sensor de temperatura DS18B20.
  4. Añadir todos los detalles para el dispositivo. En este caso, tendrá la dirección del esclavo para el sensor. Para obtener la dirección del esclavo escriba lo siguiente en el terminal del Pi.
    cd /sys/bus/w1/devices ls
  5. La dirección del esclavo será similar a esta 28-000007602ffa . Simplemente copia y pega esto en el campo de esclavos dentro de Cayena salpicadero.
  6. Una vez introducida seleccione sensor de complemento.
  7. El sensor se debe mostrar en el salpicadero.
  8. Si necesita personalizar su prensa sensor de la rueda dentada y va a llegar a algunas opciones.
  9. También puede ver estadísticas / gráficos. Por ejemplo, el sensor de temperatura puede representar gráficamente los datos en tiempo real y mantendrá los datos históricos también.

Si desea agregar también un LED que se pueda encender y apagar a través del panel de control, siga las siguientes instrucciones.

  1. Ahora vamos a añadir un dispositivo más. A menos que éste será un LED.
  2. Así que volver a añadir un nuevo dispositivo.
  3. Ahora buscar salida digital y seleccionarlo.
  4. Para este dispositivo seleccione su Pi, el tipo de widget es botón, el icono puede ser lo que quiera, y luego seleccione GPIO integrado. Por último canal es el pin / canal que nuestro LED está conectado. Para este ejemplo, es el pin # 17. (Esta es la numeración de los pines GPIO).
  5. A continuación, pulse el botón sensor de complemento.
  6. Ahora puede apagar el pin GPIO alta y baja del tablero de instrumentos y también utilizarlo en un disparador.
  7. Ahora estamos listos para crear nuestro primer gatillo.

Ahora debe tener dos dispositivos en el panel de control que debería ser algo como esto.
Los dispositivos añadidos

Configuración de su primer disparador

Disparadores en Cayyene son una manera de reaccionar a un cierto cambio en la Pi a través de un sensor conectado a él. Esto podría ser algo tan simple como una temperatura superior a un determinado valor o incluso sólo su pi ir fuera de línea. Como se puede imaginar que esto puede ser muy poderosa en la creación de dispositivos inteligentes que reaccionan a los alrededores. Por ejemplo, si la habitación se enfría demasiado, a continuación, convertir un calentador.

El proceso de añadir un disparador es muy sencillo :

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar un trigger desde el cuadro de abajo.
  3. En primer lugar el nombre de su activación, voy a llamar a la mía “demasiado caliente”.
  4. Ahora arrastrar y soltar su Frambuesa Pi desde la esquina izquierda en el caso de la caja.
  5. Por debajo de esto seleccionar el sensor de temperatura y tienen casilla junto a “por encima de la temperatura” seleccionado. (Opciones del dispositivo Si no se muestran simplemente refrescar la página)
  6. Ahora en el cuadro de selección a continuación, notificación y agregar una dirección de correo electrónico o número de teléfono de un mensaje de texto (puede agregar ambos).Asegúrese de marcar las casillas de verificación también.

Gatillo demasiado caliente

  1. Ahora haga clic en “Activación de almacenamiento”.
  2. Ahora debería ser guardado y le enviará una alerta cada vez que el sensor de temperatura es superior a 40 grados centígrados.
  3. También puede arrastrar el Raspberry Pi en el cuadro a continuación, y tienen que hacer muchas cosas, incluyendo el control de los dispositivos de salida. Por ejemplo, en mi circuito Tengo un LED que se enciende cuando la temperatura supera los 40 grados centígrados.
  4. Para hacer clic en el gatillo de disparo LED de nueva situada en la parte superior de la página. Nombre esta activar el gatillo LED.
  5. Ahora arrastrar el Pi en el caso de la caja y luego seleccione el sensor de temperatura de nuevo con 40 grados centígrados por encima.
  6. Ahora arrastrar el Raspberry Pi en cuadro a continuación. Selecciona nuestra salida digital y tienen la casilla de marcado.
  7. Ahora haga clic en Activación de almacenamiento.
  8. Ahora cada vez que nuestro sensor de temperatura conectado a la Pi reporta una temperatura superior a 40 grados centígrados se enviará un correo electrónico y encienda el LED. También tendrá que añadir otro factor desencadenante para apagar el LED cuando se cae de nuevo por debajo de 40, pero eso se lo dejo por ahora y pasar a los eventos.

mydevices cayennem disparadores

Eventos

Eventos en Raspberry Pi Cayenne es algo similar a los factores desencadenantes pero son dependientes del tiempo en lugar de depender de un cambio en un sensor o el propio dispositivo. La creación de un evento es bastante fácil

Vamos  a  ver  rápidamente cómo configurar su pi para reiniciar una vez al mes.

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar evento en el cuadro de abajo.
  3. Ahora debería ver una pantalla con un calendario y una ventana emergente llamado nuevo evento.
  4. Introduzca los detalles de su evento. Por ejemplo, el mío se llama reinicio mensual y ocurrirá en el primer día de cada mes a las 2 am. A continuación se muestra un ejemplo de la pantalla.

eventos de cayena con detalles

  1. Una vez hecho esto, haga clic en Guardar.
  2. Ahora debería ser capaz de ver su evento en el calendario. Basta con hacer clic en él si desea modificarlo.

Como se podría imaginar eventos puede ser bastante potente por lo que sería digno de mirar en estos más. Un buen ejemplo del uso de eventos sería si se necesita algo para ejecutar o activar (como luces que necesitan para ser activado en un momento específico).

Panel de GPIO

El panel GPIO dentro de Frambuesa Pi Cayena le permite controlar y modificar las patas del Pi. Por ejemplo, puede activar un pin de ser una entrada a una salida inversa y el vicio.También se puede activar tanto los pines de salida baja y alta.
Panel de GPIO cayena
Como se puede ver que también lo convierte en un gran lienzo de referencia si necesita hacer referencia hacia atrás y ver qué pines son los que necesita. También puede ver los dispositivos que están asignados actualmente a los pines específicos. También es capaz de ver el estado actual de un alfiler. (Por ejemplo, entrada o salida y baja o alta)

Escritorio remoto

Se  puede  instalar  Cayyene también en un escritorio remoto a su Frambuesa Pi, ya sea a través del navegador web o por medio de la aplicación móvil. Puede hacer esto simplemente haciendo lo siguiente.

  1. Sobre el tablero encontrar el widget que dice “comandos”.
  2. Dentro de este control, haga clic en el acceso remoto.
  3. Ahora se conectará a la Pi y abrir una nueva ventana. Si una nueva ventana no se abre el navegador más probable es bloqueado. Simplemente permiten cayenne.mydevices para abrir nuevas pestañas.
  4. Una vez hecho esto se puede controlar su Pi igual que como si estuviera allí con ella.
  5. Una de las ventajas con el uso de Cayena de escritorio remoto es que se puede acceder a él en cualquier parte del mundo con bastante facilidad en lugar de tener que configurar una VPN o abrir los puertos de la red.

 

Fuente   aqui