Brazo bionico


En los próximos años  gracias a la  evolución de la tecnología , veremos cada vez más personas que  serán aumentadas de alguna manera a través de la tecnología. Estamos acostumbrados a los marcapasos y los implantes ortopédicos, pero ¿a qué más recurriremos? Youbionic ha estado trabajando en manos y brazos biónicos para que los usemos. De hecho en los últimos años, la compañía ha pasado de manos impresas en 3D bastante simples a este movimiento de trabajo que imita el brazo biónico

Hace ya mas de 4 años que Federico Ciccarese fundó Youbionic con la idea de  trabajar  “en una herramienta para la evolución de la especie humana”.  De hecho desde Youbionic creen que la tecnología se puede utilizar para aumentar las capacidades humanas y la intervención en el reemplazo de partes de nuestro cuerpo que no funcionan correctamente  y por ellos  se comprometen a construir dispositivos para hacernos vivir mejor y por más tiempo; de hecho tienen  la intención de ocupar todos sus recursos para fusionar el cuerpo biológico con componentes mecatrónicos”.

 

 

 

BRAZO BIONICO

Youbionic ha estado trabajando en el desafío de hacer un brazo biónico desde 2014. 3DPrint.com habló con Frederico, y les contó que han estado estudiando durante años cómo funciona el cuerpo humano y diseñar interfaces que puedan integrarse con el. Realmente creen que en este momento pueden aparecer dispositivos experimentales, pero pronto serán una gran evolución. Como corresponde a sus precios bajos, Frederico utiliza la flexibilidad de la impresión 3D para crear prototipos de bajo costo, vendieron sus  resultados para financiar nuevos fondos. investigación y así sucesivamente”

Gracias a  la impresión 3D  Youbionic proporciona los elementos para crear robótica y biónica nunca antes vista.  enfoscandose  en  apéndices impresos en 3D son, como se podría sospechar, generalmente destinados a aquellos a los que les falta una extremidad.

Además, hay muchas otras personas que pueden retener la funcionalidad parcial de una mano, pero aún podrían usar la asistencia.

El modelado generado a través de algoritmos matemáticos y el estudio de las formas que la naturaleza nos ofrece cada día,  ha permitido desarrollar habilidades de diseño únicas,asi  que unos de su elementos mas sofisticados ( Youbionic Hand )  aporta una nueva dimensión de existencia: la prótesis mioeléctrica bellamente impresa en 3D de Youbionic  que está prevista para usarla desde  cualquier aplicación pues es capaz de ser controlada por la contracción muscular como si fuera una parte real del cuerpo.

 

 

Como vemos el brazo youbiónic, los dedos y todas las partes están impresas en 3D.  El paquete es extraordinariamente ligero y se usa sobre los brazos existentes  moviéndose de una manera muy suave y realista. Asimismo los dedos impresos en 3D se mueven en concierto con los reales o pueden controlarse externamente. Su creador Frederico está trabajando en una versión controlada por la mente de su brazo biónico (que a través de la interfaz del cerebro humano, los auriculares podrían estar disponibles mucho antes de lo que pensamos).

Lo más difícil de hacer con los brazos biónicos es hacer que los dedos trabajen con la resistividad correcta que se necesita para agarrar cosas o realmente recogerlas  pero  Frederico ha trabajado duro para lograr ese tipo de funcionalidad hasta el punto en que el brazo pueda levantar y manipular muchas cosas a su alrededor.De hecho  los dedos son modulares y podrían ser reemplazados por diferentes accesorios

Como se ve en el vídeo a continuación, la mano de Youbionic puede manipular muchos elementos diferentes, incluyendo una caja pequeña, una botella de agua y un juego de llaves. Dejando de lado la funcionalidad, el movimiento es extremadamente fluido y el acabado negro suave realmente lo hace lucir genial.

El dispositivo está equipado actualmente con un Arduino Micro , servos, varios sensores, un paquete de baterías y algunos interruptores. Incluso el tablero parece estar muy limpio , aunque entendemos  que una version  final usará algún tipo de PCB.

Han  rediseñado completamente los elementos mecánicos, por lo que ahora Hand es más resistente a los esfuerzos durante la operación pues han modificado los parámetros del proyecto para elevar la fuerza que logra hacer, de modo que está listo para la mayoría del ejercicio diario, cómo levantar objetos, apretar los mangos y luego interactuar con el mundo exterior como una mano biológica.

 

 

Otra característica única de Youbionic Hand es la modularidad como hemos ya  comentado , pues cada dedo es independiente y ha sido diseñado para ser parte de configuraciones alternativas. Próximamente, estarán disponibles los componentes que permiten diferentes montajes: podrá crear abrazaderas de tres dedos para instalaciones en robots antropomorfos o dispositivos portátiles con armadura humana

Estos dispositivos pueden aumentar las habilidades de las personas cuando son llevadas por un cuerpo sano, pero también pueden recuperar habilidades si reemplazan partes del cuerpo que no funcionan. De hecho su creador  Frederico piensa que tan pronto como nos acostumbramos a ver cosas como esta, es decir  costos protésicos de bajo costo, con todas las partes,pues entre otras coas estas  suponen  una vigésima parte de una disponible comercialmente en la actualidad.

 

 

 

Específicamente en el ámbito médico, veremos  en los próximos años una gran cantidad de innovaciones de impresión 3D, por lo que los inventores, diseñadores e innovadores utilizarán impresoras 3D para crear dispositivos novedosos.

La mayoría de los dispositivos médicos y otras cosas están reguladas fuera del alcance de la mayoría de los inventores pero en áreas donde la innovación es accesible, veremos mucha actividad de impresión 3D como ya lo ha hecho  hasta el momento (como por  ejemplo The UnLimbited Arm v2.1 – Alfie Edition  en  proceso de  mejora en thinginverse)

The UnLimbited Arm v2.1 - Alfie Edition

La fabricación de dispositivos médicos de bajo costo versátiles y, posiblemente, específicos para cada paciente, será un área de innovación importante para nuestra calidad de vida  en los próximos años destacando los brazos biónicos   y por supuesto el tren inferior, pues son son algunas de las cosas más difíciles que se me ocurren en esta área.

 

 

Precio

Youbionic   vende los archivos stl del brazo por $ 149, mientras que los archivos para la mano son $ 99  permitiendo a los usuarios imprimir su propio brazo pues ellos también tienen que sufragar su actividad ( aunque también se están embarcando en nuevos modelos de negocios en impresión 3D y en MedTech)  pero  también hay actuadores y otras piezas que necesitaríamos comprar por separado.

 El brazo está impreso en 3D de PLA y utiliza Actuonix Linear Actuators .Puede imprimir los otros componentes usted mismo o usar un servicio de impresión 3D si no tiene uno.

Además de varios brazos biónicos actualizados, Youbionic ha desarrollado un dispositivo de doble mano. En este momento, el brazo de Youbionic parece estar funcionando a la perfección, como se puede ver en el video anterior

Al vender los archivos stl  , Frederico espera financiar el desarrollo de su equipo y al mismo obtener retroalimentacion para mejorararlo. ¿Funcionará este tipo de modelo? ¿Llevaremos el ritmo vertiginoso de la innovación en la impresión 3D a la medicina y las prótesis? ¿O el miedo a los cuellos rotos significará que una carga regulatoria aumentada también caerá sobre nosotros? ¿Cuál es el futuro de la innovación de impresión 3D en esta área? Para Youbionic, el futuro significa “obtener retroalimentación y usar esto para mejorar los diseños” y “asociarse con inversionistas para ayudarnos a acelerar el progreso y alcanzar los objetivos más rápido.

 

 

 

 

Puedes aprender más y ordenar el suyo en el sitio web de Youbionic , eso si por unos 200 €.

Anuncios

Reloj gigante casero


En efecto hemos visto soluciones muy ingeniosas usando  tal vez medios humildes como por ejemplo cartón y leds para construir un reloj digital “gigante”, pero la idea de Leon van den Beukel ha sido  llegar aun mas lejos  pues   sustituye todos  los leds  convencionales  usados en proyectos convencionales por tiras de leds  RGB direccionables  del tipo  WS2812B .

Ademas por si fuese poso también  ha creado una  versión impresa en 3D para albergar  todo   usando como placa de control   una placa   Arduino  nano   al que se ha conectado un modulo bluetooth para sincronizarlo con un smartphone gracias a una aplicación personalizada que se conecta de forma inalámbrica al reloj a través de dicho  modulo  Bluetooth y de este modo puedo personalizar el reloj.

Para cortar algunas  piezas, el autor también   ha usado una máquina CNC casera.

Los componentes  usados en este diseño  son:

Esta es el esquema del reloj digital casero propuesto  donde ya se  aprecian la conexiones:

  • Del sensor de temperatura DHT11,  el cual se ha  conectado al pin D2  junto la típica resistencia de 10k entre la salida de datos  y  VCC
  • El modulo de bluetooh  conectado a los pines D5(tx) y D6(rx) sin omitir la alimentación  de vcc y gnd. El pin de RV también lleva una resistencia de 1k en serie  y otra de 2.2k entre este y masa para atenuar la  señal del modulo
  • La tira de leds conectado a D8 por medio de una resistencia en serie de 330 ohmios sin omitir la alimentación  de vcc y gnd
  • El modulo de tiempo real conectado a los pines analógicos A4 y A2 sin omitir la alimentación  de vcc y gnd
  • La  alimentación  de todo el conjunto de 5v DC

 

 

Schema.png

 

Por cierto si se esta preguntando por el orden de colocación de los leds , tenga en cuenta que ha usado 29 leds RGB  para los 4 dígitos y los dos puntos,  colocándoles de modo que compongan 4 cifras en código de 7 segmentos   conectando cada led  entre si  respetando la alimentación   y encadenando el pin de datos  pore medio de sus pines de entrada y salida

Esta es la configuración del orden de los  leds RGB empleada por el autor:

Respecto al  código fuente de Arduino nano  esta disponible  en https://github.com/leonvandenbeukel/3D-7-Segment-Digital-Clock/blob/master/3D-7-Segment-Digital-Clock.ino

Para el control del reloj  puede descargar la aplicación  Bluetooth Digital Clock App  para Android desde Play Story aquí: hhttps://play.google.com/store/apps/details?id=nl.leonvandenbeukel.BTDigitalClockApp

 

Por ultimo también en github   el autor ha dejado los ficheros stl para imprimir  el receptáculo  del reloj con una impresora 3d. La ruta de estos 11 piezas  para imprimir por separado  esta en https://github.com/leonvandenbeukel/3D-7-Segment-Digital-Clock/tree/master/STL

Para un mejor contraste, nos sugieren mejor imprimir las siguientes partes en negro:

  • BewteenSegments
  • DotRing
  • Dotbottom
  • Medio
  • OuterRingSegments

El resto de piezas se puede imprimir en blanco.

En el siguiente vídeo podemos ver este fantástico reloj en funcionamiento

 

 

 

¿Porqué están tan de moda las FPGA’s?


Realmente  las FPGA’s  o matriz de puertas programables (del inglés field-programmable gate array) no son un invento reciente  pues fueron inventadas ya hace unos años allá por  el año 1984 por Ross Freeman y Bernard Vonderschmitt, co-fundadores de Xilinx.

Esencialmente internamente están formadas por  una enorme matriz  compuesta  por un gran número de pequeños bloques  formados por puertas lógicas y  biestables síncronos  (de hecho del orden de cientos de miles hasta millones de ellas según el  modelo) y justo en la intersección de esos  hay conmutadores digitales   que  son los que precisamente se  configuran  modificando la   matriz de conexiones  para realizar una determinad tarea tal  y como se haría con un circuito digital

Estos bloques individuales están constituidos por elementos lógicos como puertas AND,OR,NOR   que les permiten adoptar distintas funciones de transferencia.

El inter-conexionado de una FPGA  por tanto esta  cero cuando esta  está sin configurar, de modo que necesitamos  habilitar e puentes de  conexiones  en determinadas partes  y en otras deshabilitarlas , función que hacemos mandándoloe  una ráfaga de bits ( o bit stream )

 

Juntos, los distintos bloques, unidos por las conexiones que programamos, hacen que físicamente se constituya un circuito digital, de forma similar a como haríamos en una placa de prototipos (protobard)  con  elementos discretos  por ejemplo de la serie c-mos y con mucho cableado físico   sujeto a errores y poca fiabilidad.

Estos arreglos de matrices con cientos de miles hasta millones   de puertas programables sencillas como AND,OR,NOR   y  biestables , nos dan una gran ventaja a la hora de implementar un circuito lógico pues en vez de invertir en conexiones físicas susceptibles de fallar , es mucho mas eficiente realizarlo  con una FPGA  donde  pueden estar todas estas puertas pero incluidas en un chip pequeño, el cual lo configuraremos  para realizar esas conexiones  programando  las  compuertas para un determinado fin , y cuando ya no sea necesario  es posible reprogramarlo para otro cometido

Como vemos la enorme libertad  en la interjección de dichos bloques confiere a las FPGA una gran flexibilidad y versatilidad que llega hasta tal punto  que incluso  son  capaces de emular microprocesadores  de varios núcleos ( en función del tipo de FPGA)  ,

Hay proyectos de pequeños procesadores que pueden ser configurados en un FPGA. Ejemplos son MicroBlaze y PicoBlaze de Xlinx, Nios y Nios II de Altera, y los procesadores de código abierto LatticeMicro32 y LatticeMicro8.  !Incluso existen proyectos para emular procesadores históricos en FPGA, como el famos procesador del Apollo 11 Guidance Computer que llevo  el hombre a la Luna.

Todo esto pues puede explicar porque se están poniendo de moda pues permiten sobre una misma pastillas realizar diferentes circuitos   que incluso pueden ser actualizados  para mejorar su rendimiento su necesidad de  cambiar el hardware

Un aspecto a destacar  es  dado que su funcionamiento es básicamente cableado permite  velocidades  altisimas de reloj desde Mhz  hasta Ghz, pudiendo hacer procesamiento de señales de alta frecuencia así como construir circuitos muy rápidos por  lo que vemos ninguna de las placas qeu hay en el mercado  como por ejemplo Ardiuino se aproximan a las FPGA’s

Algunos de los principales fabricantes son Xilinx, Altera (comprado por Intel en 2015), MicroSem, Lattice Semiconductor o Atmel, pero  recientemente otros grandes players como Arduino  también han entrado en este lucrativo negocio del hardware  con el modeloMKR Visor  basada en un chip de Intel , el  modelo  Cyclone 10CL016j,

Programación

Los FPGA no se “programan” en el sentido estricto  como estamos familiarizados usando lenguaje como Processing C, C++,  Python,etc  pues  usan   HDL ( Hardware Description Language. ) ,es decir un tipo diferente de lenguaje descriptivo usado también en el diseño de chips y SoC

Para empeorar las cosas una de las claras  desventajas de las FPGA es que estos lenguajes HDL  son especificos  para cada FPGA por lo que  cada fabricante diseña su propia forma de hacer síntesis sobre esta

Los lenguajes HDL tienen una curva de aprendizaje grande debido a que tiene un grado de abstracción muy bajo pues piensese que  describen diseños de circuitos digitales de modo que los fabricantes proporcionan herramientas comerciales para programar sus propios FPGA. Estas herramientas no son gratuitas, o lo son sólo para algunos modelos de FPGA del fabricante y como vemos están unidos a la arquitectura de un único fabricante.

Con el desarrollo de los FPGA han aparecido otros lenguajes que permiten un mayor nivel de abstracción, similar a C, Java, Matlab. ejemplo son System-C, Handel-C, Impulse-C, Forge, entre otros.

Con la evolución en el desarrollo de las FPGA también han aparecido herramientas centradas en la programación gráfica de las FPGA, como LabVIEW FPGA, o el proyecto Open Source IceStudio  desarrollado por Jesús Arroyo Torrens.

Afortunadamente hace unos  años hubo un investigador   proveniente de la docencia llamado   Clifford Wolf que tras un hercúleo trabajo de ingeniería inversa con su proyecto ice storm a lo largo de tres años. que  liberó un modelo de  FPGA de  Lattice Semiconductor (el modelo iCE40 LP/HX 1K/4K/8K, ) publicando en la comunidad Open Hardware  su diseño y método de programación ,  así que  hay buenas noticias sobre esa desventaja que existía de programar  la FPGA’s pues es posible programar algunos modelos con herramientas abiertas

 

El coste

Como hemos visto , los lenguajes con los que se configuran ka FPGA  dificultaban  su uso ,pero tras la liberación del modelo de Lattice  se camina hacia herramientas abiertas asi  que uno  de os grandes escollos que deben superar el coste   pues e todavía las FPGA’s tienen un costo muy elevado sobre los microcontroladores pues un microcontrolador arduino clónico lo podemos conseguir  por menos de 10 € , y lamentablemente  una FPGA  es imposible conseguirla   por ese precio pero poco a poco esto esta cambiando con placas que vamos a ver a continuación

El  precio de  una FPGA  puede estar en el rango de 20 a 80€  como vemos muchísimo más caro que un Arduino Nano (16Mhz) o un STM32 (160Mhz) que podemos comprar por 1.5€, un Node Mcu ESP8266 (160Mhz + WiFi) que podemos comprar por 3.5€ o incluso, son mucho más caros que una Orange Pi (Quad 800 Mhz + WiFi), que podemos encontrar por unos 20€.

 

Placa Arduino MKR Vidor 400

El Arduino MKR Vidor 4000 es una nueva clase de desarrollo que combina el alto rendimiento  y flexibilidad de una FPGA con la facilidad de uso del Arduino en un pequeño factor de forma que es el rasgo distintivo de la familia MKR

Esta placa contiene el microcontrolador SAMD21 de Microchip y un Ciclón 10 FPGA ( de INTEL) y cuenta  con 8 MB SDRAM,  2 Mbyte QSPI Flash (1MB para las aplicaciones de usuario), conector Micro HDMi  de alta definiciónI, conector de la cámara MIPI, Wifi  alimentado por el módulo de U-BLOX NINA W102, la clásica interfaz MKR en que todos los pernos están conducido por SAMD21 y FPGA y un conector Mini-PCI Express con hasta 25 pines programables del usuario.

El FPGA contiene elementos de la lógica de 16K, 504Kbit de RAM integrado y multiplicadores de 18 x 18 bits HW 56 para DSP de alta velocidad; Cada pin puede cambiar a más de 150 MHz y puede ser configurado para funciones tales como UARTs, SPI (Q), alta resolución / alta frecuencia PWM, encoder de cuadratura, I2C, I2S, Sigma Delta DAC, etcetera. A bordo de FPGA puede también utilizarse para alta velocidad operaciones de DSP para el procesamiento de audio y video.

El Arduino MKR Vidor 4000 puede ser programado usando el Software de Arduino (IDE),  y ejecutar tanto online como offline

 

 

 IceZUM Alhambra

La IceZUM Alhambra incluye una FPGA iCE40 del fabricante Lattice Semiconductor, cuyo diseño y método de programación fue liberado por Clifford Wolf tras un hercúleo trabajo de ingeniería inversa a lo largo de tres años.
La placa de desarrollo IceZUM Alhambra se desarrolló originalmente en BQlabs y ha sido diseñada por Eladio Delgado en colaboración con Juan González, siempre con la idea de que pudiera ser utilizada en educación.

La placa se puede adquirir a través del grupo #FPGA-Wars que conforma la comunidad en torno a esta placa  lanzando tiradas cortas conforme los usuarios se van apuntando. De momento tiene un coste de 65 euros, con una calidad excepcional y todos los controles de calidad gracias al trabajo de Eladio Delgado pero es de suponer que cuando se fabrique a mayor escala podrá bajar el precio.(al ser hardware libre… en principio cualquiera puede lanzarse a su fabricación.) Tambiédsiponen una IceZUM Alhambra “peregrina” que se va enviando de unas personas a otras para que la puedan probar( esto esta en el grupo #FPGA-Wars.)

Para modificar las conexiones internas de una FPGA se utilizan lenguajes de descripción hardware. Para la IceZUM Alhambra dado su carácter libre y abierto se utiliza Verilog, lenguaje de descripción hardware abierto y podríamos decir que estándar hoy en día.

Pero la maravilla que seguro ayudará a que estudiantes puedan entender mejor el diseño de circuitos digitales se llama Icestudio,  creación de Jesús Arroyo y que me atrevo a comparar con lo que ha supuesto Scratch a la programación.

Con Icestudio en vez de utilizar código de descripción hardware diseñamos directamente, gráficamente, el circuito combinacional. Es seguro que con Icestudio se podrá introducir a la electrónica digital a alumnos cada vez más jóvenes.

 

icezum alhambra icestudio

BQ patrocinó el proyecto conjunto de la IceZUM Alhambra junto con Icestudio y Apio en sus inicios a lo largo de 2016 y ahora el proyecto avanza gracias a sus creadores con el apoyo de la comunidad gracias a su concepto abierto y colaborativo.

Ejemplo

El proyecto IceStorm es un toolkit (formado por IceStorm Tools + Archne-pnr + Yosys) que permite la creación del bitstream necesario para programar un FPGA iCE40 con herramientas open Source.

El trabajo de Clifford se realizó un IceStick, una placa de desarrollo con un FPGA iCE40, por su bajo coste y pequeñas características técnicas, que permitían el trabajo de ingeniería inversa.

el proyecto IceStorm y el Lattice ICE fue el inicio de una revolución en el campo de las FPGA similar a la que empezó Arduino con los procesadores AVR de Atmel, y que ha permitido poner al alcance de los usuarios domésticos pues el resro de FPGA’s requieren inversiones elevadisimas tanto en hw como en sw.

Para terminar , vamos a  ver un  sencillo ejemplo de como configurar (Programar) un FPGA de forma fácil usando Icestudio (HDL) y la ICE40 icestick de lattice, para configurar una alarma de indencios

 

 

 

Como construir display gigantes


En efecto podemos construir nosotros mismos nuestros propios displays leds  de la medidas que necesitemos  simplemente con Arduino ;Netduino o  Raspberry Pi y por supuesto  un poco de bricolaje

Un dígito led  en realidad esta formado por  7 segmentos  o mas   y es un componente que se utiliza para la representación de caracteres o números en muchos dispositivos   , debido en gran medida a su simplicidad y bajo coste

Aunque externamente difiere considerablemente de un led típico, internamente están constituidos por una serie de leds con unas determinadas conexiones internas, estratégicamente ubicados de tal forma que forme un número ‘8’.

Cada uno de los segmentos que forman la pantalla están marcados con siete primeras letras del alfabeto (‘a’-‘g’), y se montan de forma que permiten activar cada segmento por separado, consiguiendo formar cualquier dígito numérico

Por ejemplo para representar el numero 15 lo conseguiremos , activando los segmentos B y C del primer dígito  y  los segmentos AF,G C y D  para el segundo dígito

 

15

 

Montaje

Ahora que entendemos como funciona un display de 7 segmentos, la idea  es realmente sencilla  pues básicamente  consiste en auto-construirnos  dicho dígito  pensando en los  7 segmentos    de los que lo compone   usando para ellos  7 leds  acoplados a un caja  con    difusores para todos los leds  ¿sencillo verdad ?

Para el montaje  necesitaremos los siguientes elementos:

  • Trozos de cartón
  • Trozos de cartulina
  • 7 LEDs difusa
  • 7 resistencias de 50 ohm
  • Cinta carrocera (usada por los pintores )
  • Pegamento
  • Soporte con Esquema del display
  • Cables
  • Arduino uno
  • Un trozo de papel contacto

Una vez que tengamos el dígito compuesto por 7 los leds lo conectaremos a 7 salidas binarias de Arduino  siguiendo el siguiente esquema de conexiones;

  • PD2  segmento a;
  • PD3 segmento b
  • PD4 segmento c
  • PD5 segmento d
  • PD6 segmento e
  • PD7 segmento f
  • PD8 segmento g

Y para facilitar la gestión del display  también dos pulsadores

  •  PP1
  • PB2

Y finalmente   en la siguiente imagen podemos ver el esquema donde se aprecian claramente las resistencias de 50ohm para los leds   y las de 10 K para los pulsadores

 

arduino

 

Según la configuración ya decidida  para gestionar el display solo necesitamos mapear  cada combinación  de segmentos asociado a cada numero que queramos representar  ,  y por medio delos pulsadores incrementamos o decrementamos una unidas representando el siguiente o el anterior digito respectivamente

Como en muchos otros casos ,es de señalar que debemos controlar los rebotes en las pulsaciones para lo cual leeremos varias veces el valor de la entrada hasta asegurarnos que el valor esta estables.

 

El código arduino es bien sencillo

 

//definiciones de segmentos con las primeras pines digitales puerto A

const int a = 2;
const int b = 3;
const int c = 4;
const int d = 5;
const int e = 6;
const int f = 7;
const int g = 8;

//Definición de pines de entrada para los pulsadores
const int botonIncremento = 9;
const int botonDecremento = 10;

//valor para controlar los antirrebotes

const int tiempoAntirebote = 10;

//Al encender parece este numero

int cuenta = 0;  
int estadoBotonIncremento;
int estadoBotonAnteriorIncremento;
int estadoBotonDecremento;
int estadoBotonAnteriorDecremento;

boolean antirebote(int pin) {
int contador = 0;
boolean estado;
boolean estadoAnterior;

do {
estado = digitalRead(pin);
if(estado != estadoAnterior) {
contador = 0;
estadoAnterior = estado;

}
else {
contador = contador + 1;
}
delay(1);
} while(contador < tiempoAntirebote);

return estado;

}

void actualizarNumero() {
switch(cuenta) {
case 0:     // digito 1
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;

case 1:// valor 2

digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 2:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 3: //digito 3
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 4://digito 4
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 5: //digito 5
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 6: //digito 6
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 7: //digito 7
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 8: //digito 8
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 9: //digito 9
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
}

}

 

//programamos lo 7 primeros pines del puerto A como salida 

//y los dos primeros del puerto B como entrada 
void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(botonIncremento, INPUT);
pinMode(botonDecremento, INPUT);
}
void loop() {
estadoBotonIncremento = digitalRead(botonIncremento);
if(estadoBotonIncremento != estadoBotonAnteriorIncremento) {
if(antirebote(botonIncremento)) {
cuenta++;
if(cuenta > 9) {
cuenta = 9;

}
}
}
estadoBotonAnteriorIncremento = estadoBotonIncremento;

estadoBotonDecremento = digitalRead(botonDecremento);

if(estadoBotonDecremento != estadoBotonAnteriorDecremento) {
if(antirebote (botonDecremento)) {
cuenta–;
if(cuenta < 0)

{
cuenta = 0;
}
}
}
estadoBotonAnteriorDecremento = estadoBotonDecremento;

actualizarNumero();
}

 

 

Y finalmente en este vídeo del canal  MFH de youtube  podemos ver el montaje en funcionamiento

 

Interactuar con Netduino via twitter


ThingSpeak™ es un servicio web gratuito muy veterano  y del que hemos  hablado en este blog en numerosas ocasiones   que  permite recopilar y almacenar datos de sensores  conectados a Rasberry Pi, Arduino ,Netduino  entre otros  para enviarlos  hacia  un servicio de datalogger  en la nube.

Asimismo  también sirve para  desarrollar aplicaciones de Internet de las cosas como por ejemplo desencadenar ciertas acciones  ante determinados cambios en las medidas  , tal y como vamos a ver en este caso desencadenando envíos de tweets con  el motivo de la alerta.

 

 

bandwidth close up computer connection

Photo by panumas nikhomkhai on Pexels.com

 

El servicio de web de ThingSpeak es uno de los servicios mas veteranos  en la red proporcionando  aplicaciones que le permiten analizar y visualizar los datos en MATLAB®y luego actuar sobre los cambios en esos  datos desencadenando acciones.

Los datos de los sensores pueden enviarse a ThingSpeak desde  un  Arduino®, Raspberry Pi™, BeagleBone Black  asi como  desde Netduino+  entre otras  plataformas

 

En este post vamos a intentar  ver  cómo se puede enviar un tweet cuando los datos de punto de rocío superan un umbral  usando dos  aplicaciones  como son ThingTweet y React :

  •  ThingTweet  sirve  para vincular una cuenta Twitter® a su cuenta ThingSpeak. Sus dispositivos pueden enviar alertas a través de Twitter utilizando la API de TweetContol. Por ejemplo, puede hacer que un dispositivo tuitee cuando la temperatura de su invernadero disminuya o cuando las baterías de un dispositivo se estén agotando. Los pasos son sencillos : entraremos c en Link Twitter Account para vincular una cuenta de Twitter a su cuenta ThingSpeak y cuando se le pida que autorice a ThingTweet a usar su cuenta ingresaremos el nombre de usuario y contraseña de Twitter marcando la casilla Recordarme para guardar en caché las credenciales de Twitter en su pc  y por supuesto haciendo clic en Autorizar aplicación
  • React funciona con las aplicaciones ThingHTTP, ThingTweet y MATLAB Analysis para realizar acciones cuando los datos del canal cumplen una determinada condición. Por ejemplo se  puede hacer que una aplicación móvil informe su latitud y longitud a un canal ThingSpeak, de modo que cuando su posición esté dentro de una cierta distancia de su casa,  ThingHTTP encienda las luces de su sala.

Como pasos previos para poder usar ambos servicios  se requiere que ya han realizado estos pasos:

  • Crear una cuenta de  Twitter® .
  • Iniciar sesión a su cuenta de MathWorks®   o la cuenta de ThingSpeak™ , o crear una nueva cuenta de MathWorks .
  • Crear un canal como el canal calculados del   punto de rocío.
  • Leer los datos de estación meteorológica( por ejemplo desde una placa Netduino)  en su canal y calcular el punto de rocío como vimos en el post anterior

Nota : En este  ejemplo vamos a  utilizar una medida   intermedia que es calculada en función de la humedad  y temperatura  , pero lógicamente  los desencadenantes se pueden  lanzar desde medidas sencillas   que no requieran un calculo intermedio .

Vincular  la cuenta de Twitter  a ThingSpeak

Para empezar  tenemos que vincular una cuenta de twitter a  nuestra cuenta de thingspeak . Para ello  puede seguir lo siguintes  pasos:

  1. Validese en su cuenta de ThinSpeak
  2. Ir a aplicaciones(Apps) > ThingTweet.
  3. En la página ThingTweet, haga clic en (enlace de cuenta de Twitter (Link Twitter Account ) para vincular su cuenta de Twitter a tu cuenta de ThingSpeak.
  4. Tiene que autorizar el acceso a su cuenta de twitter desde ThingSpeak
  5. Introduzca su nombre de usuario de Twitter y contraseña y haga clic en Autorizar la aplicación.

  6. En la página de autorización , haga clic en volver a ThingTweet(back to ThingSpeak).   Nos avisara de que su cuenta de Twitter está relacionada con ThingSpeak  devolviendonos  el valor del APIKEY   , el cual por cierto podemos fiorzar a cambiar  gracis  al boton  Regenerate API Key.
  7. Si queremos  deshacer este cambio simplemente pulsaremos sobre el botón  desenlazar cuenta  (“Unlink Account”)

Reaccionar al cambio en el punto de rocío

Una vez vinculada   su cuenta de twitter a thingspeak    ya podemos indicar a React que  envie un tweet cada vez que el nivel de punto de rocío supere  un valor va sobre 15ªC , testeando el  canal cada 10 minutos.

Estos son los pasos para hacerlo:

  1. Ir a aplicaciones > react  hacera clic en Reaccionar de nuevo.
  2. Nombre este react por ejemplo como  “Tweet de punto de rocío.”
  3. Defina el tipo numérico.
  4. Ajuste la Frecuencia de la prueba a cada 10 minutos.
  5. Establecer la condición cuando el valor de la humedad en su canal alcanza o supera los 60:
    • Si canal: seleccione el canal de medición de punto de rocío.
    • campo: seleccione 3 (punto de rocío).
    • Para el tipo de condición, seleccione es mayor o igual a.
    • El valor de condición, entre 60 (se refiere a grados Fahrenheit)

    • Ajuste acción en ThingTweet.
    • Entrar en esta cadena en tweet a continuación:
      Turn off that humidifier! It's above 60F
    • Seleccione su cuenta de Twitter con la cuenta de Twitter.
    • En Opciones, elija Ejecutar acción cada vez que la condición se cumple.

    Click Save React.

El tweet se envíara cada vez que el nivel de humedad supere los 15,5ºC o 60 ° F.

Es evidente que esta facilidad de ThingSpeak   ,que sinsisteimo es soportado por un amplio abanico de hardware (como Raspberrry, Arduino o el propio Netduino), tiene una utilidad indudable para infinidad de condiciones  que nos pueden facilitar la vida como por ejemplo  apertura de puertas o ventanas,  temperaturas anómalas , caídas de tensión ,  y un largo etcétera.

Análisis de datos con MathWorks y Netduino


Este ejemplo muestra cómo leer datos de temperatura y humedad de ThingSpeak  ( del canal 12397)  , que recoge datos meteorológicos de un  dispositivo de  Iot que perfectamente  puede ser una placa  Arduino , Raspbery Pi o incluso  un Netduino.
La idea es enviar a los datos de temperatura y humedad en el canal de medición de punto de rocío, y calcular con arreglo a estos  datos el punto de rocío  utilizando ThingSpeak™ para visualizar los resultados en su canal.
El punto de rocío o temperatura de rocío es la más alta temperatura a la que se condensa el vapor de agua contenido en el aire, produciendo rocío, neblina, cualquier tipo de nube o, en caso de que la temperatura sea lo suficientemente baja, escarcha.

Este ejemplo  requiere que ya han realizado estos pasos:

  • Iniciar sesión a su cuenta de MathWorks®  o en la cuenta de ThingSpeak  o crear una nueva cuenta de MathWorks .
  • Crear un canal como el canal de medición de punto de rocío.

Leer datos de un canal

Leer la temperatura y humedad en el canal público de WeatherStation campos 3 y 4 y escribir los datos en campos 2 y 1, respectivamente, de su canal de medición de punto de rocío. Punto de rocío es calculado y escrito a campo 3.

Para usar el análisis de   MATLAB®  para leer, calcular y escribir los datos siga los siguientes pasos:

  1. Ir a la pestaña de aplicaciones y haga clic en Análisis de MATLAB.
  2. Haga clic en nuevo. Seleccione la plantilla personalizada y haga clic en crear.
  3. En el campo nombre , escriba.Dew Point Calculation
  4. En el campo de código MATLAB, introduzca las siguientes líneas de código.
    1. Guardar la estación pública canal ID y tu ID de canal de medición de punto de rocío a las variables.
      readChId = 12397;
      writeChId = 677;  % replace with your channel number
    2. Guardar su clave de API de escribir en una variable.
      writeKey = 'F6CSCVKX42WFZN9Y'; % Replace with your channel write key

      Para encontrar su canal ID y Write API Key, consulte información del canal en la pestaña de Mis canales .

    3. Leer los últimos 20 puntos de datos de temperatura con las marcas de tiempo y la humedad en el canal público de la estación meteorológica en las variables.
      [temp,time] = thingSpeakRead(readChId,'Fields',4,'NumPoints',20);
      humidity = thingSpeakRead(readChId,'Fields',3,'NumPoints',20);

Calcular el punto de rocío

Agregue el siguiente código MATLAB para calcular el punto de rocío con las lecturas de temperatura y humedad:

  1. Convertir la temperatura de Fahrenheit a Celsius.
    tempC = (5/9)*(temp-32);
  2. Especificar las constantes de vapor de agua () y (presión barométrica). bc
    b = 17.62;
    c = 243.5;
  3. Calcular el punto de rocío en grados Celsius.
    gamma = log(humidity/100) + b*tempC./(c+tempC);
    dewPoint = c*gamma./(b-gamma)
  4. Convertir el resultado a Fahrenheit.
    dewPointF = (dewPoint*1.8) + 32;
  5. Escribir datos en el canal de medición de punto de rocío. Este código entradas todos los datos en una operación e incluye las marcas de hora correcta.
    thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],...
    'TimeStamps',time,'Writekey',writeKey);

    El bloque completo de código aparece ahora como:

    % Enter your MATLAB Code below
    readChId = 12397;
    writeChId = ZZZZZ;              % Replace with your channel number
    writeKey = 'XXXXXXXXXXXXXXXX';  % Replace with your channel write key
    [temp,time] = thingSpeakRead(readChId,'Fields',4,'NumPoints',20);
    humidity = thingSpeakRead(readChId,'Fields',3,'NumPoints',20);
    tempC = (5/9)*(temp-32); 
    b = 17.62;
    c = 243.5;
    gamma = log(humidity/100) + b*tempC./(c+tempC);
    dewPoint = c*gamma./(b-gamma)
    dewPointF = (dewPoint*1.8) + 32;
    thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],...
    'TimeStamps',time,'Writekey',writeKey);
  6. Haga clic en Guardar y ejecutar para validar y procesar el código.Cualquier error en el código se indica en el campo de salida .
  7. A ver si el código funcionó con éxito, haga clic en su enlace de canal de Medición de punto de rocío en el panel de Información del canal .

El canal de medición de punto de rocío ahora muestra gráficos con datos de un canal de cada campo.

Código del calendario

Utilizaremos  la aplicación TimeControl para programar el cálculo del punto de rocío en el código de analisis MATLAB programando este  para leer los datos de la estación cada 30 minutos y calcular el punto de rocío

Estos son los pasos a seguir:

  1. Desplácese hasta la parte inferior de la página de MATLAB análisis cálculo de punto de rocío. Haga clic en TimeControl para abrir la aplicación MATLAB análisis pre-seleccion en el campo de acciones y el cálculo del punto de rocío como la ejecución de código.
  2. Nombre de su nuevo TimeControl Dew Point TC
  3. Elegir recurrentes en el campo de frecuencia .
  4. Elegir el minuto en el campo de la repetición .
  5. Seleccione 30 en el cada — minutos campo.
  6. Mantener el Tiempo de inicio en el valor predeterminado.
  7. Verificar que la acción es, y el código a ejecutar es el.MATLAB AnalysisDew Point Calculation
  8. Haga clic en Guardar TimeControl

Nota:Configurar un TimeControl para escribir datos en el canal utiliza mensajes disponibles en su cuenta de ThingSpeak. Esta acción puede agotar eventualmente mensajes disponibles, que se traduce en rechazo del canal de alimentación de actualizaciones. Asegúrese de que los datos que escribes a un canal de no se superponen en el dominio del tiempo como hace uso innecesario de los mensajes.

Visualizar medida de punto de rocío

Se puede utilizar la aplicación visualizaciones de MATLAB para visualizar los datos de punto de rocío medido, la temperatura y la humedad de tu canal de medición de punto de rocío. Este ejemplo utiliza la función Mostrar todos los puntos de tres datos en una única visualización.thingSpeakPlot

Ir a aplicaciones > MATLAB visualizacionesy haga clic en nueva para crear una visualización.

Alternativamente, usted puede hacer clic en Visualización de MATLAB en su punto de vista del canal de medición de punto de rocío.

Seleccione la plantilla personalizada y haga clic en crear.

  1. Nombre de la visualización “Punto de rocío.”
  2. Crear variables para su ID de canal de medición de punto de rocío y su clave de API de lectura. Sustituya los valores en el código con tu canal ID y la clave de API de lectura.
    readChId = 677
    readKey = '36LPYCQ19U37ANLE'
  3. Leer datos de los campos de canal y obtener los últimos 100 puntos de datos para:
    • Temperatura: De campo 1
    • Humedad: Del campo 2
    • Punto de Rocío: de campo 3
      [dewPointData,timeStamps] = thingSpeakRead(readChId,'fields',[1,2,3],...
          'NumPoints',100,'ReadKey',readKey);
  4. Parcela los datos x y y las etiquetas, un título y una leyenda.
    thingSpeakPlot(timeStamps,dewPointData,'xlabel','TimeStamps',...
        'ylabel','Measured Values','title','Dew Point Measurement',...
        'Legend',{'Temperature','Humidity','Dew Point'},'grid','on');

    El código se verá similar a este código:

    % Enter your MATLAB code below
    readChId = ZZZZZ              % Your Channel ID                 
    readKey = 'XXXXXXXXXXXXXXXX' %Your Read API Key
    [dewPointData,timeStamps] = thingSpeakRead(readChId,'fields',[1,2,3],...
        'NumPoints',100,'ReadKey',readKey);
        thingSpeakPlot(timeStamps,dewPointData,'xlabel','TimeStamps',...
        'ylabel','Measured Values','title','Dew Point Measurement',...
        'Legend',{'Temperature','Humidity','Dew Point'},'grid','on');
  5. Haga clic en Guardar y ejecutar. Si su código MATLAB no tiene errores, la salida de trama es similar a la trama que se muestra a continuación:

 

Control de nivel de agua con NodeMCU y Cayenne


En  este post  vamos   a ver nuevamente la gran versatilidad del sw de Cayenne , en este caso para controlar el nivel de un liquido   monitorando  este en tiempo real gracias al framework   de IoT gratuito  de Cayenne.

La finalidad de este proyecto es asegurar que un  depósito de agua siempre este lleno , porque podría suceder  que el suministro de agua sólo fluya a determinadas franjas horarias   por   lo que debemos permitir el flujo  solo cuando haya suministro  y el deposito no este lleno

Por tanto , el funcionamiento es relativamente simple  pues únicamente  la válvula se cerrará cuando el agua alcance el nivel superior del sensor.

La lista de materiales necesaria  para este proyecto es bastante reducida siendo el hardware necesario  el siguiente:

Picture of Bill of Materials

2. Sensor de nivel de líquido (calibrar primero para obtener el nivel de valor e inferior nivel superior)

Si usted necesita el sensor más profundo, puede cortar la tira superior del sensor y tome algún cable a dos lados del sensor

Picture of Bill of Materials

3. Módulo de relé de CH

Picture of Bill of Materials

4. Válvula solenoide 12V

5. 12V 2A fuente de alimentación

6. Cables de puente

 

En cuanto al Software necesario:

1. Arduino IDE

2. Cayenne para iOS/Android/Web Browser

Conectar NodeMCU Sensor líquido, módulo de relés y válvulas

ESP12E    esta basado en Arduino  pero cuenta   también conectividad wifi integrando la propia antena en la placa de circuito impreso en unas  dimensiones de  25.6mm x 34.2mm .  Además, por motivos de reducción de espacio esta placa no integra conexión usb  , para lo cual necesitaremos un USB FTDI   para programarlo o un  controlador Setup CH340g.

Esta placa cuenta con 11 pines digitales de entrada / salida, todos los pines tienen interruptor / pwm / I2C / 1-wire    siendo su chip principal el  ESP8266 CH340G

Una gran diferencia con una placa Arduino es que solo cuenta  con 1 entrada analógica (entrada máxima de 3,3 V)

 

Las conexiones son muy sencillas:

  • VIN (+5V): lo conectaremos a NodeMCU y al modulo Rele
  • 3.3V   : Alimentemos el sensor
  • GND : Sensor , Arduino y Rele
  • A0 de Arduino : a la salida del  sensor
  • D5 de Arduino : a la entra de control del Rele

 

Respecto al firmware necesitara  subir el código a NodeMCU, pera el cual debería   programar el NodeMCU con el IDE de Arduino.

Para  probar Cayenne  con el  ESP12E       necesitamos  programar su ESP-12E para conectarse a su punto de acceso wifi   .

Básicamente  el código a subir al    ESP12E     usa 3 librerías de Cayenne donde  tendremos que definir el SSID y la pwd de la red wifi así como las credenciales de Cayenne    ,

Es de destacar  la creación  de  dos puertos virtuales  para capturar  el  nivel de líquidos   en tiempo real  por el puerto A0  asi como accionar el rele por el puerto 14  , lo cual nos van a permitir comunicarnos con el API de Cayenne

Asimismo para efectos de pruebas se deja habilitado la salida por el pruerto serie de modo que podamos ver desde el IDE de Arduino  la evolucion del nivel del liquido y las actuaciones corresponientes

#include “CayenneDefines.h”
#include “CayenneWiFi.h”
#include “CayenneWiFiClient.h”
#define CAYENNE_PRINT Serial // Comment this out to disable prints and save space
#define RELAY_PIN 14 // RELAY PIN

const int sensorPin= A0; //sensor pin connected to analog pin A0
float liquid_level;
int liquid_percentage;
int top_level = 512;
int bottom_level = 3;

// Cayenne authentication token. This should be obtained from the Cayenne Dashboard.
char token[] = “”; // Insert your token here
char ssid[] = “”; // Insert your SSID here
char pwd[] = “”; // Insert your SSID password here

void setup() {
Serial.begin(115200);
Cayenne.begin(token, ssid, pwd);
pinMode(sensorPin, INPUT);
pinMode(RELAY_PIN, OUTPUT);
}

void loop() {
liquid_level = analogRead(sensorPin);
liquid_percentage = ((liquid_level-bottom_level)/top_level)*100;
Serial.println(liquid_level);
delay(100);
Cayenne.run();
}

CAYENNE_OUT(V10)
{
Cayenne.virtualWrite(V10, liquid_percentage);
}

CAYENNE_IN(V1)
{
// get value sent from dashboard
int currentValue = getValue.asInt(); // 0 to 1

// assuming you wire your relay as normally open
if (currentValue == 0) {
digitalWrite(RELAY_PIN, HIGH);
} else {
digitalWrite(RELAY_PIN, LOW);
}
}

Necesitara  subir  el programa anterior  WATER_CONTROL.ino, editar la contraseña del token, SSID de su red Wifi  , usaurio de Cayyene  así como editar valor nivel  inferior y superior

Entonce conecte su NodeMCU con el Cable USB al ordenador y cargue el código en NodeMCU mediante el IDE de Arduino.

Configuración Cayenne Dashboard

Hemos hablado en  muchas ocasiones de Cayenne  pues en realidad está concebido para  que su manejo sea realmente sencillo   de configurar

Nos iremos a  su   url :   https://cayenne.mydevices.com/  

Tras registrarnos nos iremos  al panel de control   ,clicamos en  Add new   y seleccionamos generic ESP8266

A continuación nos ofrece  la API key que deberemos añadir al sw del   ESP12E      y tras reiniciarlo  ya debería poderse  comunicar con el node de Cayenne

 

Si la placa  pues   está configurada con el MQTT  ( username /pwd)     asi como con conectividad  wifi ,  ya   debería  de  poder conectarse al framework de Cayenne   y podemos seguir hacia adelante añadiendo sensores que deberían estar de acuerdo con el sw instalado en el ESP12E

En este caso como hemos definido  dos puertos virtuales para nivel de liquiodso  y contol   necesitamos añadir dos widgets  asociados a esos dos canales:

  • Añadir widget de válvula interruptor del tablero de instrumentos del Cayenne y seleccione Virtual Pin 1.
  • Añadir Sensor analógico widget de Dashboard de cayena y el nombre de nivel de agua, seleccione Virtual Pin 10, unidad porcentaje

Picture of Setting Up Cayenne

Picture of Setting Up Cayenne

 

 

Configuración de  triggers

Los triggers  o disparadores en Cayenne son una forma de hacer que su placa  reaccione a un cambio  de un sensor conectado a él. Esto podría ser algo tan simple como un valor de temperatura superior a un cierto valor o incluso sólo si el ESP12E pierde la conexión, lo cual como se podría imaginar puede ser muy potente en la creación de dispositivos inteligentes que reaccionan a los alrededores ( como por ejemplo, si la habitación se pone demasiado fría, encienda un  calefactor, etc ).

El proceso de agregar un disparador es muy sencillo como vamos a ver a continuación:

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar un trigger desde el cuadro de abajo.
  3. Nombrar el trigger con un texto identificativo
  4. Ahora arrastrar y soltar su  ESP12E  desde la esquina izquierda en el caso de la caja.
  5. Por debajo de esto seleccionar el sensor 
  6. Ahora en el cuadro de selección a continuación, puede enviar  una notificación( bien a una dirección de correo electrónico o  a un  número de teléfono de un mensaje de texto pudiendo agregar ambos) o  una acción que en nuestro caso  sera activar desactiva  un relé. Asegúrese de marcar las casillas de verificación también.
  7. Ahora haga clic en “Save trigger”.

Haga  este  proceso para las  dos casuisticas:

  • Agregar desencadenadores y si el nivel del agua por encima de 100% entonces la válvula interruptor apague.
  • Agregar desencadenadores y si el nivel del agua por debajo de 100% entonces la válvula del interruptor se encienda
Picture of Setting Up CayennePicture of Setting Up Cayenne

 

Fuente   instructables.com