Sisukord:

Arduino traadita häiresüsteem olemasolevate andurite abil: 9 sammu (piltidega)
Arduino traadita häiresüsteem olemasolevate andurite abil: 9 sammu (piltidega)

Video: Arduino traadita häiresüsteem olemasolevate andurite abil: 9 sammu (piltidega)

Video: Arduino traadita häiresüsteem olemasolevate andurite abil: 9 sammu (piltidega)
Video: Leap Motion SDK 2024, Juuli
Anonim
Arduino traadita häiresüsteem, mis kasutab olemasolevaid andureid
Arduino traadita häiresüsteem, mis kasutab olemasolevaid andureid
Arduino traadita häiresüsteem, mis kasutab olemasolevaid andureid
Arduino traadita häiresüsteem, mis kasutab olemasolevaid andureid
Arduino traadita häiresüsteem, mis kasutab olemasolevaid andureid
Arduino traadita häiresüsteem, mis kasutab olemasolevaid andureid
Arduino traadita häiresüsteem, mis kasutab olemasolevaid andureid
Arduino traadita häiresüsteem, mis kasutab olemasolevaid andureid

Seda projekti saab ehitada umbes poole tunni jooksul hinnaga umbes 20,00 dollarit, kui teil on olemasolevad traadita häiresensorid 433Mhz või 315Mhz.

See võib olla ka täiesti uus projekt koos traadita häiresensoritega, nagu infrapuna -liikumisandurid ja pilliroo lülitid, mis on veebis hõlpsasti ja odavalt saadaval. Otsige lihtsalt 433Mhz või 315Mhz andureid, mis kasutavad PT2262 või EV1527 kodeeringut.

Olen kindel, et minusuguseid on palju, kes on ostnud traadita anduritega GSM/2G häiresüsteemi ja olid sellega rahul, kuid kui 2G/GSM -võrk minu elukohas välja lülitati, jäi mulle häiresüsteem enam ei programmeeri ega isegi aega seadnud. Ühel päeval mõtlesin, mida ma saaksin teha, et oma äratus uuesti toimima hakkaks, aga tuli pähe kontrollida, kas Arduino saab anduritelt signaale vastu võtta. Sattusin ebastabiilsele https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ ja leidsin pärast mõningast katsetamist, et saan signaale vastu võtta oma olemasolevatelt anduritelt. Alustasin häiresüsteemi loomist, mis võiks asendada mu olemasoleva alarmi ja pakuks ka suuremat funktsionaalsust. Üks vana häirega seotud probleemidest ei olnud kunagi täpselt teada, milline 25 andurist välja läks, lisades oma uuele häirekonstruktsioonile LCD -ekraani, saan nüüd LCD -ekraanile teksti, mis näitab täpselt, milline andur aktiveeriti. Uue äratuse saab endiselt käsitsi sisse lülitada minu olemasolevate traadita võtmepultide abil ja sellel on reaalajas kell, mis võimaldab sellel automaatselt seadistada ja desarmeerida etteantud kellaaegadel.

Tarvikud

Vaadake lõpus lisamärkusi, et veenduda nende osade õige versiooni kasutamises.

Arduino Uno või sarnane

433 või 315 MHz vastuvõtja moodul Arduino jaoks

DS3231 reaalajas kella moodul Arduino jaoks

I2C 16x2 LDC moodul Arduino jaoks

Juhtmevabad häireseadme lülitid, liikumisandurid ja kaugjuhtimispuldid vastavalt soovile

Pietsosummer

LED ja 220 oomi takisti

Leivalaud (valikuline, kuid soovitatav)

Arduino jaoks sobiv toiteallikas

Jumper juhtmed jne

Arvuti, kuhu on installitud Arduino IDE

Arduino põhiteadmised

Samm: tarvikud

Tarvikud
Tarvikud
Tarvikud
Tarvikud
Tarvikud
Tarvikud

Mõned ülaltoodud pildid selle projekti jaoks vajalikest tarvikutest

Samm: ühendage Ardunio ja moodulid, nagu pildil näidatud

Ühendage Ardunio ja moodulid, nagu pildil näidatud
Ühendage Ardunio ja moodulid, nagu pildil näidatud

Pieso Arduino tihvti 5 ja maa vahel

LED Arduino tihvti 8 ja 220 oomi takisti vahel, seejärel maa peal

433 või 315 Mhz vastuvõtja, VCC kuni 5 V, GND maandusega ja üks Arduino 2 -st andmest

I2C 16X2 LCD -moodul VCC kuni 5V, GND maapinnale, SCL SDA -tihvtid Arduino SCL -SDA -le (tihvt A5 on SCL, tihvt A4 on SDA)

DS3231 RTC moodul VCC kuni 5 V, GND maapinnale, SCL SDA tihvtid Arduino SCL SDA -le (teine komplekt asub enamiku Arduino GND ja AREF tihvtide kohal)

Ma tean, et mõned teist ei vaja rohkem teavet kui see ja allpool esitatud visand, kuid ma räägin sellest üksikasjalikumalt kõigile, kes soovivad natuke täiendavat abi.

Samm: lisage vajalikud raamatukogud Arduino IDE -sse

Lisage Arduino IDE -sse vajalikud raamatukogud
Lisage Arduino IDE -sse vajalikud raamatukogud
Lisage Arduino IDE -sse vajalikud raamatukogud
Lisage Arduino IDE -sse vajalikud raamatukogud
Lisage Arduino IDE -sse vajalikud raamatukogud
Lisage Arduino IDE -sse vajalikud raamatukogud

Häire käivitamiseks kasutatav Arduino Sketch kasutab mõnda teeki, mis pole vaikimisi Arduino IDE -sse installitud.

RCSwitchi teegi lisamiseks Arduino IDE -sse. Avage ülemises menüüs Arduino IDE, valige "Visand", seejärel valige rippmenüüst "Kaasa raamatukogu" ja järgmisest rippmenüüst "Halda teeke". Seejärel tippige väljale "Otsingu filtreerimine" tüüp "RCSW" ja klõpsake järgmisel käsul installimiseks "rc-switch by sui77"

Üksikasjalikud juhised raamatukogude lisamiseks aadressil

Sellega seoses peame lisama ka teegid Time, TimeAlarms, DS1307RTC ja LiquidCrystal_I2C, sama protseduur nagu eespool, kuid otsides iga uue teegi nime ja installides. Kui te pole kindel, milliseid teeke kasutada, vaadake ülaltoodud ekraanipilte.

Reaalajas kell DS3231 ühildub ja kasutab DS1307RTC raamatukogu.

Samm 4: Järgmisena peame hankima teie andurite koodid

Järgmisena peame hankima teie andurite koodid
Järgmisena peame hankima teie andurite koodid
Järgmisena peame hankima teie andurite koodid
Järgmisena peame hankima teie andurite koodid

Esitasin allpool Arduino koodi malli, kuid peate leidma iga anduri väärtused ja kleepima need koodi.

Mõlemal saidil on palju teavet nende koodide hankimise kohta;

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

github.com/sui77/rc-switch/wiki

Kuid siin on minu lühendatud versioon;

Koodide saamiseks, mida teie andurid ja kaugjuhtimispuldid saadavad, ühendage Arduino, mis on koostatud 1. etapis, USB -kaabli abil arvutiga ja avage Arduino IDE. Seejärel minge Arduino IDE rippmenüüsse "Fail", seejärel minge jaotisse "Näited", kerige näidisvisandite loendit allapoole, kuni leiate "RCSWITCH", seejärel valige visand "ReceiveDemo_Advanced" ja laadige see Arduino. Kui eskiis on edukalt üles laaditud, avage Arduino IDE seeriamonitor, mis on endiselt USB -ga teie arvutiga ühendatud. Nüüd käivitage esimene andur, mille jaoks soovite koodi saada, RCSwitchi väljund kuvatakse jadamonitori aknas. Selle projekti jaoks otsime kümnendkoode, nagu ekraanipildil 2 esile tõstetud. Peate anduri mitu korda käivitama, otsides kõige sagedamini ilmuvat kümnendväärtust, mõnikord on erinevad väärtused segatud tegeliku väärtusega. juhuslike raadiolainete või muude samal sagedusel töötavate seadmete häirete tõttu.

Pange tähele järgmises etapis kasutamiseks anduri kümnendkoodi. Korrake seda kõigi andurite ja kaugjuhtimispultide puhul, mida soovite projektis kasutada, jälgides, milline kood millise anduriga käib. Kui kasutate häire sisselülitamiseks ja desaktiveerimiseks klahve, peate märkima iga puldi sisse- ja väljalülitusnupu erinevad koodid.

Samm: Arduino koodimall

Allpool on minu Arduino koodi koopia.ino failina nimega Wireless_Alarm. Saate sellel klõpsata ja see peaks avanema Arduino IDE -s. Ma ei ole programmeerija, minu kood on osaliselt kokku pandud Arduino IDE -s leiduvatest näidetest, see pole ilmselt eriti elegantne, kuid töötab ja on olnud pikka aega usaldusväärne.

Ärge unustage pärast muudatuste tegemist visand uuesti salvestada, et lisada oma andurite koodid.

Samm: kleepige 5. etapis saadud koodid Arduino malli eskiisi

Nüüd sammud kasutatavate andurite ja kaugjuhtimispultide koodi kohandamiseks.

Kui avate IDE -s Wireless_Alarmi visandi, näete reas 111.

if (mySwitch.getReceivedValue () == 115166236) // Fob arm arm nupu kood

Kui olemasolevas koodis on see 115166236, peate selle numbri asendama kaugjuhtimispuldi käepideme nupu kümnendkoodiga, mille salvestasite punktis 5.

Näiteks kui saite 5. sammus kümnendkoha 1154321, muudaksite rida 111 nüüdseks loetuks;

if (mySwitch.getReceivedValue () == 1154321) // Fob arm arm nupu kood

Järgige sama protseduuri rea 125 jaoks.

if (mySwitch.getReceivedValue () == 115166234) // Fob desarm nupu kood

Asendage 115166234 kaugjuhtimispuldi desarmeerimisnupu kood, mille salvestasite punktis 5.

Kui soovite relvastamiseks ja desarmeerimiseks kasutada mitut kaugjuhtimispulti, kopeerige ja kleepige read 111 kuni 136 nii palju kordi kui vaja, seejärel muutke väärtusi, et need sobiksid teie teiste kaugjuhtimispultidega, kuid parem on alustada ühe kaugjuhtimispuldiga, kuni olete kindel, et muudetud visand töötab.

Nüüd aga häiresensorite kodeerimine visandil real 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Signaali saatja kontori kapi toiming

Võtke välja 1151640 ja sisestage ühe häiresensori kümnendväärtus.

Siis liinil 158.

lcd.print (F ("Kontorikapp")); // printige teade lcd -le, et teada saada, milline andur aktiveeriti (ja minge leidke sissemurdja:)

Muutke Office'i kapp selliseks, nagu soovite, et selle anduri LCD -ekraanil kuvataks. Näiteks kui soovite, et see loeks kitchendoor, tehke rida selline;

lcd.print (F ("Kitchendoor")); // printige teade lcd -le, et teada saada, milline andur aktiveeriti (ja minge leidke sissemurdja:)

Nimed ei tohi ületada 16 tähemärki.

Ridade 165 ja 187 vahel on mall, mida kopeerida ja kleepida nii palju kordi, kui vaja, otse allpool 187. olevatele ridadele. Asendage number pärast mySwitch.getReceivedValue () == ühe teise anduri kümnendkohaga, mille salvestasite punktis 5 ja muuta nime "" sees lcd.print (F ("sensornamehere")); nimele, mille soovite andurile anda.

Kui te ei kasuta alarmi sisselülitamiseks ja desaktiveerimiseks kaugjuhtimispuldi, võite lihtsalt ignoreerida ridu 111-136 või panna // iga soovimatu rea algusesse ja Arduino ei loe neid.

Ärge unustage faili salvestada pärast muudatuste tegemist.

Samm: laadige muudetud.ino oma Arduinole üles ja testige

Laadige muudetud.ino oma Arduinosse ja testige
Laadige muudetud.ino oma Arduinosse ja testige
Laadige muudetud.ino oma Arduinosse ja testige
Laadige muudetud.ino oma Arduinosse ja testige
Laadige muudetud.ino oma Arduinosse ja testige
Laadige muudetud.ino oma Arduinosse ja testige

Kui Arduino on USB -ga endiselt arvutiga ühendatud, laadige eskiis üles Arduino pardale. Kui üleslaadimine on edukalt lõpule viidud, peaks vedelkristallekraanil olema kiri "Alarm on desarmed". Vajutage kaugjuhtimispuldi käepideme nuppu ja LCD -ekraanil peaks olema kiri „Alarm On Armed” ning LED peaks põlema, et anda teile teada, et see on relvastatud, käivitage nüüd andur, kui see on relvastatud, LCD peaks lugema Alarm, millele järgneb ajatempl ja anduri asukohast, peaks helisignaal kõlama 2 minutit, kui te ei vajuta desarmeerimisnuppu. Kui te ei saa seda tulemust, kontrollige uuesti 5. sammus saadud koode ja eelmises etapis tehtud muudatusi, kontrollige ka kõigi komponentide juhtmeid. Kui LCD -ekraan üldse ei loe, on LCD -mooduli tagaküljel kontrasti reguleerimine. Kui kontrastsus on õigesti seadistatud, kui vedelkristallekraan ei loe endiselt, proovige visandi reas 12 muuta LCD -aadressi 0x3f -lt 0x27 -le. LCD veaotsing siin I2C LCD õpetus

8. samm: RTC -mooduli aja seadistamine ja relva- ja valvestusaegade muutmine

Loodetavasti oli teie RTC juba õigel ajal seadistatud, kuid kui IDE -d ei avata, valige "Fail" ja klõpsake rippmenüüst "Näited", kerige alla jaotiseni "DS1307RTC" ja valige eskiis "SetTime", laadige visand oma arvutisse alla Arduino ja see määrab reaalajas kella koos teie arvutist saadava ajaga. Seejärel peate Wireless_Alarmi visandi oma Arduinole uuesti laadima.

Minu pakutud Wireless_Alarm.ino seab äratuse vaikimisi automaatselt sisse igal õhtul kell 22.15 ja desaktiveeritakse igal hommikul kell 6.00. Nende aegade muutmiseks muutke eskiisi ridadel 71 ja 72. Aeg on sulgudes pärast Alarm.alarmRepeat vormingus HH, MM, SS. muutke see teile sobival ajal.

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

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

Nii et desarmeerimisaja muutmiseks kella 9.15 -ks ja valveajaks kella 17.30 -ks näeks kood välja selline

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

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

Kui te ei soovi, et alarm lülituks automaatselt sisse ja välja, asetage // kahe rea ette ja neid ei kasutata.

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

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

Alarmi helisignaali kellaaega saab muuta, muutes rida 22

const pikk intervall = 120000; // millisekundilise viivituse korral alarmi helisid

Intervall on millisekundites, nii et 120000 = 120 sekundit, muutes 120000 väärtuseks 30 000, kõlab alarm 30 sekundiks.

Solenoidi sireeni, välklambi, suure helisignaali jms juhtimiseks saab ühendada ka tihvtiga 7 või tihvtiga 9 ja see töötab ülaltoodud ajavahemiku jooksul. Pidage meeles, et Arduino tihvti maksimaalne koormus ei tohiks ületada 40 mA.

9. samm: lisamärkused

Kui valite Arduino jaoks 433 või 315 MHz vastuvõtumooduli, peaksite valima sageduse, mis vastab häiresensoritele, mida kavatsete kasutada. Parima jõudluse saavutamiseks soovitan osta moodul, millel on väikesed spiraalsed spiraalsed antennid. Alternatiivina suurendab jõudlust ka 17,3 mm pikkune sirge traatantenn.

16x2 LCD -mooduliga peate siin esitatud juhiste ja koodi kasutamiseks kasutama 4 -kontaktilist I2C LCD -ekraani, seda saab teha 16 -kontaktilise tavalise LCD -ekraaniga, kuid see ei tööta siin juhtmete või koodiga.

Juhtmevabad häireseisulülitid, liikumisandurid ja kaugjuhtimispuldid peaksid olema 433Mhz või 315Mhz, et need sobiksid vastuvõtjaga, mida kavatsete kasutada, ning peaksid kasutama PT2262 või EV1527 kodeeringut.

Alarm on laiendatav ja kohandatav, olen juba lisanud SD -kaardi andurite käivitamisel salvestamiseks, muutnud LCD -ekraani põlema ainult siis, kui nuppu hoitakse, ja lisanud 100dB sireeni, kuid pole lisanud siia üksikasju, et artiklit säilitada võimalikult lühike ja lihtne. Loodan, et selle häirega tehtud töö jagamine on teistele kasulik.

Vastan meeleldi kõikidele küsimustele.

Tänan.

Soovitan: