6 herramientas de domótica de código abierto


El Internet de las cosas no es sólo una palabra de moda, es una realidad que se ha expandido rápidamente desde la última vez que publicamos un artículo de revisión sobre las herramientas de domótica en 2016. En 2017, el 26,5% de los hogares estadounidenses ya tenían algún tipo de tecnología para hogares inteligentes en uso; en un plazo de cinco años, se espera que ese porcentaje se duplique.

Con un número cada vez mayor de dispositivos disponibles para ayudarle a automatizar, proteger y monitorear su hogar, nunca ha sido más fácil ni más tentador probar su mano en la automatización del hogar. Ya sea que esté buscando controlar su sistema HVAC de forma remota, integrar un cine en casa, proteger su hogar de robos, incendios u otras amenazas, reducir su consumo de energía o simplemente controlar algunas luces, hay innumerables dispositivos disponibles a su disposición.

Pero al mismo tiempo, muchos usuarios se preocupan por las implicaciones de seguridad y privacidad de traer nuevos dispositivos a sus hogares, una consideración muy real y seria. Quieren controlar quién tiene acceso a los sistemas vitales que controlan sus aparatos y registran cada momento de su vida cotidiana. Y es comprensible que en una época en la que incluso su refrigerador ahora sea un dispositivo inteligente, ¿no quiere saber si su refrigerador está llamando a casa? ¿No querría sin dudar en ello de que, incluso si concede permiso a un dispositivo para comunicarse externamente, solo es accesible para aquellos que están autorizados explícitamente?

Las preocupaciones de seguridad son algunas de las muchas razones por las que el código abierto será crítico para nuestro futuro con los dispositivos conectados. Ser capaz de comprender completamente los programas que controlan su hogar significa que puede ver, y si es necesario modificar, el código fuente que se ejecuta en los propios dispositivos.

Si bien los dispositivos conectados a menudo contienen componentes propietarios, un buen primer paso para incorporar código abierto a su sistema de domótica es asegurarse de que el dispositivo que une sus dispositivos y le presenta una interfaz para ellos (el “hub”) está abierto Fuente. Afortunadamente, hay muchas opciones por ahí, con opciones para ejecutar en todo, desde su computadora personal siempre activa a una Raspberry Pi.

Estos son solo algunos ejemplos de plataformas disponibles

 

 

Calaos

Calaos es una solución completa para domótica. Primero fue un sistema desarrollado por una empresa francesa del mismo nombre. Cuando la compañía fue cerrada durante 2013, toda la base de código fue de código abierto y lanzado como GPL. Una pequeña comunidad comenzó en torno al proyecto para continuar el desarrollo. La comunidad está creciendo cada día, el wiki y el foro están aquí para compartir información y buenas idea

Calaos está diseñado como una plataforma de domótica de pila completa, que incluye una aplicación de servidor, interfaz de pantalla táctil, aplicación web, aplicaciones móviles nativas para iOS y Android, y un sistema operativo Linux preconfigurado para funcionar debajo. El proyecto Calaos surgió de una empresa francesa, por lo que sus foros de apoyo están principalmente en francés, aunque la mayor parte del material instructivo y la documentación han sido traducidos al inglés.

Algunos ejemplos de lo que se puede hacer:

  • Bienvenido a casa! Después de un largo día de trabajo, ¡relájese! Cuando se vaya a casa, Calaos preparará un ambiente dulce. Las persianas están cerradas, las luces atenuadas, la música favorita comienza a reproducirse.
  • Controla su música.Comparta toda Su música en toda la casa. No mire donde lo tiene, no  transfieras más, simplemente presionE play en la habitación que debe escuchar Sus listas de reproducción favoritas.
  • Crear escenario: Todos los artículos vinculados a Calaos se pueden automatizar por tiempo, ambiente o estado de ánimo. Su hogar se vuelve inteligente a partir de hoy. La creación de un escenario se realiza en unos pocos clics en la pantalla táctil.
  • Configurar :Tiene herramientas escritas que le permiten configurar fácilmente su casa directamente desde su computadora. ¿Desea agregar más elementos a su sistema? Sólo tiene que instalar Calaos Installer.

Calaos está licenciado bajo la versión 3 de la GPL y puede ver su fuente en GitHub.

 

Domoticz

Domoticz es un sistema domótico con una biblioteca bastante amplia de dispositivos compatibles, que van desde estaciones meteorológicas hasta detectores de humo y controles remotos, y un gran número de integraciones adicionales de terceros se documentan en el sitio web del proyecto. Está diseñado con un front-end HTML5, por lo que es accesible desde los navegadores de escritorio y la mayoría de los teléfonos inteligentes modernos, y es ligero, se ejecuta en muchos dispositivos de baja potencia como raspberry Pi.

 

Es libre  y Open Source   y ademas esta diseñado para funcionar en varios sistemas operativos(es compatible con dispositivos Linux ,windows   embebidos ). La interfaz de usuario es un front-end web HTML5 escalable y se adapta automáticamente para dispositivos de escritorio y móviles.
Es compatible con todos los navegadores aunque  para los usuarios de Internet Explorer se necesita la versión 10+.

Algunas características destacables:

  • Hardware: Transceptor RFXCOM, Z-Wave, P1 Smart Meter, YouLess Meter, Contadores de pulsos, 1-Wire, EnOcean, y mucho más….
  • Registro extendido
  • Notificaciones push de iPhone / Android
  • Sensores/interruptores de aprendizaje automático
  • Creación manual de códigos de conmutación
  • Compartir / Usar dispositivos externos
  • Diseñado para la simplicidad

Domoticz está escrito principalmente en C/C++ bajo la GPLv3, y su código fuente se puede examinar en GitHub.

 

Home Assistant

Home Assistant es una plataforma de domótica de código abierto diseñada para implementarse fácilmente en casi cualquier máquina que pueda ejecutar Python 3, desde una Raspberry Pi hasta un dispositivo de almacenamiento conectado a la red (NAS), e incluso se suministra con un contenedor Docker para realizar la implementación en otros sistemas una brisa. Se integra con un gran número de ofertas comerciales y de código abierto, lo que le permite vincular, por ejemplo, IFTTT, información meteorológica o su dispositivo Amazon Echo, para controlar el hardware desde bloqueos hasta luces.

 

Home Assistant se publica bajo una licencia mIT,y su fuente se puede descargar desde GitHub.

 

 

 

Misterhouse

MisterHouse ha ganado mucho terreno desde 2016, cuando era “otra opción a considerar” en esta lista. Utiliza scripts Perl para monitorear cualquier cosa que pueda ser consultada por un ordenador o controlar cualquier cosa capaz de ser controlada a distancia.

Responde a los comandos de voz, hora del día, clima, ubicación y otros eventos para encender las luces, despertarte, grabar tu programa de televisión favorito, anunciar a las personas que llaman, advertir que tu puerta principal está abierta, reportar cuánto tiempo ha estado tu hijo en línea, te dicen si tu el coche de su hija está acelerando, y mucho más. Se ejecuta en ordenadores Linux, macOS y Windows y puede leer/escribir desde una amplia variedad de dispositivos, incluidos sistemas de seguridad, estaciones meteorológicas, identificador de llamadas, enrutadores, sistemas de ubicación de vehículos y más

MisterHouse está licenciado bajo la GPLv2 y puede ver su código fuente en GitHub.

OpenHAB

OpenHAB (abreviatura de Open Home Automation Bus) es una de las herramientas de domótica más conocidas entre los entusiastas del código abierto, con una gran comunidad de usuarios y un buen número de dispositivos e integraciones compatibles.

Escrito en Java, openHAB es portátil en la mayoría de los principales sistemas operativos e incluso funciona muy bien en Raspberry Pi. Compatible con cientos de dispositivos, openHAB está diseñado para ser independiente del dispositivo, al tiempo que facilita a los desarrolladores agregar sus propios dispositivos o plugins al sistema. OpenHAB también incluye aplicaciones iOS y Android para el control de dispositivos, así como herramientas de diseño para que pueda crear su propia interfaz de usuario para su sistema doméstico.

Con su arquitectura conectable openHAB soporta más de 200 diferentes tecnologías y sistemas y miles de dispositivos permitiendo además  automatice con facilidad . POr ejemplo puede utilizar un motor potente y flexible para diseñar reglas,con disparadores basados en tiempo y eventos, scripts, acciones, notificaciones y control de voz.

El sw puede  correr  en todas partes :Linux, macOS, Windows, Raspberry Pi, PINE64, Docker, Synology… accediendo a él con aplicaciones para la web, iOS, Android y otros.

Por cierto openHAB se ejecuta en su hardware, no requiere ningún servicio en la nube para funcionar, mantiene sus datos de forma privada en casa y habla directamente con sus dispositivos locales siempre que sea posible. En el centro de sua filosofía es que siempre el usuario tiene el control  aunque es amigable con la nube pues las integraciones están disponibles para las plataformas de hogar inteligente basadas en la nube más populares, como Google Assistant, Amazon Alexa, Apple HomeKit e IFTTT. Utilice el conector openHAB Cloud con el servicio de myopenhab.org gratuito o hospede el suyo propio

 
Una opción deseable es probar  la imagen openHAB  proporcionada para Raspberry Pi, una opción de hardware ampliamente utilizada y recomendada. Flashee una tarjeta SD, arranque y disfrute de su configuración openHAB actualizada con ajustes del sistema y software convenientemente preconfigurados como Samba, Grafana y Eclipse Mosquitto.

Puede encontrar el código fuente de openHAB en GitHub con licencia bajo la licencia pública Eclipse.

OpenMotics

OpenMotics es un sistema domótico con hardware y software bajo licencias de código abierto. Está diseñado para proporcionar un sistema completo para controlar dispositivos, en lugar de unir muchos dispositivos de diferentes proveedores. A diferencia de muchos de los otros sistemas diseñados principalmente para un fácil reacondicionamiento, OpenMotics se centra en una solución cableada. 

La plataforma de OpenMotics combina hardware de código abierto asequible con soluciones modernas en la nube. La plataforma intuitiva aprende de su comportamiento y puede expandirse a sus necesidades personales suscribiéndose a servicios adicionales.

Tambien openMotics  esta disponible para profesionales :Smart Homes ofrece beneficios significativos durante las fases de planificación, diseño y construcción de cualquier nuevo hogar, oficina u otro edificio.

El código fuente de OpenMotics está licenciado bajo la GPLv2 y está disponible para su descarga en GitHub.

 

 


Estas no son las únicas opciones disponibles, por supuesto. Muchos entusiastas de la domótica van con una solución diferente, o incluso deciden rodar la suya propia. Otros usuarios eligen utilizar dispositivos domésticos inteligentes individuales sin integrarlos en un único sistema integral.

Si las soluciones anteriores no satisfacen sus necesidades, estas son algunas alternativas potenciales a tener en cuenta:

  • EventGhost es una herramienta de automatización de cine en casa de código abierto (GPL v2) que funciona solo en equipos Microsoft Windows. Permite a los usuarios controlar los EQUIPOS multimedia y el hardware adjunto mediante el uso de plugins que activan macros o mediante la escritura de scripts de Python personalizados.
  • ioBroker es una plataforma IoT basada en JavaScript que puede controlar luces, cerraduras, termostatos, medios, webcams y más. Se ejecutará en cualquier hardware que ejecute Node.js, incluidos Windows, Linux y macOS, y sea de código abierto bajo la licencia MIT.
  • Jeedom es una plataforma de domótica compuesta por software de código abierto (GPL v2) para controlar luces, cerraduras, medios y más. Incluye una aplicación móvil (Android e iOS) y funciona en PC Linux; la compañía también vende centros que, según según él, proporcionan una solución lista para usar para configurar la automatización del hogar.
  • LinuxMCE se presenta a sí mismo como el “pegamento digital” entre sus medios y todos sus aparatos eléctricos.” Se ejecuta en Linux (incluyendo Raspberry Pi), se lanza bajo la licenciade código abierto Pluto, y se puede utilizar para la seguridad del hogar, telecomunicaciones (VoIP y correo de voz), equipos audiovisuales, domótica, y, de forma única, para jugar videojuegos.
  • OpenNetHome,al igual que las otras soluciones de esta categoría, es un software de código abierto para el control de luces, alarmas, electrodomésticos, etc. Se basa en Java y Apache Maven, funciona en Windows, macOS y Linux, incluyendo Raspberry Pi, y se lanza bajo GPLv3.
  • Smarthomatic es un marco de domótica de código abierto que se concentra en dispositivos de hardware y software, en lugar de interfaces de usuario. Licenciado bajo GPLv3,se utiliza para cosas como controlar luces, electrodomésticos y humedad del aire, medir la temperatura ambiente y recordar regar sus plantas.

 

 

 

 

 

Ahora es su turno: ¿Ya tiene un sistema de domótica de código abierto en su lugar? O tal vez usted está investigando las opciones para crear uno. ¿Qué consejo tendría para un recién llegado a la domótica y qué sistema o sistemas recomendaría?

Simple cámara de seguridad


En efecto gracias al nivel de integración alcanzado , cada vez hay soluciones más “sencillas” a problemas de computación en tiempo real que tradicionalmente han sido  muy complejos  como por ejemplo puede ser el reconocimiento y detección de imágenes en tiempo real .

Como muestra  de este tipo de soluciones  vamos a ver la placa ESP-EYE , una  pequeña placa de desarrollo del fabricante chino Espressif centrada en el  reconocimiento de imágenes  con  procesamiento de audio en aplicaciones AIoT

Realmente esta solución  se basa en dos componentes claramente  diferenciados:

  • El hardware  :  esta solución es soportable por muy diferentes propuesta  pero el  hw  más sencillo  y del que vamos  a ver en este post   el ESP-EYE , una placa de desarrollo  de  menos de 30€  para el reconocimiento de imágenes y el procesamiento de audio, que se puede utilizar en varias aplicaciones AIoT. Cuenta con un chip ESP32, una cámara de 2 megapíxeles y un micrófono. ESP-EYE ofrece mucho almacenamiento, con una PSRAM de 8 Mbyte y un flash de 4 Mbyte. También es compatible con la transmisión de imágenes a través de Wi-Fi y depuración a través de un puerto Micro-USB. Aunque el ESP-EYE es una opción en kit  muy asequible, el fabricante también ofrece una opción más potente :Esp-Wrover-Kit

 

  • El software :  ESP-WHO, que  es un marco de desarrollo de detección y reconocimiento de rostros diseñado para aplicaciones AIoT. Puede usarse con la placa de desarrollo ESP-EYE, el ESP-WROVER-KIT calificado por Amazon FreeRTOS u otras placas de desarrollo basadas en ESP32. Luego, al agregar solo unos pocos periféricos, como cámaras y pantallas, puede crear fácilmente aplicaciones AIoT completas.  Para ejecutar ESP-WHO, debe tener una placa de desarrollo que integre un módulo ESP32 que tenga suficientes pines GPIO y más de 4 MB de RAM externa SP  como la placa  anteriormente comentada (ESP-EYE ), aunque  no obstante  ESP-WROVER-KIT  también pueden ser otra opción como placa de pruebas.

 

Espressif ESP-EYE

Como hemos comentados hablado  estamos ante una Placa de desarrollo de Espressif para reconocimiento de imágenes y procesamiento de audio en aplicaciones AIoT.

Espressif , el fabricante  ofrece una solución AIoT completa que combina ESP32 con un marco de desarrollo de inteligencia artificial (AI).  Esta solución incluye la placa de desarrollo ESP-EYE, junto con los marcos de desarrollo IoT y AI de Espressif, también conocidos como ESP-IDF y ESP-WHO, respectivamente.

 

 

ESP-EYE es una placa de desarrollo para el reconocimiento de imágenes y el procesamiento de audio, que se puede utilizar en varias aplicaciones AIoT. Cuenta con un chip ESP32, una cámara de 2 megapíxeles y un micrófono, todo ello integrado en una minúscula placa de 8 x4 cm (mas o menos como un pen-drive USB).

ESP-EYE ofrece mucho almacenamiento, con una PSRAM de 8 Mbyte y un flash de 4 Mbyte. También es compatible con la transmisión de imágenes a través de Wi-Fi y depuración a través de un puerto Micro-USB.

 

 

Aunque el sl fabricante ha dejado disponible en Github su sw , también  puede apoyarse en otras soluciones del mismo fabricante como el ESP-WROVER-KIT-VB que f ofrece una solución integrada  AIoT completa que combina un ESP32 con un marco de desarrollo de inteligencia artificial   y además incluye la placa de desarrollo ESP-EYE, junto con los marcos de desarrollo IoT y AI de Espressif, también conocidos como ESP-IDF y ESP-WHO, respectivamente.

 

ESP-WROVER-KIT-VB

Es una placa de desarrollo de ultra bajo consumo altamente integrada que incluye Flash y PSRAM  agregando una interfaz USB, una pantalla LCD de 3.2 “, una interfaz de cámara OV7670 y una ranura para tarjeta micro SD.Alcanza un gran rendimiento con una RAM de 4.5 MB y una CPU de doble núcleo de 240 MHz permitiendo creer cámaras de Internet, pantallas inteligentes o radios de Internet conectando pantallas LCD, micrófonos y códecs ) , todo ello a un precio relativamente competitivo (  unos 62€)

Esta  placa Esp-Wrover-Kit  también del mismo  fabricante   Expressif es otra opción  que puede soportar el software  ESP-WHO , En este caso es una una placa de desarrollo calificada por AWS( Amazon Web Services ) . Además del ESP-IDF SDK de Espressif, puede usar Amazon FreeRTOS en ESP-WROVER-KIT-VB. Amazon FreeRTOS proporciona conectividad lista para usar con AWS IoT, AWS Greengrass y otros servicios de AWS.

Aunque  ESP32 admite la depuración JTAG, este modulo  ESP-WROVER-KIT-VB integra un depurador USB también, lo cual  hace que la depuración y el rastreo de aplicaciones complejas sea muy fácil, sin la necesidad de ningún hardware adicional.

ESP-WROVER-KIT-VB es pues la versión mejorada del ESP-WROVER-KIT ( de hecho cuesta casi el doble que la  version anterior) . Su PSRAM  en l aversion 2 aumenta a 8 MBytes, mientras que esta placa de desarrollo también cuenta con una interfaz de tarjeta Micro-SD de alta velocidad, una interfaz de cámara VGA, un panel LCD SPI de 3.2 ”y capacidades de expansión de E / S. Asimismo cuenta con  un procesador de doble núcleo, radios Bluetooth y WiFi, y 520 KB de SRAM.

Ultimamente estan distribuyendo la versión 3 que contiene 32 Mbit adicionales de PSRAM  siendo  el ESP32 s compatible con SPI, I2C, serie, etc.

Espressif admite dos cadenas de herramientas:

  • El entorno de lenguaje C nativo que se ejecuta bajo el sistema operativo en tiempo real FreeRTOS
  • El entorno Arduino C / C ++. Los programas desarrollados usando el entorno Arduino en realidad se ejecutan como una tarea en FreeRTOS y pueden usar las bibliotecas FreeRTOS.

Puede ser  preocupante el soporte para el controlador LCD  ya  que las versiones 2 y 3 de la placa utilizan un controlador ST7789V pero la placa de la versión 1 utiliza un controlador ILI9341.  La última versión de la demostración TFT simple en ESP32 SDK llamada spi_master se puede configurar para ejecutarse en cualquiera de los ESP32-WROVER-KIT. No obstante “Loboris” en github tiene una biblioteca TFT  con todas las funciones con opción de configuración para construir la biblioteca y el programa de demostración para la versión 3 WROVER-KIT. Incluso con SPI, la actualización de la pantalla es muy rápida.

No se incluye documentación con la placa, pero hay mucha documentación en la web, y el SDK nativo viene con una serie de ejemplos útiles. La desventaja es que el ESP32 es relativamente nuevo, parte del software está cambiando y faltan algunas bibliotecas de Arduino.

Sin dua el ESP32-WROVER-KIT es una gran pieza de hardware, aunque su uso requiere cierta experiencia con microcontroladores y cierta tenacidad para examinar la documentación en línea y el código de ejemplo , pero quizás valga la pena el esfuerzo por toda la potencia que le brinda esta placa.

EL software

El sw   necesario se  compone del  marco de desarrollo IoT  ( también llamado ESP-IDF  ) y la AI de Espressif ( también conocidos como ESP-WHO ).

Para ejecutar ESP-WHO, debe tener una placa de desarrollo que integre un módulo ESP32 generico que tenga suficientes pines GPIO y más de 4 MB de RAM externa SPI  y una cámara CCD . Lo mas sencillo es usar el  ESP-WROVER-KIT o el recomndado  por el fabricante:  el   ESP-EYE que hemos visto integra el ESP32 y la cámara integrado en una solución de bajo coste

 

 

ESP-WHO es pues  la utilidad de detección, reconocimiento e imagen son el núcleo de la plataforma   constando en realidad de los siguientes módulos:

  • Image Utility ofrece API de procesamiento de imágenes fundamentales.
  • La detección toma imágenes como entrada y proporciona la posición de la cara si hay una cara. Se implementa con el modelo MTMN, que se refiere a MTCNN y MobileNets .
  • El reconocimiento es identificar a la persona en particular y necesita los resultados de la detección. Se implementa con el modelo MobileFace.
  • La optimización consiste principalmente en aumentar la precisión de la inferencia y acelerar todo el proceso. Pero también podría cambiar la estructura de la red, actualizar los coeficientes, refactorizar el código, etc.

Tanto la entrada como la salida son flexibles porque las fuentes de imagen pueden ingresarse a través de la cámara ( aunque sin embargo, no proporcionan  muchos controladores en este momento, ya que los de otros módulos de cámara se lanzarán en el futuro)  y porque los resultados se pueden mostrar  a través de la línea de comando, un LCD o incluso el sitio web a través del servicio de Wi-Fi http.

 

Para saber cómo configurar el módulo ESP32 para sus aplicaciones, puede consultar el archivo README.md de cada ejemplo del respositorio de github ( https://github.com/espressif/esp-who )

Preparación de software

La resolución recomendada de la imagen de entrada es QVGA (320×240) . En cuanto a elegir la cámara si no usa el citado modulo recomendado  ESP-EYE      el módulo ESP32 usado   deberá tener libre los  pines específicos según la  cámara que use Por ahora el  sw  proporcionado soporta el controlador de OV2640 y OV3660 , que son muy recomendables para comenzar.

Veamos como instalar los dos módulos sw necesarios:

 ESP-WHO

Asegúrese de clonar el proyecto de forma recursiva usando el siguiente comando:

git clone --recursive https://github.com/espressif/esp-who.git

Si clona un proyecto sin --recursive ( es decir usando el indicador --recursive), vaya al directorio esp-who y ejecute el comando git submodule update --init antes de hacer nada.

 ESP-IDF

Consulte las guías de configuración para obtener instrucciones detalladas para configurar el ESP-IDF:Guía de inicio para la versión estable de ESP-IDF

En este caso, tomamos ESP-IDF v3.2 como la versión de prueba.Si ya ha configurado ESP-IDF antes y no desea cambiar el existente, puede señalar IDF_PATH al ESP-IDF que se encuentra en ESP-WHO.

 Otros componentes sw

Otros componentes  sw necesarios lo constituye  el marco principal del SDK, con algunos controladores y algunos  algoritmos dentro.

  • Cámara :  El componente de cámara contiene controladores para dispositivos de cámara de ESP32.
  • Face de esp: El componente esp-face contiene las API de las redes neuronales ESP-WHO, incluido el marco de detección y reconocimiento de rostros.

Ejemplos

La carpeta de /examples/  del respositorio de github ( https://github.com/espressif/esp-who )   contiene ejemplos de aplicaciones que demuestran las características API de ESP-WHO.

Una buena muestra es la  detección de rostros , para lo cual habría que seguir los siguientes pasos:

  1. esp-who/examples/single_chip/detection_with_command_line a una carpeta de ejemplo esp-who/examples/single_chip/detection_with_command_line .
  2.  cd esp-who/examples/single_chip/detection_with_command_line
  1. Compila y actualiza el proyecto.   idf.py build idf.py flash -p [PORT]
  1. Los usuarios avanzados pueden modificar algunas opciones mediante el comando idf.py menuconfig .

Verifique README.md de cada ejemplo  del respositorio de github ( https://github.com/espressif/esp-who )      para más detalles.

Demo

En el siguiente , podemos ver  cómo hacer su propio proyecto de seguridad para el hogar en solo 5 minutos utilizando la placa   ESP-EYE y una Raspberry Pi para visualizar el resultado aunque   puede usarse un pc portatil ,tableta , etc en su lugar  . Este proyecto  además es  plug and play pues  apenas  requiere ningún conocimiento de codificación o hardware.
Para  hacer su propio  dispositivo de transmisión inalámbrica por tanto sólo usaremos  una a pantalla LCD táctil conectada a la Raspberry pi . Como normalmente el fabricante del LCD suele incluir las instrucciones necesarias para  conectar esta a la Raspberry Pi y que sea funcional en la demo  no se requiere ninguna codificación y tampoco  ningún circuito   ya que nos bastará  conectar estos dispositivos y empezar a transmitir
En realidad  no es dificil  conectar un apantalla tactil a una raspberry pi   , pues de  hecho en este  blog vimos en este post http://soloelectronicos.com/2018/12/02/como-instalar-una-pantalla-tactil-de-5-en-una-raspberry-pi-3/  como hacerlo con un simple escudo   de kuman  y  cargando en nuestra Raspberry Pi la imagen de Raspbian con los drivers ya instalados

En primer lugar necesitaremos encender este ESP  alimentando con 5v DC por medio del puerto microUSB . En el inicio del LED rojo se enciende  en el ESP ,pero   el LED rojo comenzará a parpadear que revela que este dispositivo  se despierta  y ha creado  su punto de acceso propio al  que se  puede  conectar todos los dispositivos .

En este ejemplo  como se usa  Raspberry Pi para ver  los datos  que vienen del CSPI ,encenderemos la placa Raspberry Pi . Para la primera vez que se conecte es recomendable  tener teclado y ratón conectados a la Raspberry Pi , pero esto  sólo será para  la primera vez  pues después  el ajuste se guardará en esta Raspberry Pi y no necesitará  teclado y ratón ,ya que se puede utilizar  la pantalla táctil

Cómo  está abierto  el punto de acceso ,sólo necesitamos para conectar a través de este punto ,  abrir el navegador web y conectarnos a esta dirección IP( doble barra oblicua ,dos puntos y la ip del módulo y   podremos ver  la imagen que esta transmitiendo la cámara .

Para la  segunda vez no hay necesidad de utilizar este tipo de teclado porque una Raspberry Pi automáticamente se conectara con este punto de acceso particular y en el navegador puede usar esta dirección IP ,la cual  se guardará en el historial para que pueda tocar    la  dirección IP en el historial  y acceder directamente

 

 

En este video, pues  hemos visto cómo hacer su propio proyecto de seguridad para el hogar en solo 5 minutos utilizando el tablero ESP-EYE y Raspberry Pi, proyecto por cierto que como hemos visto es plug and play , y no requiere ningún conocimiento de codificación o hardware.

!Este módulo sin duda es una versátil aliado para múltiples retos  que se nos presente!

 

Raspberry Pi 4 ya a la venta en España


Después de  varios meses de espera  en efecto ya esta disponible  en Amazon España la nueva Raspberry Pi 4  a 59,99 €,  siendo compatible con el envío gratuito, si bien  por el momento no hay  disponible   ningún descuento, el precio de la placa es lo suficientemente bajo  (  solo  unos 20€ mas por la version anterior ) como para atreverse con la compra, aunque debería ser consciente de que en principio  tarde en llegar a su hogar (algunos usuarios hablan de  entre  dos a cinco semanas ) ,pero en todo caso, si acaban entrando unidades durante los próximos días, probablemente Amazoon  la podría enviar antes de dicho plazo.

Estas son algunas de las características mas destacables de esta nueva placa:

  • CPU ARM Cortex-A72 de cuatro núcleos y 1,5 GHz de 64 bits (rendimiento ~ 3)  .Recordad  que Raspberry Pi 3, contaba  un procesador bastante inferior del fabricante BroadCom  quad-core de 64 bits con 1,4 GHz
  •  4 GB de SDRAM LPDDR4 frente a 1GB de RAM máxima admitida en la Raspberry pi 3
  • Gigabit Ethernet de rendimiento completo
  • Redes inalámbricas de doble banda 802.11ac. La LAN inalámbrica de doble banda viene con certificación de cumplimiento modular, lo que permite que la placa se diseñe en productos finales con pruebas de cumplimiento de LAN inalámbrica significativamente reducidas, lo que mejora tanto el costo como el tiempo de comercialización.
  • Bluetooth 5.0
  • Dos puertos USB 3.0 y dos puertos USB 2.0
  • Gráficos VideoCore VI, compatibles con OpenGL ES 3.x Decodificación de hardware 4Kp60 de video HEVC
  • Compatibilidad completa con productos Raspberry Pi anteriores
  • La Raspberry Pi 4 NO   mantiene la misma huella mecánica que la Raspberry Pi 2 Model B y la Raspberry Pi 3 Model B. Además de ser más potente, es algo más grande ,lo que queda patente  en las cajas  que no servirán de los modelos  Pi 3 Model B+o anteriores,
  • Se mantiene  el conector ethernet  y los 4 conectores USB ( dos de tipo 3.3) ,cabecera GPIO estándar de 40 pines de Raspberry Pi, el Puerto de pantalla MIPI DSI de 2 carriles, el puerto de cámara MIPI CSI de 2 carriles, el puerto de audio compuesto y vídeo compuesto de 4 hilos de 3 1/2″
  • Soporte de monitor dual, a resoluciones de hasta 4K   motivo por el que se ha sustituido la salida de vídeo por dos  conectores  puertos micro-HDMI (hasta 4kp60 compatibles ) para conectar hasta dos monitores   , 
  • Ranura para tarjeta micro SD para cargar el sistema operativo y el almacenamiento de datos
  • Alimentación  via 5 V CC a través del conector USB-C (mínimo 3 A *) , 5V DC a través del encabezado GPIO (mínimo 3A *)o  alimentación a través de Ethernet (PoE) 

 

Esta placa no solo tiene un procesador mas potente( hasta tres veces más potencia de procesamiento que su antecesor)  y mas RAM, tambien  es más rápida tanto por Ethernet ( que por cierto no seta limitado, como la version anterior, por lo que tenemos una conexión Gigabit en la que no entra en juego el cuello de botella del procesador y del propio  RJ45), como por Wi-Fi+  y en los puertos USB. Por  ejemplo, gracias a los USB 3.0 , podemos conectar un SSD externo y aprovechar el ancho de banda perfectamente para transferir datos.

Igualmente el puerto para la tarjeta microSD también es más rápido que en anteriores versiones.

Lo mas destacable es  su rendimiento , pues su análisis, según Halfacree   la capacidad de cálculo de la placa, así como el ancho de banda de la memoria LPDDR4   es muy superior  frente a la LPDDC2 de la Raspberry Pi 3 Model B+

 

Utilidades

Lo de hackear la NASA con una Raspberry Pi es totalmente cierto, algo que se ha descubierto hace poco, pero además de para eso, sirve para mucho más. Es una excelente herramienta en entornos educativos, un ”juguete” para enseñar a programar, se puede usar para desarrollar proyectos de IA y robótica, para crear tablets y portátiles y hasta como consola, además de como ordenador de sobremesa, claro

Aquí  algunas  ideas  para sacarle el máximo partido:

  • Aplicaciones  a la enseñanza y a la educación: Programación de software, robótica, arte inteligente, diseño de electrónica, juegos – desarrollo de aplicaciones, computación en la nube, redes neuronales – AI.
  • Aplicaciones  relacionadas con la domotica (a casa inteligente):Control de calefacción – iluminación, detección ambiental, cámara IP – CCTV, transmisión de audio – video, asistente digital -Alexa, Google, puntos de acceso inalámbrico, radio definida por software, conectividad en la nube, juguetes – robots interactivos.
  • Aplicaciones en vehículos conectados: entretenmiento en el automóvil, drones autónomos, seguimiento – navegación GPS, detección ambiental, cámara IP, asistente digital – Alexa, Google, puntos de acceso inalámbrico, radio definida por software, conectividad en la nube, redes neuronales / AI
  • Aplicación en edificios y a la industria 4.0: Control de calefacción – iluminación, detección ambiental, cámara IP – CCTV, señalización – publicidad digital, puntos de acceso inalámbrico, transmisión de audio – video, punto de venta electrónico, conectividad en la nube, LoRaWan y SigFox, redes neuronales – AI, máquinas conectadas, radio definida por software, prueba automatizada, control del motor, montaje robótico.
  • Cluster de procesadores: hay personas que estan lanzando a construir un Cluster dado que la versión más nueva es más rápida , mayor cantidad de RAM y ademas pensando en la capacidad de computo  resultante  es mas asequible que cualquier otra solución 

 

 

 

Como vemos  , a pesar del ruido generado especialmente por su mayor calentamiento  frente a las versiones anteriores ( en parte debido a  su cpu que proporciona  hasta tres veces más potencia de procesamiento que su antecesor ) ,se trata de la Raspberry Pi más potente lanzada hasta la fecha,  que no solo  se queda ahí pues incluso es capaz de soportar dos monitores  4K independientes de manera simultánea y  mejores comunicaciones  a todos los niveles  . .. 

 

Concurso Azure Sphere


En la era de IoT, nuestra vida está cada vez más integrada con la tecnología  gracias a la capacidad de los dispositivos de consumo cotidiano, las máquinas industriales, los vehículos y los electrodomésticos para interactuar entre sí mediante la conectividad de Internet integrada ha hecho la vida más fácil y eficiente.

Microsoft ha desarrollado Azure Sphere para el desarrollo de dispositivos de microcontroladores (MCU) altamente seguros compatibles con implementaciones de IoT  , intentando  asegurarse de que los dispositivos innovadores puedan continuar alterando el status quo y mejorando nuestras vidas sin sacrificar el importante aspecto de  nuestra seguridad, aspecto  de los mas  crucial para  que el IoT pueda  seguir evolucionando. 

En este senctido  Microsoft  ha hecho una llamada a todos los ingenieros y desarrolladores de todo el mundo para crear proyectos altamente seguros, impulsados ​​por MCU utilizando Azure Sphere, diseñando formas creativas para asegurar lo que más lo necesita: ¡todo! 

Asegurar sus datos es importante en una gran cantidad de industrias. Aquí hay algunas ideas para comenzar:

  • Integrar Azure Sphere en dispositivos perimetrales de IoT nuevos o existentes
  • Asegurar sus proyectos de electrónica de consumo .
  • Innovaciones en torno al comercio seguro e inteligente
  • Construccion de soluciones robustas y seguras para edificios y domótica.
  • Diseñar soluciones seguras de fábrica.
  • Crear soluciones de energías renovables

La idea  pues es crear un nuevo proyecto en torno al concepto de seguridad o simplemente mejore la seguridad de sus proyectos existentes con su nuevo kit de Azure Sphere  contandoles detalles urante la experiencia. ¿La mejor parte? ¡Avnet está regalando hasta 20,000 Kits de Esfera Azure gratis para que podamos comenzar!

shutterstock_674647300.jpg

 

¿Qué es Microsoft Azure Sphere?

Azure Sphere consta de tres capas de seguridad: en el sistema operativo, en la nube y en la MCU.

  • Seguridad en el sistema operativo:Un SO creado a propósito reepecto a aspectos como  la seguridad y agilidad para crear una plataforma confiable para nuevas experiencias de IoT. Un sistema operativo seguro construye innovaciones de seguridad pioneras en Windows en un HLOS lo suficientemente pequeño para los MCU.

  • Seguridad en la MCU:Asegurado desde y hasta  el silicio  Esta nueva clase cruzada de MCU ahora combina procesadores de aplicaciones y en tiempo real con tecnología de seguridad y conectividad de Microsoft incorporadas.

  • Seguridad en la nube: Protege los dispositivos con una nube construida para la seguridad de IoT. El servicio de seguridad de Azure Sphere renueva la seguridad del dispositivo, identifica las amenazas emergentes y la confianza de los intermediarios entre el dispositivo, la nube y otros puntos finales.

 El hardware

Especificaciones del Carrier Board

  • Dos zócalos de expansión MikroE Click board
  • Conector de expansión Grove (I2C)
  • Sensores a bordo: acelerómetro de 3 ejes, giroscopio de 3 ejes, temperatura, presión / barométrica, luz ambiental
  • Interfaz para pantalla OLED 128×64 opcional
  • Interfaz USB
  • Soporta depuración, servicio y recuperación
  • UARTs, y JTAG
  • Interruptores pulsadores de usuario y LEDs.
  • Regulación de potencia de 5V a 3.3V
  • Entrada de alimentación de CC: USB 5V desde la computadora central y huellas de terminales para suministros externos de 5V DC y VBAT

Módulo Azure Sphere MT3620

  • MediaTek MT3620AN SoC
  • 3 interfaces ISU configuradas para UART, SPI, I2C
  • ADC / GPIO: 3x entradas de ADC de 12 bits (o 3 GPIOs)
  • PWM / GPIO: 9x salidas PWM (o hasta 24 GPIOs)
  • RTC (requiere suministro VBAT)
  • Wi-Fi de banda dual 2.4 / 5GHz 802.11 a / b / g / n
  • Antena chip de doble banda 2.4 / 5GHz

 El software

Tenga en cuenta los escenarios del mundo real: su solución segura deberá tener una transmisión de comunicación diaria con la Nube de Azure para garantizar una conexión protegida continua. Use su kit de desarrollo de Azure Sphere para aprovechar los servicios en la nube de Microsoft..

 

 

Concurso

 

Puede  regístrese para obtener su kit gratuito , eso si deberemos pagar los costes de envío y los impuestos o aranceles aduaneros de su país. !Incluso aún puede participar si su país no es elegible para los kits gratuitos pues si su país no está en la lista, consulte con frecuencia a medida que amplian el  alcance!.(vea todos los países elegibles. )

main-view.jpg

La seguridad es sumamente importante, pero la consistencia en entornos seguros es lo que nos mantiene en línea  por ello buscan que se pueda mostrar el kit de Azure Sphere como puede permanecer en línea durante 30 días consecutivos y de esta modo  será elegible para ganar los  mejores premios.

Una vez que tenga su kit en la mano, conéctelo y regístrelo descargando la pequeña aplicación de Windows para la sincronización diaria con el servidor de concursos.( Por favor revise las instrucciones de registro ) .Más detalles se pueden encontrar en las reglas oficiales.

 SoftWeb Solutions han construido un increíble “mapa de calor” para ver dónde se han conectado nuestros 20,000 kits de Azure Sphere en todo el mundo. Estaremos representado cada vez que realizemos la sincronización diaria y se convierta en parte de la presencia global de Azure Sphere. Échele un vistazo en el Mapa de Calor de Azure Sphere .

Captura de pantalla 2019-07-23 a las 9.40.08 AM.png

 

Este concurso es parte de una campaña más grande de comunidades de Avnet. Vea el desafío Sensing the World de element14, seminarios web, talleres virtuales y más recursos en secureeverything.avnet.com .

e14-01_vv8GvW475C.png

Premios

¡Estan regalando miles de dólares en premios a los 510 mejores proyectos! Un premio por persona: ninguna persona puede ganar el premio total de $ 35,000. Los  jueces elegirán los mejores proyectos calificados según los criterios de evaluación descritos en la sección de reglas. Los premios de Nivel 3 se entregan únicamente en función de los requisitos de elegibilidad.

Tier 1

Para los proyectos que se separan claramente del resto y demostraron creatividad y uso ejemplar de Azure Sphere. Para ser considerado para los premios de Nivel 1, debe hacer ping a la Nube de Azure una vez al día durante 30 días consecutivos.

3 ganadores de Microsoft Hololens  valorasas en $ 3,500

El mejor proyecto de su clase y el diseño de referencia definitivo para Microsoft Azure Sphere.

El nivel 2

Para los proyectos que se separan claramente del resto y demostraron creatividad y uso ejemplar de Azure Sphere. Para ser considerado para los premios de Nivel 2, debe hacer ping a la Nube de Azure una vez al día durante 15 días consecutivos.

7 ganadores de Surface Laptop  valoradas en  $ 1,000

Nivel 3

Para ser elegible para el premio Tier 3, su proyecto debe usar el kit de desarrollo de Azure Sphere. ¡Los proyectos ganarán automáticamente una nueva Raspberry Pi 4! Eche un vistazo a nuestros requisitos de calificación en la pestaña de reglas.

500 ganadores de Raspberry Pi 4 valoradas en  $ 35

Premio Hackster Impact

Únase a Hackster mientras nos unimos a los Objetivos de Desarrollo Sostenible (ODS) delas Naciones Unidas para hacer del mundo de hoy un lugar más inteligente y saludable. El equipo de Hackster seleccionará el proyecto que mejor contribuya a cualquiera de los ODS.Consulte los criterios de evaluación específicos para esta categoría de premios .

5 ganadoresTarjeta de regalo de $ 250 + tarjeta de regalo Adafruit de $ 100 + entrevista en video + másValor de $ 530

El ganador recibirá lo siguiente: 
– una tarjeta de regalo de $ 250; 
– una tarjeta de regalo Adafruit de $ 100 (premio especial para el concurso Secure Everything); 
– una suscripción de 12 meses a Patchr Premium (valor de $ 180); 
– Por último, pero no menos importante, se presentarán en una entrevista en video con el único y único Alex Glow de Hackster.

Por favor, visite la página del Premio Hackster Impact para más información.

Recursos

 

 

Mas info en hackester.io

 

Construya una alarma de proximidad a partir de un económico foco


 

En efecto  hoy en día hay soluciones muy económicas  debido a su gran escala comercial  que son   susceptibles de ser mejoradas para complementar con notoriedad  sus prestaciones y lo mas interesante !sin coste alguno!.

En el ejemplo de hoy  vamos  a  ver como de hecho una modesta  lámpara con sensor de movimiento para uso en exteriores  ideal (almacén, garaje, clóset, etc …,con un bajo consumo de sólo 10 vatios ( aunque existen  de muchas  potencias  más elevadas ) ,y  900 lúmenes de luz  garantizados   puede usarse   además de su cometido principal de encenderse  cuando el sensor detecta movimiento  en el exterior , que  también envíe   una alarma hacia el interior, para  que tengamos constancia  si no nos  hemos percatados por la activación de la luminara   de que puede que haya personas , animales o cosas merodeando por el exterior   .

Además  hay un aspecto interesante, en esta simple  modificación  pues mantendremos el  diseño moderno y compacto de la luminaria ,  ya que vamos a hacer una sencilla modificación   que apenas ocupa más espacio ( únicamente necesitaremos  añadir una regleta )  y que además no inhabilita su protección  impermeable (IP66), una característica fundamental para aquellos que desean montar esta luminaria en el exterior.

Respecto al interior de  la luminaria , esta se aleja de las convencionales halógenas al   incorporar uno de los últimos 30 chips súper brillantes de LED  que reemplazan a los  anteriores, ofreciendo una iluminación más brillante (900 LM, blanco frío de 6000 Kelvin ) ,  con un gran ahorro en la factura de la luz y una gran durabilidad (los LED tienen una vida media de 50000 horas).

El foco integra un sensor PIR   y la electronica necesaria para activar la luminaria  , la cual por cierto va integrada en el propio receptor del PIR

En est emodelos , se puede ajustar la iluminación utilizando los 3 botones de configuración de la parte de atrás del propio modulo del PIR 

Los ajuste son los siguientes:

  • HORA ;sirve  para establecer la duración de la iluminación (6-360 s);
  • SENS; sirve para ajustar el rango de detección (1-12m);
  • LUX :ajuste la fotosensibilidad (día y noche)

 

Aparte de ajustar  el sensor de movimiento ajustable hasta 10 metros, un ajuste especialmente interesante es el ajuste LUX pues no puede permitir que el foco  ( y  por tanto la alarma ) no se active de día ,pudiéndose accionar automáticamente solo de noche  , que es cuando la mayoría de las ocasiones los dueños de lo ajeno merodean por los exteriores de los inmuebles

Con la doble función de iluminación sorpresiva ( que el producto  ya lo contempla ) y la alarma sonora ( que vamos añadir tanto interior como exterior ) la idea   que se  busca con esta mejora es   una  detección anticipada que localizar los intentos de intrusión y antes de que el intruso haya conseguido entrar : así, decidimos antes a los intrusos y, ademas  tenemos un señal audible de que ha sucedido , señal que por cierto podemos contemplar con otros sistemas como camaras, alarmas remotas , etc

Bien veamos la mejora  de este foco con sensor que podemos comprar por unos 15€

 

 

La idea  de este post  es mejorar  un asequible  foco del fabricante  CLY  para poder usarlo para activar otras cargas ( no solo la de la propia luminaria) , para lo cual tendremos que abrirlo con cuidad  para capturar la señal de salida y devolverlo al exterior . Desgraciadamente  manipulaciones del producto nos  hará  perderas la garantia , pero por el precio que tiene creemos merece la pena puesto que nos puede ser muy útil desde el interur  saber si se ha activado el foco  o por ejemplo para enviar a una central de alarma

 

Empieza la acción: Paso a paso

Empezaremos  antes de desmontar el producto  probando la luminaria pues cualquier cambio de esta en su configuración nos hará perder la garantia, asi que  es nuestra última oportunidad para  probar de que funciona perfectamente este.

Bien si funciona ok , desmontamos  los 4 tornillos de la parte posterior  y sacaremos con cuidado el cristal protector  y luego con cuidado de no toca los leds  los otros dos tornillos  del reflector 

Como se observa en la imagen de más abajo  hay dos bloques  ,   diferentes : el chip compuesto por leds( en el centro )    y el convertidor ac/dc para este ( a la derecha)

Además  se observan claramente  tres conexiones que van al módulo PIR : 

  • Cable marrón; uno de los polos de la red para dar alimentación permanente al módulo PIR
  • Cable azul : otro de los polos de la red  para dar alimentación permanente al módulo PIR
  • Cable rojo ; el cable de detección del PIR   que permite alimentar al convertidor ac/dc 

 

Hemos visto que nuestro objetivo es cable rojo  de salida del módulo de  PIR   que permite alimentar al convertidor ac/dc de la luminaria , y que por tanto nos permite obtener la salida del rele interno del modulo PIR ,así que intentaremos capturar este hilo  para lo cual descubriremos el protector plástico del empalme 

 

Es muy poco ortodoxo , pero como no queremos que el módulo pierda la estanqueidad , y normalmente  para luces exteriores las instalación no suelen contar con este cableado, utilizaremos el cable amarillo de masa del cable de salida ( más adelante si nos interesa podemos exteriormente fijarle un tornillo al chasis y volverlo a conectar)

 

 

 

Ahora solo nos queda  usar una ficha de empalme para conectar el cable amarillo de la manguera exterior con  en emplame rojo-blanco procedente de la salida del modulo PIR hacia el convertidor ac/dc

 

 

 

Ahora ya cerraremos con cuidado la luminaria  : primero el reflector  y luego la junta de estanqueidad  , el cristal  y finalmente la tapa . Ahora ya podemos conectar la c. a.  al extremo de la manguera del foco  , pero con la  importante diferencia que en el  cable amarillo ya no conectaremos la masa  sino por ejemplo un zumbador o  un testigo  que  alojaremos  en el interior de la vivienda para tener constancia  visual    o sonora   de que el foco luz se ha encendido por movimiento de objetos extraños próximos al PIR . Por cierto si se pregunta  donde conectar el otro extremos del zumbador o luz auxiliar este irá conectado al cable marrón de la manguera .

En el esquema anterior, como se puede apreciar ,se complementa con un interruptor para anular el zumbador en caso de que sea demasiado molesto  .Asimismo se recomienda otro interruptor a la entrada de ca si este va estar conectado permanentemente  a la red de ca.

 

 

Hay muchas opciones de uso para esta salida de CA , el cual por cierto no debemos cargar con mucha potencia pues corremos el riesgo de estropear lso contactos del relé interno del modulo PIR

Algunos ejemplos de lo que podemos hacer con esta salida “extra”;

  • Un  relé  de potencia con bobinado de  220v de CA para conectar cargas mayores
  • Un segundo relé de 220V pero para utilizar los contactos para alarmas
  • Un  zumbador de 220V ( los hay por 2€ en Amazon)
  • Un timbre convencional
  • etc

Bueno ,como hemos visto   quizás sean una idea un tanto atrevida , que no todo el mundo esté dispuesto a realizar,  pero desde luego !la posibilidad está ahí   ! y eso sin casi ningún coste adicional !¿se le ocurre  alguna mejora adicional ? si es así no dude en compartirla con toda la comunidad ..!!GRACIAS!!

 

NOTA;Como hemos recibido consultas , en este nueva imagen creemos que se describe mejor la modificación que pasa por soltar el cable amarillo de masa y unirlo con una regleta o un empalme con la conexión marcada como salida del relé 

Primeros pasos con NodeMCU y Firebase


Hoy en día muchos dispositivos que usamos día a día se conectan a internet como la televisión, altavoces inteligentes, refrigeradores, Aires Acondicionados , etc …, dispositivos  que extienden sus funciones primarias  permitiéndoles  interactuar con otros dispositivos en internet siendo de  este modo  posible controlar estos  remotamente.

Como  podemos ver en este blog en numeras  entradas que hablamos de dispositivos de IoT, es  relativamente sencillo construir nuestros  propios dispositivos de IoT con algunos sensores y microcontroladores  como Arduino, NodeMCU, Raspberry  Pi, etcétera , lo cual le permitirán automatizar su hogar apoyándose en estos dispositivos como por ejemplo usando el servicio de Cayenne .

Como ejemplo de lo  sencillo  que puede ser  la construcción de dispositivos   IoT desde un punto de vista más empírico , vamos a ver como usando NodeMCU ESP-12E podemos  acceder a Firebase  para encender y apagar un  LED remoto. 

 

Picture of Bill of Materials

 NodeMCU ESP-12E  es muy barato (unos 6€)   ,  y al tener  wifi incorporado para conectarse a internet,  ya tenemos los elementos suficientes  para conectarnos a  bases de datos avanzadas  gracias a un hardware tan eficiente  y por supuesto los servicios de Firebase.

En esta ocasión aunque  NodeMCU ESP-12E cuenta con un puerto analogico  denominado A0 y 13 pines digitales numerados del D0 al D12, vamos a usar un puerto  interno al que  esta conectado el led interno denominado LED_BUILTIN y  de este modo no hace falta usar ningún componte externo

 

 

NodeMCU 

ESP12E   está 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 . las  versiones más antiguas  de esta placa no integraban conexión usb  ( para lo cual necesitaremos un USB FTDI   para programarlo o un  controlador Setup CH340g).

Las características principales son las siguientes:

  • Incorpora una MCU de 32-bit de bajo consumo (Tensilica L106)
  • Módulo WiFi de 2.4 GHz
  • RAM de unos 50 kB
  • 1 entrada analógica de 10-bit (ADC)
  • 17 pines de entrada y salida GPIO (de propósito general)

Dentro de los diferentes módulos del ESP8266,(ESP01,ESP03,ESP04,ESP05,…ESP12)  destaca el ESP-12 o el ESP-12E, módulo que utiliza usando NodeMCU ESP-12E para procesar la información.

Básicamente estos módulos incorpora la memoria Flash para almacenar los programas o sketchs y la antena estando internamente los pines del ESP8266 cableados hasta los pines del módulo ESP-12 siendo así más fácil su acceso. 

En todo caso,  esta familia de placas todas cuentan con 11 pines digitales de entrada / salida, todos los pines tienen interruptor / pwm / I2C / 1-wire    siendo su chip principal el  ESP8266 CH340G , siendo una gran diferencia con una placa Arduino es que sólo cuenta  con 1 entrada analógica (entrada máxima de 3,3 V)

 

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

Veamos con mas detalles  como conseguimos configurar entorno de desarrollo tanto de Arduino como Firebase para que ambos puedan interaccionar entre si

 

Configuracion IDE de Arduino

1. Vamos a usar Arduino IDE para escribir el código . Si no lo tiene instalado  puede descargar la última versión del IDE aquí.

2. Puesto que estamos usando NodeMCU que no es oficialmente compatible con IDE de Arduino, tenemos que agregar el archivo JSON del dispositivo. En el IDE de Arduino añadir esta URL en  :

Archivo  > Preferencias >Gestor de URL’s Adicionales de Tarjetas : http://arduino.esp8266.com/stable/package_esp8266com_index.json

4. Seleccione la placa  pulsando en 

Herramientas > Placa >NodeMCU 1.0

4. Para utilizar la base de datos bases avanzadas en NodeMCU puede descargar la biblioteca de bases avanzadas-arduino que abstrae la API REST de las bases avanzadas  por los qeu necesitamos descargar la librería de Firebase desde github aquí.

5. Incluir el archivo zip descargado (firebase-arduino-master.zip)  en el IDE de Arduino.

Programa > Incluir Libreria  > Añadir .zip >  Seleccionar archivo  .zip descargado en el paso anterior

6. También necesitará instalar la biblioteca de ArduinoJson que puede descargarse desde el IDE de Arduino así mismo. Tenga en cuenta que la versión de la biblioteca no debe 6.x.x  por lo que debe utilizar la última 5.x.x

Programa > Incluir Libreria  > Añadir biblioteca .zip >Buscar  ArduinoJson  por Benoit Blanchon

 

Creación de una base de datos Firebase

7. Cree un nuevo proyecto de Firebase  desde la consola (necesitará   tener  cuenta de google   para crear proyecto de FireBase) y diríjase hacia la sección de base de datos. Seleccione la base de datos en tiempo real de bases avanzadas (firebase real-time database).

8. Necesitamos copiarnos   el código secreto de la base de datos para la autenticación desde el Panel de configuración > Cuentas de servicio.>Mostrar

 
 
 
Una vez copiado la clave secreta  ( que colocaremos en el código de arduino en #define FIREBASE_AUTH “XXXXXXXXXXX”),  nos iremos a la opción de DataBase, y  Realtime Database

9.Ahora debemos agregar un nodo asociado  a la base de datos de firebase. Tenemos que seleccionar Realtime Database  y  pulsar el botón de +  añadiendo el campo led . POsteriormente como veremos mas  adelante,  el  valor de  este campo decidirá si activar o desactivar el LED.

 


El tipo de dato  es booleano  ya  que según lo  pongamos a true o false esto accionará el led en el  NodeMCU ESP-12E  

 

Debemos actualizar la configuración de uso compartido de datos del proyecto NodeMCU.

 
Usar la configuración predeterminada para compartir datos de Google Analytics for Firebase , lo cual tendrá las siguientes consecuencias :
  • Compartir tus datos de Analytics con todas las funciones de Firebase
  • Comparte tus datos de Analytics con nosotros para ayudarnos a mejorar nuestros productos y servicios.
  • Comparte tus datos de Analytics con nosotros para habilitar el servicio de asistencia técnica.
  • Comparte tus datos de Analytics con nosotros para habilitar las comparativas.
  • Comparte tus datos de Analytics con los especialistas en cuentas de Google.
  • Aceptar las condiciones entre responsables del tratamiento de datos. Es obligatorio marcar esta casilla si vas a compartir tus datos de Analytics para mejorar los productos y servicios de Google. Más información


Asimismo  tenemos dos opciones de modo de uso de la BBDD:en modo bloqueo  o en  modo de prueba para el caso que nos corresponde para probar la  funcionalidad
Por último apuntaremos la  instancia de firebase  de acceso  que luego  insertamos en el código de Arduino  en  #define FIREBASE_HOST “xxxxxxxxxx.firebaseio.com/”
 
 
 
 

Configurar el IDE de Arduino y base de datos de Firebase a trabajar juntos

Ahora que hemos realizado todos los procedimientos de configuración,  vamos a comenzar la codificación  del código que ejecutaremos en  nuestro módulo NodeMCU

Para simplificar, vamos a escribir un código sencillo para encender y apagar  el LED interno  del NodeMCU    aunque realmente seria exactamente el mismo código si decidimos usar alguno de los 17 pines de entrada y salida GPIO (de propósito general), pues simplemente tendremos que conectar un led entre masa  y uno de los pines , cambiando la constante LED_BUILTIN  por un valor entero del 0 al 16  correspondiente al  número del puerto al  que hayamos conectado el led.

 

El código empleado es el siguiente:

 

         // By CRN   mayo-2019

#include <ArduinoJson.h>

#include <ESP8266WiFi.h>  

#include <FirebaseArduino.h>

// Firebase

#define FIREBASE_HOST “xxxxxxxxxxxxxxx.firebaseio.com”

#define FIREBASE_AUTH “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”

// Wifi

#define WIFI_SSID “wwwwwwwwwwwww”

#define WIFI_PASSWORD “pppppppppppppppppppp”


void setup()

{

Serial.begin(115200); //inicializa el puerto de salida a 115200

pinMode(LED_BUILTIN, OUTPUT);   //configurar el puerto interno como salida 
digitalWrite(LED_BUILTIN, HIGH);   //enciende el led interno

// conectando a la red wifi.

WiFi.begin(WIFI_SSID, WIFI_PASSWORD);  //conexión a la red wifi

delay(2000);   //espera la  conexión

Serial.println(“Conectando…”); 

while (WiFi.status() != WL_CONNECTED)  //bucle para esperar la conexión

{

Serial.println(“.”);  //mientras pintamos un puntito que sacamos por consola

delay(3000);

}

Serial.println(“Conectado”);   // ya hemos conseguido conectar por wifi

Serial.println(WiFi.localIP());   // pintamos la ip asignada 

 

// Configurando conexión a firebase

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);  //intentamos conectarnos a la base de datos Firebase con nuestras credenciales

//fin configuración

}

 

void loop()  //bucle principal

{

//leer estado en Firebase el valor del registro led  y observar que el valor recuperado al ser booleano se asigna directamente a la variables es booleana

bool isLedOn = Firebase.getBool(“led”); // recuperamos el valor del objeto led de la sesión firebase

 

if (isLedOn)   // condicional  para decidir en función del valor recuperado de firebase si se enciende o no el led

{

digitalWrite(LED_BUILTIN, HIGH);  //encendemos el led 
Serial.println(“LED ON “); 
delay(2000);

}

else

{

digitalWrite(LED_BUILTIN, LOW);    //apagamos el  led 
Serial.println(“LED OFF”);
delay(2000);

}

 

}

 

 

En  el código anterior     en primer lugar se incluyen las librerías  necesarias  para hacer  toda gestión de conexión con Fireabase, así como las comunes de arduino para gestionar json  y las propias del ESP8266 

  • #include <ArduinoJson.h>
  • #include <ESP8266WiFi.h>  
  • #include <FirebaseArduino.h>

 

Después  se definen cuatro variables de tipo constante para almacenar: 

  • #define WIFI_SSID “Nombre de Router Wifi” Cambiaremos en esa a línea  la red del router WiFi al que nos vayamos a conectar
  • #define WIFI_PASSWORD “Contraseña del Router” Cambiaremos en esa  línea contraseña de su router WiFi 
  • #define FIREBASE_HOST “xxxxxxxxx.firebaseio.com” Insertaremos quie elnombre de la instancia de Firebase asociada a su usuario, para ello haremos clic en base de datos ahora se verá el nombre de host .Pulsamos Mostrar en imagen.Copiar el nombre sin el” http://”  en el código de Arduino 
  • #define FIREBASE_AUTH “xxxxxxxxxxxxxxxxxxxxxxxxxxx”Insertaremos la palabra secreta de Forebase ,para ello iremos  a Configuración > configuración del proyecto > cuentas de servicio > base de datos secreta .Copiar y pegar la palabra secreta  en el código 

Ahora   toca inicializa el puerto de salida a 115200,  ,configurar el puerto interno como salida  enciende el led interno

Asimismo es necesario  conectar la red wifi, que hacemos con un bucle para esperar la conexión  mientras pintamos un puntito que sacamos por consola

La última parte del bloque de configuración es la  conexión a firebase donde intentamos conectarnos a la base de datos Firebase con nuestras credenciales

LLegamos  ahora al cuerpo  principal (loop )    donde leeremos el  estado en Firebase el valor del objeto  led   y actuaremos   según su valor en el estado lógico de  un pin del GPIO   donde es  interesante  observar que el valor recuperado al ser booleano se asigna directamente a la variables que también es booleana.

La magia  se hace   justo con   esta línea “bool isLedOn = Firebase.getBool(“led”); “  donde  recuperamos el valor del objeto led de la sesión firebase

Finalmente mediante  condicional   decidiremos  en función del valor recuperado de firebase si se enciende o no el led

 

 
 

 

Este código ,  donde  incluiremos nuestras  credenciales del Firebase  y de nuestra red wifi,    lo subiremos   desde el IDE de Arduino  Programas > Subir y en seguida  deberíamos ver el led interno luciendo o apagado en función del estado del objeto led en su base de datos Febase

 

Ahora intente cambiar el valor del objeto led en  la base de datos a verdadero y falso. El led debería  encenderse  o apagarse en función del valor que hayamos seleccionado en el objeto led en Firebase .

Por supuesto   puede ampliar este proyecto si decidimos cualquiera de  los 17 pines de entrada y salida GPIO (de propósito general)  asi  como  manejar  estos    mediante la creación de una aplicación web   o móvil   que accionará los  puertos en lugar de cambiar manualmente el valor de la base de datos Firebase.

Además en este articulo hemos hablado de leer un objeto de Firebase desde  un  NodeMCU   pero también   es posible  enviar datos desde la placa para salvarlos en Firebase  y luego leer estos mediante una aplicación móvil o web, Sin duda el limite esta en nuestra imaginación …

 

 

Controlando placas de IoT desde javascript


Node.js framework  fue  creado por Bocoup para controlar placas de desarrollo en una configuración de host-cliente   aunque   realmente su uso mayoritario sea como plataforma web   siendo    Johnny-Five la plataforma open  source de Robótica e IoT de JavaScript 

En realidad existen diferentes  plataformas donde se puede ejecutar el programa Johnny-Five :

  • En un entorno Linux a bordo: beagleBone Black,Chip,Intel Galileo gen 1,Intel Galileo Gen 2,Intel Edison Arduino,Intel Edison Mini, SparkFun Edison GPIO Block,SparkFun Arduino Block, Intel Joule 570x (Carrier Board),Linino One,pcDuino3 Dev Board,Raspberry Pi 3 Model B, Raspberry Pi 2 Model B. Raspberry Pi Zero,Raspberry Pi Model A Plus,Raspberry Pi Model B Plus, Raspberry Pi Model B Rev 1, Raspberry Pi Model B Rev 2, Tessel 2
  • En una máquina host conectada (a través de Serial USB o Ethernet) a un cliente.: Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,
  • En una máquina host que se comunica por wifi al cliente: Electric Imp April, pinoccio Scout, Particle Core ( Spark Core) ,Particle Photon, Sparkfun Photon RedBoard
  • En una máquina host que se comunica a través de Bluetooth al cliente :Blend Micro v1.0,LightBlue bean,

Johnny-Five como vemos hacer un énfasis especial en la robótica, pero tambien puede hacer muchas cosas diferentes con el software.De hecho ha existido durante hacer  más tiempo que la mayoría de los marcos de JavaScript para hardware . Ademas iene una API clara  y “fresca” ,ambas cosas ideales para los principiantes de hardware.

Lanzado porBocoup en 2012, Johnny-Five esta mantenido por una comunidad de desarrolladores de software apasionados e ingenieros de hardware. De hecho más de 75 desarrolladores han hecho contribuciones para construir un ecosistema robusto, extensible y muy versatil.

 

Hola Mundo! 

A los microcontroladores y las plataformas SoC nos gusta decir “Hola mundo” con un simple LED parpadeante, así  que veamos en primer lugar un ejemplo como lo hariamos  usando el Ide clásico  de Arduino

Como vemos en la imagen ,conectaremos un led entre el pin 13  y masa , respetando la polaridad (el ánodo al pin13 y el cátodo o pin corto a masa )

Para  hacer destellear el citado led,  estos son los pasos básicos  que tenemos que seguir en nuestro sketch  programandolo desde el IDE de Arduino:

  1. Configurar el pin 13 (con LED incorporado) como una SALIDA
  2. Establecer el pin 13 ALTO para encender el LED
  3. Esperamos 500 ms (medio segundo)
  4. Establecer el pin 13 BAJO para apagar el LED

Y este es el código completo para ejecutar desde el Ide de Arduino:

void setup() {
pinMode(13, OUTPUT);    
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);  
delay(500);
}

Y ahora vamos a ver el mismo ejemplo , pero ejecutandolo en Javascript por medio de node-js,

Desgraciadamente  si usamos un Arduino o alguno de sus variantes (Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,)   necesitaremos que el programa JavaScript se ejecute en una máquina host que ejecute Node.js. de modo que el programa transmitirá instrucciones básicas de E / S a la placa a través de una interfaz  serie USB , que actuara como un cliente ligero .

El método host-cliente implica la comunicación a través de una API común entre el host y el cliente. El marco Node.js usado con Arduino y placas similares , Johnny-Five, se comunica (de forma predeterminada) con las placas  utilizando un protocolo llamado Firmata, protocolo que permite que los hosts (computadoras) y los clientes (microcontroladores) intercambien mensajes de ida y vuelta en un formato basado en mensajes MIDI. El protocolo Firmata especifica cómo deben ser esos mensajes de comando y datos. La implementación de Firmata de Arduino proporciona el firmware real que puede poner en su tablero para hacer que “hable” Firmata. Toma la forma de un boceto de Arduino que sube al tablero.

Firmata es lo suficientemente popular como para que los bocetos de Firmata que necesita vengan empaquetados con el IDE de Arduino asi que bastara con subir este a Arduino una única vez  ya que  el código javascript  correra en el host usando node.js.

Puede seguir estos pasos para cargar el interfaz correcto de Firmata en su Arduino  para que se pueda utilizar como cliente en una configuración de host-cliente:

Resumidamente estos son los pasos previos para ejecutar el   mismo  ejemplo del led parpadeante  que hemos visto pero   en  javascript en una placa Arduino;

  • En primer lugar  conectar  su Arduino  mediante USB a  su ordenador
  • Lanzar el IDE de Arduino.
  • Asegurarse que esta configurada la version de su placa,  así como el puerto COM  virtual al que esta conectado
  • Acceda al menú Archivo> Ejemplos> Firmata
  • Seleccione StandardFirmataPlus de la lista y despliegue este sw sobre su Arduino

  • Ahora Instale Node.js   en su pc . Funciona  con ultima version 11.3.0  de  64 bit que incluye  npm 6.4 (no olvidar de chequear que se instalen  otros componentes )Este es el link de descarga https://nodejs.org/en/download/ 
  • En la instalación de Node.js, repetimo  no debemos olvidar de chequear que se instalen  otros componentes  pues  con ellos se   instalara automáticamente
    • Python 2.7.3 (http://www.python.org/getit/releases/2.7.3/)
    • Visual Studio Express 2010 de 32 bits (con  las dependencias de C ++)
    • El comando npm
    • Alternativamente si dispusiésemos de npm podríamos instalar ambos entornos  con  npm --add-python-to-path install --global --production windows-build-tools
  • Este pasos anterior ( instalacion de componentes ) es  innecesario  si chequeamos en la instalación  de node.js  pues se instalaran  esos componentes  automáticamente
  • Ahora instalar node-gyp  medianete  el comando  npm install -g node-gyp (esto instalará node-gyp globalmente)                          
  • Ya puede  crear su primer proyecto Johnny-Five, por lo que en primer lugar cree un directorio para él e instale el paquete framework npm, como se muestra en la siguiente lista:
    • < mkdir hello-world
    • < cd hello-world
    • < npm install johnny-five
  • Ejecute  el comando “npm install johnny-five” desde la carpeta del proyecto
  • Ya por fin podemos crear el fichero javascript  con su editor de texto  que contendrá el código en javascript  . 

Realmente estos son los pasos  que tenemos que seguir:

  1. Requerir el paquete johnny-five
  2. Inicializar un nuevo objeto Board que represente a su placa .
  3. Esperar a que el tablero dispare el evento listo
  4. Crear una instancia de un objeto LED en el pin 13 (el pin LED incorporado de Uno)
  5.  Hacer que el LED parpadee cada 500 ms

Este es el código en js :


const five = require(‘johnny-five’);
const board = new five.Board();
board.on(‘ready’, () => {
 const led = new five.Led(13);
   led.blink(500);
});


Guarde el archivo como hello-world.js  y  conecte su Arduino  a un puerto USB en su ordenador  si aún no está conectado.

En una terminal  de windows  vaya al directorio del proyecto y ejecute este comando:

<node hello-world.js


Verá una salida como la siguiente en su terminal ejecutando hello-world.js en una terminal

 

 

Si el LED incorporado parpadea ,!enhorabuena !  !acaba de controlar una placa Arduino con JavaScript!  ¿a que es realmente sencillo?.

Aunque en el caso de la familia Arduino tiene la innegable penalización de necesitar un host para operar , la ventajas de este  modelo son evidentes pues no tenemos que estar constantemente compilando  y  subiendo el sketch con el ide de Arduino ya que el programa corre en host . Ademas  podemos usar un simple editor de texto para cambiar el código en javascript fácilmente

Asimismo el lenguaje javascript ha ido evolucionando hasta un ritmo que no podemos imaginar   incluyendo muchas características que no son soportadas de forma directa desde Arduino

Por ultimo mencionar la autentica potabilidad del código , pues el código que hemos visto en el ejemplo podremos usarlos  en múltiples plataformas  tan diferentes como Raspberry pi, Intel Edison , etc usando siempre el mismo código fuente aun siendo soportado por placas muy diferentes ¿ a que es interesante?

 

 

Placas soportadas

Johnny-Five ha sido probado con una variedad de tableros compatibles con Arduino . 

Para los proyectos que no están basados ​​en Arduino, los complementos de IO específicos de la plataforma están disponibles. Los complementos IO permiten que el código Johnny-Five se comunique con cualquier hardware en cualquier idioma que la plataforma hable.

Como comentábamos   existen diferentes  formas de   ejecutar  el programa Johnny-Five  segun la placa:

  • En un entorno Linux a bordo: beagleBone Black,Chip,Intel Galileo gen 1,Intel Galileo Gen 2,Intel Edison Arduino,Intel Edison Mini, SparkFun Edison GPIO Block,SparkFun Arduino Block, Intel Joule 570x (Carrier Board),Linino One,pcDuino3 Dev Board,Raspberry Pi 3 Model B, Raspberry Pi 2 Model B. Raspberry Pi Zero,Raspberry Pi Model A Plus,Raspberry Pi Model B Plus, Raspberry Pi Model B Rev 1, Raspberry Pi Model B Rev 2, Tessel 2) ,   Es  facil adivinar qeu este es el mabiente ideal   pues dentro de la placa se oprtan tanto el host como el cliente  por lo qeu no ncesitamos conectarnos con otro dispositivo
  • En una máquina host conectada (a través de Serial USB o Ethernet) a un cliente.: Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,
  • En una máquina host que se comunica por wifi al cliente.: Electric Imp April, pinoccio Scout, Particle Core ( Spark Core) ,Particle Photon, Sparkfun Photon RedBoard
  • En una máquina host que se comunica a través de Bluetooth al cliente :Blend Micro v1.0,LightBlue bean,

Veamos  ahora cada  caso en concreto;

Arduino Uno 

Ambiente 

  • Firmware / Runtime: : StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

SparkFun RedBoard 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

ping

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

 

Arduino leonardo 

Ambiente 

  • Firmware / Runtime:  StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Arduino Mega 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

Arduino Fio 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Arduino Micro 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Mini 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Nano 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Pro Mini 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
ping

BotBoarduino 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

chipkit uno32 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire
Paso a paso
Serial / UART
Dac no
ping

Spider Robot Controller 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere  tetehering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

DFRobot Romeo 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Teensy 3 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART no
Dac no
ping

BeagleBone Black 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

CHIP 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo no
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Ping no

Blend Micro v1.0 

Ambiente 

  • Complemento IO: BlendMicro-IO ( instrucciones adicionales )
  • Firmware / Runtime: BLEFirmata
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a través de Bluetooth a la placa, que actúa como un cliente ligero .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Ping no

 Electric Imp  April 

Ambiente 

Plataforma específica 

  • Requiere una conexión WiFi conectada a Internet y está sujeto a la limitación de la tasa de solicitud por parte del servidor de Electric Imp API.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C no
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Intel Galileo Gen 1 

Ambiente 

Plataforma específica 

  • Las compilaciones que no son IoTKit ya no son compatibles.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Intel Galileo Gen 2 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

Intel Edison Arduino 

Ambiente 

Plataforma específica 

  • El hardware es capaz de soportar solo 4 salidas PWM. Como resultado, los enlaces nativos no admiten PWM en los pines 10 y 11.
  • Aunque Galileo-io / Edison-io / Joule-io todavía no admite comunicaciones en serie, puede enlazar a / dev / ttyFMD1 en la placa Edison Arduino usando el módulo serialport .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

Intel Edison Mini 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

SparkFun Edison GPIO Block 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

SparkFun Arduino Block

Ambiente 

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART no
Dac no
ping no

Intel Joule 570x (Carrier Board) 

Ambiente 

Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

LightBlue Bean

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Linino uno 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

pcDuino3 Dev Board 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo no
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Pinoccio Scout 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C no
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Raspberry Pi 3 Modelo B 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Raspberry Pi 2 Modelo B 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Silbido no

Raspberry Pi Zero 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Raspberry Pi Model A Plus 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Frambuesa Pi Modelo B Plus 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Silbido no

Raspberry Pi Modelo B Rev 1 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Ping no

Raspberry Pi Modelo B Rev 2 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no


Particle Core (Spark Core)

Ambiente 

Plataforma específica 

  • Los temporizadores se comparten en grupos: Temporizador 2: A0 , A1 , Temporizador 3: A4 , A5 , A6 , A7 , Temporizador 4: D0 , D1
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping


Particle Photon

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
ping no
Silbido

Sparkfun Photon RedBoard 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping

Tessel 2 

Ambiente 

Plataforma específica 

  • El soporte de servo se proporciona a través de componentes I2C (por ejemplo, PCA9685 )
  • DAC está limitado a Puerto B, Pin 7
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac
ping no

Mas información en  http://johnny-five.io/platform-support/