Allarme lora per porte e finestre

Realizziamo un allarme che avvisa dellโ€™apertura di porte e finestre anche a notevole distanza, utilizzando un TX palmare LoRa modificato.

La tecnologia di comunicazione dati a radiofrequenza a lunga portata, meglio conosciuta come LoRa, trova applicazione in svariati campi, che vanno dallโ€™IoT (impiego elettivo) allโ€™automazione, fino a coprire applicazioni sinora basate su ricetrasmittenti tradizionali.

In questo articolo vogliamo proporre una nuova applicazione โ€œcivileโ€ dei moduli LoRa a 433MHz: si tratta di un sistema di allarme che scatta in caso di apertura di porte o finestre.

Per la realizzazione del caso abbiamo utilizzato lโ€™hardware del radiocomando LoRa giร  proposto in questo post, composto da una scheda trasmittente (Fig. 1) che viene attivata in seguito alla pressione di un pulsante o alla chiusura a massa della linea corrispondente.

Fig. 1 Il radiocomando LoRa FT1250 montato nel contenitore e il solo PCB.

 

La possibilitร  di raggiungere sul PCB i contatti del pulsante di trasmissione ci permette di comandare il trasmettitore con un dispositivo esterno, che puรฒ essere uno switch o un circuito con uscita a contatto pulito o a transistor; per ottenerla รจ sufficiente โ€œportare fuoriโ€ con dei fili i contatti dei pulsanti e identificare quello di massa, cosรฌ da riconoscere anche quello โ€œcaldoโ€ che va posto a massa per avviare la trasmissione.

Per chiarire meglio questo concetto pubblichiamo, nella Fig. 2, lo schema a blocchi del trasmettitore del radiocomando, dal quale appare evidente il collegamento dei pulsanti e quindi come inserire un interruttore di attivazione esterno.

 

Fig. 2 Schema a blocchi del trasmettitore palmare.

 

Normalmente il trasmettitore non consuma energia perchรฉ รจ spento (viene acceso e attivato chiudendo a massa gli ingressi di controllo o premendo i rispettivi pulsanti), per cui puรฒ tranquillamente essere alimentato da una batteria, garantendo lunghi intervalli di sostituzione.

A riguardo va detto che nel trasmettitore FT1250 รจ presente una batteria A23 da 12V, ma questa รจ stata scelta solo per il pochissimo spazio imposto dalle dimensioni del TX; la A23 non permette piรน di 300รท400 attivazioni, quindi per il nostro trasmettitore dโ€™allarme abbiamo deciso di utilizzare qualcosa di piรน capiente.

Naturalmente questo ha comportato il dover utilizzare un contenitore di dimensioni piรน generose che possa ospitare una batteria ben piรน capiente di una serie di pile a bottone che costituiscono la A23.

Applicare una batteria differente non รจ un problema, perchรฉ lโ€™alimentazione richiesta dalla scheda del trasmettitore puรฒ spaziare tra circa 4 e 15 Vcc, perchรฉ internamente al circuito cโ€™รจ un regolatore di tensione lineare che ricava 3,3V stabilizzati con cui funziona lโ€™elettronica.

Per utilizzare il trasmettitore palmare LoRa come sensore di apertura porte si puรฒ considerare lโ€™applicazione di un interruttore magnetico del tipo 6720-HAA27; questโ€™ultimo, in realtร  รจ composto da un deviatore e da un magnete.

Il deviatore ha un contatto normalmente aperto (NO) ed un contatto normalmente chiuso (NC). Il contatto NO viene chiuso dalla prossimitร  del magnete e viceversa per NC (Fig. 3).

 

Fig. 3 Il contatto magnetico.

 

Per applicare questo contatto magnetico alla scheda del radiocomando bisogna tenere presente che questโ€™ultimo รจ azionato in modo impulsivo da un pulsante, mentre il contatto magnetico รจ un azionamento persistente.

Occorre quindi trasformare la chiusura del contatto magnetico in un impulso e questo lo facciamo tramite un piccolo circuito adattatore come mostrato in Fig. 4.

