Talaan ng mga Nilalaman:

Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor: 9 Mga Hakbang (na may Mga Larawan)
Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor: 9 Mga Hakbang (na may Mga Larawan)

Video: Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor: 9 Mga Hakbang (na may Mga Larawan)

Video: Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor: 9 Mga Hakbang (na may Mga Larawan)
Video: How to make Burglar Alarm Circuit? 2024, Hulyo
Anonim
Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor
Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor
Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor
Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor
Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor
Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor
Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor
Arduino Wireless Alarm System Gamit ang Mga Umiiral na Sensor

Ang proyektong ito ay maaaring itayo sa halos kalahating oras sa halagang $ 20.00 kung mayroon kang mga 433Mhz o 315Mhz wireless alarm sensor.

Maaari din itong maging isang kumpletong bagong proyekto na may mga wireless alarm sensor, tulad ng mga infrared motion detector at reed switch, madali at murang magagamit sa online. Maghanap lang para sa 433Mhz o 315Mhz sensor na gumagamit ng PT2262 o EV1527 coding.

Sigurado ako na maraming mga tao tulad ng sa akin na bumili ng isang sistema ng alarma GSM / 2G na may mga wireless sensor at masaya dito, subalit nang ang 2G / GSM network ay naka-off kung saan ako nakatira, naiwan ako ng isang alarm system na kaya ko hindi na programa o kahit na itakda ang oras dito. Isang araw habang iniisip kung ano ang maaari kong gawin upang muling magamit ang aking alarma, naisip kong suriin kung ang isang Arduino ay maaaring makatanggap ng mga signal mula sa mga sensor. Nadapa ako sa isang hindi maitatag na https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ at pagkatapos ng ilang eksperimento na natukoy na makakatanggap ako ng mga signal mula sa aking mayroon nang mga sensor. Sinimulan ko ang proseso upang bumuo ng isang sistema ng alarma na maaaring palitan ang aking mayroon nang alarma at magbibigay din ng nadagdagan na pag-andar. Ang isa sa mga isyu sa lumang alarma ay hindi talaga nalalaman nang eksakto kung alin sa 25 sensor ang nawala, sa pamamagitan ng pagdaragdag ng isang LCD screen sa aking bagong build ng alarma nakakakuha ako ngayon ng teksto sa LCD na nagpapahiwatig nang eksakto kung aling sensor ang naaktibo. Ang bagong alarma ay maaari pa ring manu-manong armado ng aking mayroon nang mga wireless keyfobs at mayroong isang real time na orasan upang payagan itong awtomatikong braso at mag-disarm sa mga naka-preset na oras ng araw.

Mga gamit

Tingnan ang mga karagdagang tala sa dulo upang matiyak na ginagamit mo ang tamang bersyon ng mga bahaging ito.

Arduino Uno o katulad

433 o 315 MHz module ng tatanggap para sa Arduino

DS3231 Real Time Clock module para sa Arduino

I2C 16x2 LDC module para sa Arduino

Ang mga switch ng Wireless Alarm reed, sensor ng paggalaw at remote key fobs ayon sa ninanais

Piezo buzzer

LED & 220 ohm risistor

Breadboard (opsyonal ngunit inirerekomenda)

Angkop na supply ng kuryente para sa Arduino

Jumper wires atbp

Ang PC na may naka-install na Arduino IDE

Pangunahing kaalaman sa Arduino

Hakbang 1: Mga Panustos

Mga gamit
Mga gamit
Mga gamit
Mga gamit
Mga gamit
Mga gamit

Ang ilang mga imahe sa itaas ng mga suplay na kakailanganin mo para sa proyektong ito

Hakbang 2: Wire Up ang Ardunio at Mga Modyul Tulad ng Ipinapakita sa Imahe

Wire Up ang Ardunio at Mga Modyul Tulad ng Ipinapakita sa Imahe
Wire Up ang Ardunio at Mga Modyul Tulad ng Ipinapakita sa Imahe

Piezo sa pagitan ng pin 5 ng Arduino at lupa

LED sa pagitan ng pin 8 ng Arduino at sa isang 220ohm risistor pagkatapos ay sa lupa

433 o 315 Mhz receiver, VCC hanggang 5V, GND sa lupa at alinman sa isa sa 2 data pin sa pin2 ng Arduino

I2C 16X2 LCD Module VCC hanggang 5V, GND sa lupa, SCL SDA pin sa SCL SDA ng Arduino (ang pin A5 ay SCL, ang pin A4 ay SDA)

Ang DS3231 RTC Module VCC hanggang 5V, GND sa lupa, SCL SDA pin sa SCL SDA ng Arduino (mayroong ika-2 set na matatagpuan sa itaas ng mga pin ng GND at AREF ng karamihan sa Arduino)

Alam kong ang ilan sa inyo ay hindi na mangangailangan ng impormasyon kaysa sa ito at ang sketch na nakakabit sa ibaba ngunit magtutungo ako sa ilang karagdagang detalye para sa sinumang nais ng kaunting karagdagang tulong.

Hakbang 3: Magdagdag ng Mga Kinakailangan na Aklatan sa Arduino IDE

Idagdag ang Mga Kinakailangan na Aklatan sa Arduino IDE
Idagdag ang Mga Kinakailangan na Aklatan sa Arduino IDE
Idagdag ang Mga Kinakailangan na Aklatan sa Arduino IDE
Idagdag ang Mga Kinakailangan na Aklatan sa Arduino IDE
Idagdag ang Mga Kinakailangan na Aklatan sa Arduino IDE
Idagdag ang Mga Kinakailangan na Aklatan sa Arduino IDE

Ang Arduino Sketch upang patakbuhin ang alarma ay gumagamit ng ilang mga aklatan na hindi pa naka-install sa Arduino IDE bilang default.

Upang magdagdag ng RCSwitch library sa Arduino IDE. Buksan ang Arduino IDE sa tuktok na menu piliin ang "Sketch" pagkatapos mula sa drop down piliin ang "Isama ang library" at mula sa susunod na drop down piliin ang "Manage libraries". Pagkatapos sa "Filter ang iyong paghahanap" uri ng kahon na "RCSW", susunod na pag-click sa pag-install para sa "rc-switch by sui77"

Mga detalyadong tagubilin sa pagdaragdag ng mga aklatan sa

Habang narito tayo kailangan din nating idagdag ang mga aklatan na tinatawag na Time, TimeAlarms, DS1307RTC at LiquidCrystal_I2C, parehong pamamaraan tulad ng nasa itaas ngunit naghahanap para sa pangalan ng bawat bagong library at pag-install. Tingnan ang mga shot ng screen sa itaas kung hindi sigurado kung aling mga aklatan ang gagamitin.

Ang DS3231 real-time na orasan ay katugma at ginagamit ang DS1307RTC library.

Hakbang 4: Susunod na Kailangan Namin Upang Makuha ang Mga Code para sa Iyong Mga Sensor

Susunod na Kailangan Namin Upang Makuha ang Mga Code para sa Iyong Mga Sensor
Susunod na Kailangan Namin Upang Makuha ang Mga Code para sa Iyong Mga Sensor
Susunod na Kailangan Namin Upang Makuha ang Mga Code para sa Iyong Mga Sensor
Susunod na Kailangan Namin Upang Makuha ang Mga Code para sa Iyong Mga Sensor

Naibigay ko ang template ng Arduino code sa ibaba ngunit kakailanganin mong hanapin ang mga halaga para sa bawat isa sa iyong mga sensor at i-paste ang mga ito sa code.

Mayroong malawak na impormasyon sa kung paano makukuha ang mga code na ito sa parehong mga site na ito;

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

github.com/sui77/rc-switch/wiki

Gayunpaman narito ang aking pinaikling bersyon;

Upang makuha ang mga code na ipinapadala ng iyong mga sensor at mga malalayong key fobs, ikabit ang Arduino na binuo sa hakbang 1 sa isang PC sa pamamagitan ng USB cable at buksan ang Arduino IDE. Pagkatapos sa Arduino IDE pumunta sa drop ng "File", pagkatapos ay pumunta sa "Mga Halimbawa" mag-scroll pababa sa listahan ng mga halimbawa ng mga sketch hanggang makita mo ang "RCSWITCH" pagkatapos ay piliin ang sketch na "ReceiveDemo_Advanced" at i-upload ito sa Arduino. Sa sandaling matagumpay na na-upload ng sketch buksan ang serial monitor ng Arduino IDE na naka-attach pa rin ito sa iyong PC sa pamamagitan ng USB. Ngayon palawakin ang una sa mga sensor na nais mong makuha ang code, ang output mula sa RCSwitch ay lilitaw sa serial monitor window. Para sa proyektong ito hinahanap namin ang mga decimal code na naka-highlight sa screenshot 2. Kakailanganin mong i-trigger ang sensor ng maraming beses na naghahanap para sa decimal na halaga na lilitaw nang madalas, minsan magkakaroon ng iba't ibang mga halagang halo-halong may tunay na halaga, sanhi ito sa pamamagitan ng pagkagambala mula sa mga random na alon ng radyo o iba pang mga aparato na tumatakbo sa parehong dalas.

Tandaan ang decimal code ng sensor para magamit sa susunod na hakbang. Ulitin para sa lahat ng mga sensor at remote na keyfob na nais mong gamitin sa proyekto, na sinusubaybayan kung aling code ang napupunta sa aling sensor. Kung gumagamit ng mga keyfobs upang braso at alisin ang sandata ang alarma kakailanganin mong tandaan ang iba't ibang mga code para sa pindutan ng braso at ang pindutan ng pag-disarm ng bawat remote.

Hakbang 5: Template ng Arduino Code

Nasa ibaba ang isang kopya ng aking Arduino code bilang isang.ino file na tinatawag na Wireless_Alarm. Maaari kang mag-click dito at dapat itong buksan sa Arduino IDE. Hindi ako isang programmer ang aking code ay binuo sa bahagi mula sa mga halimbawang matatagpuan sa Arduino IDE, marahil ay hindi ito partikular na matikas ngunit gumagana ito at maaasahan sa mahabang panahon.

Tandaang i-save muli ang sketch pagkatapos mong gawin ang mga pagbabago upang maisama ang mga code mula sa iyong sariling mga sensor.

Hakbang 6: I-paste ang Mga Code na Nakuha mo sa Hakbang 5 Sa Template Arduino Sketch

Ngayon ang mga hakbang upang ipasadya ang code para sa mga sensor at malalayong keyfobs na iyong ginagamit.

Kung buksan mo ang Wireless_Alarm sketch sa iyong IDE makikita mo sa linya 111.

kung (mySwitch.getReceivedValue () == 115166236) // Fob arm button code

Kung saan sa mayroon nang code binabasa ito ng 115166236 kailangan mong palitan ang numerong iyon ng decimal code para sa button ng braso ng iyong remote keyfob na naitala mo sa Hakbang 5.

Halimbawa kung sa hakbang 5 nakuha mo ang isang decimal 1154321 babaguhin mo ang linya 111 upang basahin ngayon;

kung (mySwitch.getReceivedValue () == 1154321) // Fob arm button code

Sundin ang parehong pamamaraan para sa linya 125.

kung (mySwitch.getReceivedValue () == 115166234) // Fob disarm button code

Palitan ang 115166234 para sa code ng iyong remote na keyfob disarm button na naitala mo sa Hakbang 5.

Kung nais mong gumamit ng maraming mga remote fobs upang braso at mag-alis ng sandata, kopyahin at i-paste ang mga linya 111 hanggang sa 136 ng maraming beses hangga't kinakailangan pagkatapos ay baguhin ang mga halaga upang umangkop sa iyong iba pang mga remote keyfobs, ngunit pinakamahusay na magsimula lamang sa isang remote hanggang masiguro mong nabago ang iyong gumagana ang sketch.

Ngayon sa pag-coding ng mga alarm sensor sa sketch sa linya 140

kung (ledState == MATAAS && mySwitch.getReceivedValue () == 1151640) // Pagkilos para sa aparador ng nagpapadala ng signal signal

Ilabas ang 1151640 at ipasok ang decimal na halaga ng isa sa iyong mga alarm sensor.

Pagkatapos sa linya 158.

lcd.print (F ("Office cupboard")); // print message to lcd upang malaman kung aling sensor ang naaktibo (at pumunta at hanapin ang magnanakaw:)

Baguhin ang aparador ng Opisina sa kung ano man ang nais mong maipakita sa LCD para sa sensor na iyon. Halimbawa kung nais mong basahin ito sa kusina gawing ganito ang linya;

lcd.print (F ("Kusinang Kusina")); // print message to lcd upang malaman kung aling sensor ang naaktibo (at pumunta at hanapin ang magnanakaw:)

Ang mga pangalan ay hindi dapat lumagpas sa 16 na mga character.

Sa pagitan ng linya 165 at 187 ay isang template upang kopyahin at i-paste nang maraming beses hangga't kinakailangan sa mga linya nang direkta sa ibaba 187. Palitan ang numero pagkatapos ng mySwitch.getReceivedValue () == sa decimal ng isa sa iyong iba pang mga sensor na naitala mo sa hakbang 5 at palitan ang pangalan sa loob ng "" sa lcd.print (F ("sensornamehere")); sa pangalang nais mong ibigay sa iyong sensor.

Kung hindi ka gumagamit ng malalayong keyfobs upang braso at maalis ang sandata ang iyong alarma maaari mo lamang balewalain ang mga linya 111-136 o ilagay // sa simula ng bawat isa sa mga hindi ginustong mga linya at hindi mabasa ng Arduino ang mga ito.

Tandaang i-save ang file pagkatapos mong magawa ang iyong mga pagbabago.

Hakbang 7: I-upload ang Binago.ino sa Iyong Arduino at Pagsubok

I-upload ang Binago.ino sa Iyong Arduino at Pagsubok
I-upload ang Binago.ino sa Iyong Arduino at Pagsubok
I-upload ang Binago.ino sa Iyong Arduino at Pagsubok
I-upload ang Binago.ino sa Iyong Arduino at Pagsubok
I-upload ang Binago.ino sa Iyong Arduino at Pagsubok
I-upload ang Binago.ino sa Iyong Arduino at Pagsubok

Sa Arduino nakakonekta pa rin sa iyong PC sa pamamagitan ng USB i-upload ang sketch sa Arduino Board. Kapag matagumpay na nakumpleto ang pag-upload dapat mabasa ng LCD ang "Alarm On Disarmed". Itulak ang butones ng braso sa iyong remote at dapat mabasa ng LCD ang "Alarm On Armed" at ang LED ay dapat na naiilawan upang ipaalam sa iyo na armado ito, magpapalitaw ng isang sensor habang armado ito, dapat basahin ng LCD ang Alarm na sundan ng isang time stamp at ang lokasyon ng sensor, ang beeper ay dapat tumunog ng 2 minuto maliban kung pipilitin mo ang pindutan ng pag-disarm. Kung hindi mo nakukuha ang resulta na ito suriin muli ang mga code na nakuha mo sa Hakbang 5 at ang mga pagbabagong ginawa mo sa code sa nakaraang hakbang, suriin din ang mga kable ng lahat ng mga bahagi. Kung ang LCD ay hindi nagbabasa ng lahat, mayroong isang pagsasaayos ng kaibahan sa likod ng module ng LCD. Kapag ang kaibahan ay itinakda nang tama kung ang LCD ay hindi pa rin nagbabasa subukang baguhin ang Address ng LCD mula 0x3f hanggang 0x27 sa linya 12 sa sketch. Pagto-troubleshoot ng LCD dito tutorial ng I2C LCD

Hakbang 8: Pagtatakda ng Oras sa RTC Module at Pagbabago ng Arm at Disarm Times

Inaasahan na ang iyong RTC ay naitakda nang may tamang oras ngunit kung hindi buksan ang IDE, piliin ang 'File "at mula sa dropdown na pag-click sa" Mga Halimbawa ", mag-scroll pababa sa" DS1307RTC "at piliin ang sketch na" SetTime ", i-download ang sketch sa iyong Arduino at itatakda nito ang real time na orasan kasama ang oras mula sa iyong PC. Kakailanganin mong i-reload ang Wireless_Alarm sketch sa iyong Arduino.

Ang Wireless_Alarm.ino na aking ibinigay ay sa pamamagitan ng default itatakda ang alarma sa braso awtomatikong sa 10.15pm bawat gabi at disarm sa 6.00am bawat umaga. Upang baguhin ang mga oras na ito, baguhin ang Sketch sa mga linya 71 at 72. Ang oras ay nasa mga braket pagkatapos ng Alarm.alarmRepeat sa format na HH, MM, SS. baguhin ito sa anumang oras na nababagay sa iyo.

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

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

Kaya upang baguhin ang oras ng pag-disarm sa 9.15 ng umaga at ang oras ng braso sa 5.30pm ang code ay ganito ang hitsura

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

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

Kung hindi mo nais ang alarma na braso at awtomatikong mag-alis ng sandata // sa harap ng 2 linya at hindi ito ginagamit.

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

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Oras ng braso

Ang oras na tunog ng alarm beeper ay maaaring mabago sa pamamagitan ng pagbabago ng linya 22

Const long interval = 120000; // para sa pagkaantala ng millis para sa haba ng tunog ng alarm

Ang agwat ay nasa milliseconds kaya 120000 = 120 segundo, ang pagbabago ng 120000 hanggang 30000 ay gagawing tunog ng alarma sa loob ng 30 segundo.

Ang isang solenoid upang magpatakbo ng isang sirena, ilaw ng strobo, mataas na dami ng beeper atbp ay maaari ring mai-wire upang i-pin ang 7 o i-pin ang 9 at tatakbo para sa "agwat" na itinakda sa itaas. Tandaan ang maximum na pag-load para sa isang Arduino pin ay hindi dapat lumagpas sa 40mA.

Hakbang 9: Karagdagang Mga Tala

Kapag pumipili ng isang 433 o 315 MHz module ng tatanggap para sa Arduino dapat mong piliin ang dalas upang tumugma sa mga alarm sensor na balak mong gamitin. Iminumungkahi ko ang pagbili ng isang module na kasama ng isang maliit na spiral helical antennae para sa pinakamahusay na pagganap, halili isang 17.3mm haba na straight wire antennae ay nagdaragdag din ng pagganap.

Gamit ang 16x2 LCD module dapat mong gamitin ang isang 4 pin I2C LCD upang magamit ang mga tagubilin at code na ibinibigay ko dito, maaari itong gawin sa isang 16 pin na pamantayang LCD ngunit hindi ito gagana sa mga kable o code dito.

Ang mga switch ng wireless alarm reed, sensor ng paggalaw at remote key fobs ay dapat na 433Mhz o 315Mhz upang tumugma sa receiver na balak mong gamitin at dapat gumamit ng PT2262 o EV1527 coding.

Ang alarm ay napapalawak at nababagay, nagdagdag na ako ng isang SD card upang maitala kapag na-trigger ang mga sensor, binago ang LCD upang masindihan lamang kapag ang isang pindutan ay gaganapin at nagdagdag ng isang 100dB sirena, ngunit hindi kasama ang mga detalye dito upang mapanatili ang artikulo bilang maikli at simple hangga't maaari. Inaasahan kong ang pagbabahagi ng trabahong nagawa ko sa alarma na ito ay para sa iba.

Masayang sagutin ang anumang mga katanungan.

Salamat

Inirerekumendang: