Alcune parti di questo sito web non sono ancora disponibili nella tua lingua. Stiamo lavorando per risolvere questo problema e ci scusiamo per eventuali disagi.
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
Produttore
Espressif Systems
Numero di parte
ESP32
Tensione logica/IO
3.3 V
Tensione di alimentazione
3,0 - 3,6 V
Corrente di uscita (per GPIO)
40 mA massimo
Linee guida sulla frequenza PWM
1 kHz - 40 kHz
Soglie logiche di input
Alto: 2.0 V min, Basso: 0.8 V max
Caduta di tensione / RDS(on)/ saturazione
0,3 V max
Limiti termici
-40 °C a 125 °C
Pacchetto
QFN48
Note / varianti
Supporta 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