Sommario:
- Passaggio 1: parti di cui avrai bisogno
- Passaggio 2: schema elettrico
- Passaggio 3: costruire il circuito
- Passaggio 4: far lampeggiare l'ESP-01
- Passaggio 5: esecuzione di prova
- Passaggio 6: montare il sensore
- Passaggio 7: tocco finale
Video: Sensore WIFI MQTT/Google Home per allagamento/acqua con ESP-01: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
In questo tutorial, ti mostrerò come costruire un sensore di allagamento/acqua wifi con un costo minimo. L'intero progetto mi costa meno di $ 8 per le parti che acquisto da ebay e i miei pezzi di ricambio esistenti.
In questo progetto, utilizzeremo ESP-01 per fornire Wi-Fi e client MQTT per rilevare la presenza di acqua e, facoltativamente, utilizzeremo altoparlanti/cicalini collegati direttamente per fornire un allarme localizzato.
La mia applicazione specifica per il progetto è quella di rilevare allagamenti/acqua all'interno del pozzo della mia pompa di pozzetto, in caso di guasto della pompa di pozzetto. Quando l'acqua viene rilevata da 2 fili aperti, invierà un messaggio al broker MQTT. Il broker MQTT invierà quindi il messaggio a NodeRED. Dopo aver ricevuto il messaggio MQTT, NodeRED invierebbe l'annuncio a più dispositivi Google Home e, facoltativamente, invierà un messaggio al cellulare/browser tramite pushbullet
Ora, ovviamente, questo progetto funzionerebbe solo se l'elettricità domestica è ATTIVA. Nella prossima istruzione integrerò il circuito di backup della batteria. Ma se fai l'alimentatore come ho fatto io, puoi semplicemente collegare un power bank USB per il backup della batteria. Se disponi di un power bank che ti consente di caricare e fornire energia allo stesso tempo, sei pronto.
Uso RaspberryPi ZeroW per ospitare il server Mosquitto MQTT e NodeRED. Funziona da più di un anno senza alcun problema.
Riferimenti:Raspberry Pi:https://www.switchdoc.com/2016/02/tutorial-installi…Installa NodeRED su Raspberry Pi:
Passaggio 1: parti di cui avrai bisogno
Elenco delle parti:
(1) ESP-01
(2) Resistenza da 10K ohm
(1) transistor NPN generico a piccolo segnale (ho usato 2N3904)
(2) fili lunghi
(1) Alimentazione generica 5V (questo circuito richiede una corrente inferiore a 300mA)
(1) Modulo regolatore 3.3V AMS1117
(1) Adattatore da micro-USB a DIP Connettore femmina Convertitore PCB Kit fai da te
(1) Cavo da USB-A a MicroUSB.
(1) Presa IC a 8 pin - può essere omessa se si desidera saldare ESP-01 direttamente al circuito. Taglia i ponti di plastica che creano lo spazio tra le file, quindi incolla le 2 file insieme, vedi foto.
(1) Piccolo recinto per il progetto
Di seguito sono riportate le parti opzionali se è necessario un allarme localizzato tramite altoparlante/cicalino
(1) Transistor PNP generico, scegliere in base ai requisiti di corrente/wattaggio dell'altoparlante/cicalino. Nel mio caso uso 2N2907 poiché il mio altoparlante è solo 0,3 W (8 ohm), fornirebbe energia sufficiente per pilotare l'altoparlante. Puoi scegliere un transistor e un altoparlante più grandi se vuoi un suono più forte.
(1) Altoparlante, vedere la nota sul transistor PNP sopra
(1) Resistenza da 100 - 110 ohm
Passaggio 2: schema elettrico
Il primo passo sarebbe creare il circuito mostrato nel diagramma.
Ho costruito l'alimentatore da 3,3 V CC utilizzando un vecchio caricatore per cellulare da 5 V accoppiato con il regolatore AMS1117 da 3,3 V CC. Per la presa ESP-01, utilizzo una presa IC standard a 8 pin e taglio i ponti di plastica che creano lo spazio tra le file, quindi incollo le 2 file insieme.
Il circuito che ho progettato è quello di rilevare la presenza di acqua tra i due fili. Quando l'acqua raggiunge la punta di entrambi i fili, creerebbe una resistenza da circa 10K a 20K ohm. Quindi in serie con il 10K ohm R1, fornisce una piccola corrente alla base del Q1 causando la saturazione di Q1, bloccando il GPIO-2 a terra. R1 è necessario per fornire protezione a Q1 in caso di cortocircuito accidentale sui fili di rilevamento.
R2 è un resistore di pull-up per consentire a ESP-01 di avviarsi da flash.
Ora per l'altoparlante/cicalino opzionale, se hai solo bisogno di ESP-01 per parlare MQTT e non vuoi implementare questo allarme localizzato, puoi rimuovere R2, Q2, Altoparlante e posizionare un resistore di pull-up da 10K tra GPIO-0 e VCC.
Se non senti la necessità di utilizzare l'adattatore da Micro-USB a DIP femmina, puoi saldare i fili tra il PS 5V al modulo regolatore da 3,3V. Preferisco utilizzare l'adattatore MicroUSB femmina in modo da poter utilizzare qualsiasi caricabatterie per cellulare generico e cavo MicroUSB.
Passaggio 3: costruire il circuito
Saldare tutti i componenti e le parti nel PCB secondo lo schema elettrico nella pagina precedente e tagliare il PCB a misura.
Posiziona il PCB all'interno di un involucro che si adatti al PCB e all'altoparlante opzionale. Nel mio caso, tutte le parti si adatterebbero all'interno di una piccola scatola per la presa del telefono, anche se devo riscaldare un po' il coperchio per creare un rigonfiamento in modo che il modulo ESP-01 si adatti.
Passaggio 4: far lampeggiare l'ESP-01
In questo passaggio, lampeggeremo l'ESP-01 con lo schizzo di arduino. Se non hai mai eseguito il flashing del modulo ESP-01, puoi seguire le mie istruzioni per iniziare:
Puoi trovare il mio schizzo nella mia pagina github:
Nello schizzo, come minimo è necessario modificare le seguenti informazioni relative alla rete/configurazione domestica:
#define MQTT_SERVER "10.0.0.30"const char* ssid1 = "SSID";const char* password1 = "MYSSIDpassword";const char* ssid2 = "SSID1";const char* password2 = "MYSSIDpassword";
Nella mia rete domestica, ho 2 punti di accesso diversi che trasmettono 2 SSID diversi e questo schizzo consentirebbe la ridondanza collegandosi al SSID successivo se la comunicazione con l'AP corrente viene persa. Se hai un solo SSID, popola ssid1 e ssid2 con lo stesso valore.
Una volta apportata la modifica, carica lo schizzo in ESP-01 e collega ESP-01 alla scheda di interfaccia.
Passaggio 5: esecuzione di prova
Per verificare se il nostro progetto funziona, il modo più semplice sarebbe monitorare i messaggi MQTT nella rete. Per fare ciò, è necessario aprire una sessione SSH al broker mosquitto ed emettere il seguente comando:
mosquitto_sub -v -t '#'
Il comando precedente ci consentirebbe di vedere tutti i messaggi MQTT in arrivo nel broker.
Adesso accendi il nostro circuito, e se tutto funziona, in pochi secondi dovresti vedere almeno il seguente messaggio MQTT:
stat/SumpWaterSensor/LWT Online
Ora prova il sensore dell'acqua immergendo i 2 fili di rilevamento in una tazza d'acqua e dovresti vedere questo messaggio:
tele/SumpWaterSensor WET
E se togli i fili dall'acqua, dovresti vedere questo messaggio:
tele/SumpWaterSensor DRY
Se vedi quei messaggi, il tuo progetto è un successo.
Ho anche incluso diversi argomenti MQTT utili nello sketch che puoi usare:
"stat/SumpWaterSensorInfo": questo messaggio viene inviato ogni minuto per fornire tempi di attività e altre informazioni.
"cmnd/SumpWaterSensorInfo": ESP-01 invierà informazioni se riceve questo argomento con valore '1' (ascii=49)
"cmnd/SumpWaterSensorCPUrestart": ESP-01 si riavvierà se riceve questo argomento con valore '1' (ascii=49)
"cmnd/SumpWaterSensorBeep": ESP-01 suonerà l'altoparlante se riceve questo argomento con valore '1' (ascii=49)
"cmnd/SumpWaterSensorBeepFreq": imposta la frequenza dell'allarme dell'altoparlante, impostazione predefinita = 900 (Hz)
"cmnd/SumpWaterSensorDebug": abilita e imposta il livello di debug seriale (il valore predefinito è 0 - nessun debug)
Passaggio 6: montare il sensore
Nella mia applicazione, voglio monitorare bene il livello dell'acqua all'interno della mia pompa di pozzetto e avvisarmi se l'acqua raggiunge sopra l'interruttore a galleggiante della pompa di pozzetto, il che significa che la mia pompa di pozzetto non funziona. Ho fatto passare i fili e ho usato delle fascette per fissarlo lungo il tubo di scarico.
Passaggio 7: tocco finale
Ora che abbiamo il progetto funzionante e siamo in grado di pubblicare il messaggio MQTT sul broker, il passo successivo è pensare a cosa farne.
Nel mio progetto, utilizzo Node-RED per ascoltare/iscrivermi all'argomento MQTT "tele/SumpWaterSensor" e annunciare a diversi home speaker di Google se viene rilevata acqua. Oltre a ciò, ho anche collegato il flusso a un nodo pushbullet per inviare notifiche al mio telefono Android.
Ho anche creato un front-end web per vedere lo stato del sensore (on/offline, uptime, ecc.). A volte ho visto che va offline poche volte nel corso di 1 settimana, dalle statistiche, molte volte è dovuto alla disconnessione di ESP-01 dal wifi o MQTT. Ma non preoccuparti troppo, il mio schizzo ha incluso la routine per riavviare ESP-01 se continua a non riuscire a connettersi al broker WIFI e/o MQTT.
L'immagine in questo passaggio mostra il flusso Node-RED per ottenere ciò. Puoi anche incollare il flusso dalla mia pagina github nel tuo Node-RED:
L'annuncio di Google home è solo un esempio per questo progetto, ma penso che sia il più utile e pratico. Puoi sempre interfacciarti con altri ascoltatori MQTT o persino utilizzare IFTTT per guidare altri dispositivi quando viene rilevata l'acqua.
Divertiti…
Consigliato:
Sensore per porta e serratura del capannone alimentato a batteria, solare, ESP8266, ESP-Now, MQTT: 4 passaggi (con immagini)
Sensore per porta e serratura del capannone alimentato a batteria, solare, ESP8266, ESP-Now, MQTT: In questo Instructable ti mostro come ho realizzato un sensore alimentato a batteria per monitorare la porta e lo stato di blocco del mio capannone per biciclette remoto. Non ho alimentazione di rete, quindi l'ho alimentato a batteria. La batteria viene caricata da un piccolo pannello solare. Il modulo è d
Sistema di allarme per bere acqua/Monitoraggio della presa d'acqua: 6 passaggi
Sistema di allarme per bere acqua/monitor dell'assunzione di acqua: dovremmo bere una quantità sufficiente di acqua ogni giorno per mantenerci in salute. Inoltre ci sono molti pazienti a cui viene prescritto di bere una certa quantità d'acqua ogni giorno. Ma sfortunatamente abbiamo perso il programma quasi tutti i giorni. Quindi disegno
Risparmia acqua e denaro con il monitor dell'acqua della doccia: 15 passaggi (con immagini)
Risparmia acqua e denaro con il monitor dell'acqua della doccia: quale usa più acqua - un bagno o una doccia? Di recente stavo pensando a questa domanda e mi sono reso conto che in realtà non so quanta acqua viene utilizzata quando faccio la doccia. So che quando sono sotto la doccia a volte la mia mente vaga, pensando a un bel ne
Allarme di allagamento del seminterrato a bassissima potenza con ESP8266: 3 passaggi
Allarme di allagamento del seminterrato a bassissima potenza con ESP8266: Ciao, benvenuto nel mio primo istruibile. Il seminterrato di casa mia viene allagato ogni pochi anni per vari motivi come forti temporali estivi, acque sotterranee alte o persino lo scoppio di un tubo. Anche se non è un bel posto, ma il mio b
Metodi di rilevamento del livello dell'acqua Arduino utilizzando il sensore a ultrasuoni e il sensore dell'acqua Funduino: 4 passaggi
Metodi per rilevare il livello dell'acqua Arduino utilizzando il sensore ad ultrasuoni e il sensore dell'acqua Funduino: in questo progetto, ti mostrerò come creare un rilevatore d'acqua economico utilizzando due metodi: 1. Sensore a ultrasuoni (HC-SR04).2. Sensore acqua Funduino