Sommario:

Allarme di allagamento del seminterrato a bassissima potenza con ESP8266: 3 passaggi
Allarme di allagamento del seminterrato a bassissima potenza con ESP8266: 3 passaggi

Video: Allarme di allagamento del seminterrato a bassissima potenza con ESP8266: 3 passaggi

Video: Allarme di allagamento del seminterrato a bassissima potenza con ESP8266: 3 passaggi
Video: Workshop "Rischio Inquinamento" (Roma, 31.05.2018) 2024, Dicembre
Anonim
Allarme di allagamento del seminterrato a bassissima potenza con ESP8266
Allarme di allagamento del seminterrato a bassissima potenza con ESP8266
Allarme di allagamento del seminterrato a bassissima potenza con ESP8266
Allarme di allagamento del seminterrato a bassissima potenza con ESP8266

Ciao, benvenuto nel mio primo istruibile.

Il seminterrato di casa mia si allaga 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 la mia caldaia per il riscaldamento centralizzato si trova laggiù e l'acqua può danneggiare le sue parti elettroniche, quindi devo pompare l'acqua il prima possibile. È difficile e scomodo controllare la situazione dopo un forte temporale estivo, quindi ho deciso di creare un allarme basato su ESP8266 che mi invia un'e-mail in caso di allagamento. (Quando l'allagamento è causato da acque sotterranee alte, il livello dell'acqua è solitamente inferiore a 10 centimetri, il che non è dannoso per il riscaldatore e non è consigliabile pompare perché tornerà comunque e più si pompa, più acqua sotterranea verrà la prossima volta. Ma è bene conoscere la situazione.)

In questa applicazione il dispositivo potrebbe essere "inattivo" per anni e, se tutto funziona come previsto, funziona solo per pochi secondi. L'uso del sonno profondo non è pratico in quanto assorbe troppa corrente se vogliamo dormire per periodi molto lunghi e l'ESP8266 può dormire solo per circa 71 minuti al massimo.

Ho deciso di utilizzare un interruttore a galleggiante per accendere la potenza dell'ESP. Con questa soluzione l'ESP non è alimentato quando l'interruttore è aperto, quindi il consumo di energia è solo l'autoscarica delle batterie, che mantiene il sistema pronto all'allarme per anni.

Quando il livello dell'acqua raggiunge l'interruttore a galleggiante, l'ESP si avvia normalmente, si connette alla mia rete WiFi, mi invia un'e-mail e va a dormire per sempre con ESP. Deepsleep(0) fino a quando l'alimentazione non viene spenta e riaccesa. Se non riesce a connettersi al WiFi o non riesce a inviare l'e-mail, va in sospensione per 20 minuti e riprova fino a quando non riesce.

Questa idea è simile alla soluzione descritta da Andreas Spiess in questo video. Ma a causa della natura dell'allagamento e dell'interruttore a galleggiante, non è necessario aggiungere un MOSFET per mantenere acceso l'ESP fino a quando non termina il suo compito, perché l'interruttore a galleggiante verrà chiuso se il livello dell'acqua supera il livello di attivazione.

Passaggio 1: lo schema:

Lo schema
Lo schema

Parti

  • D1: Diodo Schottky BAT46 per il risveglio nel sonno profondo. Ho esperienze migliori con i diodi Schottky rispetto ai resistori tra D0 e RST.
  • Interruttore a galleggiante: semplice tubo reed da $ 1.2 e interruttore a galleggiante basato su magnete da eBay. L'anello con il magnete può essere invertito per cambiare tra la commutazione del livello del fluido alto e basso. Link eBay
  • Portabatterie: per 2 batterie AAA da 1,5 V
  • P1: 2 terminali a vite 2P 5,08 mm (200 mil) per il collegamento dei cavi della batteria e dell'interruttore a galleggiante.
  • C1: condensatore da 1000uF 10V per aumentare la stabilità dell'ESP mentre la radio è accesa. Si noti che se l'ESP è in modalità di sospensione profonda, l'energia immagazzinata nel condensatore è sufficiente per alimentarlo per 3-4 minuti. In quel periodo, il funzionamento dell'interruttore a galleggiante non può riavviare l'ESP perché il condensatore lo mantiene acceso durante il sonno profondo. Questo è interessante solo durante i test.
  • U1: microcontrollore LOLIN / Wemos D1 Mini Pro ESP8266. Questa è la versione pro con connettore per antenna esterna, che potrebbe essere utile quando viene posizionata nel seminterrato. Si prega di notare che è necessario risaldare la "resistenza" SMD da 0 ohm per selezionare l'antenna esterna invece dell'antenna in ceramica incorporata predefinita. Consiglio di acquistare i microcontrollori LOLIN dal negozio ufficiale di AliExpress LOLIN perché ci sono molte schede Wemos / LOLIN false o vecchie.
  • Perfboard: una scheda proto da 50 mm * 50 mm sarà sufficiente per adattarsi a tutte le parti. Il circuito è troppo semplice per realizzare un PCB.:)

Si prega di notare che la batteria è collegata all'ingresso 3.3V. Sebbene il D1 Mini abbia un LDO integrato per il funzionamento USB / LiPo, non ne abbiamo bisogno quando è alimentato da 3V di 2 batterie alcaline AAA. Con questa connessione il mio D1 Mini è stato in grado di completare il suo compito anche con una tensione di alimentazione di soli 1,8V.

Passaggio 2: il codice

Il programma potrebbe essere più carino o più semplice, ma le sue parti sono ben collaudate in altri miei progetti.

Lo schizzo utilizza le seguenti librerie:

ESP8266WiFi.h: impostazione predefinita per le schede ESP8266.

Gsender.h: la libreria di mittenti Gmail di Borya, può essere scaricata da qui.

Il flusso del programma è abbastanza semplice.

  • L'ESP si avvia.
  • Legge la memoria RTC per verificare se si tratta di un primo avvio o meno
  • Si connette al WiFi usando la funzione intelligentwifi(). Questo si connette al WiFi utilizzando l'indirizzo MAC del router (BSSID) e il numero del canale per una connessione più rapida, riprova senza quelli dopo 100 tentativi non riusciti e va in sospensione dopo 600 tentativi. Questa funzione è stata derivata dallo schizzo del risparmio energetico WiFi di OppoverBakke, ma senza salvare i dati di connessione nella parte RTC in questa applicazione.
  • Controlla la tensione della batteria con le funzioni ESP integrate ADC_MODE(ADC_VCC) / ESP.getVcc(). Questo non richiede un divisore di tensione esterno o alcun cablaggio ad A0. Perfetto per tensioni inferiori a 3,3 V, come nel nostro caso.
  • Invia una e-mail alternativa con Gsender.h. Ho aggiunto variabili e testo personalizzato all'oggetto e alle stringhe dei messaggi per segnalare la tensione della batteria, il tempo trascorso dal primo rilevamento e i consigli sulla sostituzione della batteria. Si prega di non dimenticare di cambiare l'indirizzo e-mail del destinatario.

    • posti letto

      • Se ha successo, dorme "per sempre" con ESP.deepSleep(0); Fisicamente sarà in modalità di sospensione fino a quando il livello dell'acqua non sarà alto. Tecnicamente si tratta di poche ore o al massimo di alcuni giorni, il che non consumerà la batteria con pochi uA di corrente di sospensione. Quando l'acqua sarà finita, l'interruttore a galleggiante si aprirà e l'ESP si spegnerà completamente e il consumo di corrente sarà 0.
      • In caso di esito negativo, va a dormire per 20 minuti, quindi riprova. È possibile che si verifichi un'interruzione dell'alimentazione CA in caso di temporale estivo. Conta i riavvii e li memorizza nella memoria dell'RTC. Queste informazioni vengono utilizzate per riportare il tempo trascorso dal primo tentativo di allarme. (Si noti che, durante il test con alimentazione USB e monitor seriale, l'RTC potrebbe mantenere il valore del conteggio dei cicli anche tra i download.)

Passaggio 3: montaggio e installazione

Montaggio e installazione
Montaggio e installazione
Montaggio e installazione
Montaggio e installazione
Montaggio e installazione
Montaggio e installazione

Dopo aver testato il codice su una breadboard, l'ho saldato a un piccolo pezzo di perfboard.

Ho usato 2 pezzi di terminali a vite a 2 poli con passo 5,08 mm cuciti insieme, un connettore femmina per l'ESP, un condensatore e alcuni ponticelli.

Si prega di notare che il resistore SMD con il numero "0" accanto all'antenna in ceramica deve essere risaldato ai pad vuoti accanto ad esso per selezionare l'antenna esterna.

Poi ho messo il tutto in una piccola scatola di giunzione elettrica IP55. I fili dell'interruttore a galleggiante sono collegati tramite un pressacavo.

La scatola è posizionata a un'altezza sicura, dove l'acqua non può (si spera) mai raggiungerla, quindi ho usato un paio di un filo di rame relativamente spesso, 1 mm ^ 2 (17 AWG) per collegare l'interruttore a galleggiante. Con questa configurazione, l'ESP potrebbe avviarsi e inviare il messaggio anche con una tensione di ingresso di 1,8 V.

Dopo l'installazione, questa sentinella silenziosa è di guardia, ma spero che non debba inviare presto un allarme…

Consigliato: