Sommario:

Sensore di perdite d'acqua su ESP8266 + Micropython + Domoticz: 16 passaggi (con immagini)
Sensore di perdite d'acqua su ESP8266 + Micropython + Domoticz: 16 passaggi (con immagini)

Video: Sensore di perdite d'acqua su ESP8266 + Micropython + Domoticz: 16 passaggi (con immagini)

Video: Sensore di perdite d'acqua su ESP8266 + Micropython + Domoticz: 16 passaggi (con immagini)
Video: Умный датчик утечки воды 2024, Dicembre
Anonim
Sensore di perdite d'acqua su ESP8266 + Micropython + Domoticz
Sensore di perdite d'acqua su ESP8266 + Micropython + Domoticz
Sensore di perdite d'acqua su ESP8266 + Micropython + Domoticz
Sensore di perdite d'acqua su ESP8266 + Micropython + Domoticz

Qualche tempo fa mia moglie mi ha chiesto di realizzare un sensore di perdite d'acqua. Aveva paura che il tubo nel locale caldaia potesse perdere e l'acqua avrebbe inondato il pavimento di legno appena posato. E io, come un vero ingegnere, ho intrapreso un tale sensore da fare.

Dai miei 15 anni di esperienza come ingegnere medico, so che il modo più semplice per rilevare l'acqua sono i perni di metallo messi in cortocircuito dall'acqua. Il principio di funzionamento dei sensori più semplici è che l'acqua deve cortocircuitare due (o più) pin metallici e, non appena accade, scatta l'allarme.

Passaggio 1: hardware

Hardware
Hardware

Per questo progetto abbiamo bisogno di:

1. ESP8266 - modulo 01

2. HT7333 3.3V MS Low Dropout Modulo di alimentazione del regolatore lineare

Abbiamo bisogno di questo modulo per ridurre la tensione dalla batteria al livello accettabile per ESP8266. Secondo la scheda tecnica dovrebbe esserci un ingresso da 3V a 3,6V. Questo modulo ci fornisce 3.3V.

3. Batteria. Sto utilizzando una batteria agli ioni di litio da 3, 7 V 400 mAh. In realtà puoi usare qualsiasi altra fonte di alimentazione adatta. Anche la batteria 18650 è una buona scelta. Quando si sceglie una batteria, tenere presente che ESP "mangia" circa 200 mA durante la connessione alla rete WiFi e circa 60 mA vengono utilizzati quando la scheda carica i dati sul server.

4. Scheda di ricarica della batteria Lipo TP4056.

5. Pololu mini pulsante Interruttore di alimentazione Scheda minuscola molto interessante. Ci consente di commutare il modulo ESP solo quando viene rilevata l'acqua. Non è necessario mantenere ESP ON. Quindi è utile per risparmiare la carica della batteria.

6. Alloggio7. Doppio microinterruttore ON-OFF. Una riga serve per accendere il dispositivo. La seconda riga è per i test: cortocircuita il circuito senza acqua, solo per farci sapere se il dispositivo funziona o meno.

8. Microcomputer Raspberry Pi

Sto usando Raspberry Pi Zero. È abbastanza potente per eseguire il server Domoticz.

Passaggio 2: software

Sul tuo PC:

1. esptool installato, per la cancellazione dei moduli e il flashing del firmware

2. Ampy installato, per flashare il tuo programma

3 Python 3.6 o superiore consigliato

4. Qualsiasi editor di codice che desideri. Simplest - Python IDLE che viene normalmente installato con Python. Sto usando Pycharm / Atom o Anaconda Spyder su lampone Pi

5. Server Domoticz installato su Raspberry Pi (o PC comune sotto Windows o Linux)

Passaggio 3: prepara Raspberry Pi - Installa Domoticz

Quindi, prendi il tuo RPi e installa il sistema operativo adatto per l'esecuzione del server Domoticz.

Puoi seguire queste istruzioni.

Sto usando Raspbian Stretch con Desktop da qui:

Il prossimo passo è installare il server Domoticz sul tuo PC. Puoi usare le istruzioni qui o qui:). Non abbiate paura, non è così difficile. Ovviamente devi eseguire nel tuo terminale:

curl -L install.domoticz.com | sudo bash

E questo è tutto:) più o meno. Configurazione Domoticz

Ora che il nostro server è pronto, possiamo accedervi da qualsiasi browser web, anche da tablet inserendo il seguente URL:

Passaggio 4: installazione di Domoticz

Installazione Domoticz
Installazione Domoticz

