ESP8266 - Sensor de Luz

Este tutorial le enseña cómo usar el sensor de luz con ESP8266. En detalle:

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Sensor de Luz
1×10 kΩ Resistor
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

El sensor de luz LDR (LINK_MAIN_LIGHT_SENSOR) es muy asequible, pero requiere una resistencia para el cableado, lo que puede hacer que la configuración sea más compleja. Para simplificar el cableado, puedes usar un módulo de sensor de luz LDR como alternativa.

Acerca del sensor de luz

El sensor utilizado en este tutorial es una fotorresistencia, también conocida como resistencia dependiente de la luz, LDR, o fotocélula.

No solo se utiliza para detectar la luz, sino también para medir la intensidad de la luz circundante.

El pinout del sensor de luz

Una fotoresistencia tiene dos pines que no es necesario distinguir entre sí, ya que es un tipo de resistencia y, por lo tanto, los pines son simétricos.

Disposición de pines del sensor de luz

Cómo funciona

La cantidad de luz a la que está expuesta la superficie de la fotorresistencia afecta su resistencia. Midiendo esta resistencia, podemos determinar la intensidad de la luz ambiental.

Cómo funciona un sensor de luz

WARNING

El valor del sensor de luz solo ofrece una indicación aproximada de la intensidad de la luz, no una medida precisa del flujo luminoso. En consecuencia, no debe utilizarse para aplicaciones que necesiten un alto grado de precisión.

ESP8266 - Sensor de Luz

Los pines analógicos del ESP8266 pueden usarse como entradas analógicas. Estos pines de entrada analógica convierten el voltaje (que va desde 0 voltios hasta VCC) en valores enteros (que van de 0 a 1023), conocidos como valor ADC o valor analógico.

Conecta una de las patas de la fotorresistencia a un pin de entrada analógico. Usando la función analogRead(), lee el valor analógico del pin. Esto nos permitirá determinar los niveles de luz de forma relativa.

Diagrama de Cableado

Diagrama de cableado del sensor de luz ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

Código ESP8266

El código a continuación lee el valor de la fotocélula y determina cualitativamente el nivel de luz.

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The ESP8266 pin ADC0 void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); } void loop() { // reads the input on analog pin (value between 0 and 1023) int analog_value = analogRead(LIGHT_SENSOR_PIN); Serial.print("Analog Value = "); Serial.print(analog_value); // The raw analog reading // We'll have a few threshholds, qualitatively determined if (analog_value < 40) { Serial.println(" => Dark"); } else if (analog_value < 800) { Serial.println(" => Dim"); } else if (analog_value < 2000) { Serial.println(" => Light"); } else if (analog_value < 3200) { Serial.println(" => Bright"); } else { Serial.println(" => Very bright"); } delay(500); }

Pasos R\u00e1pidos

Para empezar con ESP8266 en Arduino IDE, siga estos pasos:

  • Consulta el cómo configurar el entorno para ESP8266 en Arduino IDE tutorial si es la primera vez que usas ESP8266.
  • Conecta los componentes tal como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora con un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Copia el código y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para compilar y subir el código al ESP8266.
  • Abre el Monitor Serial.
  • Ilumina el sensor.
  • Revisa el resultado en el Monitor Serial.
COM6
Send
Analog reading: 163 - Dim Analog reading: 152 - Dim Analog reading: 187 - Dim Analog reading: 188 - Dim Analog reading: 957 - Very bright Analog reading: 972 - Very bright Analog reading: 981 - Very bright
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sensor de luz y LED

  • Cuando el entorno está oscuro, el código activará el LED; de lo contrario, lo desactivará.
/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The ESP8266 pin connected to light sensor #define LED_PIN D8 // The ESP8266 pin connected to LED #define ANALOG_THRESHOLD 500 void setup() { pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode } void loop() { int analog_value = analogRead(LIGHT_SENSOR_PIN); // read the value on analog pin if (analog_value < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }
  • El diagrama de cableado para el código anterior.
Esquema de cableado LED y sensor de luz ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

※ Nota:

Este tutorial utiliza la función analogRead() para obtener datos de un ADC (Convertidor Analógico-Digital) que está conectado a un sensor o otra parte. El ADC del ESP8266 funciona bien para proyectos en los que no se requieren lecturas muy precisas. Pero recuerda, el ADC del ESP8266 no es muy preciso para mediciones detalladas. Si tu proyecto necesita ser muy preciso, quizá quieras usar un ADC separated como el ADS1115 con el ESP8266, o usar Arduino como el Arduino Uno R4 WiFi, que tiene un ADC más fiable.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Rétate a ti mismo

  • Cuando la luz de tu habitación esté tenue, actívala automáticamente.
  • Consulte ESP8266 - Relé para obtener instrucciones sobre cómo hacer esto.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!