ESP8266 - Módulo LDR

O módulo sensor de luz LDR consegue sentir e medir a quantidade de luz ao redor. Ele tem duas saídas: uma que fornece um sinal digital (LOW ou HIGH) e outra que fornece um sinal analógico.

Este tutorial ensina você a usar um ESP8266 e um módulo sensor de luz LDR para detectar e medir a luz. Vamos abordar o seguinte:

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

Mais tarde, você pode alterar o código para que, quando o sensor de luz LDR detectar luz, ele ligue um LED ou uma lâmpada usando um relé.

Se você prefere um sensor de luz na forma bruta, sugiro explorar o tutorial ESP8266 - Sensor de Luz.

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Módulo Sensor de Luz LDR
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Módulo Sensor de Luz LDR

Você pode usar o módulo sensor de luz LDR para detectar se há luz ou medir o quão brilhante é a luz na área. Ele tem um pino de saída digital e um pino de saída analógica para você escolher.

Pinagem

O módulo sensor de luz LDR tem quatro pinos:

  • Pino VCC: conecte-o a uma fonte de alimentação com tensão entre 3,3V e 5V.
  • Pino GND: conecte-o ao terra, que tem 0V.
  • Pino DO: este é um pino de saída digital. Ele fornece um sinal HIGH quando está escuro e um sinal LOW quando está claro. Você pode ajustar o limite entre escuro e claro usando um potenciômetro embutido no módulo.
  • Pino AO: este é um pino de saída analógica. O valor de saída diminui à medida que a luz fica mais forte e aumenta à medida que a luz fica mais fraca.
Pinagem do módulo sensor de luz LDR
image source: diyables.io

Além disso, o módulo sensor de luz LDR inclui dois indicadores LED:

  • Um indicador PWR-LED mostra o estado da alimentação.
  • Um indicador DO-LED mostra o estado da luz no pino DO: ele acende quando há luz e apaga quando está escuro.

Como Funciona

Sobre o pino DO:

  • O módulo sensor de luz LDR tem um potenciômetro embutido que permite ajustar a sensibilidade ou o limite para a detecção de luz.
  • Quando a intensidade da luz no ambiente ao redor é maior que o limite definido (ou seja, está claro), o pino de saída do sensor fica LOW e o DO-LED acende.
  • Quando a intensidade da luz no ambiente ao redor é menor que o limite definido (ou seja, está escuro), o pino de saída do sensor fica HIGH e o DO-LED apaga.

Sobre o pino AO:

  • O valor lido do pino AO diminui à medida que a intensidade da luz no ambiente ao redor aumenta (ou seja, fica mais claro).
  • O valor lido do pino AO aumenta à medida que a intensidade da luz no ambiente ao redor diminui (ou seja, fica mais escuro).

Observe que o potenciômetro não afeta o valor no pino AO.

Diagrama de Ligação

Como o módulo sensor de luz tem duas saídas, você pode escolher usar uma ou ambas, dependendo do que precisar.

  • O diagrama de ligação entre o ESP8266 e o módulo sensor de luz LDR usando apenas o DO.
Diagrama de ligação do módulo sensor de luz LDR com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

  • O diagrama de ligação entre o ESP8266 e o módulo sensor de luz LDR usando apenas o AO.
Diagrama de ligação do módulo LDR com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

  • O diagrama de ligação entre o ESP8266 e o módulo sensor de luz LDR usando tanto o AO quanto o DO.
Diagrama de ligação do módulo sensor de luz com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Código ESP8266 - Ler o valor do pino DO

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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"); }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Veja o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o ESP8266
  • Cubra e descubra o módulo sensor de luz LDR com a mão ou com outro objeto
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Se você notar que o estado do LED permanece sempre ligado ou sempre desligado, independentemente das condições de luz, você pode ajustar o potenciômetro. Esse ajuste permite regular a sensibilidade do sensor à luz.

Além disso, você tem a flexibilidade de modificar o código para acender um LED ou uma lâmpada quando a luz for detectada. Você pode até controlar um servo motor para fazê-lo girar. Para instruções detalhadas e mais informações, consulte os tutoriais indicados no final deste guia.

Código ESP8266 - Ler o valor do pino AO

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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); }

Passos Rápidos

  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o ESP8266
  • Cubra e descubra o módulo sensor de luz LDR com a mão ou com outro objeto
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

※ Nota:

Este tutorial usa a função analogRead() para obter dados de um ADC (conversor analógico-digital) conectado a um sensor ou a outra peça. O ADC do ESP8266 funciona bem em projetos que não exigem leituras muito precisas. Mas lembre-se: o ADC do ESP8266 não é muito preciso para medições detalhadas. Se o seu projeto precisa ser muito preciso, você pode usar um ADC separado, como o ADS1115, com o ESP8266, ou usar um Arduino como o Arduino Uno R4 WiFi, que tem um ADC mais confiável.

Vídeo

Referências de Funções

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!