Lโ€™allarme si attiva quando la calamita, posizionata sulla porta, si allontana dal contatto magnetico, quindi, in posizione normale il contatto carica un condensatore che viene scaricato sulla base di un transistor quando la porta viene aperta e cosรฌ il pulsante viene cortocircuitato per un tempo di alcune decine di millisecondi, necessario a far intervenire lโ€™ATmega32U4 per pilotare il transistor che mantiene lโ€™alimentazione.

Fig. 4 Circuito per ottenere un impulso dalla chiusura del contatto magnetico.

 

Per lโ€™applicazione descritta, malgrado lโ€™integrazione circuitale il firmware caricato nellโ€™ATmega32U4 del trasmettitore รจ assolutamente uguale a quello originale del radiocomando LoRa, ovvero allโ€™accensione attiva immediatamente il transistor che mantiene lโ€™alimentazione, spedisce il messaggio di allarme e disattiva il transistor spegnendo la scheda; infatti il nostro hardware aggiuntivo asseconda il funzionamento nativo del TX.

Sullโ€™unitร  che utilizzerete come ricevente potrete poi implementare le funzioni desiderate: nella situazione piรน semplice potrete abbinare il trasmettitore dotato di contatto magnetico a un ricevitore LoRa, ma se volete qualcosa di piรน, potrete realizzare un server che riceverร  il messaggio di allarme di unโ€™unitร  trasmittente o i segnali dโ€™allarme di piรน TX. Questo server potrร  registrare lโ€™evento, attivare un allarme o spedire una mail o un messaggio SMS nel caso fosse basato su un hardware RandA (e quindi Raspberry Pi).

Rispetto ad un classico allarme wireless per ambienti domestici e fabbricati in generale, tenete conto che con la trasmissione LoRa possono essere raggiunte distanze notevoli; dovrete quindi scrivere un firmware specifico che abbia come base Arduino e che sfrutti la libreria specifica LoRa, la quale puรฒ gestire numerosi nodi che possono quindi coprire un consistente numero di punti da sorvegliare.

Realizzazione pratica del trasmettitore LoRa

Ciรฒ detto, vediamo come mettere insieme il trasmettitore per realizzare con esso un sensore wireless LoRa per porte e finestre: la prima cosa da fare รจ procurarsi un trasmettitore LoRa FT1250 da montare e scartare il contenitore, tenendo solo il circuito stampato. In questo bisogna indentificare le piazzole corrispondenti ai contatti dei pulsanti, connetterle secondo il circuito mostrato nella Fig. 4.

Per identificare le piazzole del pulsante fate riferimento alla Fig. 5, che mostra il PCB visto dal lato saldature evidenziate dalle frecce (i contatti sottostanti replicano quelli in alto); nella foto anzidetta, GND รจ il contatto di massa del pulsante mentre P รจ il polo caldo, ossia quello che comanda il circuito e che corrisponde al collettore del transistor Q1 dello schema proposto nella Fig. 4.

Fig. 5 I contatti del pulsante di trasmissione, cui connettere in parallelo il transistor di Fig. 4.

 

Dopo aver collegato due fili ai contatti del pulsante per portarli al transistor, il circuito stampato del trasmettitore LoRa FT1250 va dotato di due fili di alimentazione (consigliamo rosso per il positivo e nero per il negativo o GND…) da collegare alle piazzole del positivo e negativo riservati ai contatti a molla per la pila originale (che non va quindi montata) prevista e da utilizzare per alimentare il trasmettitore con la batteria scelta.

Lโ€™insieme va collocato in un nuovo contenitore, di dimensioni adeguate, su un lato del quale va applicato il contatto reed, vale a dire il deviatore a comando magnetico del contatto per porte e finestre, come vedete nella Fig. 6.

 

Fig. 6 Il prototipo del trasmettitore in versione allarme per porte e finestre.

Lโ€™installazione

Il contenitore utilizzato nel nostro prototipo รจ in plastica ed ha dimensioni di 130 x 70 x 28 mm, quindi, seppure piรน grande di quello originale del TX, รจ ancora abbastanza piccolo da poter essere posizionato facilmente sullโ€™intelaiatura della porta.

Per il fissaggio, notate che il magnete รจ giร  predisposto con due occhielli idonei ad ospitare due viti, mentre lโ€™unitร  elettronica potrร  essere applicata con del biadesivo particolarmente tenace o con un paio di staffe o collari in plastica, sempre ricorrendo a piccole viti (piccole per non danneggiare lโ€™anta o il telaio della finestra o porta dove verrร  applicato il sistema LoRa).

Quanto allโ€™alimentazione, son le batterie utilizzate, ossia 4 ministilo AAA Ni-MH ricaricabili (per complessivi 4,8V) o con 4 ministilo al litio non ricaricabili (in questo caso abbiamo 6V), possono essere garantite alcune migliaia di eventi, ovvero, considerato lโ€™utilizzo caratteristico, periodi di autonomia di almeno un anno.

Infatti ogni trasmissione a seguito dellโ€™allontanamento del magnete dal deviatore reed comporta un consumo di circa 85mA (a 5รท6V di alimentazione) per una priodo di circa 300 millisecondi, quindi la durata di un anno รจ ragionevole, considerato che lโ€™apertura e la chiusura non avvengono continuamente.

Il consumo riportato รจ stato calcolato considerando che lโ€™unitร  trasmittente dellโ€™RTX LoRa operi alla potenza prefissata di 10dBm (10mW), ma puรฒ variare tra 70mA e 150mA diminuendo o aumentando la potenza stessa.

La programmazione

Lo sketch da caricare nel trasmettitore (chiamato allarmeporta.ino) รจ riportato nel Listato 1.

Resta inteso che per la programmazione bisognerร  collegare la scheda al Personal Computer tramite un cavetto terminante con un connettore microUSB, adatto alla connessione esistente sulla scheda TX (infatti lโ€™FT1250 riporta sul lato del PCB un connettore microUSB).

Ricordiamo che lโ€™hardware del radiocomando รจ basato su una MCU Atmega32u4 (come Leonardo, con lโ€™unica differenza che in questo caso il microcontrollore funziona con un clock alla frequenza di 8MHz), quindi per la sua programmazione รจ necessario selezionare, nellโ€™IDE Arduino, la scheda Lilypad USB che utilizza la stessa configurazione di CPU e clock.

In virtรน della generosa copertura offerta dal protocollo LoRa, lโ€™allarme puรฒ essere posizionato anche a grande distanza dalla centralina e puรฒ essere replicato su diverse aperture (porte, finestre, saracinesche ecc.); siccome in tal caso potrebbe verificarsi la sovrapposizione dei messaggi generati da piรน unitร , la libreria potrร  attendere per un certo tempo (500 millisecondi nello sketch esempio) che non ci sia traffico radio e riuscirร  quindi a superare, entro certi limiti, lโ€™affollamento della banda causato da allarmi multipli.

Listato 1

#include โ€œLoraNode.hโ€ //Include la libreria Lora

LoraNode Node(2); //Istanza del nodo con indirizzo 2
#define pinon 6 // pin che tiene accesa la scheda
#define psound 5 // pin per il cicalino
#define pinf 13 // pin per il led di segnalazione (non utilizzato)

#define eventHandler 1 //Indirizzo del nodo server a cui spedire lโ€™allarme

void setup() {
  pinMode(pinon, OUTPUT);
  digitalWrite(pinon, 1); // mantiene accesa la scheda
  pinMode(pinf, OUTPUT);
  pinMode(psound, OUTPUT);
  digitalWrite(psound, 1); // cicalino spento (logica inversa)
  // ย Serial.begin(9600); while(!Serial){ delay(10);}; // solo per debug
  // ย Serial.println(โ€œPin ON!โ€); // โ€œ

  sendEvent(); //Spedisce lโ€™allarme
  sketchend(); //Spegne tutto 
}

void loop() { // non utilizzato
}

void sendEvent() {
  // ย Serial.println(โ€œSending alarmโ€); // solo per debug
  Node.writeMessage(eventHandler, โ€DoorOpenโ€, 500); //spedisce messaggio 
  // ย Serial.println(โ€œAlarm sentโ€); // solo per debug
  bsound(); // commentare se si vuole silenzioso
}

void sketchend() {
  digitalWrite(pinon, 0); // toglie lโ€™alimentazione
}

void bsound() //eco sonoro (buzzer)
{
  digitalWrite(psound, 0);
  delay(100);
  digitalWrite(psound, 1);
}

Lascia un commento

Il tuo indirizzo email non sarร  pubblicato.

Menu