Judesio valdymo sistema arduino bute. GSM apsaugos sistema namams, pagrįsta Arduino. Pagrindinės SD atminties kortelės modulio charakteristikos


Kaip padaryti paprastas GSM signalizacija SIM800L ir Arduino garažui ar vasarnamiui. Mes tai darome patys, remdamiesi paruoštais „Aliexpress“ moduliais. Pagrindiniai moduliai- GSM modulis SIM800L, Arduino Nano (galite naudoti bet-Uno ir t.t.), nuleidžiama plokštė, baterija iš Mobilusis telefonas.

Ryžiai. 1. Apsaugos signalizacijos modulių išdėstymas Arduino

Signalizacijos gamyba

Mes užlipame Bandomoji Lenta per trinkeles, kurios prireikus leis pakeisti modulius. Signalizacijos įjungimas tiekiant 4,2 volto maitinimą per jungiklį į SIM800L ir Arduino Nano.



Kai suveikia pirmoji kilpa, sistema pirmiausia skambina pirmuoju numeriu, tada nutraukia skambutį ir vėl skambina antruoju numeriu. Antrasis skaičius pridedamas tik tuo atveju, jei pirmasis staiga atsijungia ir pan. Suaktyvinus antrą, trečią, ketvirtą ir penktą kilpą, SMS siunčiama su aktyvuotos zonos numeriu, taip pat dviem numeriais. Schema ir eskizas, kuriuos domina aprašymas po vaizdo įrašu.
Visą elektroniką dedame į tinkamą korpusą.



Jei jums nereikia 5 šakelių, prijunkite „Arduino“ 5 V kaištį prie jums nereikalingų įėjimų. GSM signalizacija 5 kilpoms su baterija, kuri leis įrenginiui ir toliau autonomiškai dirbti kelias dienas nutrūkus elektrai. Prie jų galite prijungti bet kokius apsaugos kontaktų jutiklius, relinius kontaktus ir t.t. Dėl to gauname paprastą, nebrangų kompaktišką apsaugos įrenginį, skirtą SMS siuntimui ir rinkimui 2 numeriais. Juo galima saugoti vasarnamį, butą, garažą ir kt.

Daugiau vaizdo įraše

Tai specialios aparatinės įrangos platformos, kurių pagrindu galite kurti įvairias Elektroniniai prietaisai, įskaitant ir. Šio tipo įrenginiai išsiskiria paprastu dizainu ir galimybe programuoti jų veikimo algoritmus. Dėl to sukurta su naudojant Arduino GSM signalizacija , gali būti kiek įmanoma labiau sukonfigūruotas objektui, kurį jis saugos.

Kas yra Arduino modulis?

Arduinos yra įdiegtos kaip mažos plokštės, turinčios savo mikroprocesorių ir atmintį. Plokštėje taip pat yra funkcinių kontaktų rinkinys, prie kurio galite prijungti įvairius elektrifikuotus įrenginius, įskaitant jutiklius, naudojamus apsaugos sistemoms.

Arduino procesorius leidžia įkelti vartotojo paties parašytą programą. Sukūrę savo unikalų algoritmą, galite numatyti optimalius skirtingų objektų apsaugos signalizacijos veikimo režimus ir skirtingoms naudojimo sąlygoms bei spręstinoms užduotims.

Ar sunku dirbti su Arduino?

Arduino moduliai yra labai populiarūs tarp daugelio vartotojų. Tai įmanoma dėl jo paprastumo ir prieinamumo.

Modulių valdymo programos parašytos naudojant įprastą C ++ ir priedus formoje paprastos funkcijosįvesties / išvesties procesų valdymas ant modulio kontaktų. Be to, programavimui taip pat gali būti naudojama nemokama programinė įranga Arduino IDE, veikianti Windows, Linux ar Mac OS.

Su Arduino moduliais įrenginių surinkimo procedūra buvo labai supaprastinta. GSM signalizaciją Arduino galima sukurti be lituoklio – surinkimas vyksta naudojant duonos lentą, trumpiklius ir laidus.

Kaip sukurti žadintuvą naudojant „Arduino“?

Pagrindiniai reikalavimai, kuriuos „Arduino“ generuojama gsm signalizacijos sistema turi atitikti savo rankomis, yra šie:

  • pranešti objekto savininkui apie įsilaužimą ar įsiskverbimą;
  • išorinių sistemų, tokių kaip garso sirena, įspėjamieji žibintai, palaikymas;
  • signalizacijos valdymas SMS žinute arba skambučiu;
  • autonominis veikimas be išorinio maitinimo šaltinio.

Norėdami sukurti žadintuvą, jums reikės:

  • Arduino modulis;
  • funkcinių jutiklių rinkinys;
  • arba modemas;
  • autonominis maitinimo šaltinis;
  • išoriniai vykdomieji įrenginiai.

Išskirtinis Arduino modulių bruožas yra specialių išplėtimo kortelių naudojimas. Jų pagalba prie „Arduino“ prijungiami visi papildomi įrenginiai, reikalingi apsaugos sistemos konfigūracijai surinkti. Tokios plokštės montuojamos ant Arduino modulio „sumuštinio“ pavidalu, o atitinkami pagalbiniai įrenginiai prijungiami prie pačių plokščių.

Kaip tai veikia?

Kai suveikia vienas iš prijungtų jutiklių, signalas perduodamas į Arduino modulio procesorių. Naudodamas įkeltą pasirinktinę programinę įrangą, mikroprocesorius ją apdoroja pagal konkretų algoritmą. Dėl to gali būti suformuota komanda valdyti išorinę pavarą, kuri jai perduodama per atitinkamą išplėtimo-sąsajos plokštę.

Kad būtų užtikrinta galimybė saugomo namo ar buto savininkui siųsti įspėjamuosius signalus, prie Arduino modulio per išplėtimo plokštę prijungiamas specialus GSM modulis. Jis įdiegia vieno iš tiekėjų SIM kortelę korinio ryšio.

Jei nėra specialaus GSM adapterio, jo vaidmenį gali atlikti eilinis Mobilusis telefonas... Be SMS žinučių su įspėjimu apie žadintuvą ir rinkimo siuntimo, mobiliojo ryšio buvimas leis jums valdyti GSM signalizacija Arduino nuotoliniu būdu, taip pat stebėti objekto būseną siųsdami specialius užklausas.

"Pastaba!

Bendravimui su objekto savininku, be GSM modulių, galima naudoti ir paprastus modemus, kurie užtikrina ryšį internetu.

Tokiu atveju, suveikus jutikliui, procesoriaus apdorotas signalas per modemą perduodamas į specialų portalą ar svetainę. Ir jau iš svetainės automatiškai generuojamas įspėjamasis SMS arba siuntimas į susietą el.

išvadas

Arduino modulių naudojimas leis vartotojams savarankiškai kurti GSM signalizacijas, kurios gali dirbti su įvairiais funkciniais jutikliais ir valdyti išorinius įrenginius. Dėl galimybės panaudoti įvairius daviklius galima gerokai išplėsti signalizacijos funkcijas ir sukurti kompleksą, kuris stebės ne tik objekto saugumą, bet ir jo būklę. Pavyzdžiui, objekte bus galima kontroliuoti temperatūrą, fiksuoti vandens ir dujų nuotėkį, išjungti jų tiekimą įvykus nelaimei ir daug daugiau.

Jo autorius norėjo pagaminti naminį gaminį, kad jis būtų pigus ir belaidis.
Šiame naminiame gaminyje naudojamas PIR judesio jutiklis, o informacija perduodama naudojant RF modulį.

Autorius norėjo naudoti infraraudonųjų spindulių modulį, bet kadangi jis turi ribotą diapazoną, ir plius gali veikti tik matymo linijos į imtuvą, todėl jis pasirinko RF modulį, galintį pasiekti maždaug 100 metrų atstumą.


Kad lankytojams būtų lengviau peržiūrėti signalizacijos mazgą, nusprendžiau straipsnį suskirstyti į 5 etapus:
1 etapas: Sukurkite siųstuvą.
2 etapas: sukurkite imtuvą.
3 etapas: programinės įrangos diegimas.
4 etapas: Surinktų modulių testavimas.
5 etapas: korpuso surinkimas ir modulio įdėjimas į jį.

Autoriui reikėjo tik:
- 2 plokštės ARDUINO UNO / ARDUINO MINI / ARDUINO NANO imtuvui ir siųstuvui;
- RF siųstuvo-imtuvo modulis (433 MHz);
- PIR judesio jutiklis;
- 9V baterijos (2 vnt.) ir jungtys joms;
- Skambutis;
- Šviesos diodas;
- Rezistorius, kurio varža 220 omų;
- Bandomoji Lenta;
- Džemperiai / laidai / džemperiai;
- Plokštė;
- Kaiščių jungtys nuo plokštės iki plokštės;
- Jungikliai;
- Imtuvo ir siųstuvo korpusai;
- Spalvotas popierius;
- Montavimo juosta;
- Tipo nustatymo skalpelis;
- Karštų klijų pistoletas;
- Lituoklis;
- Žnyplės / nuėmimo įrankis;
- Žirklės metalui.


1 etapas.
Pradėkime kurti siųstuvą.
Žemiau yra diagrama, kaip veikia judesio jutiklis.


Pats siųstuvas susideda iš:
- Judesio jutiklis;
- Arduino plokštės;
- Siųstuvo modulis.


Pats jutiklis turi tris išėjimus:
- VCC;
- GND;
- IŠORĖS.

Po to patikrinau jutiklio veikimą


Dėmesio!!!
Prieš atsisiųsdamas programinę įrangą, autorius įsitikina, kad dabartinė plokštė ir nuoseklusis prievadas yra teisingai nustatyti Arduino IDE nustatymuose. Tada įkėliau eskizą:

Vėliau, kai judesio jutiklis užfiksuos judėjimą priešais jį, užsidegs šviesos diodas, taip pat monitoriuje galėsite matyti atitinkamą pranešimą.


Pagal žemiau pateiktą diagramą.


Siųstuvas turi 3 kontaktus (VCC, GND ir Data), juos sujungiame:
- VCC> 5V pagal kaištį ant plokštės;
- GND> GND;
- Duomenys> 12 kontaktų plokštėje.

2 etapas.


Pats imtuvas susideda iš:
- RF imtuvo modulis;
- Arduino plokštės
- Garsiakalbis (garsiakalbis).

Imtuvo grandinė:


Imtuvas, kaip ir siųstuvas, turi 3 kontaktus (VCC, GND ir Data), juos sujungiame:
- VCC> 5V pagal kaištį ant plokštės;
- GND> GND;
- Duomenys> 12 kontaktų plokštėje.


3 etapas.
Autorius pasirinko bibliotekos failą kaip visos programinės įrangos pagrindą. Atsisiunčiau, kuris jis yra, ir įdėjau jį į Arduino bibliotekų aplanką.

Siųstuvo programinė įranga.
Prieš įkeldamas programinės įrangos kodą į plokštę, autorius nustatė šiuos IDE parametrus:
- lenta -> Arduino Nano (arba bet kokia jūsų naudojama plokštė);
- Serijinis prievadas ->


Nustačius parametrus, autorius atsisiuntė Wireless_tx programinės įrangos failą ir įkėlė jį į plokštę:

Imtuvo programinė įranga
Autorius pakartoja tuos pačius veiksmus priimančiajai lentai:
- lenta -> Arduino UNO (arba bet kokia jūsų naudojama plokštė);
- Serial Port -> COM XX (patikrinkite prievadą, prie kurio prijungta jūsų plokštė).



Kai autorius nustato parametrus, atsisiunčia failą wireless_rx ir įkelia jį į plokštę:


Tada, naudodamas programą, kurią galima atsisiųsti, autorius sugeneravo garsą.

4 etapas.
Be to, atsisiuntus programinę įrangą, autorius nusprendė patikrinti, ar viskas veikia tinkamai. Autorius pajungė maitinimo šaltinius ir perdavė ranka prieš jutiklį ir jam pradėjo veikti garsinis signalas, vadinasi, viskas veikia kaip priklauso.


5 etapas.
Galutinis siųstuvo surinkimas
Pirma, autorius nupjovė išsikišusius kaiščius nuo imtuvo, siųstuvo, arduino plokščių ir kt.


Po to sujungiau arduino plokštę su judesio jutikliu ir RF siųstuvu, naudodamas džemperius.


Tada autorius pradėjo gaminti siųstuvo korpusą.

Pirmiausia jis išpjovė: skylę jungikliui ir apvali skylė judesio jutikliui, o tada priklijavo jį prie korpuso.




Tada autorė sulankstė spalvoto popieriaus lapą ir priklijavo atvaizdą prie priekinio viršelio, kad paslėptų vidines naminio gaminio dalis.


Po to autorius, naudodamas dvipusę juostą, dėklo viduje pradėjo dėti elektroninį užpildą.



Galutinis imtuvo surinkimas
Autorius nusprendė prisijungti Arduino lenta su tvirtinimo plokšte su gumine juostele, taip pat sumontuokite RF imtuvą.


Toliau autorius kitame korpuse išpjauna dvi skylutes: vieną – signalizacijai, kitą – jungikliui.


Ir klijuoja.


Po to autorius ant visų dalių montuoja džemperius.




Tada autorius įdeda gatavą plokštę į korpusą ir pritvirtina dvipusiais klijais.

Sveiki visi, šiandien apžvelgsime įrenginį, vadinamą judesio jutikliu. Daugelis iš mūsų yra girdėję apie šį dalyką, kažkas net susidūrė su šiuo įrenginiu. Kas yra judesio jutiklis? Pabandykime tai išsiaiškinti, taigi:

Judesio jutiklis arba poslinkio jutiklis - prietaisas (prietaisas), kuris nustato bet kokių objektų judėjimą. Labai dažnai šie įrenginiai naudojami apsaugos, signalizacijos ir stebėjimo sistemose. Šių jutiklių faktorių formų yra labai daug, tačiau mes apsvarstysime būtent judesio jutiklio modulį, skirtą prijungti prie plokščių. Arduino,ir tai iš firmos RobotDyn. Kodėl būtent ši įmonė? Nenoriu reklamuoti šios parduotuvės ir jos gaminių, tačiau būtent šios parduotuvės produktai buvo pasirinkti laboratoriniais pavyzdžiais dėl kokybiško jų produkcijos pateikimo galutiniam vartotojui. Taigi, mes susitinkame - judesio jutiklis(PIR jutiklis) iš RobotDyn:


Šie jutikliai yra mažo dydžio, sunaudoja mažai energijos ir yra lengvai naudojami. Be to, RobotDyn judesio jutikliai taip pat turi šilkografija pažymėtus kontaktus, o tai, žinoma, smulkmena, bet labai malonu. Na, o tiems, kurie naudoja tuos pačius, bet tik kitų firmų daviklius, nerimauti nereikia – visi jie turi tą patį funkcionalumą, o net jei kontaktai nėra pažymėti, tokių daviklių pinout nesunku rasti internete.

Pagrindinis specifikacijas judesio jutiklis (PIR jutiklis):

Jutiklio darbo zona: nuo 3 iki 7 metrų

Stebėjimo kampas: iki 110 o

Darbinė įtampa: 4,5 ... 6 voltai

Vartojama srovė: iki 50μA

Pastaba: Standartinis jutiklio funkcionalumas gali būti išplėstas prijungus šviesos jutiklį prie IN ir GND kaiščių, tada judesio jutiklis veiks tik tamsoje.

Įrenginio inicijavimas.

Kai įjungtas, jutiklis inicijuojamas beveik minutę. Šiuo laikotarpiu jutiklis gali duoti klaidingus signalus, į tai reikia atsižvelgti programuojant mikrovaldiklį su prie jo prijungtu jutikliu arba grandinėse vykdomieji įrenginiai jei prijungimas atliekamas nenaudojant mikrovaldiklio.

Aptikimo kampas ir plotas.

Aptikimo (sekimo) kampas yra 110 laipsnių, aptikimo atstumo diapazonas yra nuo 3 iki 7 metrų, visa tai parodyta žemiau esančioje iliustracijoje:

Jautrumo (aptikimo atstumo) ir laiko delsos reguliavimas.

Žemiau esančioje lentelėje pateikiami pagrindiniai judesio jutiklio reguliavimai, kairėje yra laiko delsos reguliatorius, atitinkamai kairiajame stulpelyje pateikiamas galimų nustatymų aprašymas. Dešiniajame stulpelyje aprašomi aptikimo atstumo koregavimai.


Jutiklio jungtis:

  • PIR jutiklis - Arduino Nano
  • PIR jutiklis - Arduino Nano
  • PIR jutiklis - Arduino Nano
  • PIR jutiklis - šviesos jutikliui
  • PIR jutiklis - šviesos jutikliui

Tipiška sujungimo schema pateikta žemiau esančioje diagramoje, mūsų atveju jutiklis pavaizduotas įprastai iš galinės pusės ir yra prijungtas prie Arduino Nano plokštės.

Eskizas, demonstruojantis judesio jutiklio veikimą (naudokite programą):

/ * * PIR jutiklis -> Arduino Nano * PIR jutiklis -> Arduino Nano * PIR jutiklis -> Arduino Nano * / void setup () (// Užmegzkite ryšį su nuosekliuoju prievadu monitor.begin (9600);) void loop ( ) ( // Skaitykite slenkstinę reikšmę iš prievado A0 // paprastai ji yra didesnė nei 500, jei yra signalas if (analogRead (A0)> 500) (// Signalas iš judesio jutiklio Serial.println ("Yra judėjimas ! !!);) else (/ / Nėra signalo Serial.println („Viskas tylu...“);))

Eskizas yra įprastas judesio jutiklio bandymas, jis turi daug trūkumų, tokių kaip:

  1. Galimi klaidingi aliarmai, jutiklį reikia inicijuoti per vieną minutę.
  2. Kietas prijungimas prie prievado monitoriaus, nėra išvesties vykdomųjų įrenginių (relės, sirenos, šviesos indikatoriaus)
  3. Signalo laikas jutiklio išėjime yra per trumpas, aptikus judesį, reikia programiškai atidėti signalą ilgesniam laikui.

Apsunkinus grandinę ir išplėtus jutiklio funkcionalumą, galima išvengti minėtų trūkumų. Norėdami tai padaryti, turite papildyti grandinę relės moduliu ir per šį modulį prijungti įprastą 220 voltų lempą. Pats relės modulis bus prijungtas prie Arduino Nano plokštės 3 kaiščio. Taigi schema:

Dabar atėjo laikas patikslinti eskizą, kuris buvo naudojamas judesio jutikliui išbandyti. Eskizo relės išjungimo uždelsimas bus įgyvendintas, nes pats judesio jutiklis turi per trumpą signalo laiką išėjime, kai suveikia. Programa įgyvendina 10 sekundžių delsą, kai jutiklis suveikia. Jei pageidaujama, šį laiką galima padidinti arba sumažinti keičiant kintamojo reikšmę DelayValue... Žemiau yra visos surinktos grandinės eskizas ir vaizdo įrašas:

/ * * PIR jutiklis -> Arduino Nano * PIR jutiklis -> Arduino Nano * PIR jutiklis -> Arduino Nano * relės modulis -> Arduino Nano * / // relout - kaištis (išvesties signalas) relės moduliui const int relout = 3 ; // prevMillis - kintamasis, skirtas išsaugoti ankstesnio programos nuskaitymo ciklo laiką // intervalas - laiko intervalas sekundžių skaičiavimui, kol relė išsijungia be ženklo ilga prevMillis = 0; int intervalas = 1000; // DelayValue – laikotarpis, per kurį relė išlaikoma įjungtoje būsenoje int DelayValue = 10; // initSecond – inicijavimo ciklo iteracijos kintamasis int initSecond = 60; // countDelayOff - laiko intervalų skaitiklis static int countDelayOff = 0; // trigger - judesio jutiklio, suaktyvinančio statinį bool trigger, vėliavėlė = false; void setup () (// Standartinė prievado, prie kurio prijungtas relės modulis, inicijavimo procedūra // SVARBU!!! - kad relės modulis liktų iš pradžių išjungtoje būsenoje // ir nebūtų suaktyvintas inicijavimo metu, Į I / O prievadą reikia įrašyti HIGH reikšmę // , taip išvengsite klaidingo „apvertimo“ ir išsaugosite // relės būseną, kuri buvo prieš visos grandinės įjungimą pinMode (relout, OUTPUT); digitalWrite (relout, HIGH); // Čia viskas paprasta - laukiame 60 ciklų pabaigos (kintamasis initSecond) // trunkančių 1 sekundę, per tą laiką jutiklis „savaime inicijuoja“ (int i = 0; i< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) (// Nustatyti judesio jutiklio paleidimo vėliavėlę if (! Trigger) (trigger = true;)) // Kol judesio jutiklio paleidimo vėliavėlė nustatyta, kol (suveikti) (// Vykdyti vadovaudamiesi instrukcijomis// Išsaugokite kintamąjį currMillis // milisekundžių reikšmę, praėjusią nuo programos vykdymo pradžios // nepasirašytas ilgas currMillis = millis (); // Palyginkite su ankstesne milisekundžių reikšme // jei skirtumas didesnis už nurodytą intervalą, tada: if (currMillis - prevMillis> intervalas) (// Išsaugokite esamą milisekundžių reikšmę į prevMillis kintamąjį prevMillis = currMillis; // Patikrinkite delsos skaitiklį, palygindami jį su periodo reikšme / / per kurį relė turi būti įjungta // būsite if (countDelayOff> = DelayValue) (// Jei reikšmė lygi, tada: // iš naujo nustatykite judesio vėliavėlę jutiklio trigeris = false; // Iš naujo nustatykite delsos skaitiklio skaičiųDelayOff = 0; // Išjunkite relę digitalWrite (reout, HIGH); // Nutraukite kilpos pertrauką;) else (// Jei reikšmė vis dar mažesnė, tada // Padidinkite delsos skaitiklį vienu skaičiumiDelayOff ++; // Laikykite relę įjungtą „digitalWrite“ (relout, LOW);))))

Programą sudaro tokia konstrukcija:

nepasirašytas ilgas prevMillis = 0;

int intervalas = 1000;

...

nepasirašytas ilgas currMillis = milis ();

if (currMillis - prevMillis> intervalas)

{

prevMillis = currMillis;

....

// Mūsų operacijos yra uždarytos konstrukcijos korpuse

....

}

Patikslinimui nuspręsta atskirai pakomentuoti šią statybą. Taigi, šis dizainas leidžia atlikti savotišką paralelinę užduotį programoje. Konstrukcijos korpusas suveikia maždaug kartą per sekundę, tai palengvina kintamasis intervalas... Pirma, kintamasis currMillis priskiriama reikšmė, grąžinta, kai funkcija iškviečiama milijonas ()... Funkcija milijonas () grąžina milisekundžių skaičių nuo programos pradžios. Jei skirtumas currMillis - prevMillis didesnė už kintamojo reikšmę intervalas tada tai reiškia, kad nuo programos vykdymo pradžios praėjo daugiau nei sekundė ir jums reikia išsaugoti kintamojo reikšmę currMillisį kintamąjį prevMillis tada atlikite konstrukcijas korpuse esančias operacijas. Jei skirtumas currMillis - prevMillis mažesnė už kintamojo reikšmę intervalas, tada tarp programos nuskaitymo ciklų dar nepraėjo sekundė, o struktūros turinyje esančios operacijos praleidžiamos.

Na, o straipsnio pabaigoje autoriaus vaizdo įrašas:

Įgalinkite javascript, kad komentarai veiktų.

Infraraudonųjų (IR, IR) jutikliai dažniausiai naudojami atstumams matuoti, tačiau juos galima naudoti ir objektams aptikti. Prijungę kelis IR jutiklius prie Arduino, galite sukurti signalizacija.

Apžvalga

Infraraudonųjų (IR, IR) jutikliai dažniausiai naudojami atstumams matuoti, tačiau juos galima naudoti ir objektams aptikti. IR jutikliai susideda iš infraraudonųjų spindulių siųstuvo ir infraraudonųjų spindulių imtuvo. Siųstuvas skleidžia infraraudonosios spinduliuotės impulsus, o imtuvas aptinka bet kokius atspindžius. Jei imtuvas aptinka atspindį, tai reiškia, kad priešais jutiklį tam tikru atstumu yra objektas. Jei nėra atspindžio, nėra ir objekto.

IR jutiklis, kurį naudosime šiame projekte, aptinka atspindžius tam tikrame diapazone. Šie jutikliai turi nedidelį linijinį krūvį sujungtą įrenginį (CCD), kuris nustato kampą, kuriuo IR spinduliuotė grįžta į jutiklį. Kaip parodyta paveikslėlyje žemiau, jutiklis perduoda infraraudonųjų spindulių impulsą į erdvę, o kai priešais jutiklį atsiranda objektas, impulsas atsispindi atgal į jutiklį kampu, proporcingu atstumui tarp objekto ir jutiklio. Jutiklio imtuvas aptinka ir išveda kampą, o naudodami šią vertę galite apskaičiuoti atstumą.

Prijungę porą IR jutiklių prie „Arduino“, galime sukurti paprastą įsilaužimo signalizaciją. Jutiklius sumontuosime ant durų staktos, o teisingai sureguliavę jutiklius galėsime aptikti, kai kas nors įeina pro duris. Kai taip atsitiks, signalas IR jutiklio išėjime pasikeis, o šį pokytį aptiksime nuolat skaitydami jutiklių išvestį su Arduino. V šis pavyzdysžinome, kad daiktas praeina pro duris, kai IR jutiklio išvesties rodmuo viršija 400. Kai taip atsitiks, Arduino suaktyvins aliarmą. Norėdami iš naujo nustatyti aliarmą, vartotojas gali paspausti mygtuką.

Komponentai

  • 2 x IR atstumo jutiklis;
  • 1 x Arduino Mega 2560;
  • 1 x garsinis signalas;
  • 1 x mygtukas;
  • 1 x 470 omų rezistorius;
  • 1 x NPN tranzistorius;
  • džemperiai.

Sujungimo schema

Šio projekto schema parodyta žemiau esančiame paveikslėlyje. Dviejų IR jutiklių išėjimai yra prijungti prie kaiščių A0 ir A1. Kiti du kontaktai yra prijungti prie 5 V ir GND. Prie 3 kaiščio per tranzistorių prijungiamas 12 voltų garsinis signalas, o mygtukas, naudojamas aliarmui išjungti, prijungtas prie 4 kaiščio.


Žemiau esančioje nuotraukoje parodyta, kaip šiam eksperimentui priklijavome jutiklius prie durų staktos. Žinoma, nuolatinio naudojimo atveju jutiklius montuotumėte kitaip.


Montavimas

  1. Prijunkite Arduino plokštės 5 V ir GND kaiščius prie jutiklių maitinimo ir GND kaiščių. Jiems taip pat galite tiekti išorinę maitinimą.
  2. Prijunkite jutiklių išvesties laidus prie Arduino plokštės A0 ir A1 kaiščių.
  3. Prijunkite Arduino 3 kaištį prie tranzistoriaus pagrindo per 1K rezistorių.
  4. Prijunkite 12 V įtampą į tranzistoriaus kolektorių.
  5. Prijunkite teigiamą 12 V garso signalo laidą prie emiterio, o neigiamą - prie įžeminimo bėgio.
  6. Mygtuku prijunkite 4 kaištį prie 5 V kaiščio. Saugumo sumetimais visada geriausia tai padaryti naudojant papildomą mažą rezistorių, kad būtų išvengta didelio srovės srauto.
  7. Prijunkite Arduino plokštę prie kompiuterio per USB kabelį ir įkelkite programą į mikrovaldiklį naudodami Arduino IDE.
  8. Įjunkite Arduino plokštę naudodami maitinimo šaltinį, bateriją arba USB kabelį /

Kodas

const int buzzer = 3; // 3 kaištis yra garsinio signalo išvestis const int mygtukas = 4; // 4 kaištis yra mygtuko galios sąrankos () įvestis (pinMode (skambrelis, OUTPUT); // 3 kaištį nustatykite į išvestį pinMode (mygtukas, INPUT); // 4 kaištį nustatykite į įvestį) void loop () (/ / nuskaitykite abiejų jutiklių išvestį ir palyginkite rezultatą su slenksčiu int sensor1_value = analogRead (A0); int sensor2_value = analogRead (A1); if (sensor1_value> 400 || sensor2_value> 400) (while (true) (digitalWrite (buzzer) , HIGH) ; // įjungti aliarmą, jei (digitalRead (mygtukas) == HIGH) pertrauka;)) else (digitalWrite (skambrelis, LOW); // išjungti signalą))

Vaizdo įrašas