Sadržaj:

Arduino bežični alarmni sustav pomoću postojećih senzora: 9 koraka (sa slikama)
Arduino bežični alarmni sustav pomoću postojećih senzora: 9 koraka (sa slikama)

Video: Arduino bežični alarmni sustav pomoću postojećih senzora: 9 koraka (sa slikama)

Video: Arduino bežični alarmni sustav pomoću postojećih senzora: 9 koraka (sa slikama)
Video: DM - Predavanje 3 2024, Prosinac
Anonim
Arduino bežični alarmni sustav pomoću postojećih senzora
Arduino bežični alarmni sustav pomoću postojećih senzora
Arduino bežični alarmni sustav pomoću postojećih senzora
Arduino bežični alarmni sustav pomoću postojećih senzora
Arduino bežični alarmni sustav pomoću postojećih senzora
Arduino bežični alarmni sustav pomoću postojećih senzora
Arduino bežični alarmni sustav pomoću postojećih senzora
Arduino bežični alarmni sustav pomoću postojećih senzora

Ovaj projekt može se izgraditi za oko pola sata po cijeni od oko 20,00 USD ako imate postojeće bežične alarmne senzore od 433 MHz ili 315 MHz.

To također može biti potpuno novi projekt s bežičnim alarmnim senzorima, poput infracrvenih detektora pokreta i trska, koji su lako i jeftino dostupni na mreži. Samo potražite senzore od 433 MHz ili 315 MHz koji koriste kodiranje PT2262 ili EV1527.

Siguran sam da postoji mnogo ljudi poput mene koji su kupili GSM/2G alarmni sustav s bežičnim senzorima i bili zadovoljni s njim, no kad je 2G/GSM mreža isključena tamo gdje živim, ostao mi je alarmni sustav koji sam mogao više ne programira niti čak postavlja vrijeme. Jednog dana, dok sam se pitao što bih mogao učiniti da mi alarm ponovno postane funkcionalan, palo mi je na pamet provjeriti može li Arduino primati signale sa senzora. Naišao sam na instuctable https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ i nakon nekog eksperimentiranja utvrdio da mogu primiti signale sa svojih postojećih senzora. Započeo sam proces izgradnje alarmnog sustava koji bi mogao zamijeniti moj postojeći alarm i također pružiti povećanu funkcionalnost. Jedan od problema sa starim alarmom nikada nije bilo točno znati koji se od 25 senzora isključio, dodavanjem LCD ekrana u moju novu verziju alarma sada dobivam tekst na LCD -u koji pokazuje točno koji je senzor aktiviran. Novi alarm i dalje se može ručno aktivirati pomoću mojih postojećih bežičnih privjesaka za ključeve i ima sat u stvarnom vremenu koji mu omogućuje automatsko aktiviranje i deaktiviranje u unaprijed zadano doba dana.

Pribor

Pogledajte dodatne napomene na kraju kako biste bili sigurni da koristite ispravnu verziju ovih dijelova.

Arduino Uno ili slično

433 ili 315 MHz prijemni modul za Arduino

DS3231 Modul sata u stvarnom vremenu za Arduino

I2C 16x2 LDC modul za Arduino

Bežični alarmni prekidači, senzori pokreta i daljinski privjesci po želji

Piezo zujalica

LED i 220 ohmski otpornik

Oglasna ploča (izborno, ali preporučeno)

Prikladno napajanje za Arduino

Kratkospojne žice itd

Računalo s instaliranim Arduino IDE -om

Osnovno znanje o Arduinu

Korak 1: Opskrba

Pribor
Pribor
Pribor
Pribor
Pribor
Pribor

Neke gornje slike materijala koji će vam trebati za ovaj projekt

Korak 2: Povežite Ardunio i module kako je prikazano na slici

Povežite Ardunio i module kako je prikazano na slici
Povežite Ardunio i module kako je prikazano na slici

Piezo između pina 5 Arduina i zemlje

LED između pina 8 Arduina i otpornika od 220 ohma pa na uzemljenje

Prijemnik od 433 ili 315 Mhz, VCC na 5V, GND na masu i jedan od 2 pina za prijenos podataka na pin2 Arduina

I2C 16X2 LCD modul VCC na 5V, GND na masu, SCL SDA pinovi na SCL SDA Arduina (pin A5 je SCL, pin A4 je SDA)

DS3231 RTC modul VCC na 5V, GND na masu, SCL SDA pinovi na SCL SDA Arduina (postoji drugi set koji se nalazi iznad GND i AREF pinova većine Arduina)

Znam da nekima od vas neće trebati više informacija osim ove i skice u prilogu u nastavku, ali ići ću u neke detalje za svakoga tko bi želio dodatnu pomoć.

Korak 3: Dodajte potrebne knjižnice u Arduino IDE

Dodajte potrebne knjižnice u Arduino IDE
Dodajte potrebne knjižnice u Arduino IDE
Dodajte potrebne knjižnice u Arduino IDE
Dodajte potrebne knjižnice u Arduino IDE
Dodajte potrebne knjižnice u Arduino IDE
Dodajte potrebne knjižnice u Arduino IDE

Arduino Sketch za pokretanje alarma koristi neke knjižnice koje prema zadanim postavkama već nisu instalirane na Arduino IDE.

Za dodavanje knjižnice RCSwitch u Arduino IDE. Otvorite Arduino IDE na gornjem izborniku, odaberite "Sketch", zatim na padajućem izborniku odaberite "Include library", a na sljedećem padajućem izborniku odaberite "Manage libraries". Zatim u okvir "Filtriraj pretraživanje" upišite "RCSW", sljedeći klik na instalaciju za "rc-switch by sui77"

Detaljne upute o dodavanju knjižnica na

Dok smo već tu, također moramo dodati knjižnice pod nazivom Time, TimeAlarms, DS1307RTC i LiquidCrystal_I2C, isti postupak kao gore, ali traženje naziva svake nove knjižnice i instalacija. Pogledajte gornje snimke zaslona ako niste sigurni koje biblioteke koristiti.

Sat realnog vremena DS3231 kompatibilan je i koristi biblioteku DS1307RTC.

Korak 4: Zatim moramo nabaviti kodove za vaše senzore

Zatim moramo nabaviti kodove za vaše senzore
Zatim moramo nabaviti kodove za vaše senzore
Zatim moramo nabaviti kodove za vaše senzore
Zatim moramo nabaviti kodove za vaše senzore

U nastavku sam dao predložak Arduino koda, ali ćete morati pronaći vrijednosti za svaki od vaših senzora i zalijepiti ih u kôd.

Postoje opsežne informacije o tome kako doći do ovih kodova na obje ove stranice;

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

github.com/sui77/rc-switch/wiki

Međutim, evo moje skraćene verzije;

Da biste dobili kodove koje šalju vaši senzori i daljinski privjesci za ključeve, priključite Arduino sastavljen u koraku 1 na računalo putem USB kabela i otvorite Arduino IDE. Zatim u Arduino IDE -u idite na padajući izbornik "Datoteka", a zatim idite na "Primjeri" pomičite se prema popisu primjera skica dok ne pronađete "RCSWITCH", zatim odaberite skicu "ReceiveDemo_Advanced" i prenesite je na Arduino. Nakon što se skica uspješno prenese, otvorite serijski monitor Arduino IDE -a sa još uvijek priključenim na računalo putem USB -a. Sada pokrenite prvi od senzora za koji želite dobiti kôd, izlaz iz RCSwitch će se pojaviti u prozoru serijskog monitora. Za ovaj projekt tražimo decimalne kodove označene na snimci zaslona 2. Morat ćete više puta aktivirati senzor tražeći decimalnu vrijednost koja se najčešće pojavljuje, ponekad će se različite vrijednosti pomiješati s pravom vrijednošću, što je uzrokovano ometanjem slučajnih radio valova ili drugih uređaja koji rade na istoj frekvenciji.

Zabilježite decimalni kod senzora za uporabu u sljedećem koraku. Ponovite za sve senzore i daljinske privjeske za ključeve koje želite koristiti u projektu, prateći koji kôd ide uz koji senzor. Ako koristite privjeske za ključeve za aktiviranje i deaktiviranje alarma, morat ćete zapamtiti različite kodove za gumb za aktiviranje i gumb za deaktiviranje svakog daljinskog upravljača.

Korak 5: Arduino predložak koda

Ispod je kopija mog Arduino koda kao.ino datoteke pod nazivom Wireless_Alarm. Možete ga kliknuti i trebao bi se otvoriti u Arduino IDE -u. Ja nisam programer moj kôd je djelomično sastavljen iz primjera pronađenih u Arduino IDE -u, vjerojatno nije osobito elegantan, ali radi i pouzdan je kroz duže vrijeme.

Ne zaboravite ponovno spremiti skicu nakon što unesete izmjene kako biste uključili kodove sa svojih vlastitih senzora.

Korak 6: Zalijepite kodove koje ste dobili u 5. koraku u Arduino skicu predloška

Sada koraci za prilagodbu koda za senzore i udaljene privjeske za ključeve koje koristite.

Ako otvorite skicu Wireless_Alarm u svom IDE -u, vidjet ćete u retku 111.

if (mySwitch.getReceivedValue () == 115166236) // Kod dugmeta Fob arm

Tamo gdje u postojećem kodu piše 115166236, morate zamijeniti taj broj decimalnim kodom za gumb ruke na vašem daljinskom privjesku za ključeve koji ste snimili u 5. koraku.

Na primjer, ako ste u koraku 5 dobili decimalni broj 1154321, promijenili biste redak 111 u sada čitanje;

if (mySwitch.getReceivedValue () == 1154321) // Kod dugmeta Fob arm

Slijedite isti postupak za redak 125.

if (mySwitch.getReceivedValue () == 115166234) // Kôd gumba za deaktiviranje oružja

Zamijenite 115166234 kodom gumba za deaktiviranje daljinskog upravljača koji ste snimili u 5. koraku.

Ako želite upotrijebiti više udaljenih privjesa za naoružavanje i razoružavanje, kopirajte i zalijepite retke od 111 do 136 onoliko puta koliko je potrebno, a zatim promijenite vrijednosti tako da odgovaraju drugim udaljenim privjescima za ključeve, ali najbolje je da počnete s jednim daljinskim upravljačem dok ne budete sigurni da ste izmijenili skica radi.

Sada kodiramo senzore alarma na skici u retku 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Radnja za uredski ormar pošiljatelja signala

Izvadite 1151640 i umetnite decimalnu vrijednost jednog od svojih alarmnih senzora.

Zatim na liniji 158.

lcd.print (F ("Uredski ormar")); // ispisati poruku na LCD -u kako biste znali koji je senzor aktiviran (i idite i pronađite provalnika:)

Promijenite Office ormar na ono što želite da se prikazuje na LCD -u za taj senzor. Na primjer, ako želite da čita kuhinjska vrata, neka linija izgleda ovako;

lcd.print (F ("Kuhinjsko dvorište")); // ispisati poruku na LCD -u kako biste znali koji je senzor aktiviran (i idite i pronađite provalnika:)

Imena ne smiju prelaziti 16 znakova.

Između redaka 165 i 187 nalazi se predložak za kopiranje i lijepljenje onoliko puta koliko je potrebno u retke izravno ispod 187. Zamijenite broj iza mySwitch.getReceivedValue () == decimalnim mjestom jednog od vaših drugih senzora koje ste snimili u koraku 5 i promijenite naziv unutar "" u lcd.print (F ("ime senzora ovdje")); na ime koje želite dati svom senzoru.

Ako ne koristite daljinske privjeske za ključeve za aktiviranje i deaktiviranje alarma, možete jednostavno zanemariti retke 111-136 ili staviti // na početak svakog od neželjenih redaka, a Arduino ih neće pročitati.

Ne zaboravite spremiti datoteku nakon što ste izvršili izmjene.

Korak 7: Prenesite izmijenjeni.ino na svoj Arduino i testirajte

Prenesite izmijenjeni.ino na svoj Arduino i testirajte
Prenesite izmijenjeni.ino na svoj Arduino i testirajte
Prenesite izmijenjeni.ino na svoj Arduino i testirajte
Prenesite izmijenjeni.ino na svoj Arduino i testirajte
Prenesite izmijenjeni.ino na svoj Arduino i testirajte
Prenesite izmijenjeni.ino na svoj Arduino i testirajte

Dok je Arduino i dalje spojen na računalo putem USB -a, prenesite skicu na Arduino ploču. Nakon što je prijenos uspješno završen, LCD bi trebao glasiti "Alarm On Disarmed". Pritisnite gumb za aktiviranje na daljinskom upravljaču i na LCD -u bi trebalo biti ispisano "Alarm On Armed", a LED bi trebao svijetliti kako bi vas obavijestio da je naoružan, sada aktivirajte senzor dok je naoružan, LCD bi trebao čitati Alarm nakon čega slijedi vremenska oznaka i na mjestu senzora, biper bi trebao zvučati 2 minute, osim ako ne pritisnete gumb za deaktiviranje. Ako ne dobijete ovaj rezultat, ponovno provjerite kodove koje ste dobili u koraku 5 i promjene koje ste unijeli u kôd u prethodnom koraku, također provjerite ožičenje svih komponenti. Ako LCD uopće ne čita, postoji podešavanje kontrasta na stražnjoj strani LCD modula. Nakon što je kontrast ispravno postavljen ako LCD i dalje ne čita, pokušajte promijeniti adresu LCD -a s 0x3f u 0x27 u retku 12 na skici. Rješavanje problema s LCD -om ovdje I2C LCD vodič

Korak 8: Postavljanje vremena na modulu RTC i promjena vremena uključivanja i isključivanja

Nadamo se da je vaš RTC već postavljen s ispravnim vremenom, ali ako niste otvorili IDE, odaberite "Datoteka", a zatim na padajućem izborniku kliknite "Primjeri", pomaknite se dolje do "DS1307RTC" i odaberite skicu "SetTime", preuzmite skicu u Arduino i on će postaviti sat u stvarnom vremenu s vremenom s vašeg računala. Zatim ćete morati ponovo učitati Wireless_Alarm skicu na svoj Arduino.

Wireless_Alarm.ino koji sam dao će prema zadanim postavkama postaviti alarm da se automatski uključuje svaku noć u 22.15 sati, a svako jutro u 6.00 sati. Da biste promijenili ta vremena, izmijenite skicu u retcima 71 i 72. Vrijeme je u zagradama nakon Alarm.alarmRepeat u formatu HH, MM, SS. promijenite ovo u bilo koje vrijeme koje vam odgovara.

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

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

Dakle, da biste promijenili vrijeme razoružavanja na 9.15 sati, a vrijeme uključivanja na 17.30 sati, kôd bi izgledao ovako

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

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

Ako ne želite da se alarm aktivira i deaktivira, automatski // postavite ispred 2 retka i oni se neće koristiti.

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

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

Vrijeme za koje se oglašava zvučni signal alarma može se promijeniti mijenjanjem retka 22

const dugi interval = 120000; // za milis kašnjenje za duljinu vremena zvukova alarma

Interval je u milisekundama pa je 120000 = 120 sekundi, promjenom 120000 na 30000 alarm bi se oglasio 30 sekundi.

Elektromagnet za pokretanje sirene, stroboskopskog svjetla, jakog zvučnog signala itd. Također se može spojiti na pin 7 ili pin 9 i radit će za "interval" kako je gore navedeno. Imajte na umu da maksimalno opterećenje za Arduino pin ne smije prelaziti 40mA.

Korak 9: Dodatne napomene

Prilikom odabira prijemnog modula od 433 ili 315 MHz za Arduino trebali biste odabrati frekvenciju koja odgovara senzorima alarma koje namjeravate koristiti. Predlažem da kupite modul koji dolazi s malim spiralnim spiralnim antenama za najbolje performanse, alternativno 17,3 mm dugačke žičane antene također povećavaju performanse.

S 16x2 LCD modulom morate koristiti 4 -pinski I2C LCD da biste koristili upute i kôd koje ovdje dajem. Mogao bi se izraditi sa 16 -pinskim standardnim LCD -om, ali ovdje neće raditi s ožičenjem ili kodom.

Bežični alarmni prekidači, senzori pokreta i daljinski privjesci za ključeve trebali bi biti 433Mhz ili 315Mhz kako bi odgovarali prijemniku koji namjeravate koristiti i trebali bi koristiti kodiranje PT2262 ili EV1527.

Alarm se može proširiti i prilagoditi, već sam dodao SD karticu za snimanje pri aktiviranju senzora, izmijenio LCD da svijetli samo kada se pritisne gumb i dodao sirenu od 100 dB, ali ovdje nisam uključio pojedinosti kako bih članak zadržao kao što kraće i jednostavnije. Nadam se da će dijeljenje posla koji sam obavio na ovom alarmu biti od koristi drugima.

Rado odgovaram na sva pitanja.

Hvala.

Preporučeni: