Introduzione
Un sensore di acqua con NodeMCU è un dispositivo che può essere utilizzato per rilevare la presenza o l’assenza di acqua in un determinato ambiente. Questo tipo di sensore può essere molto utile in diverse applicazioni, come ad esempio nel monitoraggio di allagamenti o nel controllo del livello di acqua in una piscina.
Componenti necessari
Per realizzare un sensore di acqua con NodeMCU avrai bisogno dei seguenti componenti:
- NodeMCU
- Sensore di umidità del suolo
- Resistenze (da 10 kΩ)
- Breadboard
- Cavi jumper
Collegamento dei componenti
Per collegare correttamente i componenti, segui i seguenti passaggi:
- Collega il sensore di umidità del suolo alla breadboard.
- Collega il pin VCC del sensore alla tensione di alimentazione (5V) della NodeMCU.
- Collega il pin GND del sensore al pin GND della NodeMCU.
- Collega il pin D0 del sensore al pin D0 della NodeMCU.
- Collega una resistenza da 10 kΩ tra il pin D0 del sensore e il pin VCC della NodeMCU.
Codice
Ecco un esempio di codice per il sensore di acqua con NodeMCU:
// Includi la libreria necessaria per la connessione Wi-Fi
#include <ESP8266WiFi.h>
// Imposta il nome e la password della tua rete Wi-Fi
const char* ssid = "nome_rete";
const char* password = "password_rete";
// Imposta l'indirizzo IP e la porta del server per le notifiche
const char* serverIP = "indirizzo_ip_server";
const int serverPort = 80;
// Imposta il pin del sensore di acqua
const int waterSensorPin = D0;
// Inizializza la connessione Wi-Fi
void setupWiFi() {
delay(10);
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connesso");
Serial.println("Indirizzo IP: " + WiFi.localIP().toString());
}
// Invia una notifica al server
void sendNotification() {
WiFiClient client;
if (client.connect(serverIP, serverPort)) {
client.println("GET /notifica HTTP/1.1");
client.println("Host: " + String(serverIP));
client.println("Connection: close");
client.println();
client.stop();
}
}
// Leggi lo stato del sensore di acqua
int readWaterSensor() {
return digitalRead(waterSensorPin);
}
// Funzione di setup
void setup() {
pinMode(waterSensorPin, INPUT);
setupWiFi();
}
// Funzione di loop
void loop() {
int waterState = readWaterSensor();
if (waterState == HIGH) {
sendNotification();
delay(5000);
}
}
Notifiche tramite web
Per ricevere le notifiche sul tuo server, dovrai creare un’applicazione web che gestisca le richieste provenienti dal sensore di acqua. Questa applicazione può essere sviluppata utilizzando il linguaggio di programmazione e il framework di tua scelta.
Quando il sensore di acqua rileva la presenza di acqua, invierà una richiesta GET al server specificato nel codice. Questa richiesta può essere elaborata dall’applicazione web per inviare una notifica al tuo dispositivo o eseguire altre azioni desiderate.
Conclusioni
Un sensore di acqua con NodeMCU e le notifiche tramite web possono essere una soluzione efficace per monitorare la presenza di acqua in un determinato ambiente. Utilizzando il codice fornito e creando un’applicazione web personalizzata, sarai in grado di ricevere notifiche in tempo reale quando il sensore rileva la presenza di acqua.
Ricorda sempre di prendere le precauzioni necessarie quando si lavora con dispositivi elettronici e di seguire le istruzioni di sicurezza fornite dai produttori dei componenti utilizzati.