Rilevatore d’interruzione di corrente con messaggi di testo

Il circuito presentato nell'articolo rileva e segnala le interruzioni di corrente elettrica, anche di breve durata. Tali interruzioni sono piuttosto rare nell'Europa centrale e, quando si verificano, di solito sono brevi. Tuttavia, se il sistema di riscaldamento della vostra casa non si riavvia dopo un'interruzione di corrente, le conseguenze potrebbero essere gravi. O se il congelatore di casa smettesse di funzionare mentre si è in vacanza, i prodotti alimentari decomposti potrebbero rovinare il ritorno a casa. Il rilevatore descritto in questo articolo rileva anche brevi interruzioni di corrente e invia degli avvisi di messaggi testuali.

Introduzione

Il presente articolo è stato scritto dopo che il sistema di riscaldamento della casa di vacanza dell'autore è rimasto spento a causa di un'interruzione di corrente e sono stati necessari importanti interventi di ristrutturazione, per eliminare i danni causati dal problema. Dopo questa esperienza, ha deciso che era giunta l'ora di prendere delle precauzioni, così ha iniziato a lavorare su un dispositivo in grado di rilevare interruzioni di alimentazione, anche molto brevi, e segnalarli attraverso il web.

Analisi del sistema

Molti dispositivi elettrici ed elettronici non sempre si riavviano automaticamente dopo un'interruzione di corrente. Per alcuni dispositivi, anche una breve interruzione, può essere sufficiente a causare problemi. Ciò può costituire un grave danno, non solo per i sistemi di riscaldamento ma anche per alcuni congelatori o sistemi d'irrigazione. Questo specialmente quando i proprietari sono lontani per le vacanze o per altri motivi. Non si può pretendere neanche l'intervento risolutivo di un vicino di casa. Il danno provocato alle apparecchiature potrebbe risultare tanto grave da giustificare il costo della prevenzione elettronica. Un tale dispositivo dovrebbe essere in grado di avvisare il proprietario in qualsiasi momento, indipendentemente dal luogo in cui egli si trovi. In passato, un tale sistema sarebbe risultato molto costoso ma oggi, nell'era dei microcontrollori e nella economica copertura della telefonia e nell'uso dei moduli GSM, questo tipo di progetto non comporta particolari problemi. Il risultato finale del presente progetto si concretizza in un rilevatore universale d'interruzione di rete con accesso e monitoraggio con un telefono cellulare.

Caratteristiche

Quando il dispositivo rileva un'interruzione di corrente, invia immediatamente un messaggio di testo al numero di cellulare, programmabile dall'utente. Quanto l'energia elettrica ritorna, viene inviato un secondo messaggio di testo. Ma questa è solo la funzionalità di base. Il dispositivo dispone di un sistema di backup integrato rappresentato da una batteria, che viene costantemente monitorata. Se la sua tensione scende sotto un livello di soglia, a causa di una duratura interruzione di corrente o per altri motivi, viene inoltrato il corrispondente messaggio di testo. L'hardware del sistema è relativamente semplice (vedi schema a blocchi in figura 1). Esso si basa su un microcontrollore AVR, che può essere programmato con Arduino IDE. Ma per questo progetto si è sviluppato un programma più compatto in C utilizzando AtmelStudio 7, come descritto in dettaglio più avanti. Il microcontrollore, infatti, deve disporre di risorse sufficienti per supportare tutte le funzionalità previste da questo progetto. Si è, quindi, passati dal microcontrollore originale, che aveva solo 8 KB di memoria flash e 512 byte di RAM, al collaudato ATmega328P, che vanta di ben 32 KB di flash e 2 KB di RAM. Con tale memoria c'è spazio anche per le eventuali modifiche dell'utente. Il firmware dispone delle seguenti funzioni:

  • messaggio di testo in caso d'interruzione di corrente;
  • messaggio di testo al ripristino dell'energia elettrica;
  • messaggio di testo quando è necessario sostituire la batteria di backup (<3,9 V);
  • messaggio di testo quando la batteria di backup è scarica (<3,7 V);
  • durante l'interruzione di corrente, dopo l'invio del messaggio di testo, il funzionamento del sistema avviene in modalità a basso consumo;
  • possibilità di configurazione del numero di telefono per l'invio degli avvisi con messaggi testuali;
  • la configurazione è memorizzata in EEPROM.

Per evitare falsi allarmi dovuti a picchi di tensione, distorsioni della forma d'onda o altro, il rilevamento dell'interruzione di corrente avviene mediante l'osservazione della mancanza dell'attraversamento dello zero, da parte della tensione di rete, per un periodo di 250 ms. Ciò significa che un'interruzione della tensione di rete per oltre 250 ms è considerata un'interruzione di corrente. Insieme alla semplicità, questa forma di rilevamento ha il vantaggio che la frequenza della linea AC monitorata ( 50 Hz o 60 Hz) non influisce sulle operazioni.

Figura 1: schema a blocchi del rilevatore d'interruzione di corrente, composto da cinque moduli separati

Figura 1: schema a blocchi del rilevatore d'interruzione di corrente, composto da cinque moduli separati

L'hardware del sistema

Il microcontrollore ATmega 328P (in alto a destra nello schema elettrico di figura 2) è il componente principale del circuito. Le semionde positive della tensione di rete vengono rilevate dal fotoaccoppiatore IC3, che fornisce il sufficiente isolamento galvanico e trasferite al pin 1 di IC2. Il LED d'ingresso del fotoaccoppiatore ha una bassa tensione di breakdown inversa, quindi le semionde negative vengono bypassate dal diodo D1. Con una tensione di rete di 230 V, la limitazione della corrente è fornita da due resistori in serie (R8 e R9) per evitare di superare la loro massima tensione nominale. Con una tensione di rete di 115 V, è necessario solo uno dei due resistori mentre l'altro può essere sostituito da un ponticello a filo. Questa configurazione del rilevatore è praticamente immune ai picchi di tensione sulla rete, tranne nel caso (peraltro molto raro) di un fulmine diretto sull'impianto elettrico dell'edificio. Il convertitore AC/DC [1] qui utilizzato (MOD1) è un'alternativa molto pratica a un alimentatore convenzionale con trasformatore. Oltre ad adattarsi bene al circuito, la sua capacità di convertire 115 o 230 VAC a 5 VDC lo rende adatto a tutti i sistemi di alimentazione previsti in quasi tutti i paesi del mondo. Oltre alla protezione tramite il fusibile F1, questo modulo è protetto contro le alte correnti di spunto dal termistore NTC R6, il che è auspicabile in quanto il modulo convertitore (MOD1) è un alimentatore switching con un condensatore dopo il raddrizzatore d'ingresso. Sul lato del secondario, il regolatore di tensione IC1 viene alimentato a 5 V da MOD1, filtrato dall'induttore L1 e da alcuni condensatori di disaccoppiamento. IC1 converte la tensione a 4,4 V, che alimenta LED1 e LED2 sulla linea V+ e inviata al dispositivo di commutazione rapido integrato IC5. Questo IC (tipo LTC4413 [2]) è un "doppio diodo rapido da 2,6 A, da 2,5 a 5,5 V". Ciò significa che può passare ai 4,5 V della batteria BT1, in caso d'interruzione di corrente, molto rapidamente e senza interruzioni. Ciò accade quando la tensione di IC1 scende al di sotto di 3,5 V, rilevati dal pin 2 di IC5. L'uscita 4.4 V di IC5 alimenta il modulo GSM (MOD2). Questa è inferiore alla massima tensione di alimentazione nominale di IC2, che aiuta mantenere basso il consumo energetico e allo stesso tempo è sufficiente per la frequenza di clock di 8 MHz, impostata dal risonatore X1. Si è scelto MOD1 a 5 V e con capacità di carico 2 A perché L'integrato MOD2 GSM può facilmente assorbire una corrente di picco di 1,6 A quando si trasmette al telefono cellulare. Questo breve consumo di energia è necessario per garantire una buona portata al cellulare anche in cattive condizioni. Anche per questo motivo il condensatore elettrolitico (C19) è sovradimensionato, infatti funge come buffer, in quanto le batterie alcaline non possono gestire, da sole, correnti di picco così elevate e il modulo GSM si spegnerebbe automaticamente se la tensione di alimentazione scenderebbe sotto la soglia dei 3,3 V. Il resto del circuito ruota intorno al modulo GSM M95, ed è raccomandato da Quectel [3]. Il suo slot per la SIM (SIM1) è protetto contro le interferenze RF grazie alla combinazione di R10-R12, D2 e ​​C8-C11. Il microcontrollore controlla la tensione della batteria di riserva tramite divisore di tensione R14/R15 e l'ingresso analogico ADC0 (pin 23). Lo stato di IC5 è rilevato dal pin 24.

Figura 2: lo schema elettrico del circuito del rivelatore d'interruzione di corrente è abbastanza facile da comprendere dopo aver esaminato lo schema a blocchi. Il componente principale è il microcontrollore AVR (IC2)

Figura 2: lo schema elettrico del circuito del rivelatore d'interruzione di corrente è abbastanza facile da comprendere dopo aver esaminato lo schema a blocchi. Il componente principale è il microcontrollore AVR (IC2)

I diodi Led

Il LED giallo (LED1) è collegato direttamente alla linea di alimentazione a 5 V e pertanto esso è acceso quando è presente la tensione di rete CA. Il LED verde (LED2) viene pilotato da MOD2 tramite T1 e indica che il modem ha effettuato l'accesso a una rete di telefonia mobile. Vi sono anche dei LED collegati al microcontrollore. Il LED rosso (LED3) è l'indicatore di stato della batteria, il LED arancione (LED4) indica la presenza della tensione di rete CA e il LED verde (LED5) mostra lo stato del modem GSM. Le loro funzioni sono descritte cosi di seguito:

  • LED3:
    • spento: batteria OK o interruzione di corrente;
    • lampeggiante: batteria non efficiente, dovrebbe essere sostituita al più presto;
    • acceso: batteria scarica, i messaggi non possono essere inviati;
  • LED4:
    • spento: interruzione di corrente;
    • lampeggiante: tensione di linea alternata presente;
  • LED5:
    • spento: modem non pronto o interruzione di corrente;
    • lampeggiante a 1 Hz: modem connesso ma nessun numero configurato;
    • lampeggiante a 10 Hz: modem inizializzato ma non connesso;
    • acceso: modem connesso alla rete GSM e operativo.

Realizzazione pratica

Il PCB del progetto è abbastanza compatto (vedi figura 3). Per la sua realizzazione si può scaricare il layout sul link del prototipo [4]. Sulla pagina web sono presenti tutte le risorse ed è disponibile anche il file hex del firmware. Come si può vedere dall'immagine del prototipo completo in figura 4, il montaggio non risulta particolarmente difficile. Solo alcuni componenti sono di tipo a foro passante e non vi sono integrati estremamente piccoli. Le saldature a mano dovrebbero essere, dunque, fattibili, anche per gli SMD. Durante il funzionamento, la tensione di rete è presente sulla scheda, pertanto essa dovrebbe essere montata all'interno di una scatola di plastica. Il porta batterie per le tre celle AA deve essere fissato saldamente sulla scheda in modo da non muoversi, lasciando cadere le pile. E' anche utile la copertura trasparente per il fusibile (visibile sul lato sinistro). Una volta che il rilevatore d'interruzione di corrente è completamente assemblato e configurato, si può utilizzare in qualsiasi posto, basta che si connetta a una qualsiasi presa di corrente.

Figura 3: il PCB del progetto

Figura 3: il PCB del progetto

Elenco componenti

