Indholdsfortegnelse:

Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer: 9 trin (med billeder)
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer: 9 trin (med billeder)

Video: Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer: 9 trin (med billeder)

Video: Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer: 9 trin (med billeder)
Video: High Temperature Alarm DIY Kit 2024, Juli
Anonim
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer

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

Det kan også være et komplet nyt projekt med trådløse alarmsensorer, såsom infrarøde bevægelsesdetektorer og sivkontakter, let og billigt tilgængeligt online. Bare søg efter 433Mhz eller 315Mhz sensorer, der bruger PT2262 eller EV1527 kodning.

Jeg er sikker på, at der er mange mennesker som mig, der har købt et GSM/2G alarmsystem med trådløse sensorer og var tilfredse med det, men da 2G/GSM -netværket blev slukket, hvor jeg bor, stod jeg tilbage med et alarmsystem, jeg kunne ikke længere programmere eller endda indstille tiden på den. En dag mens jeg spekulerede på, hvad jeg kunne gøre for at få min alarm til at fungere igen, gik det op for mig at kontrollere, om en Arduino kunne modtage signaler fra sensorerne. Jeg faldt over en ustabil https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ og efter nogle eksperimenter besluttede jeg, at jeg kunne modtage signalerne fra mine eksisterende sensorer. Jeg begyndte processen med at bygge et alarmsystem, der kunne erstatte min eksisterende alarm og også ville give øget funktionalitet. Et af problemerne med den gamle alarm var faktisk aldrig at vide nøjagtigt, hvilken af de 25 sensorer der gik ud, ved at tilføje en LCD -skærm til min nye alarmbygning får jeg nu tekst på LCD'et, der angiver præcis hvilken sensor der blev aktiveret. Den nye alarm kan stadig manuelt tilkobles af mine eksisterende trådløse fjernbetjeninger og har et ur i realtid, så den automatisk kan til- og frakobles på forudindstillede tidspunkter på dagen.

Forbrugsvarer

Se yderligere bemærkninger til sidst for at sikre, at du bruger den korrekte version af disse dele.

Arduino Uno eller lignende

433 eller 315 MHz modtagermodul til Arduino

DS3231 Real Time Clock modul til Arduino

I2C 16x2 LDC -modul til Arduino

Trådløse alarmreedkontakter, bevægelsessensorer og fjernbetjeninger til fjernbetjening efter ønske

Piezo summer

LED & 220 ohm modstand

Brødbræt (valgfrit, men anbefales)

Egnet strømforsyning til Arduino

Jumper ledninger osv

PC med Arduino IDE installeret

Grundlæggende viden om Arduino

Trin 1: Forbrugsvarer

Forbrugsvarer
Forbrugsvarer
Forbrugsvarer
Forbrugsvarer
Forbrugsvarer
Forbrugsvarer

Nogle billeder ovenfor af de forbrugsvarer, du skal bruge til dette projekt

Trin 2: Forbind Ardunio og moduler som vist på billedet

Tråd op Ardunio og moduler som vist på billedet
Tråd op Ardunio og moduler som vist på billedet

Piezo mellem pin 5 på Arduino og jorden

LED mellem pin 8 på Arduino og til en 220ohm modstand derefter til jorden

433 eller 315 Mhz modtager, VCC til 5V, GND til jord og enten en af de 2 datapinde til pin2 på Arduino

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

DS3231 RTC -modul VCC til 5V, GND til jord, SCL SDA -ben til SCL SDA på Arduino (der er 2. sæt placeret over GND- og AREF -benene på de fleste Arduino'er)

Jeg ved, at nogle af jer ikke får brug for mere information end dette og skitsen vedhæftet nedenfor, men jeg vil gå i detaljer mere for alle, der gerne vil have lidt yderligere hjælp.

Trin 3: Føj nødvendige biblioteker til Arduino IDE

Tilføj nødvendige biblioteker til Arduino IDE
Tilføj nødvendige biblioteker til Arduino IDE
Tilføj nødvendige biblioteker til Arduino IDE
Tilføj nødvendige biblioteker til Arduino IDE
Tilføj nødvendige biblioteker til Arduino IDE
Tilføj nødvendige biblioteker til Arduino IDE

Arduino Sketch til at køre alarmen bruger nogle biblioteker, der ikke allerede er installeret på Arduino IDE som standard.

For at tilføje RCSwitch -bibliotek til Arduino IDE. Åbn Arduino IDE i topmenuen, vælg "Skitse", vælg derefter "Inkluder bibliotek" i rullemenuen, og vælg "Administrer biblioteker" fra den næste rullemenu. Skriv derefter "RCSW" i boksen "Filtrer din søgning", klik derefter på installer for "rc-switch by sui77"

Detaljerede instruktioner om tilføjelse af biblioteker på

Mens vi er i gang, skal vi også tilføje bibliotekerne kaldet Time, TimeAlarms, DS1307RTC og LiquidCrystal_I2C, samme procedure som ovenfor, men søger efter navnet på hvert nyt bibliotek og installerer. Se skærmbilleder ovenfor, hvis du er i tvivl om, hvilke biblioteker der skal bruges.

DS3231 real-time uret er kompatibelt med og bruger DS1307RTC-biblioteket.

Trin 4: Næste skal vi få koderne til dine sensorer

Næste skal vi få koderne til dine sensorer
Næste skal vi få koderne til dine sensorer
Næste skal vi få koderne til dine sensorer
Næste skal vi få koderne til dine sensorer

Jeg har angivet skabelonen for Arduino -koden herunder, men du bliver nødt til at finde værdierne for hver af dine sensorer og indsætte dem i koden.

Der er omfattende information om, hvordan man får disse koder på begge disse websteder;

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

github.com/sui77/rc-switch/wiki

Men her er min forkortede version;

For at få de koder, dine sensorer og fjernbetjeninger sender, skal du vedhæfte Arduino som samlet i trin 1 til en pc via USB -kabel og åbne Arduino IDE. Gå derefter til Arduino IDE i rullemenuen "Filer", gå derefter til "Eksempler", rul ned på listen over eksempelskitser, indtil du finder "RCSWITCH", vælg derefter "ReceiveDemo_Advanced" -skitsen og upload den til Arduino. Når skitsen med succes er uploadet, åbnes den serielle skærm på Arduino IDE med den stadig fastgjort til din pc via USB. Aktiver nu den første af de sensorer, du vil have koden til, output fra RCSwitch vises i det serielle monitorvindue. Til dette projekt leder vi efter decimalkoderne som fremhævet i skærmbillede 2. Du bliver nødt til at udløse sensoren flere gange på udkig efter den decimalværdi, der oftest vises, nogle gange vil der være forskellige værdier blandet med sand værdi, dette er forårsaget ved interferens fra tilfældige radiobølger eller andre enheder, der arbejder på samme frekvens.

Bemærk sensorens decimalkode til brug i det næste trin. Gentag for alle de sensorer og fjernbetjeninger, du vil bruge i projektet, og hold styr på, hvilken kode der følger med hvilken sensor. Hvis du bruger fjernbetjeninger til at aktivere og deaktivere alarmen, skal du notere de forskellige koder for armknappen og frakoblingsknappen på hver fjernbetjening.

Trin 5: Arduino -kodeskabelon

Nedenfor er en kopi af min Arduino -kode som en.ino -fil kaldet Wireless_Alarm. Du kan klikke på det, og det skal åbne i Arduino IDE. Jeg er ikke en programmør, min kode er delvist samlet fra eksemplerne i Arduino IDE, den er nok ikke særlig elegant, men den virker og har været pålidelig i lang tid.

Husk at gemme skitsen igen, når du har foretaget ændringerne for at inkludere koderne fra dine egne sensorer.

Trin 6: Indsæt de koder, du opnåede i trin 5, i skabelonen Arduino Sketch

Nu er trinene til at tilpasse koden til de sensorer og fjernbetjeninger, du bruger.

Hvis du åbner Wireless_Alarm -skitsen i din IDE, vil du se på linje 111.

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

Hvor den i den eksisterende kode læser 115166236, skal du erstatte dette tal med decimalkode til armknappen på din fjernbetjening, som du optog i trin 5.

For eksempel hvis du i trin 5 fik en decimal 1154321, ville du ændre linje 111 til nu at læse;

hvis (mySwitch.getReceivedValue () == 1154321) // Fob -arm -knapkode

Følg samme procedure for linje 125.

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

Erstat 115166234 koden for din fjernbetjening til fjernbetjening af fjernbetjening, som du optog i trin 5.

Hvis du vil bruge flere fjernbetjeninger til at til- og frakoble, skal du kopiere og indsætte linjer 111 til 136 så mange gange som krævet, og derefter ændre værdier, så de passer til dine andre fjernbetjeninger, men det er bedst at starte med en fjernbetjening, indtil du er sikker på, at du har ændret skitse virker.

Nu til kodning af alarmsensorerne i skitsen på linje 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Handling til signalafsender kontorskab

Tag 1151640 ud, og indsæt decimalværdien af en af dine alarmsensorer.

Derefter på linje 158.

lcd.print (F ("Kontorskab")); // udskriv besked til lcd for at vide, hvilken sensor der blev aktiveret (og gå og find indbrudstyven:)

Skift Office -skabet til det, du nogensinde vil have vist på LCD'en for den pågældende sensor. For eksempel, hvis du vil have den til at læse kitchendoor, får linjen til at se sådan ud;

lcd.print (F ("Kitchendoor")); // udskriv besked til lcd for at vide, hvilken sensor der blev aktiveret (og gå og find indbrudstyven:)

Navne må ikke overstige 16 tegn.

Mellem linje 165 og 187 er der en skabelon til at kopiere og indsætte så mange gange som nødvendigt på linjerne direkte under 187. Udskift nummeret efter mySwitch.getReceivedValue () == med decimalen for en af dine andre sensorer, som du registrerede i trin 5 og skift navn inden for "" i lcd.print (F ("sensornamehere")); til det navn, du vil give din sensor.

Hvis du ikke bruger fjernbetjeninger til at aktivere og deaktivere din alarm, kan du bare ignorere linjer 111-136 eller sætte // i starten af hver af de uønskede linjer, og Arduino vil ikke læse dem.

Husk at gemme filen, når du har foretaget dine ændringer.

Trin 7: Upload den ændrede.ino til din Arduino og test

Upload den ændrede.ino til din Arduino og test
Upload den ændrede.ino til din Arduino og test
Upload den ændrede.ino til din Arduino og test
Upload den ændrede.ino til din Arduino og test
Upload den ændrede.ino til din Arduino og test
Upload den ændrede.ino til din Arduino og test

Med Arduino stadig forbundet til din pc via USB, uploades skitsen til Arduino Board. Når overførslen er gennemført, skal LCD'en læse "Alarm On Disarmed". Tryk på armknappen på din fjernbetjening, og LCD'et skal vise "Alarm tilkoblet", og LED'en skal lyse for at fortælle dig, at den er tilkoblet, udløs nu en sensor, mens den er tilkoblet, LCD skal læse Alarm, følg med et tidsstempel og placeringen af sensoren, skal bipperen lyde i 2 minutter, medmindre du trykker på frakoblingsknappen. Hvis du ikke får dette resultat, skal du kontrollere de koder, du fik i trin 5, og de ændringer, du foretog i koden i det foregående trin, også kontrollere ledningerne til alle komponenter igen. Hvis LCD'en slet ikke læser, er der en kontrastjustering på bagsiden af LCD -modulet. Når kontrasten er indstillet korrekt, hvis LCD -skærmen stadig ikke læser, kan du prøve at ændre LCD -adressen fra 0x3f til 0x27 på linje 12 i skitsen. LCD fejlfinding her I2C LCD tutorial

Trin 8: Indstilling af klokkeslæt på RTC -modul og ændring af til- og frakoblingstider

Forhåbentlig var din RTC allerede indstillet med det korrekte tidspunkt, men hvis IDE ikke åbnes, skal du vælge 'File' og klikke på 'Eksempler' i rullemenuen, rulle ned til 'DS1307RTC' og vælge 'SetTime' skitse, downloade skitsen til din Arduino, og det indstiller realtidsuret med tiden fra din pc. Du skal derefter genindlæse Wireless_Alarm -skitsen til din Arduino.

Den Wireless_Alarm.ino, jeg har leveret, vil som standard indstille alarmen til at aktivere automatisk kl. 22.15 hver nat og frakoble kl. 6.00 hver morgen. Hvis du vil ændre disse tider, skal du ændre skitsen på linje 71 og 72. Tiden er i parentes efter Alarm.alarmRepeat i formatet HH, MM, SS. ændre dette til den tid, der passer dig.

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

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

Så for at ændre afvæbningstiden til 9.15 og armtiden til 17.30 vil koden se sådan ud

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

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

Hvis du ikke vil have alarmen til og fra, skal du automatisk sætte // foran de 2 linjer, og de vil ikke blive brugt.

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

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

Det tidspunkt, hvor alarmsignalet lyder, kan ændres ved at ændre linje 22

konstant langt interval = 120000; // for millis forsinkelse for alarmenes længde

Intervallet er i millisekunder, så 120000 = 120 sekunder, ændring af 120000 til 30000 ville få alarmen til at lyde i 30 sekunder.

En solenoid til at køre en sirene, stroboskoplys, højvolumen bipper osv. Kan også forbindes til pin 7 eller pin 9 og vil køre i "intervallet" som angivet ovenfor. Husk den maksimale belastning for en Arduino pin ikke må overstige 40mA.

Trin 9: Yderligere bemærkninger

Når du vælger et 433 eller 315 MHz modtagermodul til Arduino, skal du vælge frekvensen, der matcher de alarmsensorer, du agter at bruge. Jeg foreslår, at du køber et modul, der leveres med en lille spiralformet antenne for den bedste ydeevne, alternativt øger en 17,3 mm lang lige trådantenne også ydeevnen.

Med 16x2 LCD -modulet skal du bruge et 4 -polet I2C LCD for at bruge instruktionerne og koden, jeg giver her, det kan laves med et 16 -pins standard LCD, men det fungerer ikke med ledningerne eller koden her.

Trådløse alarmreedkontakter, bevægelsessensorer og fjernbetjeninger til nøglen skal være 433Mhz eller 315Mhz for at matche den receiver, du har til hensigt at bruge, og bør bruge PT2262- eller EV1527 -kodning.

Alarmen kan udvides og tilpasses, jeg har allerede tilføjet et SD -kort til optagelse, når sensorer udløses, ændret LCD'et til kun at lyse, når der holdes en knap og tilføjede en 100dB sirene, men har ikke inkluderet detaljer her for at beholde artiklen som kort og enkelt som muligt. Jeg håber at dele det arbejde, jeg har udført med denne alarm, er til nogen nytte for andre.

Besvarer gerne alle spørgsmål.

Tak.

Anbefalede: