Futurista ambientador


Es  reconfortante tener una fragante casa floral de primavera para senirse como si estuviera en medio de un jardín de lavanda en lugar de una vivienda tradicional  donde probablemente viva, de heho eso es es que precisamente por esto, muchas de las diferentes empresas han creado para los amantes del aire  una multitud de aromas.

Hay muchos ambientadores en el mercado: desde los antiguos aerosoles manuales hasta los disparados por temporizador pero los últimos, aunque son automáticas, son bastante tontas pues seguirán rociando incluso si no estás cerca para  sentir el olor, desperdiciando esas recargas de fragancia no tan baratas.

¿No sería agradable si su refrescante de aire fuera capaz de comunicarse con otros dispositivos y disparar solo cuando realmente lo necesite ?

En este proyecto IgorF2 diseñó   un ambientador  conectado , usando algunas impresiones 3D, NodeMCU, IFTTT y Adafruit.IO.

!

¡Siempre tenga en cuenta que este es un prototipo experimental y podría usarse con precaución!

Paso 1: herramientas y materiales

Las siguientes herramientas y materiales fueron utilizados en este proyecto:

  • impresora 3d. En mi caso, utilicé Voolt3D, una impresora 3D basada en Grabber i3;
  • 1.75mm PLA de su color favorito;
  • Alambre de soldar. Tendrás que soldar algunos cables;
  • Destornillador. Lo necesitará para montar su caso;
  • Tornillos M2x6mm (x11) ;
  • Servomotor MG995
  • NodeMCU LoLin (- La versión NodeMCU LoLin tiene un pin UV, que está conectado al terminal USB 5V. De esta forma, es posible usar los 5 V de un cargador USB, pasando por la placa NodeMCU, para alimentar el servomotor. Otras versiones de NodeMCU no tienen este pin UV (tienen un pin reservado en su lugar). De esta forma, no podrá alimentar su servomotor directamente si usa una de esas otras versiones;
  • NeoPixel 16 x WS2812 5050 RGB LED
  • Botón pulsador de 12x12x12 mm
  • Cable MiniUSB , para la conexión entre NodeMCU y la computadora (para cargar el código);
  • Cargador USB 5V, 2A ( cargador de teléfono, por ejemplo) para alimentar el circuito;
  • 5 cables de puente hembra-hembra;
  • 3 cables de puente macho-hembra;
  • Recambio de aire fresco.

 

Paso 2: impresión en 3D

Imagen de impresión 3D

El modelo 3d se diseñó utilizando Fusion 360.

El modelo se compone de cinco partes diferentes:

  • Frente: cuerpo principal del gadget. Aquí es donde algunos de los componentes electrónicos (anillo LED y botón pulsador) y el servomotor se unirán;
  • Funda trasera: se usa para cerrar el cuerpo de la caja. Aquí es donde se instalarán NodeMCU y el recambio de renovación;
  • Botón : esta parte está conectada al botón;
  • Tapa: esta parte se enrosca en la parte posterior de la caja y permite reemplazar la recarga
  • Soporte: esta parte se utiliza para bloquear el anillo LED y el botón en su posición.

Puede descargar todos los archivos stl en https://www.thingiverse.com/thing:2613327

Este es un prototipo experimental. Tenga en cuenta que fue diseñado para un modelo determinado de recarga de renovación de aire (una Glade, cuyas dimensiones en milímetros puede encontrar en las imágenes). Si desea utilizar un modelo diferente, envíe un comentario y puedo ver si es posible cambiar las dimensiones del modelo para adaptarlo a sus necesidades.

Si no tiene una impresora 3D, aquí hay algunas cosas que puede hacer:

  • Pídale a un amigo que lo imprima para usted;
  • Encuentre un espacio para hackers / fabricantes cerca. Las piezas utilizadas en este modelo se pueden imprimir rápidamente (alrededor de 9 horas).Algunos espacios de hackers / fabricantes solo le cobrarán por los materiales utilizados;
  • ¡Improvisar! Puede intentar ensamblar una estructura sin partes impresas en 3D;

Paso 3: Explicación del circuito

Imagen del circuito explicado

Para este proyecto se utiliza  el modulo  NodeMCU LoLin para controlar el gadget. NodeMCU es una plataforma de código abierto IoT, que se ejecuta en un SoC Wi-Fi ESP8266 de Espressif Systems. Su hardware se basa en el módulo ESP-12.

La placa de desarrollo conecta una red Wi-Fi determinada y recibe algunos comandos de Adafruit.io plafrom. Un anillo NeoPixel se utiliza para la indicación del estado (si la conexión Wi-Fi fue exitosa, o si se recibió un comando dado, por ejemplo). El tablero de control también acciona un servomotor, que actuará en una recarga de renovación de aire. Un botón pulsador se usa para comandos locales.

Se utilizó un cargador USB de 5 V y 2 A para alimentar la placa de control y todos los periféricos. Es importante observar que cuando se activa el servo, se toma una corriente máxima considerable de la fuente de alimentación. De esta forma, no use el puerto USB de una computadora (o cualquier otro dispositivo) para alimentar su circuito. Podría reiniciarse o incluso dañarse.

Las figuras ilustran cómo se conectaron los componentes.

Paso 4: Prepare la electrónica

Imagen de Prepare the Electronics

Algunos de los componentes utilizados en este proyecto deben soldarse primero. En este paso, mostraré cómo se prepararon para una conexión más fácil de los componentes.

1. Terminales Solder NeoPixel

Los anillos NeoPixel generalmente vienen sin cables conectados a sus terminales. Esto significa que tuve que soldar algunos cables para la conexión de los LED al microcontrolador.

Para eso use tres puentes femeninos y femeninos. Corte un lado del puente y suelde sus cables en los terminales de anillo NeoPixel. El otro extremo de cada jumper estará con un terminal hembra, que se conectará más adelante en los pines NodeMCU.

  • Cable rojo = 5V
  • Cable negro = GND
  • Cable amarillo = entrada de datos

2. Terminales de botón de soldadura

Para conectar el botón pulsador al NodeMCU, primero tuve que soldar algunos cables de puente en dos terminales del botón.

Use dos jumpers femeninos y femeninos. Cortar un lado del jumper y suelde sus hilos al botón.

  • Cable verde = entrada de datos
  • Cable negro = GND

3. Servomotor MG995

Los servomotores generalmente tienen un terminal hembra de tres pines, pero desafortunadamente no se puede conectarse directamente al NodeMCU debido a la posición de los pines. Para conectar esos componentes usé un cable de puente macho-hembra.

Paso 5: Ensamblar los componentes

Imagen de Montar los Componentes

En este paso, veremos cómo ensamblar los componentes dentro de la estructura impresa en 3D. Si no desea imprimir el caso por algún motivo, puede saltar al siguiente paso y ver cómo está conectado el circuito.
Una vez que se imprime su estructura, ensamblar el circuito es bastante simple:

  1. Coloque el anillo de LED dentro de la caja frontal ;
  2. Coloque el botón impreso en 3D dentro del anillo;
  3. Coloque el botón pulsador en el medio del soporte impreso en 3D;
  4. Monte el soporte dentro de la caja frontal con cuatro pernos M2x6mm;
  5. Monte el servomotor dentro de la carcasa delantera con cuatro tornillos (los que generalmente vienen con el servo);
  6. Coloque la bocina del servo de acuerdo con la imagen y bloquee su posición con un perno. Cuando el servo está a 90 grados, la retención debe ser horizontal;
  7. Fije NodeMCU dentro de la caja trasera usando cuatro pernos M2x6mm;
  8. Inserte el relleno de renovación de aire dentro de la cámara;
  9. Thead la tapa, cerrando la cámara;
  10. Conecte el circuito (en el siguiente paso le mostraré cómo hacerlo);
  11. Cierre la caja con tres tornillos M2x6mm.

Después de eso, estará listo para subir el código.

Paso 6: Cableado del circuito

Imagen de Wire Up the Circuit

Una vez que los componentes se colocaron dentro de la caja, conecte los cables de acuerdo con los esquemas.

  • NeoPixel 5V (cable rojo) => NodeMcu 3V3
  • NeoPixel GND (cable negro) => NodeMcu GND
  • Entrada de datos NeoPixel (cable amarillo) => NodeMcu GPIO 15 (pin D8)
  • Botón pulsador 1 (cable verde) => NodeMcu GPIO 14 (pin D5)
  • Pulsador 2 (cable negro) => NodeMcu GND
  • MG995 servo 5V (cable rojo) => NodeMcu VU pin
  • MG995 servo GNG (cable marrón) => NodeMcu GND
  • Servo señal MG995 (cable naranja) => NodeMcu GPIO 12 (pin D6)

Paso 7: Configurar NodeMCU en Arduino IDE

Imagen de Setup NodeMCU en Arduino IDE

Para este proyecto se utiliza  Arduino IDE para programar  el NodeMcu. Es la forma más fácil si ya has usado un Arduino antes, y no necesitarás aprender un nuevo lenguaje de programación, como Python o Lua, por ejemplo.

Si nunca has hecho esto antes, primero tendrá que agregar el soporte de la placa ESP8266 al software Arduino.

1. Descargue e instale la última versión de Arduino IDE

Puede encontrar la última versión para Windows, Linux o MAC OSX en el sitio web de Arduino: https://www.arduino.cc/en/main/software

Descárguelo gratis, instálelo en su computadora y ejecútelo.

2. Agregar el tablero ESP8266

Arduino IDE ya viene con soporte para muchas placas diferentes: Arduino Nano, Mine, Uno, Mega, Yún, etc. Desafortunadamente ESP8266 no está por defecto entre esas placas de desarrollo soportadas. Por lo tanto, para subir sus códigos a una placa base ESP8266, primero deberá agregar sus propiedades al software de Arduino.

  • Navegue a Archivo> Preferencias (Ctrl +, en el sistema operativo Windows);
  • Agregue la siguiente URL al cuadro de texto Gestor de tableros adicionales (el que está en la parte inferior de la ventana de Preferencias):

http://arduino.esp8266.com/stable/package_esp8266com_index.json

  • Si el cuadro de texto no estaba en blanco, significa que ya había agregado otras placas antes en Arduino IDE. Agregue una coma al final de la URL anterior y la anterior.
  • Presiona el botón “Aceptar” y cierra la ventana de Preferencias.
  • Navegue hacia Herramientas> Tablero> Administrador de tableros para agregar su placa ESP8266.
  • Escriba “ESP8266” en el cuadro de texto de búsqueda, seleccione “esp8266 por ESP8266 Community” e instálelo.

Ahora su IDE de Arduino estará listo para trabajar con muchas placas de desarrollo basadas en ESP8266, como el ESP8266 genérico, NodeMcu (que utilicé en este tutorial), Adafruit Huzzah, Sparkfun Thing, WeMos, etc.

3. Agregar las bibliotecas

Las siguientes bibliotecas se usarán para nuestro código Arduino. Descargue las siguientes bibliotecas:

Navegue a Boceto-> Incluir biblioteca-> Administrar bibliotecas … en tu IDE de Arduino y agrega las bibliotecas de arriba.¡Ahora que su entorno de desarrollo está listo, pasemos al siguiente paso!

Paso 8: Configuración de Adafruit.IO

Imagen de la configuración de Adafruit.IO

Hay muchos servicios de registro de datos disponibles para comunicar un microcontrolador a la web. Con esos servicios, puede cargar / descargar datos desde / hacia la nube y hacer muchas cosas interesantes.
Adafruit.IO es uno de esos servicios gratuitos. ¡Es realmente fácil de usar y promete traer Internet de las cosas a todos!

Crear Adafruit IO Web Feed

  • Regístrese en https://io.adafruit.com/
  • En Feeds> Crear un nuevo feed, agregue un nuevo feed denominado “IoT air freshner command”. Creará una base de datos, y la usaremos para almacenar los comandos recibidos por el gadget.

En el siguiente paso, veremos cómo configurar IFTTT, otra plataforma utilizada  en este proyecto. La idea aquí es simple: IFTTT tendrá configurados algunos desencadenantes y enviará algunos datos a la plataforma Adafruit.IO cuando una lógica dada sea verdadera. El gadget podrá leer los datos almacenados en un feed determinado en Adafruit.IO, ejecutar un poco de lógica y realizar algunas acciones.

También es un buen momento para copiar su clave Adafruit.IO, que luego será utilizada para permitir que su dispositivo acceda a la base de datos. Navega por Configuración> Ver clave AIO y copia el código de tecla activa. Lo necesitará para su código Arduino (NodeMCU) en los próximos pasos.

Paso 9: Configuración IFTTT

Imagen de la configuración IFTTT

IFTTT es una plataforma gratuita que ayuda a conectar aplicaciones y dispositivos. Puede usarlo para conectar su teléfono inteligente con otros dispositivos, o para compartir datos entre sus servicios web favoritos (como Google, Facebook, Twitter, Instragram, etc.) y otros dispositivos físicos, por ejemplo. ¡Y la mejor parte es que es realmente fácil de usar!

IFTTT usa una lógica “si esto, luego eso”, donde “esto” representa un servicio que activará una acción determinada dada por “eso”. De esta forma, creará pequeños applets que conectan los servicios y dispositivos web. Para el proyecto descrito en este tutorial, hay varias manzanas que se te ocurren. Por ejemplo, los siguientes ejemplos podrían usarse para activar su dispositivo (“esto”):

  • se hace clic en un botón virtual en un teléfono;
  • todos los días en un momento dado;
  • un teléfono inteligente (GPS) llega a una ubicación determinada;
  • se recibe una notificación por correo electrónico.

En nuestros ejemplos, “ese” valor siempre será un enlace a Adafruit.IO, donde los comandos (resultado de un desencadenante dado) se almacenarán, y más tarde serán leídos por el NodeMCU.

Primero tendrá que iniciar sesión en:https://ifttt.com/

Luego instale la aplicación IFTTT en su teléfono inteligente. Puedes encontrarlo en Google Play Store:https://play.google.com/store/apps/details?id=com.ifttt.ifttt

En el sitio web, vaya a Nuevo applet (haga clic en el botón de flecha al lado de su inicio de sesión para acceder al menú).

Paso 10: Applet # 1 – The Lazy Boy

Imagen de Applet # 1 - The Lazy Boy

Para este applet crearemos un botón virtual que activará su gadget IoT. ¡En nuestro caso, significa que no tendrá que levantarse y encender su refrescante de aire! Haga clic en un botón, aguarde y respire profundamente.

Crear el applet en el sitio web:

  • Haga clic en + Esto;
  • Escriba “botón” en el cuadro de texto del servicio Seach y seleccione Botón widget> Presione botón . Tal como se describe en el sitio web de IFTTT, creará un activador que se activará cada vez que presione el botón;
  • Ahora elija + Eso ;
  • Escriba “adafruit” y seleccione Adafruit> Enviar datos a Adafruit IO . Esto enviará datos a un canal de información en su cuenta IO de Adafruit siempre que el activador que configuró previamente ( + Esto ) esté activado;
  • Configure el nombre del feed como “IoT air freshner command” y Data para guardar como “botón”.
  • Termina tu applet y enciéndelo.

Crea un botón virtual en dispositivos Android:

  • Mantenga presionado el fondo. Y elige Widgets ;
  • Búsqueda de IFTTT Small 1 x 1;
  • Ahora elija Enviar datos a IoT air freshner command feed;
  • Se creará un botón con el ícono de Adafruit.

Pruebas:

  • Haga clic en el botón que acaba de crear;
  • En https://io.adafruit.com/, vaya a su feed de comandos de renovación de aire IoT y verifique si se recibió el comando. Mostrará la última vez que se recibió la acción si funciona correctamente.

En pasos adicionales, le mostraré cómo crear el código para su ESP8266 para realizar una acción cuando se recibe el comando.

Paso 11: Applet # 2 – IIIIIIII es Tiiiiiime!

Imagen de Applet # 2 - IIIIIIIIt es Tiiiiiime!

Para este applet, crearemos un disparador de temporizador para su gadget de IoT, que se activará en determinados momentos. Reloj de alarma perfumado listo para despertarte!

Crea el applet en el sitio web:

  • Haga clic en + Esto ;
  • Escriba “Fecha” en el cuadro de texto del servicio Seach y seleccione el widget Fecha y hora> Todos los días a las . Tal como se describe en el sitio web de IFTTT, creará un disparador que se dispara todos los días en un momento determinado;
  • Haga clic en + Eso ;
  • Escriba “adafruit” y seleccione Adafruit> Enviar datos a Adafruit IO. Esto enviará datos a un feed en su cuenta IO de Adafruit siempre que el activador que configuró previamente (+ Esto) esté activado;
  • Configure el nombre del feed como “IoT air freshner command” y Data para guardar como “time”;
  • Termina tu applet y enciéndelo.

Pruebas:

  • Para probar si está funcionando, configure el tiempo de activación por un minuto después de su hora actual. Y espéralo;
  • En https://io.adafruit.com/ , vaya a su feed de comandos de renovación de aire IoT y verifique si se recibió el comando. Mostrará la última vez que se recibió la acción si funciona correctamente.

Paso 12: Applet # 3 – ¡Hogar, dulce hogar!

Imagen de Applet # 3 - Home, Sweet Home!

Para este applet, crearemos un activador de ubicación para su gadget IoT, que se activará cada vez que ingrese a un área específica (su hogar, por ejemplo).Utilizará el servicio de Localización de su teléfono (posición de GPS) para determinar si se acerca a una ubicación específica.

Crear el applet en el sitio web:

  • Haga clic en + Esto ;
  • Escriba “ubicación” en el cuadro de texto del servicio Seach y seleccione widget de ubicación> Ingrese un área . Tal como se describe en el sitio web de IFTTT, creará un activador que se activará cada vez que ingrese a una ubicación específica;
  • Especifique la dirección de su ubicación;
  • Haga clic en + Eso ;
  • Escriba “adafruit” y seleccione Adafruit> Enviar datos a Adafruit IO . Esto enviará datos a un feed en su cuenta IO de Adafruit siempre que el activador que configuró previamente (+ Esto) esté activado;
  • Configure el nombre del feed como “comando IoT air freshner” y datos para guardar como “ubicación”;
  • Termina tu applet y enciéndelo.

Pruebas:

Para probar si funciona, ¡tendrá que caminar un poco! Tienes que salir de la ubicación que especificaste y volver allí. :RE

Paso 13: Applet # 4 – ¡Tiene correo!

Imagen de Applet # 4 - ¡Tienes correo!

Para este applet, crearemos un activador de notificación para su gadget IoT, que se activará cada vez que se reciba un correo electrónico en su cuenta de gmail. Si un tono de llamada y una notificación de vibración no fueran suficientes, ¡ahora puede agregar una notificación de olor para los mensajes entrantes!

Crea el applet en el sitio web:

  • Haga clic en + Esto ;
  • Escriba “gmail” en el cuadro de texto del servicio Seach y seleccione widget de Gmail> Cualquier correo electrónico nuevo en la bandeja de entrada . Tal como se describe en el sitio web de IFTTT, creará un activador que se activará cada vez que llegue un nuevo mensaje a Gmail.
  • Haga clic en + Eso ;
  • Escriba “adafruit” y seleccione Adafruit> Enviar datos a Adafruit IO . Esto enviará datos a un feed en su cuenta IO de Adafruit siempre que el activador que configuró previamente (+ Esto) esté activado;
  • Configure el nombre del feed como “comando IoT air freshner” y datos para guardar como “correo”;
  • Termine su applet y enciéndelo.

Pruebas

  • Para probar si funciona, envíelo y envíe un correo electrónico;
  • En https://io.adafruit.com/ , vaya a su feed de comando de renovación de aire IoT y verifique si se recibió el comando. Mostrará la última vez que se recibió la acción si funciona correctamente.

Paso 14: Código ESP8266

Imagen del código ESP8266

Ahora que sus activadores están configurados, trabajemos en su código ESP8266.

Básicamente, su gadget se conectará a una red wi-fi y esperará hasta que se reciba un nuevo comando en Arduino.IO. Cada vez que se recibe un mensaje, el renovador de aire IoT realizará sus acciones (mover un servo motor para liberar un poco de perfume, cambiar los colores del LED) y regresar para el estado inactivo. El circuito también usará un botón como entrada.

Para cargar su código, seleccione NodeMCU 0.9 (Módulo ESP-12) (si está utilizando un NodeMCU) con una velocidad de carga de 11520 kbps.Desconecte el servomotor del NodeMCU, conecte NodeMCU al puerto USB de su computadora y cargue el código.

Llevará un tiempo (mucho más que completar y cargar un boceto para un Arduino … tenga paciencia …). ¡Ahora es un buen momento para que le des un mecano de instrucciones mientras esperas! :RE

Después de completar la carga, desenchufe el cable USB, conecte el servomotor y alimente su circuito desde un cargador USB.

Código explicado:

Para la configuración de IO de Adafruit, deberá reemplazar el nombre de usuario ( XXXXXXXXXX ) y la tecla io ( YYYYYYYYY ).

Visite adafruit.io, inicie sesión en su cuenta y copie la clave io (tal como se describió en los pasos anteriores).

/************************ Adafruit IO Configuration *******************************/
// visit io.adafruit.com if you need to create an account, or if you need your Adafruit IO key.
#define IO_USERNAME “XXXXXXXXXX”
#define IO_KEY “YYYYYYYYY”

También deberá especificar el SSID y la contraseña de su enrutador Wi-Fi.Reemplace WWWWWWWWWW y ZZZZZZZZZZ para configurar su conexión Wi-Fi.

/******************************* Configuración de WIFI ***************** ********************* /
#define WIFI_SSID “WWWWWWWWWW”
#define WIFI_PASS “ZZZZZZZZZZ”
#include “AdafruitIO_WiFi.h”
AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

 

Se usarán las siguientes bibliotecas (como se describe en los pasos anteriores).Deberá agregarlos en el ide de Arduino antes de compilar el código.

/ ************************ El programa principal comienza aquí ********************* ********* /

#include <ESP6266WiFi.h>
#include <AdafruitIO.h>
#include <AdafruitMQTT.h>
#include <ArduinoHttpClient.h>
#include “Servo.h”

 
Varias cosas (pines y parámetros de LED) se definen antes de la configuración:
#define SERV1 12 // Pin conectado al Servomotor
Servo s1;
#define BUTTON_PIN 14 // Pin conectado al pulsador
#define PIXELS_PIN 15 // Pin conectado a la entrada de datos NeoPixel
#define NUM_LEDS 16 // Número de NeoPixels
#define BRILLO 30
#define PIXEL_TYPE NEO_GRB + NEO_KHZ800 // Tipo de NeoPixels (vea el ejemplo de strandtest).
Anillo Adafruit_NeoPixel = Adafruit_NeoPixel (NUM_LEDS, PIXELS_PIN, PIXEL_TYPE); // + NEO_KHZ800);
AdafruitIO_Feed * command = io.feed (“iot-air-freshner-command”); // configura el feed ‘comando’
Durante la configuración, el NodeMCU inicializará los LED (apague y encienda), inicie el puerto de comunicación en serie y conéctese a Adafruit.io. Se mostrará una animación mientras intenta conectarse.

Las entradas (pulsador) y las salidas (servomotor) también se configuran durante la configuración.

void setup () {
ring.setBrightness (BRILLO);
ring.begin ();
ring.show (); // Inicializa todos los píxeles a ‘off’
// inicia la conexión en serie </ p> Serial.begin (115200);
// conectarse a io.adafruit.com
Serial.print (“Conectando a Adafruit IO”);
io.connect ();

// configuramos un manejador de mensajes para el feed ‘comando’.
// la función handleMessage (definida a continuación)
// se llamará cada vez que se envíe un mensaje
// recibido de adafruit io.
command-> onMessage (handleMessage);
// espera una conexión
int i = NUM_LEDS – 1;
int color = 255;
// anima los LED mientras espera la conexión
while (io.status () <AIO_CONNECTED) {
Serial.print (“.”);
ring.setPixelColor (i, 0, 0, color);
ring.show ();
i = i – 1;
if (i <0)

{ if (color == 255) {

color = 0; }

else

{ color = 255;

}

i = NUM_LEDS – 1;

} delay (50); }

lightPixels (ring.Color (0, 0, 0, 0)); // restablecer todos los píxeles a apagado cuando está conectado

// Estamos conectados

Serial.println ();

Serial.println (io.statusText ());

// mover el servomotor a la posición neutral s1.attach (SERV1);

s1.write (90); retraso (500);

s1.detach (); // establecer el pin del botón como entrada pinMode (BUTTON_PIN, INPUT_PULLUP);

}

El ciclo principal es bastante corto. Verifica si hay datos entrantes de Adafruit.io, y verifica si se presionó el botón. Si uno presiona el botón, envía datos a Adafruit.io.

 

void loop ()

{ // io.run (); es requerido para todos los bocetos.

// siempre debe estar presente en la parte superior de tu ciclo // función. mantiene al cliente conectado a

// io.adafruit.com, y procesa cualquier información entrante.

io.run ();

if(digitalRead(BUTTON_PIN) == LOW) {
command->save(“button”);
}

}

 

Cada vez que se recibe un mensaje, se llama a la función handleMessage .Esta función lee los últimos datos recibidos en una fuente dada en Adafruit.io, y verifica si se recibió una de las cadenas de comandos conocidas (‘botón’, ‘temporizador’, ‘ubicación’ o ‘correo’).

Según el comando recibido, los LED parpadearán con diferentes colores y el servomotor se activará.
// esta función se invoca cada vez que se recibe un mensaje
// de Adafruit IO. estaba adjunto a
// la alimentación en la función setup () arriba.

void handleMessage (AdafruitIO_Data * data) {

lightPixels (ring.Color (0, 0, 0, 0)); // restablecer todos los píxeles a apagado cuando se recibe nueva información
String commandStr = data-> toString (); // almacena los comandos entrantes en una cadena

Serial.print (“recibido <-“);
Serial.println (commandStr);

// Estas declaraciones if comparan la variable meteorológica entrante con las condiciones almacenadas, y controlan las NeoPixels en consecuencia.

// si se presionó el botón virtual
if (commandStr.equalsIgnoreCase (“button”)) {
Serial.println (“Botón virtual”);
rotatingPixels (ring.Color (255, 255, 0, 0)); // mostrar animación
lightPixels (ring.Color (255, 255, 0, 0)); // mostrar animación
launch (1);
lightPixels (ring.Color (0, 0, 0, 0)); // restablecer todos los píxeles a apagado cuando se recibe nueva información
}

// si es hora
if (commandStr.equalsIgnoreCase (“timer”)) {
Serial.println (“es hora”);
rotatingPixels (ring.Color (0, 0, 255, 0)); // mostrar animación
lightPixels (ring.Color (0, 0, 255, 0)); // mostrar animación
launch (2);
lightPixels (ring.Color (0, 0, 0, 0)); // restablecer todos los píxeles a apagado cuando se recibe nueva información
}

// si se alcanzó la ubicación
if (commandStr.equalsIgnoreCase (“ubicación”)) {
Serial.println (“Bienvenido a casa!”);
rotatingPixels (ring.Color (0, 255, 0, 0)); // mostrar animación
lightPixels (ring.Color (0, 255, 0, 0)); // mostrar animación
launch (2);
lightPixels (ring.Color (0, 0, 0, 0)); // restablecer todos los píxeles a apagado cuando se recibe nueva información
}

// si tiene correo
if (commandStr.equalsIgnoreCase (“mail”)) {
Serial.println (“¡tienes correo!”);
rotatingPixels (ring.Color (255, 0, 0, 0)); // mostrar animación
lightPixels (ring.Color (255, 0, 0, 0)); // mostrar animación
launch (1);
lightPixels (ring.Color (0, 0, 0, 0)); // restablecer todos los píxeles a apagado cuando se recibe nueva información
}
}

//La función auxiliar rotatingPixels fue desarrollada para mostrar una animación.El color se recibe como una entrada para esta variable.
// Rotación completa de Funcion NeoPixels 

void rotatingPixels (uint32_t color) {
for (int j = 0; j <3; j ++) { for (int i = NUM_LEDS-1; i> = 0; i–) {
ring.setPixelColor (i, color);
ring.show ();
delay (50);
ring.setPixelColor (i, 0, 0, 0);
ring.show ();
}
}
}

//la función de inicio se usa para controlar el servomotor. Ciclos su posición de //90 ° a 175 ° una cantidad determinada de veces.
// Actúa el servomotor
void launch (int number) {
s1.attach (SERV1);
para (int i = 0; i <number; i ++) {
s1.write (175);
delay (1000);
s1.write (90);
delay (1000);
}
s1.detach ();
}

 

Código completo Arduino  aqui; iot-air-freshner-code.inoiot-air-freshner-code.ino

 

Desde luego es un proyecto realmente muy interesante  no solo por su posible utilidad sino  porque no enseña la potencia de la herramientas o servios  web disponibles hoy en dia para ayudarnos en nuestros proyectos

¡Siempre tenga en cuenta que este es un prototipo experimental y podría usarse con precaución!

 

 

Fuente  ; instructables.com

Anuncios

El futuro del IoT


Estamos empezando a ver es un mundo donde todo está conectado y todo es accesible  impulsado por la gran revolución propiciada por el  Iot  (Internet de las Cosas ) , es decir la tecnología que permite a  cualquier dispositivo simple o complejo,  gracias a la conectividad a internet ,ser capaz  no solo de enviar de información en tiempo real de su estado  y de ingentes diferentes variables físicas,   sino también interactuar con el medio .

En este breve vídeo podemos vemos  prototipos de  tecnología ya existente  como la maleta que nos sigue , el coche autónomo.   o las notificaciones complejas en  nuestro smartwatch , todas ellas en fase muy avanzada de diseño y   que sin duda   inundaran nuestras vidas en un futuro muy próximo,

Ya no hablamos del “Internet de las Cosas”, sino del IoE (Internet of Everywhere), de una nueva economía donde convivan más de 100.000 billones de dispositivos conectados   (aproximadamente allá en el horizonte de  2025)  donde, no solo  nuestro hogar sera accesible por nuestro propio smartphone  sino cualquier cosa que nos rodee como wereables , medios de transporte ,  etc.

Según analistas en unos años  asistiremos  a que cerca del  10% de la población mundial contara  con algún tipo de prenda de vestir comunicada con Internet, ( incluso incluyendo gafas graduadas)  así que la hipótesis   del smartphone   en el centro de nuestra vida digital incluso cambie , porque las cosas aun pueden cambiar mas , por ejemplo sustituyéndo  nuestro compañero inseparable  por  implantes, algún nuevo wereable   o cualquier otra nueva tecnología  que aparezca,

 

Sin duda  ,la carrera  solo acaba de empezar y ya se deslumbran sus enormes  posibilidades  , así que  la carrera  no acaba mas que empezar   y sin duda  veremos cada  vez mas  como el   IoT conectará a personas de todo el mundo para ayudarnos a concentrarnos en las cosas que más importan: familia, amigos, salud y felicidad.

IoT con Raspberry Pi sin escribir código


 

En este ejemplo vamos a ver lo facil qeu es configurar un sensor de temperatura:el DS18B20  usando el agente de Cayenne .

Todo lo que necesita hacer es configurar el circuito y tenerlo conectado a la Pi,el cual es bastante sencillo pues  se usa un bus de 1hilo cuyo diagrama del circuito viene a continuación. También se puede agregar un LED al pin # 17 con una resistencia de 100 ohmios al carril de tierra.
Raspberry Pi Diagrama de Sensor de Temperatura
Ahora cuando lo conecte  si tiene instalado el agente de Cayenne  el sensor sera detectado automáticamente y agregado al  tablero de mandos. Lo que es bastante bueno sin embargo, si no se agrega automáticamente, entonces tendrá que agregar manualmente. Para agregarlo manualmente, haga lo siguiente.

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccione el dispositivo en el cuadro desplegable.
  3. Encuentre el dispositivo, en este caso es un sensor de temperatura DS18B20.
  4. Agrega todos los detalles del dispositivo. En este caso necesitará la dirección de esclavo para el sensor. Para obtener la dirección de esclavo introduzca lo siguiente en el terminal de Pi.
    cd /sys/bus/w1/devices ls
  5. La dirección del esclavo será similar a esta 28-000007602ffa . Simplemente copie y pegue esto en el campo de esclavo dentro del panel de Cayenne.
  6. Una vez introducida seleccione sensor de complemento.
  7. El sensor debe aparecer ahora en el tablero de instrumentos.
  8. Si necesita personalizar el sensor, presione el diente y aparecerá algunas opciones.
  9. También puede ver estadísticas / gráficos. Por ejemplo, el sensor de temperatura puede trazar datos en tiempo real y mantendrá los datos históricos también.

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

  1. Ahora vamos a agregar un dispositivo más. Excepto que éste será un LED.
  2. Vuelva tan para agregar el nuevo dispositivo.
  3. Ahora busque la salida digital y selecciónela.
  4. Para este dispositivo seleccione su Pi, tipo de widget es el botón, el icono puede ser lo que quieras, y luego seleccione integrado GPIO. Finalmente, el canal es el pin / canal al que está conectado nuestro LED. Para este ejemplo es el pin # 17. (Esta es la numeración GPIO de los pines).
  5. Ahora presione el botón add sensor.
  6. Ahora puede girar el pin GPIO alto y bajo desde el tablero de mandos y también utilizarlo en un disparador.
  7. Ahora estamos listos para crear nuestro primer gatillo.

Ahora debería tener dos dispositivos en el tablero de mandos que deberían verse así.
Dispositivos añadidos

Configuración de su primer  trigger

Los disparadores en Cayenne son una forma de hacer que tu pi reaccione a un cambio en el Pi mismo oa través de un sensor conectado a él. Esto podría ser algo tan simple como una temperatura superior a un cierto valor o incluso sólo su Pi va fuera de línea. Como se podría imaginar esto puede ser muy poderoso en la creación de dispositivos inteligentes que reaccionan a los alrededores. Por ejemplo, si la habitación se pone demasiado fría, encienda el calentador.

El proceso de agregar un disparador es súper simple como vamos a ver aontunuacion:

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar un trigger desde el cuadro de abajo.
  3. El nombre de su gatillo, 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. (Si las opciones del dispositivo no se muestran simplemente actualizar 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.

Dispara demasiado caliente

  1. Ahora haga clic en “Save trigger”.
  2. Ahora se debe guardar y le enviará una alerta cada vez que el sensor de temperatura es más de 40 grados Celsius.
  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 activará cuando la temperatura supere los 40 grados Celsius.
  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. Seleccione nuestra salida digital y marque la casilla de verificación activada.
  7. Ahora haga clic en Save trigger.
  8. Ahora, cada vez que nuestro sensor de temperatura conectado al Pi informe una temperatura superior a 40 grados Celsius, enviará un correo electrónico y encenderá el LED.También necesitarás agregar otro disparador para apagar el LED cuando caiga por debajo de los 40 pero lo dejaré por ahora y pasaré a eventos.

Mydevices cayennem Disparadores

Eventos

Los eventos en Raspberry Pi Cayenne son algo similar a los desencadenantes, pero son dependientes del tiempo en lugar de confiar en un cambio en un sensor o el propio dispositivo. La configuración de un evento es bastante fácil,asi que por ejemplo vamos a ver cómo configurar su Pi para reiniciarla 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 un popup llamado nuevo evento.
  4. Ingrese los detalles de su evento. Por ejemplo, la mina se llama reinicio mensual y sucederá el primero de cada mes a las 2am. A continuación se muestra un ejemplo de la pantalla.

Cayenne eventos con detalles

  1. Una vez hecho esto, haga clic en Guardar.
  2. Ahora debería poder ver su evento en el calendario. Simplemente haga clic en él si desea editarlo.

Como usted podría imaginar los acontecimientos pueden ser bastante poderosos así que valdría la pena de mirar en éstos más. Un buen ejemplo de uso de eventos sería si necesita algo para ejecutar o encender. Otro ejemplo es algo como luces que necesitan ser encendidas en un momento específico.

Panel GPIO

El panel GPIO en Cayenne  le permite controlar y alterar los pines en el Pi.Por ejemplo, puede convertir un pin de ser una entrada a una salida y viceversa. También puede activar los pines de salida bajos y altos.
Panel Cayenne GPIO
Como se puede ver también hace que una gran hoja de referencia si necesita volver a ver y ver qué pins son los que necesita. También puede ver los dispositivos que están actualmente asignados a pines específicos. También puede ver el estado actual de un pin. (Por ejemplo, entrada o salida y baja o alta)

Escritorio remoto

Se puede conectar a la  Pi a través de Secure Shell o tambien   con VNC. Si ha  instalado cayenne también puede escritorio remoto a su Raspberry Pi a través del navegador web o a través de la aplicación móvil. Puede hacerlo simplemente haciendo lo siguiente.

  1. En el tablero de mandos encontrar el widget que dice “comandos”.
  2. Dentro de este widget haga clic en acceso remoto.
  3. Ahora se conectará al Pi y abrirá una nueva ventana. Si una nueva ventana no abre su navegador probablemente lo bloqueó. Simplemente permita que cayenne.mydevices abra nuevas pestañas.
  4. Una vez hecho usted puede controlar su Pi como si estuviera allí con él.
  5. Uno de los profesionales con el uso de Cayenne para escritorio remoto es que se puede acceder a ella en cualquier parte del mundo con bastante facilidad en lugar de la necesidad de configurar una VPN o abrir los puertos de su red.

Sin duda es un ejemplo muy sencillo pero que demuestra la gran potencia del agente de Cayenne para aplicaciones de IoT con su Raspberry Pi

 

Fuente   aqui

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

Transmisor de bajo costo


Con el surgimiento de IoT  (Internet de las cosas ), es  sólo una cuestión de tiempo antes de que las paredes de las casas se adornen con aparatos inteligentes y que  casi todo lo que nos rodee esté cargados de sensores.

Sin embargo, el precio  actual  de estos dispositivos  hace que muchos de estos  dispositivos , en el momento actual  por ahora  queden  fuera del alcance de la gran mayoría de los consumidores. Aparte de eso, hay un sin número de módulos transceptores de terceros y registradores de datos disponibles en el mercado hoy en día que son todavía algo  caros y complicados, pero  que  tienden a desplegarse casi de forma generalizada en cada vez más aplicaciones.

En un esfuerzo por resolver este enigma, el creador David Cook ha diseñado un módulo prefabricado bautizado como LoFi , que  permite la transmisión de los aficionados y los hackers por igual para agregar conexiones inalámbricas a cualquier aparato o proyecto de bricolaje con un consumo de energía mínimo. El usuario sólo tiene que conectar el LoFi  a puntos de circuitos o sensores a lo largo de una casa o jardín, y sus datos adquiridos se puede transmitir a un PC o enviado a Internet a través de Wi-Fi. No hay programación o protocolos para aprender, o placas base para hacerlo. ¿La mejor parte? La placa entera va a costar menos de una taza de café (aproximadamente $ 3).

 

Uso de su ordenador o portátil, puede establecer niveles de activación en módulos individuales para decirles cuándo transmitir. Por ejemplo, enviar una actualización cuando el voltaje cambia en más de 1 V en el sensor de vibración cerca de la puerta del garaje. También puede configurar el módulo en un temporizador, como por hora en el monitor del jardín “, de Cook escribe.

La solución de baja potencia se compone de un transmisor y un receptor barato junto con una placa que los usuarios pueden conectar con aparatos o proyectos, que van desde un timbre a un termostato. Para el emparejamiento de sensores y una batería, LoFi puede ser utilizado como una estación de sensor independiente al aire libre. La placa  preprogramada cuenta con cinco entradas analógicas, un sensor de temperatura interno, una referencia de tensión y se basa en un ATtiny84A , que se encarga de vigilar las entradas y salidas de los datos. El módulo emisor compacto también está equipado con un LED rojo y verde para indicar el estado, y un soporte de tipo botón pulsador opcional y para activar manualmente la transmisión. Lo que es más, los sensores tales como la luz, la humedad y las vibraciones, y un detector de movimiento por infrarrojos se pueden añadir también.

lofi2

Después de que el dispositivo está conectado a todo, los fabricantes pueden tomar sus teléfonos inteligentes, conéctarlo al cable de serie y leer todos los valores de los sensores. Los usuarios pueden establecer mínimos / umbrales máximos y un contador de tiempo por el cual les gustaría LoFi para transmitir los datos. Una vez configurado, el transmisor y el receptor de bajo costo están unidos, conectados a una pasarela de escucha, y vinculados a un PC en casa con el cable serie antes mencionada. De esta manera, los usuarios pueden recibir toda la información que se ha enviado. Incluso mejor, una placa  Wi-Fi se puede agregar para  habilitar la transmisión inalámbrica a Internet o a una red local. Cabe señalar que LoFi es compatible con data.sparkfun.com, un repositorio de código abierto Internet libre.

lofi1

LoFi es capaz de lograr bajo consumo de energía por estar en modo lento profundo la mayor parte del tiempo. En promedio, el módulo consume sólo 18μA de potencia, lo que permite que dure un año en de tipo botón o 10 años en un pilas AA. Habida cuenta de su consumo de energía y el minúsculo tamaño de 1,25  pulgada cuadrada, la placa se puede utilizar en una amplia gama de aplicaciones.

Por ejemplo, la combinación de LoFi, un interruptor de bola de inclinación y algunos velcros dentro de una caja Tic-Tac puede servir como un detector de puerta de garaje. O, LoFi, un sensor reflectante de infrarrojos y un tarro de grano pueden alertar a un usuario si tienen correo. Por destripar un cargador iPhone y añadiendo un tipo botón, LoFi puede crear un monitor de temperatura disfrazado en el local. La lista sigue y sigue …

Thinking Things la plataforma de IoT de Telefónica


En este blog hemos hablado de diferentes plataformas  IoT como son  Pachube ( que más tarde paso a ser Cosm.com y es  ahora  finalmente es Xively)     , así como de otras plataformas como  open.se  ,o Nimbits
En esta ocasión vamos a hablar de la nueva plataforma thinkingthings , una plataforma de extremo a extremo  de Telefónica, que permite a todo el mundo crear nuevos productos y servicios de Internet de las Cosas (IoT) combinando    módulos plug’n play con capacidades diferentes – sensores, actuadores, conectividad, potencia – para crear dispositivos conectados personalizados.
Una gran diferencia de esta nueva plataforma, es que nada más sacar los módulos de su embalaje ( y por supuesto al darle alimentación) ,  gracias a la conectividad móvil de las tarjetas SIM, estos se conectan con la plataforma de  Telefónica via M2M  y por tanto ya estarán listos para enviar datos a la plataforma.
Cosas  que podemos hacer con thinkingthings ,  no sólo van centradas en la supervisión y control  de dispositivos de forma remota, sino también permiten  crear comportamientos automáticos gracias al  interfaz  web .
Asimismo, como  en otras plataformas, es posible utilizar  triggers  o disparadores automáticos, para por ejemplo  enviar alertas a través de SMS, correo electrónico o Twits,  siendo posible además utilizar una  API que proporcionan  para   integrar  el IoT con su sistema informático.

Módulos Hardware

En esta plataforma, han diseñado diferentes cubos de plástico que usted puede encajar unos a otros ( como piezas de Lego), teniendo cada bloque  una función diferente. Un conjunto de bloques conectados se llama “una pila” y puede poner tantos bloques como quiera  en la misma “pila”.

Los módulos son los siguientes:

  • Comunicación :Cada pila necesita un módulo de conectividad o “core”. El módulo de conectividad envía los datos de los otros módulos a la página web periódicamente. Puede controlar esta periodicidad de los controles de la página web. Utiliza la red móvil, para que se ejecute siempre que sea sus carreras de telefonía móvil. En caso de que usted se está preguntando, sí, tiene una tarjeta SIM en su interior. Sólo con el módulo principal se obtiene una posición aproximada de la pila (1Km en las zonas urbanas, a 5 km o más en las zonas rurales).
  •  Ambiente :El módulo de ambiente mide la temperatura del aire, humedad del aire y la luz ambiente.
  •  Presencia :El sensor de presencia detecta el movimiento de personas en frente de ella.(disponible: septiembre 2014)
  •  GPS :El sensor GPS da una posición precisa basada en satélites GPS (disponible: septiembre 2014)
  • Módulos del actuador: Módulos del actuador le dará la posibilidad de actuar a partir de la página web en el dispositivo.
  • Notificaciones :El futuro módulo de notificaciones tiene una luz que cambia de color-y puede zumbar. Disponible en noviembre 2014
  •  Plug Inteligente:Cambia dispositivos eléctricos o desactivar, ofrece funcionalidad dimmer y mide el consumo de energía.Disponible  a principios de 2015
  • Módulos de energía( Batería):El módulo de energía es la batería de la pila. Se puede usar sólo o conectada a un adaptador microUSB o incluso a un PC. Cuenta con una batería que puede alimentar la pila de forma independiente. Su vida depende de la cobertura móvil y el tiempo entre conexiones. Baterías actuales pueden alimentar una pila, que conecta cada hora, durante un mes. Usted puede poner más de un módulo para una mayor duración.
Los módulos se conectan de manera sencilla entre sí y al dispositivo que van a controlar, o se despliegan en el espacio que se quiere  monitorizar. Por ejemplo usando  tres elementos como son el actuador , comunicaciones  y energía  así ccomo  aplicando  reglas de  lógica básicas, los módulos se pueden usar para conectar a una lámpara para permitir el control remoto de la iluminación del hogar.
Una vez realizada la conexión, se crea una página web para el nuevo dispositivo. Esto proporciona acceso online para controlar las funciones de los módulos físicos.Gracias al interfaz ,este hace que sea muy fácil la configuración de los activadores de los módulos; por ejemplo, el control de la temperatura del hogar a través de internet o SMS.

Otro ejemplo  puede consistir en  una batería, un módulo de comunicaciones y un sensor de ambiente. Alimente con una bateria  y a continuación, conectese a la página web y verá allí su módulo pudiendo ver la información procedente del mundo real en su pantalla.

Si ademas a los módulos anteriores se añade el módulo GPS, tambien verá su bloque  en un mapa. Por ejemplo, usted puede ver la ruta seguida por el nuevo dispostivo  en los últimos días.

Una aspecto muy interesante también puede ser ver los datos en gráficos, desde la última hora a  los últimos meses permitiendo combinarse diferentes fuentes de información en el mismo gráfico, para que pueda comprobar, por ejemplo, si la temperatura se eleva cuando el sol calienta las ventanas.

Para terminar,  una característica muy importante  es la capacidad para poder redefinir reglas simples, pero de gran alcance, que el sistema ejecutará automáticamente para usted. Por ejemplo, usted puede recibir un correo electrónico si su casa se enfría demasiado, o un twit cuando las luces se apagan, pudiendo  definir alarmas sobre las cosas que son  importantes para usted con objeto de que  no tenga que supervisar constantemente la web pues podraáser informado automáticamente ante cualquier incidente.

Conectividad Global

Un gran aspecto muy diferente de otras plataformas  es  que prácticamente  pueden usarse estos módulos  en cualquier parte del mundo, gracias a que tienen una  tarjeta a SIM embebida la cual , a través de los acuerdos de roaming de Telefónica,  funciona en la mayoría de los países de la Unión Europea, Estados Unidos y la mayoría de los países latinoamericanos.

 

API REST

Si usted es un desarrollador puede hacer muchas más cosas con sus bloques: de hecho todo lo que hace a través de la web se puede hacer también  por cualquier software que desarrolle  usted (incluso muchos más )  usando una API muy simple. Así que usted puede escribir una aplicación para comprobar su hogar, o conectar la pila para los sistemas logísticos de su empresa. El API se ejecuta en las pasarelas de Telefónica, para que pueda obtener los datos en cualquier momento, incluso si los módulos están desconectados.

RESUMEN

Esta solución  hace realmente  posible y sencillo   el llamado   Internet de las cosas (IoT)  eliminando toda  la complejidad de la creación de soluciones de IOT  gracias  a  que han diseñado  módulos plug’n’play que se pueden combinar entre sí  sin cableado y  sin necesidad de hardware o electrónica de desarrollo ,para satisfacer diferentes  necesidades ,  teniendo como punto realmente  fuerte , que  además del equipamiento hw , tambien  se   incluye en el mismo precio  la  conectividad sin preocupaciones durante 6 meses o 1 año (contratando un año  ronda   aproximadamente los  0’27€ al día con conectividad y hardware incluidos)

Mas información aquí