ESP8266 - Sensor de Luz

Este tutorial ensina você a usar o sensor de luz com o ESP8266. Em detalhes:

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×Sensor de Luz
1×10 kΩ Resistor
1×Protoboard
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.

O sensor de luz LDR é muito barato, mas precisa de um resistor na ligação, o que pode deixar a montagem mais complexa. Para simplificar a ligação, você pode usar um módulo sensor de luz LDR como alternativa.

Sobre o Sensor de Luz

O sensor usado neste tutorial é um fotorresistor, também conhecido como resistor dependente de luz, LDR ou fotocélula.

Ele não serve apenas para detectar luz, mas também para medir a intensidade da luz ao redor.

Pinagem do Sensor de Luz

Um fotorresistor tem dois pinos que não precisam ser distinguidos, pois ele é um tipo de resistor e, assim, os pinos são simétricos.

Pinagem do sensor de luz

Como Funciona

A quantidade de luz a que a face do fotorresistor é exposta afeta a sua resistência. Medindo essa resistência, podemos determinar o brilho da luz ao redor.

Como o sensor de luz funciona

WARNING

O valor do sensor de luz dá apenas uma indicação aproximada da intensidade da luz, e não uma medida precisa do fluxo luminoso. Por isso, ele não deve ser usado em aplicações que exigem um alto grau de precisão.

ESP8266 - Sensor de Luz

Os pinos analógicos do ESP8266 podem ser usados como entradas analógicas. Esses pinos de entrada analógica convertem a tensão (de 0 volts até VCC) em valores inteiros (de 0 a 1023), chamados de valor ADC ou valor analógico.

Conecte um pino do fotorresistor a um pino de entrada analógica. Usando a função analogRead(), leia o valor analógico do pino. Isso nos permite determinar os níveis de luz de forma relativa.

Diagrama de Ligação

Diagrama de ligação do sensor de luz 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.

Código ESP8266

O código abaixo lê o valor da fotocélula e determina qualitativamente o nível de luz.

/* * 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-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); }

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 e abra-o no Arduino IDE.
  • Clique no botão Upload do Arduino IDE para compilar e fazer o upload do código para o ESP8266.
  • Abra o Serial Monitor.
  • Aponte uma luz para o sensor.
  • 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
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
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Sensor de Luz e LED

  • Quando o ambiente está escuro, o código acende o LED; caso contrário, ele o apaga.
/* * 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-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 }
  • O diagrama de ligação para o código acima.
Diagrama de ligação do sensor de luz com LED e ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

※ 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

Desafie-se

  • Quando a luz do seu quarto estiver fraca, ative-a automaticamente.
  • Consulte ESP8266 - Relé para ver como fazer isso.

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