Les LEDs de nos objets connectés sont un danger pour les yeux
Introduction
Prenons conscience du danger que représentent les LEDs pour nos yeux, et notamment ces LEDs bleues très lumineuses dont il est fait usage sur la plateforme ESP8266 NodeMCU. Il est très facile d'éteindre par logiciel les LEDs dont sont dotées les cartes ESP8266 par elles-mêmes, et un coup de cutter sur celles des boucliers est à notre portée, et sans impact sur leur fonctionnement.
Réserver l'usage des broches - pins - affectées aux LEDs
Pour ce qui concerne l'allocation des broches de votre carte de développement NodeMCU, je vous conseille de consulter le fichier
pins_arduino.h
sur votre ordinateur. Voici l'exemple sur ma machine Linux de l'arborescence qui permet d'y accéder :
~/.arduino15/packages/esp8266/hardware/esp8266/2.6.3/variants/nodemcu/pins_arduino.h.
J'ai expliqué dans un précédent billet www.philoc.fr/tutoriel-installer-arduino-esp8266-nodemcu/ que j'utilisais deux types de cartes : les NodeMCU V2 de source Amica, et les NodeMCU V3 de Lolin. Sur les premières, deux broches sont attachées à des LEDs internes à la carte, à savoir D0 ( ou GPIO16 ou LED-BUILTIN ) et D4 (ou GPIO2 ). Sur les secondes, seule une LED est implantée, pilotable par D4 ( GPIO2).
Quans je conçois mon application, j'évite donc d'affecter ces deux broches à des signaux externes, que ce soit en entrée ou en sortie.
Pour mieux vous familiariser au pilotage des LEDs
Voici un exemple de programme tout simple qui permet de jouer sur l'état des broches qui contrôlent les LEDs, et par exemple de les faire clignoter, ce qui devrait vous permettre d'en appréhender la nocivité.
/* ledbleues Platform NodeMCU Dev Boards V2 & V3 Purpose : blue leds are dangerous for your eyes do not allocate D0 & D4 to duty signals & keep them HIGH www.philoc.fr 2020-01-25 V0.1 */ // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin D0 & D4 as outputs // D0 : LED_BUILTIN : GPIO/16 // D4 : GPIO/2 pinMode(LED_BUILTIN, OUTPUT); pinMode(D4, OUTPUT); // Turn LEDs OFF ( safe state ) digitalWrite(LED_BUILTIN, HIGH); digitalWrite(D4, HIGH); } // the loop function runs over and over again forever void loop() { delay(1000); // Turn LEDs ON ( not recommended for your eyes ) //digitalWrite(LED_BUILTIN, LOW); //digitalWrite(D4, LOW); delay(1000); // Turn LEDs OFF ( safe state ) digitalWrite(LED_BUILTIN, HIGH); digitalWrite(D4, HIGH); delay(10000); }