{"id":237786,"date":"2021-01-07T21:44:37","date_gmt":"2021-01-07T20:44:37","guid":{"rendered":"https:\/\/emariete.com\/?p=237786"},"modified":"2021-01-07T21:44:37","modified_gmt":"2021-01-07T20:44:37","slug":"connect-control-leds-ws2812b-esp8266-espeasy","status":"publish","type":"post","link":"https:\/\/emariete.com\/en\/conectar-controlar-leds-ws2812b-esp8266-espeasy\/","title":{"rendered":"Connecting and controlling WS2812B LEDs to ESP8266 with ESPEasy"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfQuieres conectar LEDs WS2812 a un <strong>ESP8266 con ESP Easy<\/strong>? En este tutorial te voy a ense\u00f1ar a hacerlo <strong>f\u00e1cilmente<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los LEDs WS2812 (<strong>tambi\u00e9n llamados NeoPixels<\/strong>) son fant\u00e1sticos y nos dan unas posibilidades y una flexibilidad incre\u00edble.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los WS2812 <strong>se presentan tanto de forma individual como en tiras<\/strong>, pero mientras que una tira normal RGB se enciende toda a la vez de un color, en este caso podemos controlar cada LED independientemente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Son LEDs que podemos conectar el paralelo, uniendo tantos como queramos con solo tres cables y la gran ventaja es que <strong>los podemos controlar de uno en uno<\/strong>. Podemos encender unos y apagar otros, poner cado uno del color que queramos y regular su intensidad independientemente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estos LEDs son de los llamados RGB porque <strong>cada uno de ellos tiene los tres colores b\u00e1sicos<\/strong> (rojo, verde y azul). Lo que quiere decir que podemos conseguir much\u00edsimos colores combinando esos tres colores b\u00e1sicos (incluso el <strong>blanco, si encendemos los tres colores juntos<\/strong> con la misma intensidad).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, <strong>se alimentan a 5 voltios<\/strong>, lo que facilita mucho los montajes, al no necesitar fuentes de alimentaci\u00f3n adicionales. <strong>Podemos utilizar la misma alimentaci\u00f3n de un NodeMCU o Wemos D1 Min<\/strong>i o poner un cargador de m\u00f3vil independiente para alimentarlos (u otra fuente de alimentaci\u00f3n mayor si hay muchos LEDs).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Solamente tienes que tener en cuenta una cosa: cada color de cada led, encendido al 100% consume 20mA. Cada LED tiene tres colores. Esto significa que <strong>un LED puede consumir 60mA<\/strong> si encendemos sus tres colores a m\u00e1xima potencia al mismo tiempo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si ponemos una tira de 10 LEDs WS2812 consumir\u00e1 un m\u00e1ximo de 600mA. <strong>Tenlo en cuenta a la hora de pensar en el alimentador que usar\u00e1s.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los alimentadores de m\u00f3vil suelen proporcionar entre 500 y 2000mA, mira de cuanto es el tuyo y <strong>calcula cu\u00e1ntos LEDs puedes conectar<\/strong> a tu alimentador para no exceder su capacidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al final de este art\u00edculo tienes un video-tutorial con <strong>instrucciones espec\u00edficas y detalladas de conexi\u00f3n y configuraci\u00f3n de los LEDs<\/strong>. Aunque el video est\u00e1 muy bien para la parte pr\u00e1ctica, te recomiendo que leas primero el art\u00edculo porque tiene <strong>mucha informaci\u00f3n<\/strong> que te ser\u00e1 \u00fatil para sacar a los LED el m\u00e1ximo provecho posible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-diagrama-con-las-conexiones-del-nodemcu-a-los-leds-ws2812-neopixel\">Diagrama con las conexiones del NodeMCU a los LEDs WS2812 (Neopixel)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Como te dec\u00eda, la conexi\u00f3n no puede ser m\u00e1s f\u00e1cil. <strong>\u00a1Solamente tres cables y a funcionar!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el ejemplo he utilizado tres LED WS2812B pero, una de las grandes ventajas de este tipo de LED, es que puedes utilizar los que quieras. <strong>Eso s\u00ed, ten en cuenta el consumo, cada LED puede consumir hasta 60\u202fmA<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/NodeMCU-WS2812_bb-transp.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/NodeMCU-WS2812_bb-transp-1024x576.png\" alt=\"\" class=\"wp-image-237165\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/NodeMCU-WS2812_bb-transp-1024x576.png 1024w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/NodeMCU-WS2812_bb-transp-300x169.png 300w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/NodeMCU-WS2812_bb-transp-768x432.png 768w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/NodeMCU-WS2812_bb-transp.png 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configuraci-n-espeasy\">Configuraci\u00f3n ESPEasy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que tengas hechas las conexiones, tienes que <strong>configurar el ESPEasy<\/strong> para que reconozca los dispositivos e <strong>incluir unas sencillas reglas<\/strong> para que se comporten de la forma que queramos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Te voy a poner como ejemplo el <a href=\"https:\/\/emariete.com\/medidor-casero-co2\/\">medidor de CO\u2082 casero de eMariete<\/a>, pero puedes utilizarlo exactamente igual con cualquier otro proyecto.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">B\u00e1sicamente, tendremos que hacer lo siguiente:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Activar el motor de reglas de ESPEasy<\/li><li>A\u00f1adir una regla para que cuando se encienda el ESP8266 lo haga con los LEDS apagados<\/li><li>A\u00f1adir una regla para que cambie el color de los LEDS dependiendo del nivel de CO2<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">No es necesario que des de alta los LEDs como dispositivo en la pesta\u00f1a \u00abDevices\u00bb.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-activar-el-motor-de-reglas-de-espeasy\">Activar el motor de reglas de ESPEasy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lo primero que debes hacer, es&nbsp;<strong>activar el motor de reglas de ESPEasy<\/strong>, si no lo has hecho ya.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para ello, vete a la pesta\u00f1a \u201c<em><strong>Tools<\/strong><\/em>\u201d (Herramientas) y pulsa el bot\u00f3n \u201c<em><strong>Advanced<\/strong><\/em>\u201d (Avanzado):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Configuracion-Avanzada-ESPEasy.png\"><img loading=\"lazy\" decoding=\"async\" width=\"859\" height=\"620\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Configuracion-Avanzada-ESPEasy.png\" alt=\"\" class=\"wp-image-237091\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Configuracion-Avanzada-ESPEasy.png 859w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Configuracion-Avanzada-ESPEasy-300x217.png 300w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Configuracion-Avanzada-ESPEasy-768x554.png 768w\" sizes=\"auto, (max-width: 859px) 100vw, 859px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Se abrir\u00e1 la ventana con las opciones de configuraci\u00f3n avanzadas de ESPEasy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All\u00ed debes activar las opciones \u201c<em><strong>Rules<\/strong><\/em>\u201d (Reglas) y \u201c<em><strong>Old Engine<\/strong><\/em>\u201d (Viejo Motor):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Habilitar-Reglas-ESPEasy.png\"><img loading=\"lazy\" decoding=\"async\" width=\"876\" height=\"313\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Habilitar-Reglas-ESPEasy.png\" alt=\"\" class=\"wp-image-237092\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Habilitar-Reglas-ESPEasy.png 876w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Habilitar-Reglas-ESPEasy-300x107.png 300w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Habilitar-Reglas-ESPEasy-768x274.png 768w\" sizes=\"auto, (max-width: 876px) 100vw, 876px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-a-adir-una-regla-para-que-cuando-se-encienda-lo-haga-con-los-leds-apagados\">A\u00f1adir una regla para que cuando se encienda lo haga con los LEDS apagados<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora tienes que escribir las reglas, <strong>en la pesta\u00f1a \u201cRules\u201d<\/strong> (Reglas). Esta pesta\u00f1a no aparecer\u00e1 hasta que no habilites el motor de reglas, como has visto en el punto anterior:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Editar-Reglas-ESPEasy.png\"><img loading=\"lazy\" decoding=\"async\" width=\"815\" height=\"742\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Editar-Reglas-ESPEasy.png\" alt=\"\" class=\"wp-image-237093\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Editar-Reglas-ESPEasy.png 815w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Editar-Reglas-ESPEasy-300x273.png 300w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/12\/Editar-Reglas-ESPEasy-768x699.png 768w\" sizes=\"auto, (max-width: 815px) 100vw, 815px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En el editor de reglas que aparece en ESPEasy, escribes las siguientes reglas<strong>&nbsp;(te recomiendo copiar y pegar, para evitar errores y dejar los comentarios \u2013 l\u00edneas que empiezan por \/\/ \u2013 que ESPEasy ignorar\u00e1)<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deber\u00e1s&nbsp;<strong>sustituir Senseair#PPM por el nombre de dispositivo y valor que hayas elegido<\/strong>&nbsp;(en la pesta\u00f1a \u201cDevices\u201d \u2013 Dispositivos). En esta captura de pantalla el nombre del dispositivo es CO2, por lo que en vez de Senseair#PPM escribir\u00edamos CO2#PPM:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Devices-Senseair.png\"><img loading=\"lazy\" decoding=\"async\" width=\"968\" height=\"525\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Devices-Senseair.png\" alt=\"\" class=\"wp-image-237173\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Devices-Senseair.png 968w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Devices-Senseair-300x163.png 300w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Devices-Senseair-768x417.png 768w\" sizes=\"auto, (max-width: 968px) 100vw, 968px\" \/><\/a><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\">On System#Boot do\n  NeoPixelAll,0,0,0 \/\/ LEDS APAGADOS\nEndOn<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La l\u00ednea NeoPixelAll,0,0,0 ordena a ESPEasy que <strong>apague todos los LEDS<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Realmente lo que le dice esta l\u00ednea es que ponga el <strong>Rojo a 0<\/strong>, el <strong>Verde a 0<\/strong> y el <strong>Azul a 0<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al estar la l\u00ednea <em>NeoPixelAll,0,0,0<\/em> entre \u00ab<em>un bloque<\/em>\u00ab, formado por la l\u00ednea <strong>On System#Boot do<\/strong> y <strong>EndOn<\/strong>, <strong>le indicamos a ESPEasy que lo ejecute al arrancar el NodeMCU<\/strong> (cualquier cosa que metas dentro de ese bloque se ejecutar\u00e1 <strong>cada vez<\/strong> que el NodeMCU se encienda).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-a-adir-una-regla-para-que-cambie-el-color-de-los-leds-dependiendo-del-nivel-de-co2\">A\u00f1adir una regla para que cambie el color de los LEDS dependiendo del nivel de CO2<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora a\u00f1ade este otro bloque a las reglas:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">On SenseairCO2#PPM do\n  if [SenseairCO2#PPM]&gt;2000\n    NeoPixelAll,32,0,0 \/\/ LEDS ROJO\n  Elseif [SenseairCO2#PPM] &gt; 1500\n    NeoPixelAll,16,9,0 \/\/ LEDS NARANJA\n  Else\n    NeoPixelAll,0,32,0 \/\/ LEDS VERDE\n  Endif\nendon<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este bloque ordena a ESPEasy que <strong>cada vez que reciba un nuevo valor <\/strong>desde el sensor SenseairCO2 (<em>On SenseairCO2#PPM do<\/em>), compruebe lo siguiente:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">si el valor de SenseairCO2#PPM es superior a 2000 y, <strong>de ser as\u00ed<\/strong>, encienda todos los LEDs de la tira con los siguientes valores: <strong>Rojo a 32<\/strong>, el <strong>Verde a 0<\/strong> y el <strong>Azul a 0<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>si no se cumple<\/strong> lo anterior (que el valor de SenseairCO2#PPM sea superior a <strong>2000<\/strong>), comprobar\u00e1 si el valor es superior a 1500 y, si se cumple, encienda todos los LEDs de la tira con los siguientes valores: <strong>Rojo a 16<\/strong>, el <strong>Verde a 9<\/strong> y el <strong>Azul a 0<\/strong> (un amarillo\/naranja).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>si no se cumple<\/strong> lo anterior (que el valor de SenseairCO2#PPM sea superior a <strong>1500<\/strong>), y sin hacer m\u00e1s comprobaciones, encender\u00e1 todos los LEDs de la tira con los siguientes valores: <strong>Rojo a <\/strong>0, el <strong>Verde a 32<\/strong> y el <strong>Azul a 0<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">la l\u00ednea <em>endon <\/em>termina el bloque de comprobaciones que empez\u00f3 con <em>On SenseairCO2#PPM do<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>El resultado final<\/strong>, deber\u00eda ser similar a este:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Reglas.png\"><img loading=\"lazy\" decoding=\"async\" width=\"914\" height=\"756\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Reglas.png\" alt=\"\" class=\"wp-image-237174\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Reglas.png 914w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Reglas-300x248.png 300w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/01\/ESPEasy-Reglas-768x635.png 768w\" sizes=\"auto, (max-width: 914px) 100vw, 914px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"gb-headline gb-headline-564984b9 gb-headline-text\">Controlar el encendido y apagado de los LEDs con un interruptor (switch) y qu\u00e9 sean intermitentes y que se apaguen a ciertas horas y que, y que, y que&#8230;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las posibilidades de las reglas de ESP-Easy son enormes, y <strong>nos permiten hacer casi cualquier cosa<\/strong>&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfY si quisieras que el encendido de los LEDs fuera <strong>intermitente <\/strong>y que adem\u00e1s estuvieran <strong>apagados entre determinadas horas<\/strong>, para que no molesten, por ejemplo, y adem\u00e1s <strong>controlar con un interruptor (o un pulsador) que se enciendan o no<\/strong> (bonus: y que adem\u00e1s <strong>si tenemos una pantalla OLED conectada tambi\u00e9n se apague<\/strong>?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podr\u00edamos utilizar esta variaci\u00f3n de las reglas del punto anterior en las que incluir\u00edamos unos temporizadores para crear la intermitencia y algunas comprobaciones extras de las horas y de un Switch que conectar\u00edamos (entre el pin D7 y GND, en este caso):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>On Rules#Timer=1 do \n  if &#091;Switch#State]=1 and &#091;var#1]=0 \/\/ Si el switch est\u00e1 encendido y no es hora de dormir\n    if &#091;co2#co2]&gt;1000\n      NeoPixelAll,32,0,0 \/\/ LEDS ROJO\n    Elseif &#091;co2#co2]&gt;750\n      NeoPixelAll,16,9,0 \/\/ LEDS NARANJA\n    Elseif &#091;co2#co2]&gt;400\n      NeoPixelAll,0,32,0 \/\/ LEDS VERDE\n    Else\n      NeoPixelAll,0,0,0 \/\/ LEDS APAGADOS\n    Endif\n  Endif \n  looptimerset_ms,2,100 \/\/encendido 100ms cada 2 seg\nEndon\n\nOn rules#Timer=2 do\n  NeoPixelAll,0,0,0 \/\/led off\n  looptimerset_ms,2,0\n  timerset,1,2\nendon\n\nOn System#Boot do\n  NeoPixelAll,0,0,0 \/\/ LEDS APAGADOS\n  Let,1,0 \/\/ Si est\u00e1 a 1 = hora de dormir, leds apagados!\n  timerSet,1,2 \/\/cambiar el 2 por 60seg y se encender\u00e1n los leds con la primera medida\nEndOn\n\non Switch#State do\n  if &#091;Switch#State]=0\n    oledframedcmd,display,off\n    NeoPixelAll,0,0,0 \/\/ APAGAR LEDS\n  else\n    oledframedcmd,display,on\n    Let,1,0 \/\/ Si est\u00e1 a 0 = no es hora de dormir, leds encendidos!\n  endif\nendon\n\n\non Clock#Time=All,22:00 do\n  Let,1,1 \/\/ Si est\u00e1 a 1 = hora de dormir, leds apagados!\n  NeoPixelAll,0,0,0\n  oledframedcmd,display,off\nendon\n\non Clock#Time=All,08:00 do\n  Let,1,0 \/\/ Si est\u00e1 a 0 = no es hora de dormir, leds encendidos!\n  oledframedcmd,display,on\nendon<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En este ejemplo, los LEDs y la pantalla OLED permanecer\u00edan apagados cada d\u00eda desde las 22:00 hasta las 08:00.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes \u00ab<em>cancelar<\/em>\u00bb ese <em>tiempo de dormir<\/em> apagando y volviendo a encender el apagado desde el interruptor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Solamente te quedar\u00eda conectar el switch (en el pin D7 en este ejemplo, aunque podr\u00edas usar otros), a\u00f1adirlo como un nuevo dispositivo de tipo \u00abSwitch\u00bb:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP_Easy-Add-Device-Switch.png\"><img loading=\"lazy\" decoding=\"async\" width=\"744\" height=\"446\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP_Easy-Add-Device-Switch.png\" alt=\"\" class=\"wp-image-238452\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP_Easy-Add-Device-Switch.png 744w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP_Easy-Add-Device-Switch-300x180.png 300w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">y configurarlo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP-Easy-Device-Switch.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"836\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP-Easy-Device-Switch.jpg\" alt=\"\" class=\"wp-image-238451\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP-Easy-Device-Switch.jpg 787w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP-Easy-Device-Switch-282x300.jpg 282w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP-Easy-Device-Switch-768x816.jpg 768w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Si lo prefieres puedes utilizar un pulsador en vez de un interruptor. Solamente tendr\u00edas que cambiar el tipo de bot\u00f3n y decir que es un pulsador activo a nivel bajo (que se activa cuando se une el pin D7 a GND):<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP_Easy-Switch-Button-Type.png\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"88\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP_Easy-Switch-Button-Type.png\" alt=\"\" class=\"wp-image-238453\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP_Easy-Switch-Button-Type.png 602w, https:\/\/emariete.com\/wp-content\/uploads\/2021\/05\/ESP_Easy-Switch-Button-Type-300x44.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Muchas <strong>gracias al usuario Joselu70 <\/strong>por participar en el desarrollo de estas reglas. \ud83d\ude09<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-a-adir-una-regla-para-hacer-un-sem-foro-de-leds\">A\u00f1adir una regla para hacer un sem\u00e1foro de LEDs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Con los LEDs WS2812 es posible crear, por ejemplo, un <strong>efecto de sem\u00e1foro<\/strong>, en el que, con <strong>una tira de tres LED<\/strong>, colocados de manera vertical, podremos encender el primer LED de la tira en <strong>verde<\/strong>, el segundo en <strong>naranja <\/strong>y el <strong>tercero <\/strong>en rojo, dependiendo del nivel de CO2 o de cualquier otro valor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El comando a enviar para <strong>encender un led determinado <\/strong>de la tira es:<em> <\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>NeoPixel, NumeroLed, CantidadDeRojo, <em>Cantidad<\/em>DeVerde, <em>Cantidad<\/em>DeAzul<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Siendo <em>NumeroLed<\/em> la posici\u00f3n que ocupa el LED que queremos controlar en la tira, y la cantidad de rojo, verde y azul un <strong>n\u00famero entre 0 (apagado) y 255 (encendido al 100% de intensidad)<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para <strong>encender el primer LED en rojo<\/strong> (al 50% de intensidad, por ejemplo, ya que el 100% es muy fuerte para mi gusto) utilizar\u00edamos el comando: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>NeoPixel,1,128,0,0<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para <strong>encender el segundo LED en \u00e1mbar<\/strong> (al 50% de intensidad), lo podr\u00edamos hacer sumando un 25% de rojo m\u00e1s un 12% de verde. Para conseguir esto utilizar\u00edamos el comando: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>NeoPixel,2,64,32,0<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para <strong>encender el tercer LED en verde<\/strong> (al 50% de intensidad), utilizar\u00edamos el comando: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>NeoPixel,3,0,64,0<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>La regla <\/strong>que deber\u00edamos incluir ser\u00eda esta:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">On SenseairCO2#PPM do\n  if [SenseairCO2#PPM]&gt;900\n    NeoPixelAll,0,0,0 \/\/ APAGAMOS LOS LED\n    NeoPixel,1,128,0,0 \/\/ ENCENDEMOS EL PRIMER LED EN ROJO\n  Elseif [SenseairCO2#PPM] &gt; 800\n    NeoPixelAll,0,0,0 \/\/ APAGAMOS LOS LED\n    <em>NeoPixel,2,64,32,0<\/em> \/\/ ENCENDEMOS EL SEGUNDO LED EN NARANJA\n  Else\n    NeoPixelAll,0,0,0 \/\/ APAGAMOS LOS LED\n    <em>NeoPixel,3,0,64,0<\/em> \/\/ ENCENDEMOS EL TERCER LED EN VERDE\n  Endif\nendon<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">He escogido los niveles de CO2 para que el sem\u00e1foro se ponga rojo cuando se superen las 900 ppm (<strong>seg\u00fan la normativa RITE IDA 2 para aulas de ense\u00f1anza, adecuado para aulas de colegios<\/strong>). Si\u00e9ntete libre de sustituir los valores de 900 y 700 por los que m\u00e1s te convengan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dependiendo de a qu\u00e9 <strong>distancia <\/strong>se vaya a ver y de la luminosidad de la sala, puedes ajustar la intensidad de los LEDs (uno de estos LEDS encendido al m\u00e1ximo, valor de 255, se ve <strong>mucho<\/strong>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como ver\u00e1s antes de encender cada led <strong>primero apagamos la tira completa<\/strong>, utilizando el comando <em>NeoPixelAll,0,0,0<\/em> porque, si no lo hici\u00e9ramos as\u00ed, en los cambios de color (por ejemplo, al pasar de verde a naranja), se quedar\u00edan encendidos los dos LEDS.<\/p>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img decoding=\"async\" src=\"https:\/\/ae01.alicdn.com\/kf\/HTB1RjX0adfvK1RjSspfq6zzXFXa3.jpg_350x350.jpg\" alt=\"\"\/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-normal-font-size wp-block-paragraph\">Este tipo de LEDS es<strong> perfecto para hacer sem\u00e1foros y otros indicadores<\/strong>. Mejor que las tiras porque <strong>se pueden utilizar unidos o separar de forma individual<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mucho mejor que las tiras LED, que dan mucha menos flexibilidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/s.click.aliexpress.com\/e\/_AkZSYj\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Pincha en la imagen o aqu\u00ed para ver d\u00f3nde los compro yo<\/a>.<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-video-tutorial-paso-a-paso\">Video tutorial paso a paso<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque el montaje y configuraci\u00f3n son muy sencillos, en el siguiente video tienes <strong>instrucciones espec\u00edficas y detalladas de conexi\u00f3n y configuraci\u00f3n de los LEDs<\/strong> a partir del minuto 21:35.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En \u00e9l podr\u00e1s encontrar <strong>explicaciones, detalles y consejos de todo tipo<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pulsa play y <strong>vete al minuto 21:35<\/strong>, que es donde empieza la explicaci\u00f3n detallada sobre los LED.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Caja Impresa en 3D para nuestro Medidor CO2 casero con wifi\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/foqyzhyPn8I?start=1295&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n<div class=\"essb_break_scroll\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Easily connect and control LEDs with your ESP8266 with ESP Easy.<\/p>","protected":false},"author":1,"featured_media":237788,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","_lmt_disableupdate":"yes","_lmt_disable":"no","footnotes":""},"categories":[12,16,17],"tags":[26,28,41],"class_list":["post-237786","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-co2-easy","category-medidor-co2","category-proyectos-arduino","tag-espeasy","tag-esp8266","tag-nodemcu"],"modified_by":"Mariete","uagb_featured_image_src":{"full":["https:\/\/emariete.com\/wp-content\/uploads\/2021\/02\/NeoPixel-WS2812-ESPEasy.png",1080,608,false],"thumbnail":["https:\/\/emariete.com\/wp-content\/uploads\/2021\/02\/NeoPixel-WS2812-ESPEasy-150x150.png",150,150,true],"medium":["https:\/\/emariete.com\/wp-content\/uploads\/2021\/02\/NeoPixel-WS2812-ESPEasy-300x169.png",300,169,true],"medium_large":["https:\/\/emariete.com\/wp-content\/uploads\/2021\/02\/NeoPixel-WS2812-ESPEasy-768x432.png",768,432,true],"large":["https:\/\/emariete.com\/wp-content\/uploads\/2021\/02\/NeoPixel-WS2812-ESPEasy-1024x576.png",1024,576,true],"1536x1536":["https:\/\/emariete.com\/wp-content\/uploads\/2021\/02\/NeoPixel-WS2812-ESPEasy.png",1080,608,false],"2048x2048":["https:\/\/emariete.com\/wp-content\/uploads\/2021\/02\/NeoPixel-WS2812-ESPEasy.png",1080,608,false],"trp-custom-language-flag":["https:\/\/emariete.com\/wp-content\/uploads\/2021\/02\/NeoPixel-WS2812-ESPEasy.png",18,10,false]},"uagb_author_info":{"display_name":"Mariete","author_link":"https:\/\/emariete.com\/en\/author\/admin_xlyz052h\/"},"uagb_comment_info":0,"uagb_excerpt":"Conecta y controla LEDs con tu ESP8266 con ESP Easy f\u00e1cilmente.","_links":{"self":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/237786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/comments?post=237786"}],"version-history":[{"count":0,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/237786\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/media\/237788"}],"wp:attachment":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/media?parent=237786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/categories?post=237786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/tags?post=237786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}