Sommario:

Sistema di allarme wireless Arduino che utilizza i sensori esistenti: 9 passaggi (con immagini)
Sistema di allarme wireless Arduino che utilizza i sensori esistenti: 9 passaggi (con immagini)

Video: Sistema di allarme wireless Arduino che utilizza i sensori esistenti: 9 passaggi (con immagini)

Video: Sistema di allarme wireless Arduino che utilizza i sensori esistenti: 9 passaggi (con immagini)
Video: Allarme laser con Arduino - I Sensori di Arduino #8 2024, Dicembre
Anonim
Sistema di allarme wireless Arduino che utilizza i sensori esistenti
Sistema di allarme wireless Arduino che utilizza i sensori esistenti
Sistema di allarme wireless Arduino che utilizza i sensori esistenti
Sistema di allarme wireless Arduino che utilizza i sensori esistenti
Sistema di allarme wireless Arduino che utilizza i sensori esistenti
Sistema di allarme wireless Arduino che utilizza i sensori esistenti
Sistema di allarme wireless Arduino che utilizza i sensori esistenti
Sistema di allarme wireless Arduino che utilizza i sensori esistenti

Questo progetto può essere realizzato in circa mezz'ora al costo di circa $ 20,00 se si dispone di sensori di allarme wireless a 433 Mhz o 315 Mhz esistenti.

Può anche essere un progetto completamente nuovo con sensori di allarme wireless, come rilevatori di movimento a infrarossi e interruttori reed, disponibili online in modo semplice ed economico. Basta cercare i sensori 433Mhz o 315Mhz che utilizzano la codifica PT2262 o EV1527.

Sono sicuro che ci sono molte persone come me che hanno acquistato un sistema di allarme GSM/2G con sensori wireless e ne sono rimasti soddisfatti, tuttavia quando la rete 2G/GSM è stata spenta dove vivo, mi è rimasto un sistema di allarme che potevo non programmare più né impostare l'ora su di esso. Un giorno mentre mi chiedevo cosa potevo fare per rendere nuovamente funzionante il mio allarme, mi è venuto in mente di verificare se un Arduino potesse ricevere segnali dai sensori. Mi sono imbattuto in un https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ e dopo alcuni esperimenti ho determinato che potevo ricevere i segnali dai miei sensori esistenti. Ho iniziato il processo per costruire un sistema di allarme che potesse sostituire il mio allarme esistente e fornisse anche maggiori funzionalità. Uno dei problemi con il vecchio allarme non era mai sapere esattamente quale dei 25 sensori si attivasse, aggiungendo uno schermo LCD alla mia nuova build di allarme ora ottengo un testo sull'LCD che indica esattamente quale sensore è stato attivato. Il nuovo allarme può ancora essere attivato manualmente dai telecomandi wireless esistenti e dispone di un orologio in tempo reale per consentirgli di attivarsi e disattivarsi automaticamente a orari prestabiliti della giornata.

Forniture

Vedere le note aggiuntive alla fine per assicurarsi di utilizzare la versione corretta di queste parti.

Arduino Uno o simili

Modulo ricevitore 433 o 315 MHz per Arduino

Modulo orologio in tempo reale DS3231 per Arduino

Modulo I2C 16x2 LDC per Arduino

Interruttori reed di allarme wireless, sensori di movimento e telecomandi portachiavi come desiderato

Cicalino piezoelettrico

LED e resistenza da 220 ohm

Tagliere (facoltativo ma consigliato)

Alimentatore adatto per Arduino

Ponticelli ecc

PC con Arduino IDE installato

Conoscenza base di Arduino

Passaggio 1: materiali di consumo

Forniture
Forniture
Forniture
Forniture
Forniture
Forniture

Alcune immagini sopra delle forniture necessarie per questo progetto

Passaggio 2: cablare l'Ardunio e i moduli come mostrato nell'immagine

Collega l'Ardunio e i moduli come mostrato nell'immagine
Collega l'Ardunio e i moduli come mostrato nell'immagine

Piezo tra pin 5 di Arduino e terra

LED tra il pin 8 dell'Arduino e a una resistenza da 220 ohm quindi a terra

Ricevitore 433 o 315 Mhz, VCC a 5V, GND a massa e uno dei 2 pin dati al pin2 di Arduino

Modulo LCD I2C 16X2 VCC a 5V, GND a terra, pin SCL SDA a SCL SDA di Arduino (pin A5 è SCL, pin A4 è SDA)

Modulo RTC DS3231 VCC a 5 V, GND a terra, pin SCL SDA a SCL SDA di Arduino (c'è un secondo set situato sopra i pin GND e AREF della maggior parte degli Arduino)

So che alcuni di voi non avranno bisogno di ulteriori informazioni oltre a questa e allo schizzo allegato di seguito, ma entrerò in maggiori dettagli per chiunque desideri ulteriore assistenza.

Passaggio 3: aggiungere le librerie necessarie all'IDE di Arduino

Aggiungi le librerie necessarie all'IDE di Arduino
Aggiungi le librerie necessarie all'IDE di Arduino
Aggiungi le librerie necessarie all'IDE di Arduino
Aggiungi le librerie necessarie all'IDE di Arduino
Aggiungi le librerie necessarie all'IDE di Arduino
Aggiungi le librerie necessarie all'IDE di Arduino

L'Arduino Sketch per eseguire l'allarme utilizza alcune librerie che non sono già installate sull'IDE Arduino per impostazione predefinita.

Per aggiungere la libreria RCSwitch all'IDE Arduino. Apri l'IDE di Arduino nel menu in alto seleziona "Schizzo", quindi dal menu a discesa seleziona "Includi libreria" e dal menu a discesa successivo seleziona "Gestisci librerie". Quindi nella casella "Filtra la tua ricerca" digita "RCSW", quindi fai clic su installa per "rc-switch di sui77"

Istruzioni dettagliate sull'aggiunta di librerie su

Già che ci siamo dobbiamo anche aggiungere le librerie chiamate Time, TimeAlarms, DS1307RTC e LiquidCrystal_I2C, stessa procedura come sopra ma cercando il nome di ogni nuova libreria e installandola. Vedere le schermate sopra se non si è sicuri di quali librerie utilizzare.

L'orologio in tempo reale DS3231 è compatibile e utilizza la libreria DS1307RTC.

Passaggio 4: successivamente è necessario ottenere i codici per i sensori

Quindi dobbiamo ottenere i codici per i tuoi sensori
Quindi dobbiamo ottenere i codici per i tuoi sensori
Quindi dobbiamo ottenere i codici per i tuoi sensori
Quindi dobbiamo ottenere i codici per i tuoi sensori

Ho fornito il modello del codice Arduino di seguito, ma dovrai trovare i valori per ciascuno dei tuoi sensori e incollarli nel codice.

Ci sono ampie informazioni su come ottenere questi codici in entrambi questi siti;

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Comunque ecco la mia versione abbreviata;

Per ottenere i codici inviati dai sensori e dai telecomandi, collegare Arduino come assemblato nel passaggio 1 a un PC tramite cavo USB e aprire l'IDE Arduino. Quindi nell'IDE di Arduino vai al menu a discesa "File", quindi vai su "Esempi" scorri verso il basso l'elenco degli schizzi di esempio fino a trovare "RCSWITCH", quindi seleziona lo schizzo "ReceiveDemo_Advanced" e caricalo su Arduino. Una volta che lo sketch è stato caricato correttamente, apri il monitor seriale dell'IDE Arduino con esso ancora collegato al PC tramite USB. Ora attiva il primo dei sensori per cui vuoi ottenere il codice, l'output di RCSwitch apparirà nella finestra del monitor seriale. Per questo progetto stiamo cercando i codici decimali come evidenziato nello screenshot 2. Sarà necessario attivare il sensore più volte cercando il valore decimale che appare più spesso, a volte ci saranno valori diversi mescolati con il valore vero, questo è causato dall'interferenza di onde radio casuali o altri dispositivi che operano sulla stessa frequenza.

Prendere nota del codice decimale del sensore da utilizzare nel passaggio successivo. Ripetere per tutti i sensori e i telecomandi che si desidera utilizzare nel progetto, tenendo traccia di quale codice va con quale sensore. Se si utilizzano telecomandi per inserire e disinserire l'allarme, sarà necessario annotare i diversi codici per il pulsante di attivazione e il pulsante di disattivazione di ciascun telecomando.

Passaggio 5: modello di codice Arduino

Di seguito è riportata una copia del mio codice Arduino come file.ino chiamato Wireless_Alarm. Puoi fare clic su di esso e dovrebbe aprirsi nell'IDE di Arduino. Non sono un programmatore il mio codice è assemblato in parte dagli esempi trovati nell'IDE di Arduino, probabilmente non è particolarmente elegante ma funziona ed è stato affidabile per un lungo periodo di tempo.

Ricorda di salvare nuovamente lo schizzo dopo aver apportato le modifiche per includere i codici dei tuoi sensori.

Passaggio 6: incolla i codici ottenuti nel passaggio 5 nel modello Arduino Sketch

Ora i passaggi per personalizzare il codice per i sensori e i telecomandi che stai utilizzando.

Se apri lo sketch Wireless_Alarm nel tuo IDE vedrai alla riga 111.

if (mySwitch.getReceivedValue() == 115166236) //Codice pulsante attivazione telecomando

Dove nel codice esistente si legge 115166236 è necessario sostituire quel numero con il codice decimale per il pulsante di attivazione del telecomando che è stato registrato al passaggio 5.

Ad esempio, se nel passaggio 5 hai ottenuto un decimale 1154321, modificheresti la riga 111 per leggere ora;

if (mySwitch.getReceivedValue() == 1154321) //Codice pulsante attivazione telecomando

Seguire la stessa procedura per la linea 125.

if (mySwitch.getReceivedValue() == 115166234) //Codice pulsante disattivazione telecomando

Sostituisci 115166234 con il codice del pulsante di disattivazione del telecomando che hai registrato al punto 5.

Se si desidera utilizzare più telecomandi per attivare e disattivare, copiare e incollare le righe da 111 a 136 tutte le volte necessarie, quindi modificare i valori per adattarli agli altri telecomandi, ma è meglio iniziare con un telecomando finché non si è sicuri di aver modificato lo schizzo funziona.

Ora per codificare i sensori di allarme nello schizzo alla riga 140

if(ledState == HIGH && mySwitch.getReceivedValue() == 1151640) //Azione per l'armadio dell'ufficio del mittente del segnale

Estrai 1151640 e inserisci il valore decimale di uno dei tuoi sensori di allarme.

Poi alla linea 158.

lcd.print(F("Armadio ufficio")); //stampa il messaggio su lcd per sapere quale sensore è stato attivato (e vai a trovare il ladro:)

Cambia l'armadio dell'ufficio in quello che desideri venga visualizzato sul display LCD per quel sensore. Ad esempio, se vuoi che legga kitchendoor, fai in modo che la linea assomigli a questa;

lcd.print(F("Porta cucina")); //stampa il messaggio su lcd per sapere quale sensore è stato attivato (e vai a trovare il ladro:)

I nomi non devono superare i 16 caratteri.

Tra la riga 165 e 187 c'è un modello da copiare e incollare il numero di volte necessario nelle righe direttamente sotto 187. Sostituisci il numero dopo mySwitch.getReceivedValue() == con il decimale di uno degli altri tuoi sensori che hai registrato nel passaggio 5 e cambia nome all'interno del " " in lcd.print(F("sensornamequi")); al nome che vuoi dare al tuo sensore.

Se non si utilizzano telecomandi remoti per attivare e disattivare l'allarme, è possibile ignorare le righe 111-136 o inserire // all'inizio di ciascuna delle righe indesiderate e Arduino non le leggerà.

Ricorda di salvare il file dopo aver apportato le modifiche.

Passaggio 7: carica il file.ino modificato sul tuo Arduino e prova

Carica il file.ino modificato sul tuo Arduino e prova
Carica il file.ino modificato sul tuo Arduino e prova
Carica il file.ino modificato sul tuo Arduino e prova
Carica il file.ino modificato sul tuo Arduino e prova
Carica il file.ino modificato sul tuo Arduino e prova
Carica il file.ino modificato sul tuo Arduino e prova

Con Arduino ancora collegato al PC tramite USB, carica lo schizzo sulla scheda Arduino. Una volta che il caricamento è stato completato con successo, il display LCD dovrebbe leggere "Alarm On Disarmed". Premi il pulsante di attivazione del telecomando e il display LCD dovrebbe leggere "Alarm On Armed" e il LED dovrebbe essere acceso per farti sapere che è armato, ora attiva un sensore mentre è armato, il display LCD dovrebbe leggere Alarm seguito da un timestamp e la posizione del sensore, il segnale acustico dovrebbe suonare per 2 minuti a meno che non si prema il pulsante di disattivazione. Se non ottieni questo risultato, ricontrolla i codici ottenuti nel passaggio 5 e le modifiche apportate al codice nel passaggio precedente, ricontrolla anche il cablaggio di tutti i componenti. Se il display LCD non legge affatto, è presente una regolazione del contrasto sul retro del modulo LCD. Una volta che il contrasto è impostato correttamente, se l'LCD continua a non leggere, provare a modificare l'indirizzo dell'LCD da 0x3f a 0x27 alla riga 12 dello schizzo. Risoluzione dei problemi LCD qui Tutorial LCD I2C

Passaggio 8: impostazione dell'ora sul modulo RTC e modifica dei tempi di attivazione e disattivazione

Si spera che il tuo RTC sia già stato impostato con l'ora corretta, ma se non apri l'IDE, seleziona "File" e dal menu a discesa fai clic su "Esempi", scorri verso il basso fino a "DS1307RTC" e seleziona lo schizzo "SetTime", scarica lo schizzo sul tuo Arduino e imposterà l'orologio in tempo reale con l'ora dal tuo PC, quindi dovrai ricaricare lo sketch Wireless_Alarm sul tuo Arduino.

Il Wireless_Alarm.ino che ho fornito imposterà per impostazione predefinita l'attivazione della sveglia automaticamente alle 22:15 ogni notte e la disattivazione alle 06:00 ogni mattina. Per modificare questi tempi, modificare lo schizzo alle righe 71 e 72. Il tempo è tra parentesi dopo Alarm.alarmRepeat nel formato HH, MM, SS. cambialo in qualsiasi momento ti si addica.

Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // Tempo di DISARMO

Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // tempo ARM

Quindi, per cambiare l'ora di disattivazione alle 9:15 e l'ora di attivazione alle 17:30, il codice sarebbe simile a questo

Alarm.alarmRepeat(9, 15, 0, MorningAlarm); // Tempo di DISARMO

Alarm.alarmRepeat(17, 30, 0, EveningAlarm); // tempo ARM

Se non si desidera che l'allarme si attivi e si disattivi automaticamente, mettere // davanti alle 2 righe e non verranno utilizzate.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // Tempo di DISARMO

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); //tempo di braccia

L'ora in cui suona il cicalino di allarme può essere modificata modificando la riga 22

const lungo intervallo = 120000; //per millis di ritardo per la durata dell'allarme acustico

L'intervallo è in millisecondi, quindi 120000 = 120 secondi, la modifica da 120000 a 30000 fa suonare l'allarme per 30 secondi.

Un solenoide per far funzionare una sirena, una luce stroboscopica, un segnale acustico ad alto volume, ecc. può anche essere collegato al pin 7 o al pin 9 e funzionerà per l'"intervallo" come impostato sopra. Tieni presente che il carico massimo per un pin Arduino non deve superare i 40 mA.

Passaggio 9: note aggiuntive

Quando si seleziona un modulo ricevitore 433 o 315 MHz per Arduino, è necessario scegliere la frequenza che corrisponda ai sensori di allarme che si intende utilizzare. Suggerisco di acquistare un modulo che viene fornito con una piccola antenna elicoidale a spirale per le migliori prestazioni, in alternativa anche un'antenna a filo dritto lunga 17,3 mm aumenta le prestazioni.

Con il modulo LCD 16x2 è necessario utilizzare un LCD I2C a 4 pin per utilizzare le istruzioni e il codice che fornisco qui, potrebbe essere realizzato con un LCD standard a 16 pin ma non funzionerà con il cablaggio o il codice qui.

Gli interruttori reed di allarme wireless, i sensori di movimento e i telecomandi devono essere 433 Mhz o 315 Mhz per adattarsi al ricevitore che si intende utilizzare e utilizzare la codifica PT2262 o EV1527.

L'allarme è espandibile e adattabile, ho già aggiunto una scheda SD per registrare quando vengono attivati i sensori, modificato l'LCD in modo che si accenda solo quando viene tenuto premuto un pulsante e aggiunto una sirena da 100 dB, ma non ho incluso i dettagli qui per mantenere l'articolo come breve e semplice possibile. Spero che condividere il lavoro che ho fatto su questo allarme sia di qualche utilità per gli altri.

Felice di rispondere a qualsiasi domanda.

Grazie.

Consigliato: