Sommario:
- Passaggio 1: hardware
- Passaggio 2: software
- Passaggio 3: prepara Raspberry Pi - Installa Domoticz
- Passaggio 4: installazione di Domoticz
- Passaggio 5: regolare le impostazioni dell'applicazione
- Passaggio 6: configurazione delle notifiche
- Passaggio 7: impostare la comunicazione con i dispositivi hardware
- Passaggio 8: aggiungi il dispositivo in Domoticz per diventare attivo
- Passaggio 9: non funziona in questo modo…
- Passaggio 10: crea l'evento nel modo giusto 1
- Passaggio 11: crea l'evento nel modo giusto 2
- Passaggio 12: Programmazione del modulo ESP8266-01
- Passaggio 13: connettiti alla tua rete WiFi. Ottenere la notifica
- Passaggio 14: diagramma a blocchi
- Passaggio 15: risultato e conclusioni
- Passaggio 16: video
Video: Sensore di perdite d'acqua su ESP8266 + Micropython + Domoticz: 16 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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
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
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
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
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
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
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…
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
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
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
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
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
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
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:
Come installare Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: 7 passaggi (con immagini)
Howto: installazione di Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: ho intenzione di utilizzare questo Rapsberry PI in una serie di progetti divertenti nel mio blog. Sentiti libero di dare un'occhiata. Volevo tornare a usare il mio Raspberry PI ma non avevo una tastiera o un mouse nella mia nuova posizione. Era un po' che non installavo un Raspberry
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: 6 passaggi (con immagini)
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: Ehi, come va, ragazzi! Akarsh qui da CETech. In questo progetto, daremo un'occhiata all'HuskyLens di DFRobot. È un modulo fotocamera basato sull'intelligenza artificiale in grado di eseguire diverse operazioni di intelligenza artificiale come Face Recognitio
Riconoscimento delle immagini con schede K210 e Arduino IDE/Micropython: 6 passaggi (con immagini)
Riconoscimento immagine con schede K210 e Arduino IDE/Micropython: ho già scritto un articolo su come eseguire demo OpenMV su Sipeed Maix Bit e ho anche realizzato un video di demo di rilevamento oggetti con questa scheda. Una delle tante domande che le persone hanno posto è: come posso riconoscere un oggetto che la rete neurale non è tr
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino - Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero - Elicottero Rc - Aereo RC con Arduino: 5 passaggi (con immagini)
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino | Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero | Elicottero Rc | Aereo radiocomandato con Arduino: per far funzionare un'auto radiocomandata | Quadricottero | Drone | Aereo RC | Barca RC, abbiamo sempre bisogno di un ricevitore e trasmettitore, supponiamo che per RC QUADCOPTER abbiamo bisogno di un trasmettitore e ricevitore a 6 canali e quel tipo di TX e RX è troppo costoso, quindi ne faremo uno sul nostro
Gesture Hawk: Robot controllato con gesti della mano che utilizza un'interfaccia basata sull'elaborazione delle immagini: 13 passaggi (con immagini)
Gesture Hawk: Robot controllato con gesti della mano che utilizza un'interfaccia basata sull'elaborazione delle immagini: Gesture Hawk è stato presentato in TechEvince 4.0 come una semplice interfaccia uomo-macchina basata sull'elaborazione delle immagini. La sua utilità sta nel fatto che non sono necessari sensori aggiuntivi o indossabili tranne un guanto per controllare l'auto robotica che funziona su diversi