La tabella sottostante mostra l'elenco dei componenti necessari alla realizzazione del progetto proposto.

  • Resistenze
    • Default: 1%, 0.1W, 50V, SMD 0603
    • R1 = 10k
    • R2 = 110ko
    • R3, R19 = 470k
    • R4 = 43k
    • R5, R13, R20, R21 =1k
    • R6 = NTC 8OR B57236S0800M000, Epcos
    • R7 = 4.7k
    • R8, R9 = 47k, 5%, 0.6W, 250V, assiali
    • R10, R11, R12 = 22
    • R14, R15 = 100k
    • R16 = 470k
    • R17 = 1M
  • Induttori
    • Ll = ACM4520-231-2P-T filtro modo comune
    • L2 = BLMA12AJ601SN1D, 10uH / 600 ohm a 100MHz„ SMD 0805
  • Condensatori
    • Default: 50V, ceramici, SMD 0603
    • C1, C2, C4, C5, C7, C13, C16, C17, C18, C22 = 100nF
    • C3, C19 = 1000uF 10V, elettrolitico, SMD, radiale, 8mm diam.
    • C6, C12 = 100uF 16V, elettrolitico al tantalio, SMD 2312
    • C8-C11, C15 = 33pF, C0G/NP0
    • C14 = 10pF, CoG/NP0
    • C20, C21 = 1uF 10V
  • Semiconduttori
    • D1 = diodo 1N4007, 1000V/1A
    • D2 = SMFO5CT2G array  di diodi di protezione
    • LED1 = giallo, SMD 0805
    • LED2, LED5 = verde, SMD 0805
    • LED3 = rosso, SMD 0805
    • LED4 = arancio, SMD 0805
    • T1 = MOSFET 2N7002, canale N , SOT-23
    • IC1 = MIC29302WU TR, regolatore
    • IC2 = microcontrollore ATmega328P-AU, programmato 160372-41
    • IC3 = fotoaccoppiatore CNY65
    • IC4 = regolatore 2,8 V, MCP1700T-2802E/TT
    • IC5 = doppio diodo veloce
  • Varie
    • MOD1 = modulo convertitore AC/DC, 5V/2A (Meanwell IRM-1C-5)
    • MOD2 = modulo GSM Quectel M95
    • X1 = risuonatore ceramico 8MHz, Murata CSTCC8M00G53-R0
    • SIM1 = adattatore micro SIM, SMD (Molex 78723-1301)
    • ANT1 = SMA socket, montaggio su PCB (Molex 73391-0070)
    • antenna GSM con plug SMA (RF Solutions ANT-GHEL2R-SMA)
    • JP1 = connettore a 2 pin, vertical, passo 0.1" e Jumper per JP1
    • Fl = fusibile, T, 5x20 mm, 315mA (230V) oppure 620 mA (115V)
    • zoccolo per fusibile Fl (Multicomp MC000827)
    • coperchio per fusibile for Fl (MC000833)
    • K1 = connettore 6-pin (2 x 3), vertical, passo 0.1"
    • K2 = morsetto a vite, 630V, passo 0.3"
    • BT1 = contenitore per batterie per 3 elementi AA con clip
    • PCB 160372-1 V2.1
Figura 4: il prototipo completo. Sono visibili Il modulo di alimentazione (nero), Il modulo GSM (bianco), la scheda SIM e la batteria di backup

Figura 4: il prototipo completo. Sono visibili Il modulo di alimentazione (nero), Il modulo GSM (bianco), la scheda SIM e la batteria di backup

Utilizzo

Poiché l'alimentazione di backup è fornita da batterie, il consumo di energia durante un'interruzione di corrente dovrebbe essere il più basso possibile. Un microcontrollore a 2,8 V e un risonatore esterno a 8 MHz consumano circa 4 mA. Con una batteria dalla capacità di 1500 mAh, il funzionamento del circuito è assicurato per 375 ore (circa 15 giorni). Il carico maggiore è rappresentato dal modem. Esso necessita di 300 mA di corrente quando si trasmette un messaggio di testo. E assorbe tanta corrente anche durante l'accesso alla rete di telefonia mobile. In caso di funzionamento continuato (difficilmente verificabile nella realtà), il consumo totale è di circa 304 mA che scaricherebbe le batterie in 5 ore. Dovrebbero essere, dunque, sostituite dopo ogni interruzione di corrente, se non prima. Il consumo del microcontrollore può essere ridotto ponendo a massa le porte non utilizzate. L'ATmega328P dispone di un registro per ridurre la potenza (PRR). In questo caso si può risparmiare il 10% di energia. Inoltre dispone di una modalità in cui il "core" del processore si spegne finché non si verifica un interrupt. Utilizzando queste opzioni, il consumo di corrente si riduce di circa il 50%, anche se il programma è attivo. Il problema è costituito dal modem durante un'interruzione di corrente. Il suo consumo di 300 mA è, infatti, eccessivo. Per questo motivo, il modem viene completamente spento dopo aver inviato, con successo, un messaggio di testo, in caso di blackout. Mediamente esso utilizza solo pochi microampere, aumentando, in modo significativo, la durata delle batterie. Un altro obiettivo è quello di disattivare i LED, durante il funzionamento delle batterie, poiché anch'essi consumano da 2 a 3 mA. Non è, infatti, realmente necessario indicare tutti gli stati del sistema con i semiconduttori luminosi, durante l'interruzione di corrente.

Il software

Il diagramma di flusso di figura 5 mostra la struttura del firmware, scritto in C. Dopo l'inizializzazione, recupera i dati di configurazione e prepara gli interrupt. Esso rimane in modalità di sospensione fino a quando non è presente la tensione, e la batteria non viene scaricata se il sistema non è alimentato dalla rete. Dopo, viene configurato il modulo GSM e vengono acquisite la tensione della batteria e lo stato della rete. Il microcontrollore aziona i LED indicatori in base ai dati attualmente disponibili. Un messaggio di testo è inviato in caso d'interruzione di corrente o un ripristino dell'alimentazione oppure se la batteria è scarica o occorre sostituirla. Quindi il firmware ritorna in modalità di sospensione finché non si verifica un cambiamento di stato. Se non c'è tensione di rete o la batteria è scarica, si verifica un reset.

Figura 5: il diagramma di flusso del firmware, scritto il linguaggio C

Figura 5: il diagramma di flusso del firmware, scritto il linguaggio C

Il software è suddiviso in diversi moduli. Essi possono essere classificati in quattro aree, come mostrato nella figura 6:

  • monitoraggio del sistema;
  • memorizzazione dei parametri;
  •  monitoraggio della tensione di rete;
  • comunicazione.

Per rilevare un'interruzione dell'alimentazione è possibile misurare il tempo tra più passaggi per lo zero o specificare un intervallo di tempo entro il quale devono verificarsi due semionde successive (come detto prima). Entrambi i metodi sono essenzialmente basati sulla frequenza della tensione CA dalla rete, ma a volte si verificano dei processi di commutazione che possono causare brevi transitori che causano cicli in cui non c'è alcun passaggio per lo zero. Per evitare di attivare un falso allarme è sufficiente aumentare l'intervallo di tempo a 250 ms e verificare la presenza di almeno un passaggio per lo zero durante tale periodo. Con questo metodo non è necessario distinguere le reti elettriche funzionanti a 50 Hz e a 60 Hz.

Figura 6: il firmware è composto da quattro moduli indipendenti

Figura 6: il firmware è composto da quattro moduli indipendenti

Il monitoraggio principale della rete (vedi figura 7) viene gestito, nel codice C, dai componenti MAINS_MON e dalla base dei tempi nel modulo TIMER, che funge da watchdog software. L'ingresso dell'interrupt 1 del microcontrollore, che viene attivato sul fronte di discesa del segnale applicato, è utilizzato per questo scopo. Quando sull'ingresso è presente una semionda positiva, il fotoaccoppiatore pone a livello basso l'ingresso d'nterrupt 1, al fine di produrre un fronte di segnale. Nella routine di interrupt viene determinata la distanza tra due interrupt successivi e il watchdog software del modulo TIMER viene resettato. Se tale reset si verifica entro i 250 ms, il watchdog non va in time out. Ma se si verifica un'interruzione di corrente, il reset non si verifica, il watchdog va in time out e viene indicato l'errore. Poiché il watchdog risponde solo agli interrupt, il rilevamento dell'interruzione dell'alimentazione è completamente indipendente dal loop principale.

Configurazione

Per permettere al sistema di funzionare è necessaria una scheda SIM valida e senza protezione PIN. Se la SIM è protetta da un PIN, il software non può utilizzarla. È possibile disabilitare facilmente la protezione PIN di una SIM inserendola in un telefono cellulare e configurando le impostazioni di sicurezza. Il modulo GSM tenta di accedere a una rete di telefonia mobile se la tensione di rete è presente o se la tensione della batteria è sufficiente. Si consiglia di alimentare la scheda dalla linea CA quando si avvia per la prima volta. Se non viene rilevata alcuna tensione della linea CA e la scheda viene alimentata dalla batteria, i LED rimangono spenti per risparmiare energia e ciò rende difficile il processo di configurazione. Una volta che il modem riesce a connettersi alla rete di telefonia mobile, il LED5 si accende. A questo punto è possibile chiamare il numero di telefono della carta SIM per verificare se essa è stata registrata correttamente e non è bloccata dalla rete. Tuttavia, il dispositivo non emetterà alcun avviso perché non vi è ancora un numero di telefono valido nella EEPROM del microcontrollore. Ciò impedisce d'inviare involontariamente messaggi di testo a un numero sconosciuto. Il LED verde dovrebbe inizialmente lampeggiare a una frequenza di 1 Hz per indicare tale stato operativo. Il numero di telefono è impostato attraverso un messaggio di testo. Allo scopo, è necessario utilizzare un telefono cellulare (con un numero diverso) per inviare un messaggio di testo relativo al numero di telefono della carta SIM inserita nel dispositivo. Il formato del messaggio di testo è:

Config Remote xxx

dove 'xxx' sta per il numero di telefono della carta SIM. Sono ammessi solo i seguenti caratteri: +, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Se il messaggio di testo viene ricevuto ed elaborato correttamente, il dispositivo risponde con il messaggio:

"Nuovo numero salvato in EEPROM"

Ora il sistema è pronto all'uso. Dopo che il messaggio di testo di risposta è stato inviato, il LED verde termina di lampeggiare e resta costantemente acceso. Da questo momento in poi, lo stato del sistema può essere interrogato tramite messaggi di testo. Per fare ciò occorre inviare il messaggio di testo:

Richiedi stato

al numero di telefono della carta SIM del dispositivo. Il dispositivo risponderà con il messaggio:

"La frequenza di rete è <STATO> con <XX> Hz."
"La batteria eroga <VBat> mV ed è <BAT_STATUS>"

Per azzerare la configurazione corrente si deve inserire il jumper JP1 e si spenga e riaccenda il dispositivo. E' necessaria una breve interruzione di corrente in modo che lo stato di JP1 possa essere rilevato durante l'avvio. Dopo questo riavvio il LED verde lampeggerà di nuovo. Si deve, quindi, rimuovere il jumper in modo che il dispositivo non venga resettato alla configurazione predefinita, al prossimo riavvio. Per motivi di sicurezza (tensione di rete sulla scheda) è necessario eseguire tale operazione solo con la tensione di rete scollegata. Successivamente è possibile configurare la scheda, come descritto in precedenza.

Figura 7: il watchdog implementato nel software

Figura 7: il watchdog implementato nel software

>>>Leggi anche: Avvisatore di mancanza della tensione di rete

Web Links

[1] Meanwell IRM-10-5: https://bit.ly/2KsAsYr
[2] LTC4413: https://bit.ly/2Kfsiq6
[3] Quectel M95: www.quectel.com/product/m95.htm
[4] Download: www.elektormagazine.com/180344-01

 

Elektor Post

3 Commenti

  1. Giovanni Di Maria Giovanni Di Maria 21 febbraio 2019
  2. Giordana Francesca Brescia Giordana Francesca Brescia 21 febbraio 2019
  3. Stefano Lovati Stefano Lovati 21 febbraio 2019

Scrivi un commento