Nueva vida a los viejos pc’s


En efecto Google ha anunciado una nueva solución para no desechar viejos ordenadores de hasta incluso de mas de 12 años ( o incluso mas ) gracias a un nuevo sistema operativo llamado Chrome OS Flex con el objetivo de poder dar potencia a los viejos PC y Mac que con los años han perdido flexibilidad y potencia en parte por las actualizaciones de sus sistemas operativo.

Como punto destacar este sistema operativo lo que ofrece es una gestión basada en la nube. Chrome OS Flex y Chrome OS no son iguales. El primero carece de funciones como la virtualización de aplicaciones (por ejemplo no se podrá cargar aplicaciones de Android en estos viejos equipos).

Llega por ello el bautizado como Chrome OS Flex, que podrá instalarse gratuitamente incluso en ordenadores que tengan hasta 13 años de edad y darles nueva vida.

Para actualizar nuestras viejas maquinas solo vamos a necesitar :

  • Un ordenador para hacer las descarga ( con Windows o Mac)
  • Google Chrome instalado ene el ordenador de la descarga para poder generar el USB de instalación
  • Un pendrive USB de mínimo 8 GB de capacidad
  • Un PC con arquitectura X86-64 de Intel o AMD con con al menos 4 GB de RAM y 16 GB de almacenamiento; y procesador y gráfica, a ser posible, que sea de después de 2010.

Ciertamente quienes quieran probar una versión temprana de Chrome OS Flex deben registrarse en la web de Chrome Enterprise (https://chromeenterprise.google/os/chromeosflex/ ) y dar unos datos personales. Eso sí, por ahora, el sistema operativo está en fase de acceso temprano y «es posible que experimentemos cierta inestabilidad», advierten desde Google.

Por ahora, el modo de prueba es solo para clientes empresariales , pero nada impide que en el formulario de descarga se introduzcan datos académicos por ejemplo.

Estos son los pasos a seguir:

Antes de empezar

  • Verifique si los modelos de su dispositivo están certificados: Google prueba, mantiene y certifica regularmente las características y la funcionalidad de Chrome OS Flex en muchos modelos individuales. Si bien Chrome OS Flex puede funcionar en dispositivos no certificados, no garantizamos el rendimiento, la funcionalidad ni la estabilidad.
  • Chrome OS Flex difiere de Chrome OS : conozca las diferencias entre Chrome OS Flex y Chrome OS .

Que necesitamos

  • Dispositivo para crear el instalador USB
    • Dispositivo Chrome OS, Windows o Mac con la versión actual del navegador Chrome.
    • El dispositivo que usa para crear su instalador USB puede ser diferente al dispositivo en el que planea instalar Chrome OS Flex.
  • unidad USB
    • 8 GB o más.
    • De vez en cuando, es posible que Sandisk u otras unidades USB no funcionen como instaladores. Obtenga más información en Problemas conocidos .Todo el contenido de la unidad USB se borrará.
  • Dispositivo Windows, Mac o Linux para instalar Chrome OS Flex en su dispositivo de destino
    • Google solo garantiza la funcionalidad Chrome OS Flex en modelos certificados.
    • Las variantes de los modelos certificados pueden tener problemas inesperados.
    • Chrome OS Flex puede funcionar en dispositivos no certificados, pero el rendimiento, la funcionalidad y la estabilidad no están garantizados.
    • Requisitos mínimos del dispositivo:
      • Arquitectura: dispositivo compatible Intel o AMD x86-64-bit
      • RAM: 4GB
      • Almacenamiento interno: 16GB
      • Arrancable desde unidad USB
      • BIOS: acceso completo de administrador. Deberá iniciar desde el instalador Chrome OS Flex USB y hacer algunos ajustes en el BIOS si tiene problemas.
      • Procesador y gráficos: los componentes fabricados antes de 2010 pueden resultar en una mala experiencia.
        Nota: El hardware de gráficos Intel GMA 500, 600, 3600 y 3650 no cumple con los estándares de rendimiento de Chrome OS Flex.

Preparación de la instalación de Chrome OS Flex

1: Crear el instalador USB

 El dispositivo que usa para crear su instalador USB puede ser diferente al dispositivo en el que planea instalar Chrome OS Flex.. Todo el contenido de la unidad USB se borrará.

Paso 1: Instale la utilidad de recuperación de Chromebook

  1. En su dispositivo Chrome OS, Windows o Mac, abra el navegador Chrome "".
  2. Vaya a la tienda web de Chrome .
  3. En la parte superior derecha, haz clic en Agregar a Chrome .
  4. Cuando se le solicite, haga clic en Agregar extensión .

La utilidad de recuperación de Chromebook ahora es una extensión en su navegador Chrome.

Paso 2: asegúrese de que la extensión de la Utilidad de recuperación de Chrome esté activada

  1. En la parte superior derecha de la ventana del navegador Chrome, haga clic en Extensiones y luegoAdministrar extensiones .
  2. Junto a la Utilidad de recuperación de Chromebook , mueva el interruptor a la derecha.
    Opcional: también puede hacer clic en Detalles y cambiar el interruptor a la derecha.

Después de activar la extensión de recuperación de Chromebook, en el panel de extensión de su navegador, haga clic en la extensión para abrir la ventana emergente.

Paso 3: Cree el instalador USB

  1. En el navegador Chrome, inicie la extensión Chrome Recovery Utility ( normalmente basta con hacer clik sobre el icono de extensiones que se situa a la derecha de la barra de direcciones, la cual desplegara una lista de extensiones y en la que pincharemos la utilidad de chrome)
  2. Haga clic en Comenzar .
  3. Haga clic en Seleccionar un modelo de una lista .
  4. Para Seleccione un fabricante , busque y haga clic en Google Chrome OS Flex .
  5. Para Seleccionar un producto , busque y haga clic en Chrome OS Flex (desarrollador-inestable) .Haga clic en Continuar .
  6. Cuando se le solicite, inserte su unidad USB.
  7. En el menú desplegable, seleccione la unidad USB.
  8. Haga clic en Continuar .
  9. Haga clic en Crear ahora .
    Nota: Durante el proceso, es normal que Chrome Recovery Utility muestre porcentajes inusuales.
  10. Cuando reciba un mensaje de que su medio de recuperación está listo, extraiga la unidad USB del dispositivo.

En las siguientes imágenes vemos las pantallas importantes de las que hablamos:

Pantalla de selección
Selección de unidad
Creando la imagen

Use el instalador USB que acaba de crear para iniciar el dispositivo en el que desea ejecutar Chrome OS Flex.

Instalación

  1. Apague el dispositivo en el que desea ejecutar Chrome OS Flex.
    Nota: asegúrese de que el dispositivo de destino esté completamente apagado y que no esté dormido ni inactivo.
  2. Inserte el instalador Chrome OS Flex USB.
  3. Inicie el dispositivo desde la unidad USB. Si no está seguro de qué tecla usar, consulte Teclas de arranque a continuación.
    1. Presiona el boton de poder.
    2. Inmediatamente comience a presionar repetidamente la tecla de inicio de su dispositivo.
  4. Seleccione su instalador USB como dispositivo de arranque usando:
    1. Menú de inicio único: si su interrupción activa un menú de inicio único, verá una lista de opciones de inicio en su pantalla. Puede usar las teclas de flecha, o el mouse en algunos casos, para seleccionar su instalador USB.
    2. Menú BIOS o UEFI : si su interrupción abre el menú completo de configuración de BIOS o UEFI, deberá encontrar configuraciones relacionadas con Boot o Startup. Luego, siga las instrucciones en pantalla para configurar su instalador USB como el primer dispositivo de inicio principal o preferido.
    3. Otro menú : si ve otras opciones en la pantalla, navegue hasta una opción que coincida con uno de los menús descritos anteriormente. Luego proceda como se describe en esos pasos.

Los nombres de los dispositivos de arranque pueden ser difíciles de leer. Si tiene dificultades para identificar su instalador USB en particular, busque marcas o tamaños de almacenamiento que reconozca.

Una vez que haya iniciado con éxito Chrome OS Flex desde su instalador USB, puede instalar Chrome OS Flex de forma permanente, borrando el sistema operativo existente del dispositivo y reemplazándolo con Chrome OS Flex. Si aún no está listo para instalar Chrome OS Flex en los dispositivos, puede ejecutarlo temporalmente con el instalador USB. De esa manera, puede probar y verificar que la funcionalidad del dispositivo, como las herramientas de red y de entrada, funcione como se espera.

Cosas para considerar

Google recomienda que instale completamente Chrome OS Flex, no un arranque en vivo desde el instalador USB. El arranque en vivo tiene limitaciones de rendimiento y almacenamiento, y no admite actualizaciones automáticas ni inscripción para administración. El arranque en vivo solo se recomienda para la exploración o prueba temporal. Recomendamos encarecidamente la instalación completa para disfrutar de la mejor experiencia de Chrome OS Flex.

La instalación completa de Chrome OS Flex borra todos los datos, aplicaciones, configuraciones y sistemas operativos existentes que se encuentran actualmente en su dispositivo de destino. Los datos perdidos son permanentemente irrecuperables, incluso si la instalación no se realiza correctamente.

Explore Chrome OS Flex

Chrome OS Flex brinda la opción de inicio en vivo, ejecutando el sistema operativo directamente desde su dispositivo USB sin instalarlo realmente. El arranque en vivo ayuda a conservar los datos y el sistema operativo actuales de su dispositivo, por lo que puede probar Chrome OS Flex antes de instalarlo.

En el dispositivo que arrancó usando el instalador USB:

  1. En la pantalla Bienvenido a CloudReady 2.0 , haga clic en Comenzar .
  2. En la pantalla Comenzar a usar CloudReady 2.0  , haga clic en Pruébelo primero .
  3. Sigue las instrucciones en la pantalla.
  4. Inicie sesión en el dispositivo.

Una vez que haya terminado de probar o explorar Chrome OS Flex, para instalar Chrome OS Flex de forma permanente:

  1. Cierra sesión en el dispositivo.
    1. En la parte inferior derecha, haz clic en la hora.
    2. Haga clic en Cerrar sesión .
  2. En la parte inferior de la pantalla de inicio de sesión, haga clic en Instalar CloudReady 2.0 .
  3. Revise cuidadosamente la advertencia en pantalla sobre el borrado de datos.
  4. Haga clic en Instalar CloudReady .
  5. Cuando se complete la instalación, verá un mensaje en la pantalla. El dispositivo se apaga automáticamente.
  6. Con el dispositivo completamente apagado, saca el instalador USB.
  7. Encienda el dispositivo y comience a usar Chrome OS Flex. 

Nota: Después de instalar Chrome OS Flex, los datos de usuario, como descargas y configuraciones, recopilados durante el inicio en vivo no se conservan.

Instalar Chrome OS Flex

Antes de comenzar: Realice una copia de seguridad de sus datos en la nube o en una unidad separada. Asegúrese de desconectar todas las unidades de respaldo y almacenamiento.

  1. En la pantalla Bienvenido a CloudReady 2.0 , haga clic en Comenzar .
  2. En la pantalla Comenzar a usar CloudReady 2.0  , haga clic en Instalar CloudReady 2.0 .
  3. Revise cuidadosamente la advertencia en pantalla sobre el borrado de datos.
  4. Haga clic en Instalar CloudReady .
  5. Cuando se complete la instalación, verá un mensaje en la pantalla. El dispositivo se apaga automáticamente.
  6. Con el dispositivo completamente apagado, saca el instalador USB.
  7. Encienda el dispositivo y comience a usar Chrome OS Flex.

Formatear su unidad USB

Si desea reutilizar su unidad USB después de instalar con éxito Chrome OS Flex en los dispositivos, use la Utilidad de recuperación de Chromebook para formatearla.

  1. En el dispositivo Chrome OS, Windows o Mac que utilizó para crear el instalador USB, abra el navegador Chrome "".
  2. Inicie la extensión de la Utilidad de recuperación de Chrome.
  3. Haga clic en Configuración ""y luegoBorrar medios de recuperación .
  4. Inserte la unidad USB que desea formatear.
  5. En el menú desplegable, seleccione la unidad USB.
  6. Haga clic en Continuar .
  7. Haz clic en Borrar ahora .La extensión Chrome Recovery Utility borra todo en su unidad USB
  8. Cuando vea el mensaje Su medio de recuperación ha sido borrado, haga clic en Listo .

Lo que sí promete la firma de Mountain View es que, aunque tu equipo sea viejo, Chrome OS Flex ofrecerá seguridad a tu PC o Mac, tendrán un arranque rápido, no se van a ralentizar con el tiempo, se actualizarán automáticamente en segundo plano y podrán ser gestionados desde la nube. Chrome OS Flex parte del código fuente de Chrome OS y, por tanto, tendrá el mismo ritmo de actualizaciones. Este SO podría definirse como una versión de Chrome OS que se adapta al hardware del equipo.

Si quieres probar el software, aunque estemos en las versiones iniciales, la firma te da la oportunidad de probarlo con un USB antes de que te lances a reemplazar Windows o Mac por Chrome OS. La empresa promete que la descarga solo lleva unos minutos.

Anuncio publicitario

Resumen soluciones iluminación residual


Por desgracia las nuevas lámparas leds tienen numerosas ventajas ( consumo muy bajo , mayor durabilidad, no producen apenas calor , etc ) , pero no están exentas de problemas pues en ocasiones se nos presenta problemas de parpadeo , iluminación residual o efecto estroboscópico , etc al sustituir una iluminación tradicional ( incandescente, halógena, etc) por una LED, simplemente quitando unas bombillas y poniendo otras directamente,  eliminando por ejemplo en caso de las lamparas halogenas el transformador que teníamos con nuestros halógenos. Siendo estos últimos los causantes del parpadeo de nuestra bombilla LED.

Cuando hablamos de iluminación LED, en lugar de transformadores necesitamos drivers o controladores, que tienen la misma función que un transformador, es decir, regular el flujo de electricidad asegurando que un LED o una serie de LEDs se alimentan siempre con el voltaje y la corriente adecuada, independientemente de las fluctuaciones que se presentan en la red eléctrica.

A diferencia de un transformador convencional, un convertidor ac/dc cierra el circuito cuando la bombilla se conecta y comienza a registrar consumo. Entonces, cuando colocamos una bombilla LED que consume menos potencia , tenemos una carga que no es suficiente para que cierre ese circuito, y es entonces el circuito entra en un bucle de abrir y cerrar el sistema, provocando el parpadeo de una bombilla LED. Un transformador ayuda a regular el consumo de luz y a obtener más eficiencia lumínica.

Los tipos de luminarias

Es  relativamente  frecuente  reemplazar las luminarias «de toda la vida»  basada en bombillas incandescentes, halógenas  o  fluorescentes(incluidas las compactas o «CFL» las cuales por cierto están en entre dicho por el peligro para nuestra salud si se rompe  el vidrio  al incluir  mercurio)   por las nuevas  luminarias basadas en LED  no solo por que son muchísimo mas eficientes desde el punto de vista energético: también porque tienen una durabilidad mayor (tienen una vida útil de hasta 50,000 horas  si excluimos el convertidor ca/cc para alimentarlas) , no producen calor, ocupan mucho menos espacio,  y un sinfín de otras ventajas ,que a modo de resumen vamos a ver:

  • Lo mas destacado es su efecto sobre la Salud  y medio ambiente pues la luz producida a través de la tecnología led no emite rayos ultravioleta ni rayos infrarrojos, lo que ayuda a evitar riesgos de salud. Otro aspecto  a destacar es que diferencia  de las bombillas compactas «de bajo consumo»( que por cierto emiten luz ultravioleta) , las iluminarias de leds  no contienen   mercurio , el cual es un metal muy  toxico , por lo que se deben tener cuidados especiales al momento de desechar la bombilla. Ademas  las lámparas con led producen una pérdida mínima por calor y ahorran energía, lo que ayuda enormemente a la protección del medio ambiente y a reducir las emisiones de CO2 . Por cierto ademas son reciclables y no contaminan el medio ambiente.
  • Eficiencia energética :sin duda  todos nos sentimos atraídos por su eficiencia energética , y es fácil entenderlo puesto que  las luminarias basadas en  l< tecnología led consumen aproximadamente un 80% menos energía eléctrica que una luminaria tradicional. Es cierto que las CFL’s cuando están nuevas  pueden aproximarse a la eficiencia (según la calidad  de la luminaria) , pero estas van perdiendo rendimiento lumínico con el paso del tiempo.En comparación con una bombilla incandescente de 60 vatios que ofrece alrededor de 800 lúmenes de luz puede gastar más de  300€ al año  ,un CFL utiliza menos de 15 vatios y sólo gasta 75€ de electricidad al año y una lampara LED de pot en lúmenes similar   consume  menos de 8 vatios de potencia, con lo que los costos anuales bajan a 30€  con una esperanza de vida de 50.000 horas ( o  posiblemente más ).
  • Fácilmente controlables con dimmers  o reguladores  a gran diferencia de  las basadas en fluorescentes o del tipo CFL  donde no es tan sencillo
  • Como hemos visto, aspecto interesante  de los leds  es su mayor eficiencia lumínica, llegando a tener hasta 150 lúmenes por watt en las lámparas de alta eficiencia y de 80 lúmenes por watt en las comunes. Con esto se optimiza el uso de la luz emitida y se reduce el consumo de energía y la contaminación. En consecuencia, las lámparas LED tienen un mayor rendimiento luminoso útil (en porcentaje de lúmenes por watt).
  • Respeto  a la durabilidad  de  las  lámparas basadas con Leds , esa   es otra gran ventaja pues  tienen una vida útil de hasta 50,000 horas al igual que los convertidores ac/dc para alimentarlas ( en caso de que sean de calidad )  . Esto en parte  es debido a que los Leds no contienen partes mecánicas ni filamentos. Los Leds en si no dejan de funcionar; sólo se va reduciendo su capacidad lumínica y es por eso que tienen que ser reemplazados en un lapso de 30.000 a 50.000 horas dependiendo del caso. Gracias a su vida útil de hasta 50,000 horas, las lámparas de LED evitan que se tengan interrupciones de luz o iluminación y evitan que se tengan que estar reemplazando constantemente, por lo que ofrecen un excelente ahorro en cuestiones de mantenimiento.
  • Por ultimo destacar  mayor calidad cromática de la luz emitida  gracias a que el índice de rendimiento cromático (CRI)  en la tecnología led se suele tener un CRI <90, contra un CRI de los focos comunes de 44, lo cual nos da como resultado colores más puros, nítidos, vivos y profundos. Las lámparas LED vienen en una amplia versatilidad de colores que no necesitan de filtros para que se puedan apreciar.

Es evidente  pues como la iluminación basada en la tecnología  de  leds   tiene indudables ventajas frente   a todos otros   sistemas de iluminación anteriores como son le tradicional basado en luminarias incandescentes, las luminarias halógenas , las luminarias CFL o los tubos incandescentes  .

A modo de resumen  esta   imagen  aclara muy bien  las diferencias entre los diferentes sistemas de iluminación:

Vistas las grandes ventajas de la iluminación basada en la tecnología led , es lógico pensar en ciertos inconvenientes,  como puede ser la escasez  de ciertos modelos de  luminarias en algunos  formatos poco  habituales ( aunque esto es cada vez mas relativo) y  un   coste mayor relativo  de las luminarias, que  no realmente cierto puesto que , a parte de que éste tiende a bajar,   es claramente compensado  por la gran durabilidad de estas , etc

En  este apartado  hay también  un  aspecto algo problemático  , que es también  común   en menos frecuencia existente a los sistemas de iluminación basados en CFL , que   es  el de la llamada  corriente residual,  un efecto por el que se  quedan casi encendidas de forma tenue después de pulsar el interruptor para apagarlas.

Inicialmente puede parecer muy molesto sobre todo en habitaciones dedicadas al descanso   llevando  incluso   a personas  a volver  a  sistemas tradicionales ,   pero como vamos   a ver es resoluble  y no es algo tan misterioso como se ppuede  pensar   pues simplemente responden a una instalación  eléctrica  inadecuada  para este tipo de luminarias.

Este efecto se produce porque las luminarias de tipo LED son muy sensibles a la corriente, observamos que podemos cambiar una Bombilla convencional de 60W  por una LED de 5W ., lo  cual  quiere decir que la tecnología LED necesita muy poca corriente para proporcionarnos una alta intensidad Lumínica. Por lo mencionado anteriormente, si en nuestra instalación tenemos algo que produzca alteración en la corriente, nos encontraremos con que la Bombilla LED es inestable, produciendo destellos o no apagándose en su totalidad.

Si en una  vivienda hay colocados  interruptores con piloto de señalización, un interruptor con temporizador o en los circuitos de conmutados, se produce una pequeña corriente de retorno a las lámparas que ocasiona el problema mencionado.

Veamos las posibles causas de este efecto indeseado  y sobre todo como podemos resolverlos

Interruptores de corte  mal instalados

Normalmente las luminarias  en instalaciones monofásicas  ( que es la instalación habitual en nuestras viviendas)    se alimentan por dos hilos: la fase y  el neutro  de modo   que  todos  los  interruptores deberían cortar la fase cuando los accionamos   y no el neutro

Este  error de montaje  en  instalaciones con luminarias   convencionales  no conlleva ninguna anomalía   pero en caso de alimentar  a   luminarias del tipo  LED si que puede ser molesto ( según el driver ) , pues puede  hacer que  queden parcialmente encendidas cuando pulsamos el interruptor para apagarlas,

Es  fácil entender que esa leve iluminación se debe  que una pequeña derivación que hace que fluya corriente desde la fase hacia tierra  pasando por nuestras luminarias LED, puesto  que con  muy poca  corriente  un LED puede empezar  a lucir, y de ahi el misterio de las luces que no se apagan nunca.,

La solución en este caso  no es tan  sencilla (es decir cambiar el neutro por la fase  )  pues no siempre esta accesible  a todo el mundo y ademas sobra decir el peligro que puede conllevar , pues no todo el mundo tiene los suficientes conocimientos de electricidad   para cambiarlo  , pues se  precisa   desmontar el interruptor y  normalmente la caja  de conexiones para  localizar      los dos hilos que van  a la luminarias

Desgraciadamente como  no siempre están ambos hilos  en la caja del interruptor pues de hecho  lo normal  es que estén las 4 conexiones  en una caja de conexiones  previas , es en la caja de conexiones  donde   habrá que hacer el  doble cambio   en caso de tener  los dos cables  ahí    En caso de dudas con un destornillador buscapolos de 1€ podemos asegurarnos cual es la fase

Si no consigue resolver el problema o le parece muy compleja o peligrosa , otra solución  muy sencilla es optar por  poner un  justo antes del portalámparas un relee tal y como describimos al final de este post

Interruptores con neón de señalización

Es bastante común encontrarnos con interruptores que cuentan con una pequeña lamparita de neón que nos permite encontrarlo en la oscuridad de modo  que cuando esta apagado al luz del testigo se enciende  y al encenderlo esta se apaga.

Internamente el  piloto no es mas que una pequeña lampara de neón  con su correspondiente resistencia   imitadora  conectando el conjunto  en paralelo con el contacto del interruptor. Dada la configuración, el piloto queda  en serie con la bombilla LED que intentamos apagar cuando el interruptor abierto , permitiendo que fluya una mínima corriente hacia la bombilla LED que lleva a que se quede iluminada de forma tenue.

Las soluciones a este problema podrían ser:

  1. Anular el neón del interruptor ( en muchos mecanismos   el neon es enchufable por  lo que bastara quitarlo por  presión)   o sustituir el interruptor por uno normal.
  2. Instalar una pequeña resistencia en paralelo con la bombilla LED de forma que se evacue ahí la potencia. Ésta solución tampoco nos ahorrará ese pequeño consumo pero se apagará la luz completamente al pulsar el interruptor.
  3. Si estamos instalando dicroicas LED a 230V en sustitución de halógenos a 12V y hemos eliminado el transformador, podemos dejarlo conectado sin carga a la salida, de esta forma la corriente residual iría al transformador y no a la bombilla, apagándose la luz completamente al pulsar el interruptor
  4. Instalar un condensador en paralelo con la luminaria  para lo cual habrá que seguir los siguientes pasos:
    1. Desconecte la corriente del cuadro de distribución de corriente alterna para trabajar seguro.
    2. Quite el embellecedor de la luminaria objeto del cambio a tecnología LED.
    3. En la ficha de conexión de la lampara  conecte   un condensador de 470nF 400v (podemos encontrarlo bajo diferentes nombres  0.47uF / 470nF 474J 400v)
    4. Vuelva a colocar el embellecedor de conexión. Listo.

Si no consigue resolver el problema o le parece muy compleja o peligrosa , otra solución  muy sencilla es optar por  poner un  justo antes del portalámparas un relee tal y como describimos al final de este post

Corrientes de retorno por neutro

Este es el caso menos común de todos. Es posible que algunos de los electrodomésticos de nuestra casa produzcan corrientes de retorno por el neutro, que aunque son muy pequeñas, al pasar por nuestros super-eficientes luminarias con  LEDs pueden hacer que se queden medio encendidas incluso con el interruptor apagado.

Para  solucionarlo de forma eficaz podría bastar  sustituir los interruptores unipolares  por unos interuptores bipolares que corten a la vez  tanto  la fase como  el neutro al pulsar el mecanismo. En caso de no encontrar estos interruptores o no querer cambiar la instalación , otra opción muy sencilla es optar por usar un rele  alimentando por 220 v   con dos  circuitos para situarlos  justo en el lado de la luminaria

Un ejemplo de rele  Modelo LY2J que admite 220VAC  con capacidad de contactos de hasta 10A  y que se puede comprar por 8.89€ en Amazon 

El esquema de conexiones para Modelo LY2J    es bastante sencillo ,  pues consiste simplemente  intercalar en el cable que alimente a la luminaria  los contactos normalmente abiertos del relé  para que se cierren estos cuando se alimente la bobina   y den paso  para encender la luminaria.

Obviamente el circuito se completa con la conexión de la bobina ( contactos 7 y 8)  hacia el cable de alimentación

Es decir ,,conectaremos los terminal 7 con el 3  a la fase, el 8 con el 4 al neutro ( o viceversa)   y luego conectamos la luminaria a lo contactos 5  y 6  ( no importa el orden) . Con este sencilla idea nos evitaremos  manipular la instalación original  y  resolveremos de una vez el problema  de una forma bastante sencilla y económica este molesto problema .

Uso de un condensador

Puede  que al realizar una pequeña instalación en la que hacemos uso de luminaria basada en diodos  LED nos hayamos  topado con un curioso fenómeno  que al pagar esta   queda una levísima  iluminación que solo se  advierte claramente si nos quedamos a oscuras.

Naturalmente, debido a que existen numerosos tipos de lámparas, será necesario probar experimentalmente el valor justo.

Por cierto,  hay personas  que precisamente buscan potenciar   el fenómeno de la luz residual de los leds   por ejemplo, conectando una resistencia de algunos K en paralelo con los interruptores de alimentación de 12V en modo tal que quede una débil luz en el ambiente para permitir de ver cuando todas las luces están apagadas. Es un sistema realmente cómodo. 

Tal y como hemos hablado con las lamparas de sobremesa , muchas veces el problema se debe a que los interruptores no cortan por completo los dos hilos ( fase  y neutro ) de la instalación ya que suelen ser monopolares . Ademas  para empeorar al situación en algunas y instalaciones esta conectado el neutro en lugar de la fase al interruptor (o incluso hay instalaciones con fase y fase en lugar de fase o neutro como debería  ser )

Por último hay personas que optan   por conectar  un condensador  de .47uf en paralelo con lo podriamos llamarlo polos de la lampara, asi este absorbe la corriente residual y antes de completar su carga se descarga por el cambio de ciclo,

Es  una solución interesante aunque podría  tener un problema: la reactancia del capacitor es Xc = 1 / (2 * Pi * f * C ) = 1 / (2 * 3,14 * 50 * 0,00000047) = 6772 ohms. Por lo tanto, la potencia disipada por el capacitor será P = V * V / R = 7,15 Watts. Es decir, tendríamos un consumo extra de 7 Watts que se pierde en el condensador

Soluciones antiparpadeo especificas

Por último existen soluciones especificas como son los nuevos dispositivo anti-parpadeo para dispositivos LED, siendo estos dispositivos ideales para resolver los problemas de parpadeo en productos LED que se quedan encendidos cuando se corta el interruptor. Estos dispositivos absorben las tensiones parásitas de la línea que llegan al dispositivo led siendo eficaces en el 99% de los casos.

Se trata de un módulo que se coloca a la salida del interruptor y en paralelo con la iluminación LED evitando los molestos parpadeos producidos por los interruptores, sobre todo aquellos que incorporan un pequeño piloto de luz .

Suelen de ser de reducidas dimensiones ocupando poco espacio, siendo ligeros y resistentes por lo que es recomendable incluir este módulo en las instalaciones eléctricas LED que utilicen interruptores que requieran una carga mínima, como los interruptores clásicos, táctiles, reguladores o interruptores con piloto, entre otros.

Control casero con Alexa


Se puede utilizar Fauxmo de Makermusings y una placa de retransmisión para «engañar» a Alexa para que piense que Raspberry Pi es un dispositivo Wemo , y activar y desactivar las cosas. Sin embargo, eso limita uno a configurar todos los dispositivos deseados alrededor de un área única que está cerca de la Raspberry Pi.

Nos gustaria a hacer lo siguiente:

  1. Dar el comando: «Alexa, enciende la lámpara»
  2. Alexa envía un comando a Raspberry Pi a través de Fauxmo
  3. Raspberry Pi enciende un interruptor lejano que puede estar en la cocina, pero usaría algún tipo de interruptor inalámbrico

También puede usar algo como Node-RED (viene preinstalado en raspbian) y node-red-contrib-alexa-home-skill (escribí este nodo) para enviar los mensajes y tener más control que solo las acciones que admite Wemo .

Introducción (skill propia de Alexa y servidor Flas-Ask)

Mediante un dispositivo con Alexa (amazon echo, fire tv cube, etc) podemos controlar y ejecutar acciones (scripts o programas) en una Raspberry Pi (o cualquier otro equipo). Existen numerosas formas de hacer esto, aunque después de probar muchas de ellas (que hacen que la Raspberry Pi se comporte como un dispositivo IOT que Alexa puede encontrar, tales como fauxmo, ha-bridge, etc) y que no me han funcionado, algo muy sencillo y que realmente funciona es crear una custom Skill en la web de developers de Amazon, y ejecutar en la Raspberry Pi (puede ser otro equipo) un servidor web preparado para las Skills de Alexa, en concreto Flask-Ask, (extensión del servidor Flask de python) el cual ya puede ejecutar cualquier tarea en la Raspberry Pi mediante instrucciones en python, o bien llamando directamente a ejecución de scripts, lo que abre un mundo de posibilidades. En mi caso, lo usaré para encender/apagar el aire acondicionado con la Raspberry Pi, que tiene un módulo de Infrarrojos (emisor/receptor) acoplado en los pines GPIO.

https://github.com/johnwheeler/flask-ask

https://pythonprogramming.net/intro-alexa-skill-flask-ask-python-tutorial/

Para que todo funcione correctamente, es necesaria una salida a internet real del servidor Flask-Ask. Una opción es usar ngrok en la Raspberry Pi, para probar, y finalmente, usar un dominio propio (o un ddns) que apunte a nuestro router, en el cual será necesaria una redirección de puertos (abrir puertos) del https (puerto 443 requerido por los Skills de Alexa) hacia el servidor Flask-Ask que se ejecuta en la Raspberry Pi (bajo el puerto 5000 por defecto). Es decir, en el router, tendremos que añadir una regla (servidor virtual, redirección de puertos, abrir puerto) del tipo:

puerto 443 -> Ip Raspberry pi puerto 5000.

(Nota: el ngrok hay que ejecutarlo en la Raspberry Pi especificando exactamente lo mismo, redirigiendo hacia el puerto 5000, ngrok ofrece dos direcciones, una http y otra https, siendo esta última la obligada por Amazon para las skills)

También puede hacerse, y es como lo he hecho yo y voy a mostrar, mediante un proxy inverso con nginx que se ejecuta (en mi caso en otro ordenador, y así no exponemos la Raspberry Pi a internet, sino el ordenador donde se ejecuta el nginx, algo más fortificado, el nginx también podría ponerse en la Raspberry Pi), tal como se muestra en el esquema siguiente:

Esquema de los dispositivos

El proceso es el siguiente (siguiendo los números del esquema):

  1. Se indica al dispositivo Alexa que invoque nuestra skill y lo que queremos que dicha skill haga (conocido como intent). En este tipo de skills, que no están publicadas en Amazon, y que son de uso particular, hay que decir algo del tipo «Alexa dile a XXX que YYY», donde XXX es el nombre de la Skill e YYY es el nombre de la acción que va a realizar (Intent), otras formas pueden ser: «Alexa di a XXX YYY», «Alexa pide a XXX que YYY»… etc, lo que he comprobado es que cuanto más sencilla sea la orden, mejor (cuantos menos artículos o determinantes se usen, mejor)
  2. El dispositivo Alexa se va a los servicios en la nube de Amazon, busca nuestra skill (imprescindible que la cuenta de inicio de sesión en Amazon Developers y el dispositivo Alexa sea la misma, si no es así. la skill no la encontrará)
  3. La Skill se comunica con un «endpoint» o servidor, que puede estar en la nube de Amazon, o en otro sitio, y tiene que ser obligatoriamente una dirección https. En nuestro caso, está en un equipo nuestro, en nuestra red local. Hay múltiples posibilidades para esto, en particular consideramos dos, una para pruebas, y otra ya definitiva. En ambos casos, exponemos el servicio de Flask Ask a internet mediante una dirección (url) https.
    • ngrok (camino de color rojo en la figura anterior): lo que hace es ofrecer temporalmente una dirección de internet para el equipo donde se ejecuta (http y https), y evidentemente hay que redirigirla a un servicio de ese equipo, para ofrecer dicho servicio por internet (en nuestro caso Flask-Ask) (nota: ngrok ofrece permanencia de sus servicios mediante suscripción)
    • Servidor web y reverse proxy con nginx (camino de color naranja): este caso es cuando queremos todo definitivo, y para ello exponemos a internet mediante redirección de puertos de nuestro router (abrir puerto 443 https) a otro equipo, con un servidor web y reverse proxy a la Raspberry Pi y el Flask Ask.
  4. La petición que hace la Skill a nuestro Flask-Ask se procesa con dicho Flask Ask, y ejecuta las acciones que hayamos programado, sean comandos directamente, la ejecución de un script, etc.
  5. En mi caso, Flask Ask va a ejecutar el script encender.sh o apagar.sh en función de lo que le hayamos dicho a Alexa. Estos scripts están en el post de este blog de controlar el aire acondicionado con la RPi (más abajo, en el punto siguiente). Estos scripts envían una secuencia de códigos mediante el emisor infrarrojo, que activan el receptor del aire acondicionado.
  6. En nuestras acciones de Flask Ask, podemos hacer que nuestro dispositivo Alexa responda con frases o pregunte otras cosas (que pueden lanzar nuevas acciones, y abriendo un mundo de posibilidades)

Lista de requerimientos necesarios

No voy a explicar en detalle cómo efectuar los siguientes pasos, ya que las referencias y tutoriales proporcionados al principio lo hacen perfectamente y con todo detalle.

  • Cuenta en Amazon Developers: la misma que la que tenemos en el dispositivo Alexa (echo, fire Tv, fire Cube…) ya que es la única manera de que nuestro dispositivo Alexa «vea» el Skill que vamos a crear (https://developer.amazon.com/)
  • Raspberry Pi con Flask-Ask instalado, donde vamos a ejecutar el servicio (programa) que contendrá las acciones a realizar por la Raspberry Pi cuando interprete una orden correcta dada por Alexa (y adicionalmente con el módulo de infrarrojos y toda la condfiguración necesaria para que todo funcione previamente)
  • Salida a Internet del servidor Flask-Ask, para las pruebas, con ngrok. Para el uso definitivo, bien una redirección de puertos en el Router, o bien un web proxy intermediario (nginx en otro PC, o en la propia Raspberry Pi)

La configuración para usar la Raspberry Pi para controlar el Aire Acondicionado con el módulo de infrarrojos está detallada en esta entrada:

Componentes necesarios

  • Skill de Alexa en amazon developers: cosas a tener en cuenta con los intents (creados por defecto)
  • Aplicación Flask-Ask, que es la que va a ejecutar acciones en función de las peticiones de AWS
  • Pruebas con ngrok (instalado directamente en la Raspberry Pi), con el simulador de Amazon Developers

Skill de Alexa

Existe multitud de maneras de definir un Skill de Alexa, pero básicamente consiste en tener un conjunto de acciones (Intents) que se corresponden con ciertas órdenes o palabras por voz. Esto es, al decir una palabra o frase al dispositivo Alexa, que habremos definido en la skill, se asociará al Intent correspondiente (con los valores correspondientes). Es importante tenerlos bien definidos y tmar nota de los nmbres, que se tendrán que corresponder exactamente con lo que implementemos en la aplicación de Flask-Ask.

Desde la consola de Amazon Developers creamos una nueva Skill

Tenemos que seleccionar un nombre (da igual, es simplemente para identificarla), el idioma, el tipo (por defecto aparece «Custom» y es la que usaré, y dónde van a estar alojados los recursos, que seleccionaremos nuestros propios recursos (endpoint), que aparece por defecto seleccionada.

Pulsamos el botón «crear Skill», justo arriba de la página

Ahora nos preguntará una plantilla y seleccionamos la vacía (por defecto)

Ya tenemos la Skill creada, y si accedemos a la aplicación de Alexa en nuestro dispositivo móvil, o bien a través d ela Web, ya vemos allí que tenemos la Skill de desarrollador recién creada:

La Skill «Mi primera Skill« ha sido simplemente como ejemplo, a partir de ahora, veremos la Skill RPi control, que es la que usaremos y programaremos para ejecutar cosas en la Raspberry Pi.

Una de las primeras cosas a hacer en la Skill recién creada es observar los Intents creados por defecto:

Como vemos, nos crea unos Intents requeridos que no podemos borrar, y uno por defecto llamado «HelloWorld», que tenemos que borrar, salvo que lo implementemos en nuestra aplicación Flask Ask.

Esto fue uno de mis primeros errores, como se ve en el log de la apliación Flask-Ask en la RPi:

raise NotImplementedError('Intent "{}" not found and no default intent specified.'.format(intent.name))
NotImplementedError: Intent "HelloWorldIntent" not found and no default intent specified.

Sin embargo, los Intents requeridos no los podemos eliminar, y en mi caso particular, el intent AMAZON.StopIntent me dio mucho la lata dado que, al decir «apaga», «apagar», parece ser que los servicios de Amazon lo asocian a este intent y no al mío personalizado, por lo que tenía un error similar al anterior:

Por tanto, para evitar este problema, simplemente basta con implementar en la aplicación Flask-Ask este intent requerido de Amazon para que ejecute exactamente lo mismo que el nuestro propio al escuchar «apagar» o similares.

Skill RPi control

Primero, necesitamos al menos dos palabras para invocar al Skill , yo he elegido «raspberry pi»

Muy importante y a tener en cuenta, es que, en este tipo de Skills personales, cuando hablamos al dispositivo Alexa, hay que hacerlo de la siguiente manera:

Alexa, di a XX XX que YYY, Alexa dile a XX XXX YYY, Alexa pide a XX XXX que YYY

dado que al no estar publicado, no puede hacerse de otra forma (XX XX son las dos palabras de invocación,e YYY es la frase o utterance que hemos indicado para el Intent o Acción. Amazon así lo advierte:

Más sobre esto en https://developer.amazon.com/en-US/docs/alexa/custom-skills/understanding-how-users-invoke-custom-skills.html seleccionando las pestañas «Spanish»

No obstante, desde el simulador de la web de Amazon Developers, al testear el Skill, sí que se permiten las frases de activación usuales para skills publicados (pero que no van a funcionar al hablarle a nuestro dispositivo, p.ej. en mi caso: Alexa activa Raspberry pi, Alexa pon raspberry pi funcionará en el simulador, pero no en el dispositivo real)

Vistas las consideraciones anteriores, el Skill es extremadamente sencillo, sólo tiene una acción o Intent llamada «Aire«

con dos posibles palabras de activación (utterances), que son encender y apagar (podrían haberse hecho dos intents diferentes, etc)

Para definir este tipo de intent, primero hay que definir un «slot», que se asociará al intent. El slot simplemente contiene los valores que luego vamos a interpretar con la aplicación Flask-Ask y las frases para activarlo, así como los sinónimos:

En este caso he seguido al pie de la letra los tutoriales indicados al inicio, y tengo un slot llamado status

Tiene dos valores definidos, y ciertos sinónimos que interpretará también el Intent asignándoles el valor correspondiente (es decir, para que se interprete el valor «apagar», se pueden decir las palabras «apagar»,»quite»,»apague»,»quita»,»apaga»

Ahora puede crearse el Intent Aire y asociarlo a este slot (es sencillo, está todo guiado). Además pueden escribirse la frases (utterances) de activación de este intent añadiendo el nombre del slot (entre llaves) que se interpretarán según lo que acabamos de ver (unas palabras se asociarán a encender y otras a apagar)

Y ya está, ya tenemos nuestra Skill creada y definida. A la hora del paso siguiente, la programación de la aplicación Flask-Ask, tenemos que quedarnos con que tenemos que implementar el intent «Aire», el «AMAZON.StopIntent» y que para el intent «Aire» tendremos que implementar acciones según sea el valor de ese intent (encender o apagar)

La vista en JSON permite ver todo más claro:

{
    "interactionModel": {
        "languageModel": {
            "invocationName": "raspberry pi",
            "intents": [
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.NavigateHomeIntent",
                    "samples": []
                },
                {
                    "name": "Aire",
                    "slots": [
                        {
                            "name": "status",
                            "type": "status"
                        }
                    ],
                    "samples": [
                        "que {status} el aire",
                        " {status} el aire"
                    ]
                }
            ],
            "types": [
                {
                    "name": "status",
                    "values": [
                        {
                            "name": {
                                "value": "apagar",
                                "synonyms": [
                                    "quite",
                                    "apague",
                                    "quita",
                                    "apaga"
                                ]
                            }
                        },
                        {
                            "name": {
                                "value": "encender",
                                "synonyms": [
                                    "ponga",
                                    "encienda",
                                    "pon",
                                    "enciende"
                                ]
                            }
                        }
                    ]
                }
            ]
        }
    }
}

Aplicación Flask-Ask

Ahora le toca el turno a instalar en la Raspberry Pi el servidor Flask Ask y programar (python) el programa que interpretará las órdenes que le envíen los Servicios de Amazon al traducir nuestras órdenes de voz a peticiones al servidor endpoint (nuestro Flask Ask)

NOTA: en los tutoriales para instalar Flask-Ask se indica que se use una versión previa del módulo cryptography de python, porque si no se dan problemas con el SSL (ver p.ej. https://stackoverflow.com/questions/49375054/alexa-skill-development-using-flask-ask-and-ngrok). En mi caso, uso una versión de Raspbian Buster con Kernel 4.9.X porque es la única manera de que funcione el módulo de infrarrojos. La versión cryptography de este Raspbian es antigua y no da problemas.

De nuevo, siguiendo los tutoriales y adaptándolo a nuestro uso, es algo muy sencillo. Como vimos en el post d ela Raspberry Pi y el Aire acondicionado con el emisor de infrarrojos, simplemente se trata de ejecutar los scripts «encender.sh» y «apagar.sh» según corresponda.

El código es el siguiente y es trivial. Simplemente hay que tener en cuenta los valores sinónimos para tener en cuenta todos los valores posibles que ejecuten las sentencias de nuestro programa. Para cada intent (el nombre tiene que ser el mismo que hemos puesto en la Skill) se tiene que definir una etiqueta @ask.intent y a continuación una función (de nombre el que sea) que incluye lo que se va a hacer (como parámetro puede admitir los valores del slot (mismos nombres) (en mi caso el mapping es redundante y podría eliminarse, se usa cuando el nombre del slot y el tipo son distintos).

La función launch sirve para cuando se activa simplemente el Skill, y funciona desde la web de amazon developers (al decir «Alexa activa raspberry Pi» o similares, se implementa una acción de respuesta que nos pregunta qué hacer, pero esto sólo funciona en el simulador). El intent Ayuda (que era requerido) podemos indicar que haga algo, en este caso decirnos una frase (para invocarlo: «Alexa dile a Raspberry Pi ayuda«)

import logging
import os

from flask import Flask
from flask_ask import Ask, request, session, question, statement

app = Flask(__name__)
ask = Ask(app, "/")
logging.getLogger('flask_ask').setLevel(logging.DEBUG)

STATUSON = ["encender", "enciende", "pon","encienda","ponga"] # all values that are defined as synonyms in type
STATUSOFF = ["apagar", "apaga", "quita","apague","quite"]

@ask.launch
def launch():
    speech_text = '¿qué quieres hacer?, ¿encender o apagar el aire?'
    return question(speech_text).reprompt(speech_text).simple_card('Poner Aire Skill','Se ha  iniciado')

@ask.intent('Aire', mapping = {'status':'status'})
def Aire_Intent(status):
    if status in STATUSON:
        os.system('./encender.sh')
        return statement('El aire se va a encender')
    elif status in STATUSOFF:
        os.system('./apagar.sh')
        return statement('El aire se va a apagar')
    else:
        return statement('Lo siento, no puedo hacer eso con el aire.')


@ask.intent('AMAZON.StopIntent')
def apagar():
        os.system('./apagar.sh')
        return statement('El aire se va a  apagar')

@ask.intent('AMAZON.HelpIntent')
def help():
    speech_text = 'Control Aire con la Raspberry pi!'
#    return question(speech_text).reprompt(speech_text).simple_card('HelloWorld', speech_text)
    return statement(speech_text)


@ask.session_ended
def session_ended():
    return "{}", 200


if __name__ == '__main__':
    if 'ASK_VERIFY_REQUESTS' in os.environ:
        verify = str(os.environ.get('ASK_VERIFY_REQUESTS', '')).lower()
        if verify == 'false':
            app.config['ASK_VERIFY_REQUESTS'] = False
    app.run(host='0.0.0.0',debug=True)

Evidentemente, se puede mejorar y diseñar la skill de otra manera, pero es totalmente funcional.

En muchos tutoriales, la ejecución de Flask se hace en el interfaz localhost (127.0.0.1), es decir, el servicio sólo es visible en la raspberry Pi, y esto no es problema si usamos ngrok, pero si queremos exponer el servicio a intenet ya sea mediante redirección de puertos en el router, o con el reverse proxy nginx, entonces tendremos que ejecutar la aplicación para que escuche en todos los interfaces o bien en la ip de la raspberry pi, indicando la ip ‘0.0.0.0’

app.run(host='0.0.0.0',debug=True)

Ejecutamos la aplicación en la raspbery pi y ya tenemos el servidor Flask-Ask esperando peticiones desde internet.

Para dejarlo ejecutándose en segund plano y poder cerrar la terminal (sesión ssh) basta el comando siguiente (redirigiendo la salida a un archivo de texto, para ver los logs)

nohup python3 aire.py > flask-ask.log &

Los archivos que hay en mi Raspberry Pi son los siguientes, los scripts y archivos necesarios para encender/apagar el aire acondicoinado con el módulo ir (utilidad irr.py y asociados), ngrok y la aplicación aire.py

Podemos comprobar que está funcionando correctamente accediendo desde un navegador web a la ip de la Rasperry Pi y el puerto 5000. El resultado con el error 405 es correcto:

Pruebas con ngrok

En la definición del Skill en la web de Amazon Developers, nos faltaba algo muy importante, y es indicar el «endpoint» de nuestro Skill, que en este caso es el servicio Flask-Ask (la aplicación aire.py) que se está ejecutando en la Raspberry Pi

Instalar ngrok es trivial, simplemente se descarga de su web, se descomprime y se ejecuta, redirigiendo http al puerto 5000 que es donde se está ejecutándose la aplicación de Flask-Ask aire.py.

ngrok http 5000

Con ambas aplicaciones ejecutándose, vamos a la web de Developer de Amazon y le indicamos a nuestra skill que el endpoint es la dirección http que nos proporciona ngrok, y que el certificado es el de un subdominio (tenemos que poner la dirección que nos da ngrok, en la imagen siguiente se pone una de ejemplo):

Una vez guardado todo, llega el momento de compilar la Skill, dando al menú Build en la consola de Amazon Developer. Cuando nos avise de que ya está, podemos ir a la pestaña de test y empezar a comprobar si funciona o tenemos errores (hay que ver los logs en la consola de developer y los de Flask-Ask y ngrok en la Raspberry Pi)

Usar la consola de test es muy sencillo. POdemos usar el micrófono del PC o bien escribirlo, el PC nos responderá como si fuera el dispositivo Alexa. Una vez solucionados los posibles errores, ya puede uno dirigirse directamente al dispositivo Alexa con la voz.

Voy a mostrar algunas capturas del proceso y las comprobaciones de cómo funcionan las cosas (algún error también se muestra de mis pruebas)

Enviar una instrucción al skill (vemos la respuesta satisfactoria)

Test en la consola de Amazon Developers

El log muestra que se ha capturado ese texto (comando por voz), que se envía a nuestro endpoint, y cómo se interpreta y trduce en parámetros de la skill (intent, slot y valor):

endpoint
Mensaje recibido por Amazon

A continuación, se muestra el log de cómo se ha interpretado correctamente la orden, y traducido a parámetros de ls¡a Skill, que el programa Flas-Ask va a usar.

Un ejemplo de cómo en la consola de Developer de Amazon funciona invocar el Skill directamente (que lanza la función @launch de la aplicación Flask-Ask). Pero esto no funciona en el dispositivo real (Alexa nos contestará que no encuentra a Raspberry PI, o bien, en mi caso que es un Fire Cube, conectado a la TV, me hace una búsqueda en la TV)

NGINX y Reverse Proxy (dominio particular)

Ahora se trata de sustituir la funcionalidad de ngrok por nuestro propio dominio, certificado SSL (en mi caso uno autofirmado) y nginx como reverse proxy para redirigir el tráfico https al puerto 5000 donde está ejecutándose Flask-Ask.

El proceso es muy sencillo, el habitual para usar nginx como reverse proxy.

Necesario:

  • Dominio propio (o bien un DDNS) que resuelve a nuestra ip pública
  • Redirección del puerto https (443) en nuestro router a la ip de la Raspberry Pi en el puerto 5000 (abrir puerto 443 en el router)
  • certificado SSL autofirmado (o bien uno tipo Let’s Encrypt, que será aceptado por Amazon).
  • Configurar el Skill para que use como endpoint nuestro dominio, y como certificado SSL, subirle el nuestro autofirmado.

La configuración de nginx es simple (hay muchos tutoriales en internet), en mi caso, nginx configura los distintos «sitios» en los archivos en «sites-enabled» (en particular el default)

Tan sólo hay que tener en cuenta el nombre de nuestro dominio, la ip local de la Raspberry Pi (192.168.1.99 en mi caso), y dónde hemos guardado los archivos con las claves pública y privada del certificado SSL (ver notas SSL a continuación)# Default server configuration # server { listen 443 ssl; server_name XXXXXXXXXXXXXXXXX.es; ssl_certificate /XXX/XXX/certificate.pem; ssl_certificate_key /XXX/XXX/private-key.pem; ssl_protocols TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; location / { proxy_pass http://192.168.1.99:5000/; # Flask-Ask en RPi proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection ‘upgrade’; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_read_timeout 120s; } }

Notas sobre SSL

The SSL handshake to endpoint Resource [https://XXXXXXX.es], Type [HTTP], Region [DEFAULT] failed. Please check that your java keystore is correctly configured"

En el caso de certificado autofirmado es necesario seguir lo indicado en la propia web de AMazon Developers: https://developer.amazon.com/en-US/docs/alexa/custom-skills/configure-web-service-self-signed-certificate.html. Yo tuve que cambiar el certificado que tenía por un problema en el mismo, que hacía que el Skill no funcionara. Obtenía el siguiente error:

Una comprobación que realicé fue con el servicio que proporciona qualys ssl labs (https://www.ssllabs.com/ssltest/) y me daba el siguiente error con el certificado SSL autofirmado que tenía previamente:

Error del certificado autofirmado previo

Una vez seguidos los pasos que indica Amazon (ver enlace anterior), el mismo test ya no da error, y el Skill funciona. La clave estaba en el parámetro «Alternative names»

Configurar el Skill

Simlemente volvemos a la consola de Developers de Amazon y cambiamos el Endpoint, seleccionamos certificado autofirmado. Guardamos, y una vez guardado , nos pide subir el certificado autofirmado. Todo explicado en el enlace anterior de SSL.

Ahora se vuleve a compilar la Skill (Build) y ya podemos probar que las cosas van bien (nuevo endpoint a nuestro dominio)

Mas información en https://abrazalaweb.net/2021/07/controlar-raspberry-pi-con-alexa/

Instalacion de NILMTK en Linux


Recomendamos usar Anaconda , que agrupa la mayoría de los paquetes necesarios. Recomendamos Anaconda para Python 3.6.x ya que Python 2.7 pronto dejará de ser compatible.

Después de instalar Anaconda, haga lo siguiente en caso de que el equipo tenga Linux u OSX

Pyton 3

En Ubuntu, ejecútelo sudo apt-get install python3-tk antes de intentar instalar NILMTK para Python 3.

Instalar en Ubuntu como variantes de Linux (basado en Debian) u OSX

NB: El siguiente procedimiento es para variantes de Linux similares a Ubuntu (basadas en Debian). Adáptese en consecuencia para su sistema operativo. También recibiríamos instrucciones de instalación para otros sistemas operativos.

Procedimiento de instalación experimental pero probablemente más fácil para Unix u OSX

En esta sección describiremos un procedimiento de instalación rápido y simple, pero poco probado. . Las instrucciones antiguas de Unix y OSX están más abajo en esta página si necesita probarlas.

Instale git, si es necesario:

sudo apt-get install git

Descargar NILMTK:

cd ~
git clone https://github.com/nilmtk/nilmtk.git
cd nilmtk

El siguiente paso usa conda-env para instalar un entorno para NILMTK, usando el archivo de environment.ymltexto de NILMTK para definir qué paquetes deben instalarse:

conda env create
source activate nilmtk-env

A continuación, instalaremos nilm_metadata (aún no se puede instalar usando pip / conda):

cd ~
git clone https://github.com/nilmtk/nilm_metadata/
cd nilm_metadata; python setup.py develop; cd ..


Vuelva a cambiar a su directorio nilmtk e instale NILMTK:

cd  ~/nilmtk
python setup.py develop

Ejecute las pruebas unitarias:

nosetests

Luego, trabaje en NILMTK :). Cuando haya terminado, simplemente haga source deactivatepara desactivar el nilmtk-env.

Antiguo procedimiento de instalación para Unix u OSX

  • Actualizar anaconda
conda update --yes conda
  • Instalar bibliotecas HDF5 y python-dev
sudo apt-get install libhdf5-serial-dev python-dev
  • Instalar cliente git
sudo apt-get install git
  • Instale pip y otras dependencias que podrían faltar en Anaconda
conda install --yes pip numpy scipy seis scikit-learn pandas numexpr
pytables dateutil matplotlib networkx futuro

Tenga en cuenta que, si está utilizando pipen lugar de conda, elimine dateutily reemplace pytablescontables .

Tenga en cuenta también que hay un error en Pandas 0.17 que causa problemas graves con los datos donde el índice de fecha y hora cruza un límite de horario de verano. Como tal, no instale Pandas 0.17 para usar con NILMTK. Pandas 0.17.1 se lanzó el 20 de noviembre de 2015 e incluye una solución para este error. Asegúrese de instalar Pandas 0.17.1 o superior.

git clone https://github.com/nilmtk/nilm_metadata/
cd nilm_metadata
python setup.py develop
cd ..
  • Instale psycopg2 Primero necesita instalar Postgres:
sudo apt-get install postgresql postgresql-contrib
sudo apt-get install postgresql-server-dev-all
pip instalar psycopg2
  • Varios instalaciones pip
pip install nose coveralls coverage git+https://github.com/hmmlearn/hm[email protected]#egg=hmmlearn
  • ¡Por fin! Instalar NILMTK
git clone https://github.com/nilmtk/nilmtk.git
cd nilmtk
python setup.py develop
cd..
  • Si lo desea, también puede ejecutar pruebas NILMTK para asegurarse de que la instalación se haya realizado correctamente.
cd nilmtk
nosetest




Fuente https://github.com/nilmtk/nilmtk/blob/e5cc77e560d2520861a7ce3aec1f6feda4441c9e/docs/manual/user_guide/install_dev.md#install-on-ubuntu-like-linux-variants-debian-based-or-osx

Los 5 mejores Cyberdecks con Raspberry Pi


Cyberdecks solía ser material de ciencia ficción, pero con Raspberry Pi se han convertido en una realidad. Lo que define a un cyberdeck diferirá según a quién le pregunte, pero en esencia puede esperar un ordenador portátil en miniatura, diseños de bricolaje tremendamente creativos y funcionalidad personalizada.

A menudo inspirados en la estética cyberpunk, los cyberdecks se encuentran entre algunas de las construcciones de Raspberry Pi más creativas y variadas.

Cyberdecks frente a portátiles

Por supuesto, puede usar su Raspberry Pi para construir un ordenador portátil agregando una pantalla, un teclado y una estructura personalizada para albergar sus dispositivos electrónicos. Ya hemos visto varias formas en las que puede convertir su Raspberry Pi en una computadora portátil a lo largo de los años. Pero un cyberdeck también tiene una pantalla y un teclado y está diseñado para ser portátil. Entonces, ¿qué lo hace diferente?

Lo que podría ver en un cyberdeck:

  • Tamaños de pantalla inusuales
  • teclados personalizados
  • LED extra, sensores, antenas
  • Flexibilidad para acceder y mantener las piezas internas
  • Electrónica reciclada
  • Piezas recicladas
  • Diseños únicos únicos

Con un cyberdeck, no necesita apegarse al diseño tradicional de la computadora portátil o la computadora. Piense en lo que quiere que haga su plataforma, construya la electrónica y sea creativo con la forma en que encierra todos los componentes en una increíble plataforma portátil.

1. Kit de recuperación de Raspberry Pi Cyberdeck fuera de la red

Las computadoras fuera de la red para situaciones de emergencia son una idea de construcción que puede encontrar a menudo en la comunidad de cyberdeck. Ambos son resistentes y reparables, y una buena prueba para construir algo que pueda resistir el paso del tiempo.

Jay Doscher es el creador detrás de esta plataforma cibernética fuera de la red bellamente diseñada que se encuentra dentro de un resistente estuche Pelican. Puede encontrar la guía de construcción en su sitio web BACK7 y obtener una descripción general de la lista de piezas. Cuenta con una Raspberry Pi 4 y una pantalla táctil Pi de 7″, junto con conectores USB, conector de barril y Ethernet, cada uno de los cuales se puede apagar individualmente con interruptores de bloqueo.

Parte de por qué se ve tan bien se debe al uso de la impresión 3D. El acceso a la impresión 3D asequible en el hogar es relativamente nuevo, lo que se suma a la razón por la cual los proyectos de cyberdeck están creciendo en popularidad.

2. Caja de proyector Raspberry Pi

No todos los cyberdecks están diseñados para escenarios imaginarios: algunos están destinados a ser utilizados en entornos del mundo real. En este caso, Subir Bhaduri es el creador de una computadora con proyector Raspberry Pi de bajo costo que espera pueda usarse en aulas con pocos recursos tecnológicos. Puede encontrar los detalles convincentes de esta compilación en Hackaday .

En lugar de una pantalla, se utiliza un proyector para que un grupo grande de estudiantes pueda compartir la computadora al mismo tiempo. Una Raspberry Pi 3B+ o 4B le da a este proyecto capacidad inalámbrica para un mouse o teclado. Mientras tanto, una caja de metal cortada con láser diseñada a medida se adapta a todas las piezas del interior.

Al ser simple, resistente, portátil y de código abierto, este cyberdeck cumple bien sus objetivos. Lo que es más importante, su construcción cuesta solo $ 250 y, al mismo tiempo, sirve como una herramienta de aprendizaje para un gran grupo de personas. Con la relativa asequibilidad de los componentes electrónicos de bricolaje como Raspberry Pi, la informática de bajo costo puede llegar a más y más personas.

3. Cyberdeck con bandolera y sistema operativo dual

La creación de soluciones de hardware personalizadas para sus necesidades (o deseos) exactas es parte de lo que hace un cyberdeck. Y para mostrarle hasta dónde puede llevar su creación, eche un vistazo a este increíble diseño cyberpunk.

Dirígete a MSG Lab y te perderás explorando los entresijos de esta hermosa plataforma cibernética. Con una pantalla táctil, una pantalla de tinta electrónica y una pantalla de matriz de puntos LED de la vieja escuela, esta construcción es realmente el mejor ejemplo de una computadora boutique de bricolaje. Incluso tiene un botón de hardware dedicado para cambiar entre sistemas operativos que se ejecutan en un i7 NUC y Raspberry Pi debajo del capó.

Desde el teclado mecánico Planck hasta la sensación retro del chasis impreso en 3D, es una construcción magnífica. Y, por supuesto, en un verdadero espíritu de código abierto, puede descargar los archivos STL y el código de forma gratuita y ver un video de compilación completo en YouTube .

4. Cubierta cibernética Cyberpunk de Raspberry Pi

Volviendo a las raíces cyberpunk de los cyberdecks, encontrará que muchos proyectos se inspiran en la ciencia ficción. Para el creador de este cyberdeck, fue la clásica novela de ciencia ficción Neuromancer de William Gibson lo que lo llevó a crear este impresionante mazo, denominado Hosaka MK1.

Puede perderse en el sitio web de The Sprawl explorando la lista de componentes, la guía de compilación y los archivos para este diseño cyberpunk. Utiliza una pantalla táctil de 7″ para la interacción, con componentes adicionales para audio y radio, mientras que lo más destacado de este proyecto es el diseño del chasis de estilo retro impreso en 3D.

Tanto si eres un amante de la ciencia ficción como si no, este equipo portátil sigue siendo mucho más genial que la mayoría de las computadoras y portátiles.

5. Cyberdeck reciclado

Si bien la impresión 3D y otros métodos de construcción personalizados son más asequibles que nunca, todavía no es una opción para todos. Lo bueno es que no siempre necesita diseñar un chasis elegante para su cyberdeck: la tecnología reciclada es una solución aún mejor.

El aficionado a la tecnología, Alta, recicló una computadora portátil vieja para su plataforma cibernética y, con una verdadera estética cyberpunk, encaja perfectamente. A diferencia de los otros proyectos enumerados aquí, esta plataforma usa una Raspberry Pi Zero junto con un iPad mini y un Apple Magic Trackpad.

A pesar de que los componentes utilizados aquí son más estándar, el reciclaje de piezas que tiene en su hogar en una configuración portátil personalizada lo coloca en la categoría de cyberdeck. También nos muestra que un enfoque de bricolaje es una opción, incluso si no tiene los medios para una larga lista de componentes en su construcción.

Dónde encontrar más proyectos

Si al final de esta lista está decidido a construir su propio cyberdeck, entonces debería considerar saltar a la comunidad en línea para cyberdecks. Aquí hay un par de lugares a los que puedes ir:

  • Cyberdeck Cafe : presenta una gran galería de proyectos de cyberdeck publicados por miembros, junto con todo lo que necesita saber sobre la cultura de cyberdeck. También tienen una gran comunidad de discordia que vale la pena visitar.
  • r/cyberDeck : un foro en Reddit para discutir cyberdecks y publicar sus compilaciones.

Cyberdecks de bricolaje para ahora y el futuro

Los Cyberdecks están en algún lugar entre una computadora de escritorio y una computadora portátil, pero tienen un diseño tan único que realmente son su propia categoría. Ya sea que esté inspirado en una historia de ciencia ficción del pasado o espere crear algo que pueda usar prácticamente hoy, los cyberdecks son el mejor proyecto de construcción de computadoras.

Instalar NILMTK en Ubuntu


EL NILM o Non-Intrusive Load Monitoring, es decir la desagregación no intrusiva de la demanda . es una técnica computacional para la estimación del consumo individual de diversos dispositivos utilizando para ello la lectura agregada de un único medidor de energía (Smart Meter, SM).

Gracias a las ventajas en cuanto instalación , coste e implementación, éste concepto ha tomado relevancia en los últimos años en el ámbito de las Smart Grids, al aportar una estimación de los hábitos de consumo de los clientes sin la necesidad de un despliegue masivo de contadores inteligentes en cada punto de consumo.

Tal es el interés por esta técnica que desde el 2010 , el número de publicaciones científicas referentes al NILM se ha incrementado exponencialmente sin duda condicionado por los beneficios de esta técnica en el marco de las redes inteligentes de energía como por ejemplo la posibilidad de generar facturas de electricidad que muestren en detalle el consumo de los electrodomésticos utilizando solamente las lecturas de un SM

Asimismo, existen aplicaciones de Energy Management System (EMS) en conjunto con NILM, las cuales pueden ser compatible con los programas de respuesta a la demanda o Demand Response (DR) de las compañías de electricidad.

Por otro lado, algunos plantean la posibilidad de usar NILM para detectar averías en los dispositivos cuando se presenta un comportamiento anómalo en las mediciones desagregadas.
Es así como NILM se presenta como una valiosa herramienta para reducir el consumo de energía, tanto así que algunos afirman que es el “santo grial de la eficiencia energética”.

En este contexto vamos a ver una herramienta o toolkit open software llamado NILMTK que nos va a ayudar a comparar algoritmos para implementar la desagregación ( ademas particularmente no contempla un uso diferente a este)

Los entornos virtuales hacen que la organización de paquetes de Python sea pan comido. Además, el proyecto NILMTK ofrece varias versiones de Conda Forge. 

Instalación de Conda

Primero, consiga Anaconda aquí. Luego, abra una ventana de terminal e inicie la instalación desde la línea de comando:

Dowloads cd / 
bash Anaconda3-2020.11-Linux-x86_64.sh -u

Se le guiará a través de varios pasos. Instale Conda y pruebe la instalación ejecutando el comando conda en el símbolo del sistema:

conda

En caso de que el comando conda resulte en «un error de intérprete incorrecto» (es decir, no existe tal error de archivo o directorio), aplique la siguiente solución:

cd / inicio / usuario / nano .bashrc

agregue la línea:

export PATH = ~ / anaconda3 / bin: $ PATH

Guarde los cambios en el archivo y, finalmente, ejecute el comando:

source .bashrc

Felicidades, acaba de instalar Conda.

Instalación de NILMTK

Abra una ventana de terminal, cree un nuevo entorno de Conda y actívelo:

conda create --name nilmtk-env 
conda activate nilmtk-env

Si aún no está presente en su instalación de Conda, agregue el conda-forge a la lista de canales:

conda config --add channels conda-forge

Finalmente, instale la última versión de NILMTK de conda-forge :

conda install -c nilmtk nilmtk=0.4.3

Observe que el signo igual no lleva espacios(piense estamos usando Python.

La ejecución del comando puede tardar un rato. Mientras tanto, consulte otros paquetes en Forge de NILMTK .

Como puede experimentar algunos problemas posteriores a la instalación con NILMTK y Matplotlib., para s olucionarlos, aplique el comando:

conda install matplotlib=3.3.2

Agregar un kernel de Jupyter

Básicamente, NILMTK ahora está instalado en su ordenador. El siguiente paso involucra los cuadernos de Jupyter. Trabajar con Jupyter abre muchas posibilidades y se dice que es una herramienta imprescindible. Por lo tanto, agregue el entorno NILMTK a Jupyter:

python -m ipykernel install --user --name nilmtk-env --display-name "Python (nilmtk-env)"

Prueba de la instalación

Ha llegado el momento de comprobar su instalación. Antes que nada, cree una nueva carpeta y descargue el conjunto de prueba aleatorio de Github:

mkdir nilmtk_test / cd nilmtk_test / wget https://raw.githubusercontent.com/nilmtk/nilmtk/master/data/random.h5

Como puede comprobar random.h5 es el fichero de de datos en en formato hdf5 .A continuación, levante Jupyter:

notebook jupyter

Para probar su instalación, intente importar el conjunto de datos aleatorio usando NILMTK y trazar todos los medidores:https://klemenjak.medium.com/media/9ba2be16d331653a7b4093a0fe412434

La salida debe ser:

MeterGroup (metros =   ElecMeter (instancia = 1, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = [])   ElecMeter (instancia = 2, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = [])   ElecMeter (instancia = 3, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = [])   ElecMeter (instancia = 4, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = [])   ElecMeter (instancia = 5, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = []) )

¡Felicitaciones! Lo ha logrado. ¡NILMTK parece funcionar según lo previsto! La próxima vez, discutiremos cómo usar la API de NILMTK para una experimentación rápida y conveniente.

Si no consigue iniciar el entorno de jupyter notebook siguiendo las instrucciones anteriores, puede seguir estas instrucciones de instalación de Anaconda y Jupyter Notebook – Ubuntu. (las instrucciones han sido probadas con Ubuntu 20.04 de 64 bits y Anaconda3 2021.05 de Continuum)

Instalacion de Anaconda y Jupyter Notebook

1. Abra el programa Terminal yendo a «Mostrar aplicaciones» y seleccionando la Terminal .

2. Escriba los comandos de abajo para ir al directorio de Descargas y descargar Anaconda3 2021.05. Anaconda puede tardar unos minutos en [email protected]:~$ 

cd Descargas
[email protected]:~/Descargas$ 

wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh

3. Escriba el comando para instalar [email protected]:~/Descargas$ 

bash ./Anaconda3-2021.05-Linux-x86_64.sh

4. Presione Enter para leer el acuerdo de licencia. Use Space para continuar a la página siguiente.

5. Escriba yes para aceptar los términos de la licencia.

¿Aprueba los términos de la licencia? [yes|no]
[no] >>> yes

6. Presione Enterpara instalar Anaconda en la ubicación predeterminada.

Anaconda ahora se instalará en esta ubicación: /home/username/anaconda3
– Presione ENTER para confirmar la ubicación
– Presione CTRL-C para cancelar la instalación
– O especifique una ubicación diferente a continuación
[/home/username/anaconda3] >>> (presione ENTER)

7. Escriba yes para que Anaconda actualice su RUTA.

instalación terminada.
¿Desea que el instalador inicialice Anaconda3
ejecutando conda init? [yes|no]
[no] >>> (presione yes)

==> Para que los cambios surtan efecto, cierre y vuelva a abrir su shell actual. <==

Si prefiere que el entorno base de conda no se active al inicio, establezca el parámetro auto_activate_base en false:
conda config –set auto_activate_base false ¡

8. Abra una nueva ventana de Terminal yendo a «Mostrar aplicaciones» y seleccionando la Terminal .

9. Escriba el comando para verificar que se instaló Anaconda.

(base) [email protected]:~$ python –versión
Python 3.8.5

10. Escriba el comando para actualizar Anaconda.

(base) [email protected]:~$ conda update –all –yes

Ahora que tiene un instalación limpia debería repetir la instalación de nilmtk y creación del entrono nilmtk-env descritos en este post justo despues de instalar Conda . Seguidos esos pasos ya debería estar en condiciones de Iniciar Jupyter Notebook

1. Escriba el comando para iniciar Jupyter Notebook.

[email protected]:~$ jupyter notebook

Mas información en https://github.com/nilmtk/nilmtk

Integración con Arduino IoT Cloud Amazon Alexa


En la página principal de IoT Cloud,crearemos una nueva cosa y le asignaremos un nombre significativo. A continuación, seleccionaremos el tablero que vamos a usar. Si no puede ver su tablero, es posible que se haya saltado el procedimiento de introducción (consulte la sección anterior).

Una vez hecho esto, agregaremos tres propiedades a nuestra cosa. Los dos primeros representarán las lámparas,la última de la temperatura.

Aquí es lo que la vista de panel de su cosa debe verse como en este punto:

Al agregar propiedades, asegúrese de que solo utiliza los tipos enumerados en la sección Inicio inteligente, de lo contrario no funcionarán con Alexa.

The Smart Home section

La sección Smart Home

Ahora ve al Editor Web haciendo clic en el botón Editar boceto en la vista de edición de tu cosa.

 

En el Editor Web necesitamos añadir algo de código al Sketch generado automáticamente para nosotros.

Debido a que queremos leer algunos datos ambientales (a saber, la temperatura, pero no dude en agregar luz, humedad y presión si lo desea), vamos a importar la biblioteca de Arduino_MKRENV en la parte superior de nuestro boceto

#include <Arduino_MKRENV.h>

A continuación, definimos algunas constantes para los pines de placa que se utilizarán para R,G,Bandwhitelight, deesta manera el código es más legible:

#define PIN_MEETING_ROOM 5
#define PIN_LOUNGE_AREA_R 2
#define PIN_LOUNGE_AREA_B 3
#define PIN_LOUNGE_AREA_G 4

Ahora en la función de configuración podemos inicializar el Arduino MKR ENV Shield con:

if (!ENV.begin()) {  
 Serial.println("Failed to initialize MKR ENV shield!");  
 while (1);
}

De esta manera, si el escudo no está instalado, se bloqueará la ejecución de Sketch.

No es necesario especificar que tiene que ser porque vamos a utilizar para establecer la intensidad de nuestro LED blanco o los colores individuales del RGB.pinModeOUTPUTanalogWrite()

En la función loopfunction vamos a leer la temperatura cada segundo:

temperature = ENV.readTemperature();delay(1000);

Por último, es el momento de implementar nuestras funciones de devolución de llamada: las que se ejecutarán cada vez que se extraiga un cambio en el valor de una propiedadde IoT Cloud.

Tenemos que implementar y :onMeetingRoomChangeonLoungeAreaChange

void onMeetingRoomChange()
 { uint8_t brightness = map(meetingRoom.getBrightness(), 0, 100, 0, 255); 
if (meetingRoom.getSwitch())
 {   Serial.println(brightness); 
  analogWrite(PIN_MEETING_ROOM, brightness);   
  } else{ 
  analogWrite(PIN_MEETING_ROOM, LOW); 
}}

con el código anterior primero leemos el valor de brillo de la nube y lo mapeamos a un valor utilizable, luego verificamos si el interruptor de luz está encendido, si es que podemos encender la luz, usando el rojo antes. De lo contrario, apagamos la luzbrightness

El principio de trabajo es el mismo para la otra devolución de llamada:

void onLoungeAreaChange() 
{ uint8_t r, g, b;
 loungeArea.getValue().getRGB(r, g, b);
 if (loungeArea.getSwitch()) { 
  Serial.println("R:"+String(r)+" G:"+String(g)+ " B:"+String(b));   analogWrite(PIN_LOUNGE_AREA_R, r);  
 analogWrite(PIN_LOUNGE_AREA_B, b);  
 analogWrite(PIN_LOUNGE_AREA_G, g); }
 else{    
Serial.println("Lamp Off");   
 analogWrite(PIN_LOUNGE_AREA_R, 0);   
 analogWrite(PIN_LOUNGE_AREA_B, 0);    
analogWrite(PIN_LOUNGE_AREA_G, 0);
 }}

La única diferencia notable es el hecho de que en lugar del brillo justo, tenemos tres componentes diferentes: son la representación del color RGB de la luz. Por supuesto, podemos definir colores personalizados por nombre en la aplicación Alexa para que no tengamos que decir manualmente qué cantidades de rojo, verde o azul queremos establecer.

Amazon Alexa

Ahora necesitaremos la aplicación Amazon Alexa que se puede descargar desde apple App Store o Google Play Store. Una vez instalado, inicie sesión con su cuenta existente o cree una nueva.

Importante:Cuando se le pida que inicie sesión, asegúrese de utilizar las mismas credenciales utilizadas para crear su Arduino IoT Cloud Thing, de lo contrario no funcionará.

Además, tenemos que instalar la habilidad de hogar inteligente necesaria para interactuar con nuestro MKR1010. Para ello, vaya a Dispositivos (icono inferior derecho) y haga clic en YourSmartHomeSkillsy, a continuación, en EnableYourSmartHomeSkill.

Devices view

Vista de dispositivos

Ahora busca la habilidad llamada Arduino y agréguela. En el mismo momento de esta escritura, esa habilidad no está disponible en todo el mundo, pero estamos trabajando en ello y la aprobación para otros países está en curso.

Arduino Smart Home skill

Habilidad Arduino Smart Home

La pantalla debería tener este aspecto:

Devices with Arduino skill installed

Dispositivos con habilidad Arduino instalada

Ahora que la habilidad está configurada, finalmente podemos añadir nuestros dispositivos. Para hacerlo, vuelva a la pantalla Dispositivos y toque el signo + en la parte superior.

Add a new device

Añadir un nuevo dispositivo

Pulse en AddDevice, luego En otros y DiscoverDevices. El proceso de búsqueda puede tomar un poco, pero al final se le debe presentar esta pantalla:

Después de pulsar en Elegir dispositivo se le presentará la página de configuración que enumera todos los dispositivos disponibles (Se nombrarán de acuerdo con cómo nombramos nuestras propiedades en Arduino IoT Cloud).

Vamos a elegir un dispositivo y puntee SetUpDevice. Si te gusta también puedes añadirlo a un grupo (De esta manera puedes controlar y organizar tus dispositivos más fácilmente), de lo contrario omite esta parte.

Repita el proceso de configuración para cada dispositivo que desee controlar.

Por último, la vista del dispositivo debe tener este aspecto:

Finalmente podemos empezar a preguntar cosas como «Alexa, ¿cuál es la temperatura en la oficina?» o «Alexa enciende la luz en la sala de reuniones».

!Diviértase jugando con Alexa y IoT Cloud.!

 

 

Regleta IoT para ahorro de energía



En este proyecto el autor utlizaba interruptores de alimentación de red en su lugar de trabajo para encender / apagar / apagar y encender de forma remota hosts y otros equipos. Estos son equipos bastante caros que generalmente tienen una interfaz basada en web o de línea de comando para administrar el equipo remoto. En su casa, tiene dos tomas de corriente a las que están conectados varios dispositivos. Pensó que sería genial si tuviera algo como el interruptor de alimentación de red en sui casa por las siguientes razones:

1. Contaba con dos Raspberry Pis que a veces cuelgan y tienen que encenderlas y apagarlas. Hacerlo a la antigua usanza es bastante tedioso.

2. Hay algunos dispositivos, como el televisor, el decodificador de cable, la barra de sonido, etc., que se ponen en modo de espera cuando no se usan activamente. Aunque están en modo de espera, todavía obtienen algo de energía. el autor necesitaba una forma de apagarlos cuando no se usa para ahorrar energía.

3. Hay otros dispositivos que no tienen un modo de espera y necesitan ser encendidos para usarlos y apagarlos más tarde.

Componentes

  • Chip microcontrolador: ATMEGA1284P-PU
  • Módulo ESP8266 ESP-01
  • Pantalla LCD ILI9341 TFT Touch SPI
  • Registro de desplazamiento 74HC595 x 3
  • Módulo de relé de 8 canales x 2
  • Módulo de relé de 4 canales o dos módulos de relé de 2 canales
  • Tira de LED WS2812B
  • Oscilador de cristal de 8 MHz
  • Resistencias
  • Condensadores
  • Breakaway encabezados macho y hembra
  • Tomas dc hembra
  • PCB
  • Módulo de fuente de alimentación de 220 V CA a 5 V CC 2 amperios
  • LM1117 3.3v LDO regulador de voltaje
  • Regletas de enchufes
  • Recintos
  • Fuente de alimentación de 220v a 5v 40 amperios

El circuito

El circuito no es complicado. El ATMEGA1284P (con el cargador de arranque Arduino) se utiliza para enviar datos a los tres registros de desplazamiento 595 conectados en serie. Las salidas de los registros de desplazamiento están conectadas a los relés. Dependiendo de los datos enviados a los registros de desplazamiento, los relés individuales se pueden activar o desactivar. Los relés se utilizan para encender o apagar los enchufes de las tomas de corriente.

Un módulo ESP8266 está conectado al Arduino a través del puerto serie. El módulo ESP8266 recibe comandos a través de WiFi y los envía al Arduino. También hay disponible una pantalla táctil LCD que muestra los estados de los enchufes individuales y a través de los cuales también se pueden controlar los enchufes.

Los archivos Kicad del circuito se pueden encontrar en la carpeta power_strip_kicad

Preparar las tiras de alimentación

Modificar las tiras de potencia es bastante sencillo. Como se puede ver, ambas regletas tienen interruptores para cada toma.

Generalmente, el cable de línea se conectará a un extremo de los interruptores y el otro extremo de cada interruptor se conectará al orificio de línea de cada toma. Esta conexión entre el cable de línea y los interruptores debe eliminarse. Los cables deben soldarse a cada uno de los interruptores. También es necesario soldar un cable al cable de línea que proviene de la red eléctrica.

La idea es que el cable de línea se conectará al terminal central (COM) del relé. Los terminales COM de todos los relés también estarán conectados entre sí. Y los cables de cada uno de los interruptores se conectarán al terminal NO (normalmente abierto) de cada relé. Por lo tanto, cuando el relé se apaga, el circuito se abrirá y el zócalo se apagará. Cuando se enciende el relé, el circuito se cerrará y el zócalo se encenderá

Código

El boceto de Arduino para el chip ATMEGA1284 y el código fuente para el firmware del módulo ESP8266 se pueden encontrar en: https://github.com/tangophi/IoT-Power-Strip

El firmware de los módulos ESP8266 se basa en el sdk abierto ESP8266. En lugar del SDK, Arduino IDE también se puede utilizar.

La idea general es que el módulo ESP8266 se suscribe a los siguientes temas de MQTT:

/ board3 / OnCommand

/ board3 / OffCommand

/ board3 / ResetCommand

La aplicación de teléfono inteligente NetIO envía mensajes de socket a la instancia de nodo rojo en la frambuesa pi. Lo que a su vez envía mensajes apropiados a los temas MQTT. Cuando el ESP8266 recibe estos mensajes, envía cadenas JSON al Arduino a través del puerto serie UART. Y cuando el Arduino recibe estas cadenas, enviará los datos apropiados a los registros de desplazamiento para encender / apagar los relés. Cuando se recibe un comando de reinicio, apagará el relé y lo volverá a encender después de 5 segundos. El Arduino también actualizará la pantalla LCD con los estados de los enchufes.

Cuando la pantalla LCD se usa para controlar los zócalos, el Arduino enviará el estado modificado del zócalo al módulo ESP8266. El módulo wifi enviará esta información al agente MQTT y la instancia de nodo rojo se actualizará. Y la aplicación NetIO consultará periódicamente la instancia de nodo rojo para conocer los últimos estados de los sockets y actualizará la aplicación en consecuencia. El Arduino también enviará periódicamente los estados de todos los sockets.Añadir consejo Hacer pregunta Comentario Descargar

Se utilizan en este proyecto o dos Raspberry Pis, un concentrador USB con alimentación, un proyecto Ambilight y algunos otros proyectos de 5v. La alimentación de cada uno de ellos requería adaptadores de fuente de alimentación individuales de 220v a 5v. Para deshacese de estos adaptadores, se optó por una fuente de alimentación de 40Amps 5V. Y lo conecté a 8 tomas de corriente CC hembra en una caja de plástico. Cada una de estas tomas de CC está controlada por un relé

Montaje / Instalación

Como se puede ver en las imágenes, se utilizaron cuatro cajas de plástico para instalar la placa de circuito y los módulos de relé.

* Se utilizo un cortador de cartón para hacer un agujero en la tapa de un gabinete para que se ajuste a la pantalla LCD.

* Se utilizó un taladro para hacer 8 agujeros en otro recinto para que se ajusten a las tomas CC hembra.

Luego se trataba de conectar el cable de línea de cada regleta a los terminales COM de los relés y los cables de cada interruptor al terminal NO de cada dispositivo.

Para el primer módulo de relé, se conecta el terminal positivo de la fuente de alimentación de 5v 40A a los terminales COM del relé. Luego conectar el terminal NO de cada relé al terminal positivo de las tomas de CC. También se usan algunos condensadores entre los + y – de cada jack solo para suprimir / evitar cualquier ruido

Aplicación para teléfonos inteligentes

La aplicación para teléfonos inteligentes se creó con el Editor de diseño de NetIO en

http://netio.davideickhoff.de/editor

Una vez que la aplicación está diseñada, la aplicación NetIO debe descargarse a su teléfono inteligente. Tenga en cuenta que esta es una aplicación de pago, pero no cuesta mucho. Cada vez que se presiona un botón / interruptor / control deslizante en la aplicación, enviará un mensaje a través de los sockets al cuadro Rpi que se está ejecutando en el nodo rojo. La aplicación de nodo rojo procesará los mensajes y luego enviará mensajes MQTT a la placa de la regleta de alimentación de IoT.

Para que la aplicación del teléfono inteligente funcione, debe estar en la misma red que la placa de la tira de alimentación de IoT. Es posible usar la aplicación de teléfono inteligente desde fuera de la red local. Si el ISP permite conexiones entrantes, es solo cuestión de reenviar el puerto del zócalo en el enrutador. Si el ISP no permite conexiones entrantes, entonces se puede usar VPN como solución alternativa

Con la aplicación de teléfono inteligente, es posible encender / apagar / restablecer cualquiera de los enchufes. Con la pantalla táctil LCD, es posible encender / apagar cualquier enchufe. Además, el estado de cada una de las tomas se actualiza periódicamente tanto en la pantalla como en la pantalla LCD

Para obtener más detalles sobre cómo encajan las distintas piezas, puede visitar este segundo instructable en https: //www.instructables.com/id/IoT-Wall-Outlet-wi … Ese instructable es sobre otro proyecto de automatización del hogar y tiene descripciones detalladas sobre cómo otra placa IoT en una casa está controlada por node-red y la aplicación de teléfono inteligente. El proyecto de regleta IoT también utiliza las mismas instancias de nodo rojo y MQTT.

La razón por usar un chip ATMEGA1284 es por tener una pantalla LCD táctil. También era bastante posible hacerlo con un Arduino Pro Mini, pero la memoria no es suficiente para esas necesidades. Por lo tanto, utilizó el chip ATMEGA1284.Si no necesita la pantalla LCD, puede usar un Arduino y un módulo ESP8266 o simplemente un módulo ESP8266 ESP12.

Fuente https://www.instructables.com/id/IoT-Power-Strip/