Módulo ESP8266 - LDR

El módulo de sensor de luz LDR puede detectar y medir la cantidad de luz que hay a su alrededor. Tiene dos salidas: una que proporciona una señal digital (ya sea baja o alta) y otra que proporciona una señal analógica.

Este tutorial te enseña cómo usar un ESP8266 y un módulo de sensor de luz LDR para detectar y medir la luz. Veremos lo siguiente:

Módulo de sensor de luz LDR
image source: diyables.io

Más adelante, puedes modificar el código para que, cuando el sensor de luz LDR detecte luz, pueda encender un LED o una bombilla mediante un relé.

Si prefiere un sensor de luz en su forma cruda, le sugiero explorar el tutorial sobre el ESP8266 - Light Sensor.

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×Módulo Sensor de Luz LDR
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.

Sobre el módulo de sensor de luz LDR

Puedes usar el módulo de sensor de luz LDR para detectar si hay luz o para medir qué tan brillante es el área. Tiene un pin de salida digital y un pin de salida analógica para que puedas elegir.

Distribución de pines

El módulo de sensor de luz LDR tiene cuatro pines:

  • VCC pin: Conéctalo a una fuente de alimentación con un voltaje entre 3.3 V y 5 V.
  • GND pin: Conéctalo a la tierra, que tiene 0 V.
  • DO pin: Este es un pin de salida digital. Proporciona una señal ALTA cuando está oscuro y una señal BAJA cuando hay luz. Puedes ajustar el umbral entre oscuridad y claridad usando un potenciómetro que está integrado en el módulo.
  • AO pin: Este es un pin de salida analógica. El valor de salida disminuye a medida que la luz se vuelve más brillante y aumenta a medida que la luz se vuelve más oscura.
Diagrama de pines del módulo de sensor de luz LDR
image source: diyables.io

Además, el módulo de sensor de luz LDR incluye dos indicadores LED:

  • Un indicador PWR-LED muestra el estado de la alimentación.
  • Un indicador DO-LED muestra el estado de la luz en el pin DO: se enciende cuando hay luz y se apaga cuando está oscuro.

Cómo funciona

Con respecto al pin DO:

  • El módulo de sensor de luz LDR tiene un potenciómetro incorporado que te permite ajustar la sensibilidad o el umbral para la detección de la luz.
  • Cuando la intensidad de la luz en el entorno circundante es mayor que el umbral establecido (lo que significa que hay luz), el pin de salida del sensor se pone en LOW y el DO-LED se enciende.
  • Cuando la intensidad de la luz en el entorno circundante es menor que el umbral establecido (lo que significa que está oscuro), el pin de salida del sensor se pone en HIGH y el DO-LED se apaga.

Con respecto al pin AO:

  • El valor leído desde el pin AO disminuye a medida que la intensidad de la luz en el entorno circundante aumenta (lo que significa que es más brillante).
  • El valor leído desde el pin AO aumenta a medida que la intensidad de la luz en el entorno circundante disminuye (lo que significa que es más oscuro).

Tenga en cuenta que el potenciómetro no afecta el valor del pin AO.

Diagrama de Cableado

Como el módulo del sensor de luz tiene dos salidas, puedes elegir usar una o ambas, según lo que necesites.

  • El diagrama de cableado entre el ESP8266 y el módulo sensor de luz LDR cuando se usa solo DO.
Diagrama de cableado del módulo sensor de luz LDR 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.

  • El diagrama de cableado entre el ESP8266 y el módulo de sensor de luz LDR cuando se utiliza solo AO.
Diagrama de cableado del módulo LDR ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

  • El esquema de cableado entre el ESP8266 y el módulo de sensor de luz LDR cuando se usan tanto A0 como D0.
Diagrama de cableado del módulo sensor de luz ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Código ESP8266 - Leer el valor del pin DO

/* * 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-ldr-module */ #define DO_PIN D7 // ESP8266's pin connected to DO pin of the ldr module void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(DO_PIN, INPUT); } void loop() { int light_state = digitalRead(DO_PIN); if (light_state == HIGH) Serial.println("The light is NOT present"); else Serial.println("The light is present"); }

Pasos R\u00e1pidos

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

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecte los componentes tal como se muestran en el diagrama.
  • Conecte la placa ESP8266 a su computadora usando un cable USB.
  • Abra Arduino IDE en su computadora.
  • Seleccione la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su correspondiente puerto COM.
  • Copie el código anterior y ábralo con Arduino IDE.
  • Haga clic en el botón Upload de Arduino IDE para cargar el código en ESP8266.
  • Cubra y descubra el módulo sensor de luz LDR con su mano o con algo.
  • Consulte el resultado en el Monitor Serial.
COM6
Send
The light is present The light is present The light is NOT present The light is NOT present The light is NOT present The light is present The light is present The light is present
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Si observas que el estado del LED permanece constantemente encendido o apagado, independientemente de las condiciones de iluminación, tienes la opción de ajustar el potenciómetro. Este ajuste te permitirá afinar la sensibilidad a la luz del sensor.

Además, tienes la flexibilidad de modificar el código para activar un LED o una luz cuando se detecta luz. Incluso puedes controlar un servomotor para habilitar la rotación. Para instrucciones detalladas y más información, consulte los tutoriales que se proporcionan al final de esta guía.

Código ESP8266 - Leer valor del pin A0

/* * 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-ldr-module */ #define AO_PIN A0 // ESP8266's pin connected to AO pin of the ldr module void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); } void loop() { int light_value = analogRead(AO_PIN); Serial.print("The analog value: "); Serial.println(light_value); }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para subir el código al ESP8266
  • Cubre y destapa el módulo de sensor de luz LDR con la mano o con algo
  • Ver el resultado en el Monitor Serial.
COM6
Send
The analog value: 145 The analog value: 146 The analog value: 146 The analog value: 572 The analog value: 678 The analog value: 945 The analog value: 956 The analog value: 1001 The analog value: 1002 The analog value: 1012 The analog value: 1013 The analog value: 645 The analog value: 546 The analog value: 346 The analog value: 172
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

Este tutorial utiliza la función analogRead() para obtener datos de un ADC (Convertidor Analógico a Digital) que está conectado a un sensor u otra parte. El ADC del ESP8266 funciona bien para proyectos en los que no necesitas 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 independiente como el ADS1115 con el ESP8266, o usar Arduino como el Arduino Uno R4 WiFi, que tiene un ADC más confiable.

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.

Referencias de Funciones

※ 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!