Ora che il nostro server è pronto, possiamo accedervi da qualsiasi browser web, anche da tablet inserendo il seguente URL:

Passaggio 5: regolare le impostazioni dell'applicazione

Regola le impostazioni dell'applicazione
Regola le impostazioni dell'applicazione
Regola le impostazioni dell'applicazione
Regola le impostazioni dell'applicazione

Ci sono varie impostazioni dell'applicazione che possono essere impostate tramite Setup | Menù Impostazioni.

Il menù Impostazioni con varie schede permette di inserire i parametri personali necessari per un miglior funzionamento del sistema. Dopo aver inserito i dati nei campi, è necessario salvarli premendo il pulsante rosso "Applica Impostazioni". Dopo questa azione tutti i campi Password, che erano vuoti al primo accesso, appariranno con una lunga stringa di asterischi, anche se non sono stati utilizzati.

Dopo aver effettuato la configurazione principale nella pagina "Sistema", fai clic su "Notifiche". Qui dobbiamo regolare il tipo di notifiche che utilizzeremo.

Passaggio 6: configurazione delle notifiche

Notifiche di configurazione
Notifiche di configurazione

Le notifiche possono essere inviate ad esempio quando viene premuto un interruttore, il consumo di elettricità è troppo alto, la temperatura troppo alta e per molte altre opzioni.

Nel nostro caso le notifiche devono essere inviate non appena l'acqua è stata rilevata dal sensore. Quindi accendi quelli che vuoi usare. Inoltre, normalmente è necessaria la chiave API affinché la notifica funzioni. Andando un po' avanti, dirò che ho provato Pushover, Pushsafer e Pushbullet. E sono rimasto con Pushover. Più tardi dirò perché.

Poche parole su come funzionano le notifiche. Devi avere un account su Pushbullet, Pushover o altre pagine che desideri utilizzare. Inoltre avrai bisogno di un'app sul tuo cellulare o PC.

Ottieni la chiave API e inseriscila nella pagina sopra. Puoi testare la notifica facendo clic su "Test". Se la chiave API è corretta, dovresti ricevere una notifica di prova sul tuo cellulare.

Non appena il sensore rileva l'acqua, ESP si accende e invia la richiesta al server Domoticz in formato JSON. Quindi se le condizioni per l'attivazione di un evento (invio di notifica al tuo cellulare) sono soddisfatte, Domoticz invia la notifica.

Più avanti tornerò sugli "eventi".

Passaggio 7: impostare la comunicazione con i dispositivi hardware

Configurare la comunicazione con i dispositivi hardware
Configurare la comunicazione con i dispositivi hardware
Configurare la comunicazione con i dispositivi hardware
Configurare la comunicazione con i dispositivi hardware
Configurare la comunicazione con i dispositivi hardware
Configurare la comunicazione con i dispositivi hardware

Prima di poter utilizzare l'applicazione Domoticz per controllare dispositivi o leggere sensori, è necessario impostare la comunicazione con i dispositivi hardware. Selezionare Configurazione|Hardware per aggiungere hardware. I dispositivi non verranno visualizzati finché non viene aggiunto l'hardware appropriato.

L'applicazione Domoticz supporta molti dispositivi hardware in modo nativo. Nel nostro caso per leggere il nostro sensore di allagamento dobbiamo aggiungere il cosiddetto hardware "fittizio" dall'elenco dell'hardware.

Quando viene aggiunto l'hardware, verrà mostrata la panoramica di tutto l'hardware definito. L'hardware può essere disabilitato o eliminato.

Il nuovo hardware dovrebbe essere nell'elenco e dovrebbe esserci un pulsante "Crea sensori virtuali".

Fare clic su questo pulsante e scegliere il tipo di sensore "Avviso". Ora dobbiamo aggiungere il dispositivo in Domoticz per renderlo attivo.

Passaggio 8: aggiungi il dispositivo in Domoticz per diventare attivo

Aggiungi il dispositivo in Domoticz per diventare attivo
Aggiungi il dispositivo in Domoticz per diventare attivo
Aggiungi il dispositivo in Domoticz per diventare attivo
Aggiungi il dispositivo in Domoticz per diventare attivo
Aggiungi il dispositivo in Domoticz per diventare attivo
Aggiungi il dispositivo in Domoticz per diventare attivo

Si prega di notare il numero sotto "IDX". Questo è il riferimento univoco a questo dispositivo e ne avremo bisogno in seguito nel nostro script Python per indirizzare la notifica. In questo caso il numero IDX è 1.

