Introduzione
Il sensore di luce è un componente elettronico che permette di rilevare l’intensità luminosa dell’ambiente circostante. In questo articolo, ti guiderò nella creazione di un sensore di luce utilizzando un NodeMCU, un microcontrollore basato su ESP8266, e ti mostrerò come restituire i valori rilevati tramite una connessione WiFi.
Cosa è un NodeMCU?
Il NodeMCU è una scheda di sviluppo open-source basata sul chip ESP8266, che integra un microcontrollore e una connessione WiFi. Grazie alle sue dimensioni ridotte, al costo contenuto e alle numerose funzionalità, il NodeMCU è diventato molto popolare nella comunità degli hobbisti e degli sviluppatori.
Creazione del circuito
Per realizzare il sensore di luce con NodeMCU, avrai bisogno dei seguenti componenti:
- NodeMCU
- Sensore di luce (fotocellula o fotodiodo)
- Resistenza da 10kΩ
- Breadboard
- Fili di collegamento
Collega il sensore di luce alla breadboard e connetti una delle estremità alla tensione di alimentazione (Vcc) del NodeMCU. Collega anche la resistenza da 10kΩ tra il pin di output del sensore di luce e la massa (GND) del NodeMCU. Infine, collega il pin di output del sensore di luce al pin analogico A0 del NodeMCU.
Programmazione del NodeMCU
Per programmare il NodeMCU, utilizzeremo l’IDE di Arduino. Se non hai già installato l’IDE di Arduino, puoi scaricarlo gratuitamente dal sito ufficiale.
Apri l’IDE di Arduino e crea un nuovo sketch. Inserisci il seguente codice:
#include
const char* ssid = "Nome della tua rete WiFi";
const char* password = "Password della tua rete WiFi";
void setup() {
Serial.begin(115200);
delay(10);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connesso");
Serial.println("Indirizzo IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
int luce = analogRead(A0);
Serial.print("Intensità luminosa: ");
Serial.println(luce);
delay(1000);
}
Nel codice, sostituisci “Nome della tua rete WiFi” con il nome della tua rete WiFi e “Password della tua rete WiFi” con la password della tua rete WiFi.
Carica il codice sul NodeMCU premendo il pulsante “Carica” nell’IDE di Arduino.
Visualizzazione dei valori rilevati
Una volta caricato il codice sul NodeMCU, aprirai il monitor seriale nell’IDE di Arduino per visualizzare i valori rilevati dal sensore di luce. Per farlo, vai su “Strumenti” -> “Monitor seriale” oppure premi Ctrl+Shift+M.
La connessione WiFi del NodeMCU dovrebbe stabilirsi e dovresti vedere l’indirizzo IP assegnato. Successivamente, vedrai i valori rilevati dall’intensità luminosa stampati nel monitor seriale.
Restituzione dei valori in WiFi
Ora che hai il NodeMCU che rileva l’intensità luminosa, puoi inviare questi valori tramite una connessione WiFi. Per farlo, puoi utilizzare il protocollo HTTP e inviare una richiesta POST ad un server.
Inserisci il seguente codice all’interno della funzione loop() del tuo sketch:
#include
void loop() {
int luce = analogRead(A0);
Serial.print("Intensità luminosa: ");
Serial.println(luce);
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin("http://indirizzo_del_tuo_server");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
String postData = "luce=" + String(luce);
int httpResponseCode = http.POST(postData);
if (httpResponseCode > 0) {
Serial.print("Risposta del server: ");
Serial.println(httpResponseCode);
}
else {
Serial.print("Errore nella connessione al server");
}
http.end();
}
delay(1000);
}
Nel codice, sostituisci “indirizzo_del_tuo_server” con l’indirizzo del tuo server. Puoi utilizzare un server locale o un servizio di hosting gratuito per testare l’invio dei valori.
Ogni secondo, il NodeMCU rileverà l’intensità luminosa e invierà i valori al server tramite una richiesta POST. Nel monitor seriale, potrai vedere la risposta del server.
Conclusioni
In questo articolo, hai imparato come creare un sensore di luce utilizzando un NodeMCU e come restituire i valori rilevati tramite una connessione WiFi. Questo progetto può essere utile in molte applicazioni, come il monitoraggio dell’illuminazione in un ambiente o il controllo automatico delle luci.
Esplora ulteriormente le potenzialità del NodeMCU e sperimenta con altri sensori per creare progetti ancora più interessanti!