Sommario:
- Forniture
- Passaggio 1: materiali di consumo
- Passaggio 2: cablare l'Ardunio e i moduli come mostrato nell'immagine
- Passaggio 3: aggiungere le librerie necessarie all'IDE di Arduino
- Passaggio 4: successivamente è necessario ottenere i codici per i sensori
- Passaggio 5: modello di codice Arduino
- Passaggio 6: incolla i codici ottenuti nel passaggio 5 nel modello Arduino Sketch
- Passaggio 7: carica il file.ino modificato sul tuo Arduino e prova
- Passaggio 8: impostazione dell'ora sul modulo RTC e modifica dei tempi di attivazione e disattivazione
- Passaggio 9: note aggiuntive
Video: Sistema di allarme wireless Arduino che utilizza i sensori esistenti: 9 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
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
Alcune immagini sopra delle forniture necessarie per questo progetto
Passaggio 2: cablare 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
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
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
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:
Robot Arduino wireless che utilizza il modulo wireless HC12: 7 passaggi
Robot Arduino wireless che utilizza il modulo wireless HC12: Ehi ragazzi, bentornati. Nel mio post precedente, ho spiegato cos'è un circuito a ponte H, IC driver motore L293D, IC driver motore L293D piggybacking per pilotare driver motore ad alta corrente e come è possibile progettare e realizzare la propria scheda driver motore L293D
Gesture Hawk: Robot controllato con gesti della mano che utilizza un'interfaccia basata sull'elaborazione delle immagini: 13 passaggi (con immagini)
Gesture Hawk: Robot controllato con gesti della mano che utilizza un'interfaccia basata sull'elaborazione delle immagini: Gesture Hawk è stato presentato in TechEvince 4.0 come una semplice interfaccia uomo-macchina basata sull'elaborazione delle immagini. La sua utilità sta nel fatto che non sono necessari sensori aggiuntivi o indossabili tranne un guanto per controllare l'auto robotica che funziona su diversi
Un minuscolo sistema di allarme che utilizza una super piccola scheda compatibile con Arduino!: 10 passaggi
Un minuscolo sistema di allarme che utilizza una super piccola scheda compatibile con Arduino!: Ciao, oggi realizzeremo un piccolo progetto interessante. Costruiremo un minuscolo dispositivo di allarme che misuri la distanza tra se stesso e un oggetto di fronte ad esso. E quando l'oggetto si sposta oltre una distanza prestabilita, il dispositivo ti avviserà con un
Sistema di automazione domestica che utilizza Arduino e il modulo Bluetooth HC-05: 5 passaggi (con immagini)
Sistema di automazione domestica che utilizza Arduino e il modulo Bluetooth HC-05: Ehi ragazzi, come va! Oggi sono qui con il mio secondo Arduino Instructable. È un sistema di automazione domestica controllato da Bluetooth. Puoi controllare i tuoi elettrodomestici solo dal tuo smartphone. Tutto le cose funzionano perfettamente! Inoltre ho progettato l'app
Sistema semaforico a 4 vie che utilizza 5 Arduino e 5 moduli wireless NRF24L01: 7 passaggi (con immagini)
Sistema di semafori a 4 vie utilizzando 5 Arduino e 5 moduli wireless NRF24L01: poco tempo fa ho creato un Instructable che descriveva in dettaglio una singola coppia di semafori su una breadboard. Ho anche creato un altro Instructable che mostra il framework di base per l'utilizzo di un modulo wireless NRF24L01. mi ha fatto pensare! Ci sono un sacco di