Innholdsfortegnelse:

Arduino trådløst alarmsystem som bruker eksisterende sensorer: 9 trinn (med bilder)
Arduino trådløst alarmsystem som bruker eksisterende sensorer: 9 trinn (med bilder)

Video: Arduino trådløst alarmsystem som bruker eksisterende sensorer: 9 trinn (med bilder)

Video: Arduino trådløst alarmsystem som bruker eksisterende sensorer: 9 trinn (med bilder)
Video: Arduino Drone Laser Alarm 2024, Juli
Anonim
Arduino trådløst alarmsystem ved bruk av eksisterende sensorer
Arduino trådløst alarmsystem ved bruk av eksisterende sensorer
Arduino trådløst alarmsystem ved bruk av eksisterende sensorer
Arduino trådløst alarmsystem ved bruk av eksisterende sensorer
Arduino trådløst alarmsystem ved bruk av eksisterende sensorer
Arduino trådløst alarmsystem ved bruk av eksisterende sensorer
Arduino trådløst alarmsystem ved bruk av eksisterende sensorer
Arduino trådløst alarmsystem ved bruk av eksisterende sensorer

Dette prosjektet kan bygges på omtrent en halv time til en pris av omtrent $ 20,00 hvis du har eksisterende 433Mhz eller 315Mhz trådløse alarmsensorer.

Det kan også være et komplett nytt prosjekt med trådløse alarmsensorer, for eksempel infrarøde bevegelsesdetektorer og sivbrytere, enkelt og billig tilgjengelig online. Bare søk etter 433Mhz eller 315Mhz sensorer som bruker PT2262 eller EV1527 koding.

Jeg er sikker på at det er mange som meg som har kjøpt et GSM/2G alarmsystem med trådløse sensorer og var fornøyd med det, men da 2G/GSM -nettverket ble slått av der jeg bor, sto jeg igjen med et alarmsystem jeg kunne ikke lenger programmere eller til og med stille tiden på den. En dag mens jeg lurte på hva jeg kunne gjøre for å gjøre alarmen min funksjonell igjen, tenkte jeg på å sjekke om en Arduino kunne motta signaler fra sensorene. Jeg snublet over en ustrubar https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ og etter noen eksperimenter bestemte jeg at jeg kunne motta signalene fra mine eksisterende sensorer. Jeg begynte prosessen med å bygge et alarmsystem som kunne erstatte min eksisterende alarm og også ville gi økt funksjonalitet. Et av problemene med den gamle alarmen var faktisk aldri å vite nøyaktig hvilken av de 25 sensorene som gikk av, ved å legge til en LCD -skjerm i min nye alarmbygg får jeg nå tekst på LCD -en som angir nøyaktig hvilken sensor som ble aktivert. Den nye alarmen kan fremdeles bevæpnes manuelt av mine eksisterende trådløse fjernkontroller og har en sanntidsklokke slik at den automatisk kan kobles til og fra på forhåndsinnstilte tidspunkt på dagen.

Rekvisita

Se ytterligere merknader på slutten for å sikre at du bruker riktig versjon av disse delene.

Arduino Uno eller lignende

433 eller 315 MHz mottakermodul for Arduino

DS3231 sanntidsklokke -modul for Arduino

I2C 16x2 LDC -modul for Arduino

Trådløse alarmreed -brytere, bevegelsessensorer og eksterne nøkkelbrikker etter ønske

Piezo summer

LED og 220 ohm motstand

Brødbrett (valgfritt, men anbefalt)

Passende strømforsyning for Arduino

Stikkledninger osv

PC med Arduino IDE installert

Grunnleggende kunnskap om Arduino

Trinn 1: Rekvisita

Rekvisita
Rekvisita
Rekvisita
Rekvisita
Rekvisita
Rekvisita

Noen bilder ovenfor av rekvisita du trenger for dette prosjektet

Trinn 2: Koble opp Ardunio og modulene som vist på bildet

Koble opp Ardunio og modulene som vist på bildet
Koble opp Ardunio og modulene som vist på bildet

Piezo mellom pin 5 på Arduino og jorden

LED mellom pin 8 på Arduino og til en 220ohm motstand og deretter til jorden

433 eller 315 Mhz mottaker, VCC til 5V, GND til jord og enten en av de 2 datapinnene til pin2 på Arduino

I2C 16X2 LCD -modul VCC til 5V, GND til bakken, SCL SDA -pinner til SCL SDA på Arduino (pin A5 er SCL, pin A4 er SDA)

DS3231 RTC -modul VCC til 5V, GND til bakken, SCL SDA -pinner til SCL SDA på Arduino (det er andre sett plassert over GND- og AREF -pinnene til de fleste Arduino -er)

Jeg vet at noen av dere ikke trenger mer informasjon enn dette og skissen vedlagt nedenfor, men jeg vil gå nærmere inn på detaljene for alle som ønsker litt mer hjelp.

Trinn 3: Legg til nødvendige biblioteker i Arduino IDE

Legg til nødvendige biblioteker i Arduino IDE
Legg til nødvendige biblioteker i Arduino IDE
Legg til nødvendige biblioteker i Arduino IDE
Legg til nødvendige biblioteker i Arduino IDE
Legg til nødvendige biblioteker i Arduino IDE
Legg til nødvendige biblioteker i Arduino IDE

Arduino Sketch for å kjøre alarmen bruker noen biblioteker som ikke allerede er installert på Arduino IDE som standard.

For å legge RCSwitch -biblioteket til Arduino IDE. Åpne Arduino IDE i toppmenyen, velg "Sketch", velg deretter "Inkluder bibliotek" fra rullegardinmenyen, og velg "Administrer biblioteker" fra den neste rullegardinmenyen. I boksen "Filtrer søket" skriver du deretter "RCSW", og deretter klikker du på installer for "rc-switch by sui77"

Detaljerte instruksjoner for å legge til biblioteker på

Mens vi er i gang må vi også legge til bibliotekene Time, TimeAlarms, DS1307RTC og LiquidCrystal_I2C, samme prosedyre som ovenfor, men søker etter navnet på hvert nytt bibliotek og installerer. Se skjermbilder ovenfor hvis du er usikker på hvilke biblioteker du skal bruke.

DS3231 sanntidsklokke er kompatibel med og bruker DS1307RTC-biblioteket.

Trinn 4: Neste må vi få kodene for sensorene dine

Neste må vi få kodene for sensorene dine
Neste må vi få kodene for sensorene dine
Neste må vi få kodene for sensorene dine
Neste må vi få kodene for sensorene dine

Jeg har gitt malen for Arduino -koden nedenfor, men du må finne verdiene for hver av sensorene dine og lime dem inn i koden.

Det er omfattende informasjon om hvordan du får disse kodene på begge disse nettstedene;

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

github.com/sui77/rc-switch/wiki

Men her er min forkortede versjon;

For å få kodene sensorene og fjernkontrollene sender, fest Arduino som montert i trinn 1 til en PC via USB -kabel og åpne Arduino IDE. Deretter går du til Arduino IDE i rullegardinlisten "Fil", deretter går du til "Eksempler", ruller nedover listen over eksempelskisser til du finner "RCSWITCH", velger deretter "ReceiveDemo_Advanced" -skissen og laster den opp til Arduino. Når skissen har lastet opp, åpner du den serielle skjermen til Arduino IDE med den fremdeles festet til PC -en din via USB. Nå utløser den første av sensorene du vil få koden for, utgangen fra RCSwitch vil vises i det serielle skjermvinduet. For dette prosjektet leter vi etter desimalkodene som er markert i skjermbilde 2. Du må utløse sensoren flere ganger på jakt etter desimalverdien som vises oftest, noen ganger vil det være forskjellige verdier blandet med sann verdi, dette er forårsaket ved interferens fra tilfeldige radiobølger eller andre enheter som opererer på samme frekvens.

Legg merke til desimalkoden til sensoren for bruk i neste trinn. Gjenta for alle sensorene og fjernkontrollene du vil bruke i prosjektet, og følg med hvilken kode som følger med hvilken sensor. Hvis du bruker fjernkontroller for å aktivere og deaktivere alarmen, må du legge merke til de forskjellige kodene for armknappen og frakoblingsknappen på hver fjernkontroll.

Trinn 5: Arduino -kodemal

Nedenfor er en kopi av min Arduino -kode som en.ino -fil kalt Wireless_Alarm. Du kan klikke på den, og den skal åpne i Arduino IDE. Jeg er ikke en programmerer, koden min er delvis satt sammen fra eksemplene i Arduino IDE, den er sannsynligvis ikke spesielt elegant, men den fungerer og har vært pålitelig over lang tid.

Husk å lagre skissen på nytt etter at du har gjort endringene for å inkludere kodene fra dine egne sensorer.

Trinn 6: Lim inn kodene du fikk i trinn 5 i Arduino -malen

Nå er trinnene for å tilpasse koden for sensorene og fjernkontrollene du bruker.

Hvis du åpner Wireless_Alarm -skissen i IDE -en din, vil du se på linje 111.

hvis (mySwitch.getReceivedValue () == 115166236) // Fob -arm -knappkode

Hvor den eksisterende koden leser 115166236, må du erstatte dette tallet med desimalkode for armknappen på fjernkontrollen som du spilte inn i trinn 5.

For eksempel hvis du i trinn 5 fikk en desimal 1154321, ville du endre linje 111 til å nå lese;

if (mySwitch.getReceivedValue () == 1154321) // Fob -armknappkode

Følg samme prosedyre for linje 125.

hvis (mySwitch.getReceivedValue () == 115166234) // Fob deaktiver knappekode

Erstatt 115166234 med koden til den eksterne fjernkontrollen for frakobling av fjernkontrollen som du registrerte i trinn 5.

Hvis du vil bruke flere fjernkontroller for å tilkoble og frakoble, kopier og lim inn linjer 111 til 136 så mange ganger som nødvendig, og endre deretter verdiene som passer til de andre fjernkontrollene, men det er best å starte med en fjernkontroll til du er sikker på at den er endret skissen fungerer.

Nå til koding av alarmsensorene i skissen på linje 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Handling for signalavsender kontorskap

Ta ut 1151640 og sett inn desimalverdien til en av alarmsensorene dine.

Deretter på linje 158.

lcd.print (F ("Kontorskap")); // skriv ut melding til lcd for å vite hvilken sensor som ble aktivert (og gå og finn innbruddstyven:)

Bytt Office -skapet til det du noen gang vil at skal vises på LCD -skjermen for den sensoren. For eksempel hvis du vil at den skal lese kitchendoor, gjør linjen slik:

lcd.print (F ("Kitchendoor")); // skriv ut melding til lcd for å vite hvilken sensor som ble aktivert (og gå og finn innbruddstyven:)

Navn bør ikke overstige 16 tegn.

Mellom linje 165 og 187 er en mal for å kopiere og lime inn så mange ganger som nødvendig til linjene rett under 187. Erstatt nummeret etter mySwitch.getReceivedValue () == med desimalen til en av de andre sensorene som du registrerte i trinn 5 og endre navn i "" i lcd.print (F ("sensornamehere")); til navnet du vil gi sensoren din.

Hvis du ikke bruker eksterne fjernkontroller for å aktivere og deaktivere alarmen, kan du bare ignorere linje 111-136 eller sette // i begynnelsen av hver av de uønskede linjene, og Arduino vil ikke lese dem.

Husk å lagre filen etter at du har gjort endringene.

Trinn 7: Last opp den endrede.inoen til din Arduino og test

Last opp den endrede.ino til din Arduino og test
Last opp den endrede.ino til din Arduino og test
Last opp den endrede.ino til din Arduino og test
Last opp den endrede.ino til din Arduino og test
Last opp den endrede.ino til din Arduino og test
Last opp den endrede.ino til din Arduino og test

Med Arduino fortsatt koblet til PC -en din via USB, last opp skissen til Arduino Board. Når opplastingen er fullført, skal displayet lese "Alarm On Disarmed". Trykk på armknappen på fjernkontrollen, og LCD -skjermen skal lese "Alarm On Armed", og LED -lampen skal lyse for å gi deg beskjed om at den er tilkoblet, nå skal du utløse en sensor mens den er tilkoblet, LCD -en skal lese Alarm, følg med et tidsstempel og plasseringen av sensoren, skal piperen lyde i 2 minutter med mindre du trykker på frakoblingsknappen. Hvis du ikke får dette resultatet, må du sjekke kodene du fikk i trinn 5 og endringene du gjorde i koden i forrige trinn, også sjekke ledningene til alle komponentene på nytt. Hvis LCD -skjermen ikke leser i det hele tatt, er det en kontrastjustering på baksiden av LCD -modulen. Når kontrasten er riktig angitt hvis LCD -skjermen fremdeles ikke leser, prøv å endre LCD -adressen fra 0x3f til 0x27 på linje 12 i skissen. LCD -feilsøking her I2C LCD -opplæring

Trinn 8: Innstilling av klokkeslett for RTC -modul og endring av arm og frakoblingstid

Forhåpentligvis var RTC -en din allerede angitt med riktig tid, men hvis du ikke åpner IDE, velger du "File" og klikker på "Eksempler" fra rullegardinmenyen, ruller ned til "DS1307RTC" og velger "SetTime" -skissen, laster ned skissen til din Arduino og den vil stille sanntidsklokken med tiden fra din PC. Du må deretter laste Wireless_Alarm -skissen på nytt til Arduino.

Wireless_Alarm.ino jeg har levert vil som standard sette alarmen til å slå seg på automatisk kl. 22.15 hver kveld og frakoble kl. 06.00 hver morgen. For å endre disse tidene, endre skissen på linje 71 og 72. Tiden er i parentes etter Alarm.alarmRepeat i formatet HH, MM, SS. endre dette til den tiden som passer deg.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // DISARM -tid

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

Så for å endre avvæpningstiden til 9.15 og armtiden til 17.30 vil koden se slik ut

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // DISARM -tid

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

Hvis du ikke vil at alarmen skal aktiveres og frakobles, settes // // foran de to linjene, og de blir ikke brukt.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // DISARM -tid

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

Tiden alarmsignalet høres kan endres ved å endre linje 22

konstant langt intervall = 120000; // for millis forsinkelse for hvor lang tid alarm lyder

Intervallet er i millisekunder, så 120000 = 120 sekunder, endring av 120000 til 30000 ville få alarmen til å lyde i 30 sekunder.

En solenoid for å kjøre en sirene, stroboskoplys, høyt volum pip osv. Kan også kobles til pin 7 eller pin 9 og vil kjøre for "intervallet" som angitt ovenfor. Husk at maksimal belastning for en Arduino -pinne ikke skal overstige 40mA.

Trinn 9: Tilleggsmerknader

Når du velger en 433 eller 315 MHz mottakermodul for Arduino, bør du velge frekvensen som passer til alarmsensorene du har tenkt å bruke. Jeg foreslår at du kjøper en modul som følger med en liten spiralformet antenne for best ytelse, alternativt øker en 17,3 mm lang rett trådantenne også ytelsen.

Med 16x2 LCD -modulen må du bruke en 4 -pinners I2C LCD for å bruke instruksjonene og koden jeg gir her, den kan lages med en 16 -pinners standard LCD, men den fungerer ikke med ledninger eller kode her.

Trådløse alarmreed -brytere, bevegelsessensorer og eksterne nøkkelbrikker bør være 433Mhz eller 315Mhz for å matche mottakeren du har tenkt å bruke, og bør bruke PT2262- eller EV1527 -koding.

Alarmen kan utvides og tilpasses, jeg har allerede lagt til et SD -kort for å registrere når sensorer utløses, endret LCD -en for å bare lyse når en knapp holdes og la til en 100dB sirene, men har ikke inkludert detaljer her for å beholde artikkelen som kort og enkelt som mulig. Jeg håper å dele arbeidet jeg har gjort med denne alarmen er til nytte for andre.

Svarer gjerne på spørsmål.

Takk.

Anbefalt: