Sadržaj:

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

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

Video: Arduino bežični alarmni sistem pomoću postojećih senzora: 9 koraka (sa slikama)
Video: Wireless Water level Controller | Pumping Motor Controller | Near Zero Installation | EzzTank 2024, Juli
Anonim
Arduino bežični alarmni sistem pomoću postojećih senzora
Arduino bežični alarmni sistem pomoću postojećih senzora
Arduino bežični alarmni sistem pomoću postojećih senzora
Arduino bežični alarmni sistem pomoću postojećih senzora
Arduino bežični alarmni sistem pomoću postojećih senzora
Arduino bežični alarmni sistem pomoću postojećih senzora
Arduino bežični alarmni sistem pomoću postojećih senzora
Arduino bežični alarmni sistem 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 senzore za bežični alarm od 433 MHz ili 315 MHz.

To može biti i potpuno novi projekt s bežičnim alarmnim senzorima, poput infracrvenih detektora pokreta i trska, lako i jeftino dostupnih 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 sistem sa bežičnim senzorima i bili zadovoljni s tim, međutim, kada je 2G/GSM mreža isključena tamo gdje živim, ostao mi je alarmni sistem koji sam mogao više ne programiraju niti čak postavljaju vrijeme na njemu. Jednog dana, dok sam se pitao što bih mogao učiniti kako bi moj alarm ponovo postao 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 sistema koji bi mogao zamijeniti moj postojeći alarm i koji bi također pružio povećanu funkcionalnost. Jedan od problema sa starim alarmom nikada nije bio tačan saznanje koji je od 25 senzora isključen, dodavanjem LCD ekrana u novu verziju alarma sada dobivam tekst na LCD -u koji pokazuje koji je senzor tačno 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 postavljeno doba dana.

Supplies

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

Arduino Uno ili slično

Modul prijemnika 433 ili 315 MHz za Arduino

DS3231 Modul sata u realnom vremenu za Arduino

I2C 16x2 LDC modul za Arduino

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

Piezo zujalica

LED i 220 ohmski otpornik

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

Prikladno napajanje za Arduino

Kratkospojne žice itd

PC sa instaliranim Arduino IDE -om

Osnovno znanje o Arduinu

Korak 1: Potrošni materijal

Supplies
Supplies
Supplies
Supplies
Supplies
Supplies

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 pinova GND i AREF 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 biblioteke u Arduino IDE

Dodajte potrebne biblioteke u Arduino IDE
Dodajte potrebne biblioteke u Arduino IDE
Dodajte potrebne biblioteke u Arduino IDE
Dodajte potrebne biblioteke u Arduino IDE
Dodajte potrebne biblioteke u Arduino IDE
Dodajte potrebne biblioteke u Arduino IDE

Arduino Sketch za pokretanje alarma koristi neke biblioteke koje prema zadanim postavkama već nisu instalirane na Arduino IDE -u.

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

Detaljna uputstva o dodavanju biblioteka na

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

Sat za realno vrijeme 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 lokacije;

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" listajte prema dolje popis primjera skica dok ne pronađete "RCSWITCH", zatim odaberite skicu "ReceiveDemo_Advanced" i postavite je na Arduino. Nakon što se skica uspješno otvori, 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 talasa ili drugih uređaja koji rade na istoj frekvenciji.

Zabilježite decimalni kod senzora za upotrebu 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 priveske za ključeve za aktiviranje i deaktiviranje alarma, morat ćete zapamtiti različite kodove za dugme za aktiviranje i dugme za deaktiviranje na svakom daljinskom upravljaču.

Korak 5: Arduino predložak koda

Ispod je kopija mog Arduino koda kao.ino datoteke pod nazivom Wireless_Alarm. Možete kliknuti na nju i trebala bi se otvoriti u Arduino IDE -u. Nisam programer moj kôd je djelomično sastavljen iz primjera pronađenih u Arduino IDE -u, vjerovatno nije posebno elegantan, ali radi i pouzdan je tokom dužeg vremenskog perioda.

Ne zaboravite ponovo sačuvati skicu nakon što unesete promjene tako da uključuju kodove sa vaših vlastitih senzora.

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

Sada koraci za prilagođavanje 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, trebate zamijeniti taj broj decimalnim kodom za dugme na ruci vašeg daljinskog privjeska za ključeve koje ste snimili u 5. koraku.

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

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

Slijedite istu proceduru za liniju 125.

if (mySwitch.getReceivedValue () == 115166234) // Kod dugmeta za deaktiviranje deaktiviranja

Zamijenite 115166234 kodom vašeg dugmeta za deaktiviranje daljinskog upravljača koji ste snimili u 5. koraku.

Ako želite koristiti više udaljenih privjesaka za naoružavanje i razoružavanje, kopirajte i zalijepite redove od 111 do 136 koliko god je potrebno tada 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 vaših alarmnih senzora.

Zatim na liniji 158.

lcd.print (F ("Uredski ormar")); // odštampajte poruku na LCD -u da znate koji je senzor aktiviran (i idite i pronađite provalnika:)

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

lcd.print (F ("Kuhinjsko dvorište")); // odštampajte poruku na LCD -u da znate koji je senzor aktiviran (i idite i pronađite provalnika:)

Imena ne smiju prelaziti 16 znakova.

Između redova 165 i 187 nalazi se predložak za kopiranje i lijepljenje onoliko puta koliko je potrebno u redove neposredno ispod 187. Zamijenite broj iza mySwitch.getReceivedValue () == decimalnim brojem jednog od vaših drugih senzora koji ste zabilježili u koraku 5 i promijenite ime 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 svake od neželjenih linija i Arduino ih neće pročitati.

Ne zaboravite spremiti datoteku nakon što unesete promjene.

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 povezan s računarom putem USB -a, prenesite skicu na Arduino ploču. Nakon što se prijenos uspješno završi, na LCD -u bi trebalo biti prikazano "Alarm On Disarmed". Pritisnite dugme za aktiviranje na daljinskom upravljaču i na LCD -u bi trebalo biti prikazano "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 lokaciji senzora, biper bi trebao zvučati 2 minute, osim ako ne pritisnete dugme za deaktiviranje. Ako ne dobijete ovaj rezultat, ponovo 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 podešen ako LCD i dalje ne čita, pokušajte promijeniti adresu LCD -a sa 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 svoj 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 i isključuje u 6.00 svakog jutra. Da biste promijenili ovo vrijeme, izmijenite skicu u redovima 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 i vrijeme uključivanja na 17.30, kod 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 reda 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 promjenom linije 22

const long interval = 120000; // za milis kašnjenje za vrijeme zvuka alarma

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

Elektromagnet za pokretanje sirene, stroboskopsko svjetlo, zvučni signal velike jačine zvuka 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 sa malim spiralnim spiralnim antenama za najbolje performanse, alternativno 17,3 mm dugačke antene sa žicom takođe povećavaju performanse.

Sa 16x2 LCD modulom morate koristiti 4 -pinski I2C LCD da biste koristili upute i kôd koje ovdje dajem, mogao bi se napraviti 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 trebaju biti 433Mhz ili 315Mhz kako bi odgovarali prijemniku koji namjeravate koristiti i trebali bi koristiti PT2262 ili EV1527 kodiranje.

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 dugme i dodao sirenu od 100 dB, ali ovdje nisam uključio detalje kako bih članak zadržao kao što je moguće 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čuje se: