Tutoriale ESP32 22/55 - Sentire la luce usando LED Arduino | Kit di apprendimento IoT ESP32 di SunFounder

Tutoriale ESP32 22/55 - Sentire la luce usando LED Arduino | Kit di apprendimento IoT ESP32 di SunFounder

In questo tutorial, esploreremo come utilizzare un Resistore Dipendente dalla Luce (LDR) con il microcontrollore ESP32 per misurare l'intensità della luce. Leggendo la resistenza dell'LDR, possiamo attivare azioni, come accendere un buzzer quando il livello di luce supera una certa soglia. Questo progetto dimostrerà l'interazione tra i livelli di luce e le capacità di lettura analogica dell'ESP32, permettendoci di creare applicazioni reattive basate sulla luce ambientale. (nel video a 5:30)

Hardware Spiegato

I principali componenti che utilizzeremo in questo progetto includono il microcontrollore ESP32, un LDR e una resistenza da 10 kΩ. L'LDR cambia la sua resistenza in base all'intensità della luce che colpisce la sua superficie: più luce comporta una resistenza più bassa, mentre meno luce comporta una resistenza più alta. Questa proprietà ci consente di misurare i diversi livelli di luce collegando l'LDR in una configurazione di partitore di tensione con la resistenza.

Il microcontrollore ESP32 presenta Wi-Fi e Bluetooth integrati, rendendolo ideale per progetti IoT. Ha diversi pin analogici che possono leggere diversi livelli di tensione, che utilizzeremo per monitorare la tensione attraverso l'LDR. Questa tensione sarà convertita in un valore analogico che l'ESP32 può elaborare e utilizzare per attivare azioni come l'attivazione di un buzzer.

Dettagli della scheda tecnica

ProduttoreEspressif Systems
Numero di parteESP32
Tensione logica/IO3.3 V
Tensione di alimentazione3,0 - 3,6 V
Corrente di uscita (per GPIO)40 mA massimo
Linee guida sulla frequenza PWM1 kHz - 40 kHz
Soglie logiche di inputAlto: 2.0 V min, Basso: 0.8 V max
Caduta di tensione / RDS(on)/ saturazione0,3 V max
Limiti termici-40 °C a 125 °C
PacchettoQFN48
Note / variantiSupporta più protocolli Wi-Fi e Bluetooth

  • Usa un resistore da 10 kΩ in serie con il LDR per la divisione della tensione.
  • Assicurati che l'ESP32 sia alimentato con 3,3 V per evitare danni.
  • Collegare correttamente l'LDR e la resistenza per misurare l'intensità della luce.
  • Utilizzare un condensatore per il disaccoppiamento se necessario per stabilizzare l'alimentazione.
  • Controlla i valori di lettura analogica per assicurarti che rientrino nei range previsti.

Istruzioni di cablaggio

ESP32-22_light_sensor-wiring

Per collegare l'LDR e il resistore all'ESP32, inizia collegando un terminale dell'LDR al pin di alimentazione da 3,3 V sull'ESP32. L'altro terminale dell'LDR dovrebbe essere collegato a un terminale del resistore da 10 kΩ. Collega l'altro terminale del resistore a terra.

Successivamente, collega un filo jumper dal punto di giunzione tra l'LDR e la resistenza al pin35sull'ESP32. Questa configurazione crea un partitore di tensione, consentendo all'ESP32 di leggere la tensione variabile in base all'intensità della luce che colpisce l'LDR. Assicurati che tutte le connessioni siano sicure e che l'LDR sia posizionato in un punto in cui possa percepire accuratamente i cambiamenti di luce.

Esempi di codice e guida passo passo

Nel codice, iniziamo inizializzando la comunicazione seriale per monitorare le letture dall'LDR. L'identificatore chiave qui èanalogValue, che memorizza la lettura dal pin35.

void setup() {
  Serial.begin(115200);
}

void loop() {
  int analogValue = analogRead(35);
  Serial.printf("ADC analog value = %d\n",analogValue);
  delay(100);
}

Questo frammento di codice inizializza il monitor seriale a una velocità di baud di 115200 e legge continuamente il valore analogico dal pin.35Il valore viene stampato sul monitor seriale, permettendoci di osservare come cambia con diversi livelli di luce.

Quando l'intensità della luce cambia, la resistenza dell'LDR varia e, di conseguenza, la tensione letta dall'ESP32 cambierà anch'essa, riflettendo le condizioni di luce (nel video alle 12:45).

Dimostrazione / Cosa Aspettarsi

Mentre esegui il programma e osservi il monitor seriale, dovresti vedere ilADC analog valuefluttueranno in base alle condizioni luminose ambientali. Quando copri l'LDR, il valore dovrebbe aumentare, indicando una resistenza più alta, mentre esponendolo a luce intensa dovrebbe abbassarsi significativamente. Questo comportamento può essere utilizzato per attivare un buzzer o qualsiasi altra azione in base alle soglie predefinite.

Se le letture non cambiano come previsto, controlla eventuali problemi di cablaggio, assicurati che il LDR non sia sospeso e conferma che l'ESP32 sia alimentato correttamente. Questo aiuterà a prevenire trappole comuni e garantire un funzionamento regolare (nel video alle 15:30).

Timestamp video

  • 00:00 Inizio
  • 1:48 Introduzione a LDR
  • 8:33 Spiegazione del cablaggio
  • 11:07 Codice Arduino spiegato
  • 13:07 Selezionando la scheda ESP32 e la porta COM nell'IDE Arduino
  • 14:49 Dimostrazione della lettura del valore
  • 17:24 Comprendere il valore del giorno e della notte
  • 18:47 Valore DAC e lettura della tensione

Immagini

ESP32-22_light_sensor
ESP32-22_light_sensor
ESP32-22_light_sensor-wiring
ESP32-22_light_sensor-wiring
821-ESP32 Tutorial 22/55- Arduino code for Light dependant resistor
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.