Turinys:
- Prekės
- 1 žingsnis: reikmenys
- 2 veiksmas: prijunkite „Ardunio“ir modulius, kaip parodyta paveikslėlyje
- 3 veiksmas: pridėkite būtinas bibliotekas prie „Arduino IDE“
- 4 žingsnis: Toliau turime gauti jūsų jutiklių kodus
- 5 žingsnis: „Arduino“kodo šablonas
- 6 veiksmas: įklijuokite 5 veiksme gautus kodus į „Arduino“šablono šabloną
- 7 veiksmas: įkelkite pakeistą.ino į „Arduino“ir išbandykite
- 8 žingsnis: RTC modulio laiko nustatymas ir įjungimo bei išjungimo laiko keitimas
- 9 veiksmas: papildomos pastabos
Video: „Arduino“belaidė signalizacijos sistema naudojant esamus jutiklius: 9 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Šis projektas gali būti pastatytas maždaug per pusvalandį ir kainuoja apie 20,00 USD, jei turite esamų 433Mhz arba 315Mhz belaidžių signalizacijos jutiklių.
Tai taip pat gali būti visiškai naujas projektas su belaidžiais signalizacijos jutikliais, tokiais kaip infraraudonųjų spindulių judesio detektoriai ir nendrių jungikliai, lengvai ir pigiai prieinami internete. Tiesiog ieškokite 433Mhz arba 315Mhz jutiklių, naudojančių PT2262 arba EV1527 kodavimą.
Esu tikras, kad yra daug tokių žmonių kaip aš, kurie įsigijo GSM/2G signalizacijos sistemą su belaidžiais jutikliais ir buvo ja patenkinti, tačiau kai 2G/GSM tinklas buvo išjungtas ten, kur aš gyvenu, man liko signalizacija, kurią galėjau nebeprogramuokite ir net nenustatykite laiko. Vieną dieną galvodama, ką galėčiau padaryti, kad mano žadintuvas vėl veiktų, man į galvą atėjo patikrinti, ar „Arduino“gali priimti signalus iš jutiklių. Aš atsitiktinai susidūriau su nesuderinamu https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ ir po tam tikrų eksperimentų nusprendžiau, kad galiu priimti signalus iš esamų jutiklių. Pradėjau kurti signalizacijos sistemą, kuri galėtų pakeisti esamą signalizaciją ir taip pat suteiktų daugiau funkcijų. Viena iš senojo pavojaus signalo problemų niekada nebuvo tiksliai žinoti, kuris iš 25 jutiklių suveikė, pridėdamas LCD ekraną prie naujos signalizacijos sistemos, dabar LCD ekrane gaunu tekstą, nurodantį, kuris jutiklis buvo aktyvuotas. Naujasis žadintuvas vis dar gali būti rankiniu būdu įjungtas mano esamais belaidžiais nuotolinio valdymo pultais ir turi realaus laiko laikrodį, leidžiantį automatiškai įjungti ir išjungti nustatytą paros laiką.
Prekės
Pabaigoje žiūrėkite papildomas pastabas, kad įsitikintumėte, jog naudojate teisingą šių dalių versiją.
„Arduino Uno“ar panašiai
433 arba 315 MHz imtuvo modulis, skirtas „Arduino“
DS3231 „Arduino“realaus laiko laikrodžio modulis
I2C 16x2 LDC modulis, skirtas „Arduino“
Belaidžiai aliarmo jungikliai, judesio jutikliai ir nuotolinio valdymo pulteliai pagal pageidavimą
Pjezo garsinis signalas
LED ir 220 omų rezistorius
Duonos lenta (neprivaloma, bet rekomenduojama)
Tinkamas „Arduino“maitinimo šaltinis
Perjungimo laidai ir kt
Kompiuteris su įdiegta „Arduino IDE“
Pagrindinės žinios apie Arduino
1 žingsnis: reikmenys
Keletas vaizdų apie reikmenis, kurių jums reikės šiam projektui
2 veiksmas: prijunkite „Ardunio“ir modulius, kaip parodyta paveikslėlyje
Pjezo tarp 5 „Arduino“kaiščio ir žemės
Šviesos diodas tarp „Arduino“8 kaiščio ir 220 omų rezistoriaus, tada į žemę
433 arba 315 Mhz imtuvas, VCC - 5 V, GND prie žemės ir vienas iš 2 duomenų kaiščių prie „Arduino“kaiščio 2
I2C 16X2 LCD modulis VCC į 5V, GND prie žemės, SCL SDA kaiščiai prie „Arduino“SCL SDA (A5 kaištis yra SCL, A4 kaištis yra SDA)
DS3231 RTC modulis VCC į 5V, GND į žemę, SCL SDA kaiščiai prie „Arduino“SCL SDA (yra antrasis rinkinys, esantis virš daugumos „Arduino“GND ir AREF kaiščių)
Žinau, kad kai kuriems iš jūsų nebereikės daugiau informacijos nei šis ir eskizas, pridėtas žemiau, bet aš išsamiau papasakosiu visiems, kurie norėtų šiek tiek daugiau pagalbos.
3 veiksmas: pridėkite būtinas bibliotekas prie „Arduino IDE“
„Arduino Sketch“signalui paleisti naudoja kai kurias bibliotekas, kurios pagal numatytuosius nustatymus dar nėra įdiegtos „Arduino IDE“.
Norėdami pridėti „RCSwitch“biblioteką prie „Arduino IDE“. Viršutiniame meniu atidarykite „Arduino IDE“, pasirinkite „Eskizas“, tada išskleidžiamajame meniu pasirinkite „Įtraukti biblioteką“, o kitame išskleidžiamajame meniu pasirinkite „Tvarkyti bibliotekas“. Tada lauke „Filtruoti paiešką“įveskite „RCSW“, tada spustelėkite „įdiegti“, kad gautumėte „rc-switch by sui77“
Išsamios bibliotekų pridėjimo instrukcijos
Kol mes tai darome, taip pat turime pridėti bibliotekų, pavadintų „Time“, „TimeAlarms“, DS1307RTC ir „LiquidCrystal_I2C“, ta pati procedūra, kaip aprašyta aukščiau, tačiau ieškant kiekvienos naujos bibliotekos pavadinimo ir diegiant. Jei nežinote, kurias bibliotekas naudoti, žiūrėkite ekrano kopijas aukščiau.
DS3231 realaus laiko laikrodis yra suderinamas su DS1307RTC biblioteka ir naudoja ją.
4 žingsnis: Toliau turime gauti jūsų jutiklių kodus
Žemiau pateikiau „Arduino“kodo šabloną, tačiau turėsite rasti kiekvieno jutiklio reikšmes ir įklijuoti jas į kodą.
Abiejose svetainėse yra daug informacijos apie tai, kaip gauti šiuos kodus;
www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/
github.com/sui77/rc-switch/wiki
Tačiau čia yra mano sutrumpinta versija;
Norėdami gauti kodus, kuriuos siunčia jūsų jutikliai ir nuotolinio valdymo pulteliai, USB kabeliu prie kompiuterio prijunkite „Arduino“, surinktą atlikdami 1 veiksmą, ir atidarykite „Arduino IDE“. Tada „Arduino IDE“eikite į išskleidžiamąjį meniu „Failas“, tada eikite į „Pavyzdžiai“, slinkite žemyn pavyzdžių eskizų sąrašu, kol rasite „RCSWITCH“, tada pasirinkite eskizą „ReceiveDemo_Advanced“ir įkelkite jį į „Arduino“. Kai eskizas sėkmingai įkeliamas, atidarykite „Arduino IDE“nuoseklųjį monitorių, kuris vis dar prijungtas prie kompiuterio per USB. Dabar suaktyvinkite pirmąjį jutiklį, kurio kodą norite gauti, „RCSwitch“išvestis bus rodoma serijinio monitoriaus lange. Šiam projektui mes ieškome dešimtainių kodų, kaip parodyta 2 ekrano kopijoje. Jums reikės kelis kartus paleisti jutiklį, ieškant dažniausiai rodomos dešimtainės vertės, kartais skirtingos vertės bus sumaišytos su tikra verte, todėl atsitiktinių radijo bangų ar kitų tuo pačiu dažniu veikiančių prietaisų trukdžių.
Atkreipkite dėmesį į jutiklio dešimtainį kodą, kurį naudosite kitame žingsnyje. Pakartokite visus jutiklius ir nuotolinius nuotolinio valdymo pultus, kuriuos norite naudoti projekte, stebėdami, kuris kodas yra su kuriuo jutikliu. Jei signalizacijai įjungti ir išjungti naudojate nuotolinio valdymo pultus, turėsite atkreipti dėmesį į skirtingus kiekvieno nuotolinio valdymo pulto įjungimo ir išjungimo mygtuko kodus.
5 žingsnis: „Arduino“kodo šablonas
Žemiau yra mano „Arduino“kodo, kaip.ino failo, pavadinto „Wireless_Alarm“, kopija. Galite spustelėti jį ir jis turėtų atsidaryti „Arduino IDE“. Nesu programuotojas, mano kodas iš dalies surinktas iš „Arduino IDE“pavyzdžių, jis tikriausiai nėra ypač elegantiškas, tačiau veikia ir yra patikimas ilgą laiką.
Atlikę pakeitimus nepamirškite iš naujo išsaugoti eskizo, kad į jį būtų įtraukti kodai iš savo jutiklių.
6 veiksmas: įklijuokite 5 veiksme gautus kodus į „Arduino“šablono šabloną
Dabar atlikite veiksmus, kad pritaikytumėte naudojamų jutiklių ir nuotolinio valdymo pultelių kodą.
Jei atidarysite „Wireless_Alarm“eskizą savo IDE, pamatysite 111 eilutę.
if (mySwitch.getReceivedValue () == 115166236) // Fob arm mygtuko kodas
Jei esamas kodas nurodo 115166236, turite pakeisti šį skaičių nuotolinio nuotolinio valdymo pulto įjungimo mygtuko dešimtainiu kodu, kurį įrašėte atlikdami 5 veiksmą.
Pavyzdžiui, jei 5 veiksme gavote dešimtainį skaičių 1154321, modifikuotumėte 111 eilutę, kad ji dabar būtų skaitoma;
if (mySwitch.getReceivedValue () == 1154321) // Fob arm mygtuko kodas
Atlikite tą pačią procedūrą 125 eilutėje.
if (mySwitch.getReceivedValue () == 115166234) // Fobo išjungimo mygtuko kodas
Pakeiskite nuotolinio nuotolinio valdymo pulto išjungimo mygtuko, kurį įrašėte atlikdami 5 veiksmą, kodą 115166234.
Jei norite įjungti ir nuginkluoti kelis nuotolinio valdymo pultus, nukopijuokite ir įklijuokite eilutes nuo 111 iki 136 tiek kartų, kiek reikia, tada pakeiskite vertes, kad jos atitiktų kitus nuotolinio valdymo pultelius, bet geriausia tik pradėti nuo vieno nuotolinio valdymo pulto, kol būsite tikri, kad pakeitėte eskizas veikia.
Dabar koduojame pavojaus jutiklius eskize 140 eilutėje
if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Signalo siuntėjo biuro spintelės veiksmas
Išimkite 1151640 ir įveskite vieno iš pavojaus signalų jutiklių dešimtainę vertę.
Tada 158 eilutėje.
lcd.print (F ("Biuro spinta")); // išspausdinkite pranešimą į LCD, kad sužinotumėte, kuris jutiklis buvo suaktyvintas (ir eikite ir raskite įsilaužėlį:)
Pakeiskite „Office“spintelę į tai, ką norėtumėte, kad to jutiklio LCD ekrane būtų rodoma. Pavyzdžiui, jei norite, kad ji skaitytų „kitchendoor“, eilutė atrodytų taip;
lcd.print (F ("Kitchendoor")); // išspausdinkite pranešimą į LCD, kad sužinotumėte, kuris jutiklis buvo suaktyvintas (ir eikite ir raskite įsilaužėlį:)
Pavadinimai neturėtų viršyti 16 simbolių.
Tarp 165 ir 187 eilučių yra šablonas, kurį reikia nukopijuoti ir įklijuoti tiek kartų, kiek reikia tiesiai į eilutes žemiau 187. Pakeiskite skaičių po mySwitch.getReceivedValue () == vieno iš kitų jutiklių, kuriuos įrašėte atlikdami 5 veiksmą, dešimtaine dalimi ir pakeiskite pavadinimą į "", esantį lcd.print (F ("sensornamehere")); prie pavadinimo, kurį norite suteikti savo jutikliui.
Jei žadintuvui įjungti ir išjungti nenaudojate nuotolinio valdymo pultelių, galite tiesiog nepaisyti 111-136 eilučių arba kiekvienos nepageidaujamos eilutės pradžioje įrašyti // ir „Arduino“jų neskaitys.
Atlikę pakeitimus nepamirškite išsaugoti failo.
7 veiksmas: įkelkite pakeistą.ino į „Arduino“ir išbandykite
Kai „Arduino“vis dar prijungtas prie kompiuterio per USB, įkelkite eskizą į „Arduino“lentą. Kai įkėlimas bus sėkmingai baigtas, LCD ekrane turėtų būti užrašas „Alarm On Disarmed“. Paspauskite nuotolinio valdymo pulto rankos mygtuką, o LCD ekrane turėtų būti užrašas „Alarm On Armed“, o šviesos diodas turėtų užsidegti, kad žinotumėte, jog jis yra įjungtas, dabar suaktyvinkite jutiklį, kai jis yra įjungtas, LCD ekrane turėtų būti rodoma „Alarm“, po kurio laiko žymė ir jutiklio vietą, pyptelėjimas turėtų skambėti 2 minutes, nebent paspausite išjungimo mygtuką. Jei negaunate šio rezultato, dar kartą patikrinkite 5 veiksme gautus kodus ir ankstesniame žingsnyje atliktus kodo pakeitimus, taip pat iš naujo patikrinkite visų komponentų laidus. Jei skystųjų kristalų ekranas visai neskaito, LCD modulio gale yra kontrasto reguliavimas. Teisingai nustatę kontrastą, jei skystųjų kristalų ekranas vis tiek neskaito, pabandykite eskizo 12 eilutėje pakeisti LCD adresą iš 0x3f į 0x27. LCD trikčių šalinimas čia I2C LCD pamoka
8 žingsnis: RTC modulio laiko nustatymas ir įjungimo bei išjungimo laiko keitimas
Tikimės, kad jūsų RTC jau buvo nustatytas tinkamas laikas, bet jei neatidarėte IDE, pasirinkite „Failas“ir išskleidžiamajame meniu spustelėkite „Pavyzdžiai“, slinkite žemyn iki „DS1307RTC“ir pasirinkite eskizą „SetTime“, atsisiųskite eskizą į savo „Arduino“ir jis nustatys realaus laiko laikrodį su laiku iš jūsų kompiuterio. Tada turėsite iš naujo įkelti „Wireless_Alarm“eskizą į „Arduino“.
Mano pateiktas „Wireless_Alarm.ino“pagal numatytuosius nustatymus nustatys, kad žadintuvas automatiškai įsijungtų kiekvieną vakarą 22.15 val., O kiekvieną rytą - 6.00 val. Norėdami pakeisti šį laiką, pakeiskite eskizą 71 ir 72 eilutėse. Laikas yra skliausteliuose po Alarm.alarmRepeat formatu HH, MM, SS. pakeiskite tai į jums patogų laiką.
Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // GINKLO laikas
Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // ARM laikas
Taigi, norint pakeisti išjungimo laiką į 9.15 val., O įjungimo laiką į 17.30 val., Kodas atrodytų taip
Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // GINKLO laikas
Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // ARM laikas
Jei nenorite, kad žadintuvas įjungtų ir išjungtų automatiškai, padėkite // prieš 2 eilutes ir jos nebus naudojamos.
//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // GINKLO laikas
//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Rankos laikas
Žadintuvo pyptelėjimo laiką galima pakeisti pakeitus 22 eilutę
const ilgas intervalas = 120000; // dėl milisdelsos pavojaus signalo laiko
Intervalas yra milisekundėse, taigi 120000 = 120 sekundžių, pakeitus 120000 į 30000, žadintuvas skambėtų 30 sekundžių.
Solenoidas, skirtas paleisti sireną, blykstės lemputę, didelės apimties pyptelėjimą ir pan., Taip pat gali būti prijungtas prie 7 arba 9 kaiščio ir veiks „intervalu“, kaip nustatyta aukščiau. Atminkite, kad maksimali „Arduino“kaiščio apkrova neturi viršyti 40 mA.
9 veiksmas: papildomos pastabos
Rinkdamiesi „Arduino“433 arba 315 MHz imtuvo modulį, turėtumėte pasirinkti dažnį, kuris atitiktų ketinamus naudoti aliarmo jutiklius. Siūlau įsigyti modulį su mažomis spiralinėmis spiralinėmis antenomis, kad būtų užtikrintas geriausias našumas, o 17,3 mm ilgio tiesios vielos antenos taip pat padidina našumą.
Naudodami 16x2 skystųjų kristalų modulį, turite naudoti 4 kontaktų I2C skystųjų kristalų ekraną, kad galėtumėte naudoti čia pateiktas instrukcijas ir kodą, jis gali būti pagamintas naudojant 16 kontaktų standartinį skystųjų kristalų ekraną, tačiau jis neveiks su čia esančiais laidais ar kodu.
Belaidžiai aliarmo jungikliai, judesio jutikliai ir nuotolinio valdymo pulteliai turi būti 433Mhz arba 315Mhz, kad atitiktų imtuvą, kurį ketinate naudoti, ir turėtų naudoti kodavimą PT2262 arba EV1527.
Signalizaciją galima išplėsti ir pritaikyti, aš jau pridėjau SD kortelę, kad būtų galima įrašyti, kai įjungiami jutikliai, pakeičiau skystųjų kristalų ekraną, kad jis užsidegtų tik tada, kai paspaudžiamas mygtukas, ir pridėjau 100 dB sireną, bet čia neįtraukiau išsamios informacijos, kad straipsnis išliktų kuo trumpesnis ir paprastesnis. Tikiuosi, kad dalijimasis darbu, kurį padariau su šia signalizacija, yra naudingas kitiems.
Malonu atsakyti į visus klausimus.
Dėkoju.
Rekomenduojamas:
Kaip sukurti išmaniąją potvynių aptikimo signalizacijos sistemą naudojant Raspberry Pi ir argono daleles: 6 žingsniai
Kaip padaryti išmaniąją potvynių aptikimo aliarmo sistemą naudojant Raspberry Pi ir Argon daleles: turėdami standartinius potvynių jutiklius puikiai išvengsite didžiulės žalos jūsų namams ar darbo vietai. Tačiau dėl to sunku, jei nesate namuose apsilankyti signalizacijoje. Žinoma Galite nusipirkti išmaniųjų. Ši potvynių aliarmo sistema aptinka bet kokį skystį ir suaktyvina aliarmą
„Pool Pi Guy“- AI valdoma signalizacijos sistema ir baseino stebėjimas naudojant „Raspberry Pi“: 12 žingsnių (su nuotraukomis)
„Pool Pi Guy“- dirbtinio intelekto varoma signalizacijos sistema ir baseino stebėjimas naudojant „Raspberry Pi“: turėti baseiną namuose yra smagu, tačiau už tai tenka didelė atsakomybė. Didžiausias mano rūpestis yra stebėti, ar kas nors yra šalia baseino be priežiūros (ypač jaunesni vaikai). Mane labiausiai erzina tai, kad baseino vandens linija niekada nenukris žemiau siurblio įėjimo
Kliūtis išvengti roboto naudojant ultragarso jutiklius: 9 žingsniai (su nuotraukomis)
Kliūčių vengimo robotas naudojant ultragarso jutiklius: Tai paprastas projektas apie kliūčių išvengimo robotą naudojant ultragarso jutiklius (HC SR 04) ir „Arduino Uno“plokštę. Robotas juda vengdamas kliūčių ir pasirinkdamas geriausią būdą sekti jutiklius. Ir atkreipkite dėmesį, kad tai nėra mokomasis projektas, pasidalykite
Belaidė energijos perdavimo sistema/H tiltas naudojant keturis „Mosfet“: 5 žingsniai
Belaidė energijos perdavimo sistema/„H-tiltas“naudojant keturis „Mosfet“: Šiame projekte mes ketiname sukurti belaidžio energijos perdavimo grandinę naudojant „H-bridge“topologiją, keturi „mosfets“naudojami „H“tiltui sukurti, 4 „mosfet“valdymui naudojome 2 x IR2110 „mosfet“vairuotojas ic
PC pelės emuliatorius naudojant „Arduino Uno“ir jutiklius: 8 žingsniai
Kompiuterio pelės emuliatorius naudojant „Arduino Uno“ir jutiklius. Šioje instrukcijoje mes ketiname sukurti pelės emuliatoriaus prototipą. Pelės emuliatorius yra įrenginys, kurį galima naudoti, kai pelė neveikia tinkamai. Jutikliai naudojami pelės valdymui judesiai. Projektą sudaro vienas