Abilita il dispositivo facendo clic sulla freccia verde a sinistra (nella mia immagine sotto è blu, a causa del dispositivo abilitato).

Inserisci il nome del dispositivo e fai clic su "aggiungi".

Vai al menu "Utilità" e il tuo dispositivo dovrebbe essere elencato lì.

Ora dobbiamo programmare "evento" per il nostro sensore. Significa che dobbiamo dire al server cosa fare nel caso abbia ricevuto un messaggio dal sensore. Ed è stato, diciamo, il posto più difficile per me:).

Passaggio 9: non funziona in questo modo…

Non funziona in questo modo…
Non funziona in questo modo…

Ho iniziato provando a programmare l'evento nella pagina /device/. Questo sotto non è mio, ma va bene per illustrare.

Se credi che selezionerai alcune caselle di controllo e funzionerà, ti sbagli:) Non funziona in questo modo. Suppongo che questa funzione qui non sia ancora finita. Non dimenticare: è un software open source. Ok, dopo diverse ore ho trovato la soluzione. Dobbiamo usare "Eventi" dal menu a discesa "Configurazione".

Dopo aver cliccato su "Eventi" puoi creare il tuo evento. Puoi farlo scrivendo un codice in Python o LUA, o semplicemente usando una cosa chiamata "Blockly". Ho scelto di usare Blockly. Ci sono due modi per forzare il server a fare ciò che vuoi.

Passaggio 10: crea l'evento nel modo giusto 1

Costruisci l'evento nel modo giusto 1
Costruisci l'evento nel modo giusto 1

1. Eseguire il file esterno tramite "Eventi", utilizzando il messaggio Blockly "Avvia script"

Questo funziona perfettamente per me sulla macchina Windows. Ma non ci sono riuscito su Raspbian sul mio Raspberry Pi. Ho il sospetto che ci sia un problema con i permessi.

Passaggio 11: crea l'evento nel modo giusto 2

Costruisci l'evento nel modo giusto 2
Costruisci l'evento nel modo giusto 2

2. Utilizzare il messaggio "Invia notifica con oggetto". Funziona su Raspbian. Questa opzione supporta l'invio di notifiche a Pushsafe e Pushover.

Il vantaggio dell'utilizzo della prima via è che è più flessibile. Puoi scegliere l'icona da mostrare sul display, i suoni e così via. Il mio "evento" è mostrato nella foto sopra.

Successivamente, programmiamo il modulo ESP.

Passaggio 12: Programmazione del modulo ESP8266-01

Modulo di programmazione ESP8266-01
Modulo di programmazione ESP8266-01

Iniziamo dal flashare il nostro modulo ESP8266. Normalmente questi moduli vengono forniti con il firmware di fabbrica. è possibile comunicare con i moduli utilizzando i cosiddetti comandi AT. E anche questo software non consente di utilizzare moduli come controller standalone. Per usarli come controller autonomi è necessario cancellare il firmware di fabbrica e installarne uno nuovo.

Per fare ciò useremo esptool. Quindi dobbiamo collegare il nostro modulo al PC per cancellare il firmware. Per fare ciò è necessario un convertitore TTL + pochi componenti aggiuntivi. Ma c'è un modo più semplice:). Basta acquistare su aliexpress o ebay da USB a ESP8266 Modulo adattatore Wi-Fi ESP-01 con driver CH340G.

Collega il modulo ESP8266 al convertitore TTL come mostrato nell'immagine e collegalo alla porta USB.

Se hai il mio stesso convertitore, da solo devi cambiare l'interruttore in posizione "Prog". Trova dove è installato esptool (normalmente da qualche parte come C:\Program Files (x86)\Python36-32\Scripts. Vai in questa cartella, avvia il prompt dei comandi lì. Tipo: python esptool.exe --port COM5 erase_flash

Ovviamente scegli la porta corretta. Nel mio caso è COM5. Puoi controllare la porta in cui è installato ESP da Pannello di controllo - Sistema - Gestione dispositivi.

Installa il firmware (l'ho preso da qui: https://micropython.org/download#esp8266) digitando:

python esptool.exe --port COM5 --baud 460800 write_flash --flash_size=detect 0 C:\path_to_firmware\esp8266-20180511-v1.9.4.bin

Ok, ora siamo pronti per caricare gli script micropython su ESP8266.

Sto usando Adafruit MicroPython Tool (ampy) per questo.

Ma al giorno d'oggi c'è un'altra opzione chiamata Esplorer. Questa è un'app con interfaccia utente, che consente di caricare file sui moduli ESP.

Puoi trovare le istruzioni su come installare ampy qui. Quindi, metti l'interruttore sul convertitore TTL in posizione "UART". Dovremo caricare i file:

  • wifimgr.py - gestore wifi per la connessione alla rete wifi
  • main.py - il nostro script principale

Nella riga di comando digita: ampy --port COM5 inserisci C:\path al tuo file

Premi "invio". Dopo pochi secondi dovresti vedere la riga di comando vuota. Significa che il file è stato caricato. Puoi controllare l'elenco dei file su ESP con un ampio comando:

ampy --port COM5 ls

Dalla mia esperienza è meglio caricare main.py dopo aver caricato tutti i file necessari. è così, perché non appena caricherai main.py - il modulo ESP8266 si riavvierà e inizierà a eseguire il file main.py. Quindi, in questo caso, se provi a caricare un altro file, a volte il processo di caricamento fallirà. Ma ciò non significa che tutto è perduto:), prova solo una seconda volta e ci riuscirai (di nuovo, dalla mia esperienza).

Tutti i file per questo progetto sono disponibili da qui:

Passaggio 13: connettiti alla tua rete WiFi. Ottenere la notifica

Connettiti alla tua rete WiFi. Ottenere la notifica
Connettiti alla tua rete WiFi. Ottenere la notifica
Connettiti alla tua rete WiFi. Ottenere la notifica
Connettiti alla tua rete WiFi. Ottenere la notifica

se tutto è ok riavvia il modulo reinserindo il convertitore TTL sulla porta USB del tuo PC.

Dopo l'avvio di ESP, trova una nuova rete WiFi chiamata "Wifimanager". Collegati ad esso con il tuo PC o telefono, quindi vai all'indirizzo IP 192.168.4.1. Qui puoi connettere il tuo ESP alla rete WiFi locale. Scegli la rete WiFi che utilizzerai, digita la password, premi "Invia".

Se tutto è corretto, vedrai il messaggio "ESP connesso con successo alla rete XXXX". Il tuo ESP ora è connesso alla tua rete WiFi e pronto. Non appena si connetterà al WiFi si collegherà al server Domoticz. Shorty devi ricevere una notifica sul tuo cellulare.

Puoi tenere traccia del processo in "Impostazioni"/"Registro".

Vuoia!:) Funziona. Ora possiamo procedere all'assemblaggio di tutte le parti insieme, secondo lo schema a blocchi sottostante.

Passaggio 14: diagramma a blocchi

Diagramma a blocchi
Diagramma a blocchi

Non c'è molto da dire su questo diagramma. Molto semplice. Accendere l'alimentazione con l'interruttore S1. Il dispositivo rimane spento finché l'acqua non mette in cortocircuito i pin "Sensore acqua". Quindi la "scheda Pololu" si accende e fornisce alimentazione al convertitore di tensione. Questo modulo di alimentazione basato sul chip HT7333 converte la tensione in 3,3 V stabili per ESP8266. L'ESP successivo si accende e invia un messaggio al server Domoticz.

Passaggio 15: risultato e conclusioni

Risultato e Conclusioni
Risultato e Conclusioni
Risultato e Conclusioni
Risultato e Conclusioni
Risultato e Conclusioni
Risultato e Conclusioni
Risultato e Conclusioni
Risultato e Conclusioni

Funziona. L'invio della notifica ha richiesto fino a 10 secondi: connessione al WiFi, invio di notifica, ricezione di un messaggio di allarme sul telefono.

Ho programmato il sensore per inviare allarmi ogni 30 secondi, se è stata rilevata l'acqua. Il sensore può inviare fino a 5 - 6 notifiche fino a quando la batteria non sarà scarica. Tale dispositivo può essere utilizzato anche per determinare il livello dell'acqua. Cosa vorrei migliorare.

1. Per farlo funzionare più velocemente. Penso che proverò a utilizzare la tecnologia ESP-Now, che mi consente di collegare direttamente diversi ESP. In questo caso il consumo di energia durante la connessione è molto basso ed è più veloce. Quindi l'idea è di usare un ESP come un hub per connettere altri ESP.

2. Implementare l'allarme del livello della batteria. Ora non puoi sapere se c'è abbastanza potenza per inviare un messaggio di allarme o meno. Penso che nella prossima generazione di questo sensore ci sarà un pulsante speciale per testare la carica della batteria.

L'utente dovrà premere un pulsante e verrà mostrato il livello della batteria.

Consigliato: