Non ci sono prodotti a carrello.
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.
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.
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).
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.
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.
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.
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); }