Բովանդակություն:

Հեռախոսային անվտանգության համակարգ Arduino- ով ՝ 5 քայլ
Հեռախոսային անվտանգության համակարգ Arduino- ով ՝ 5 քայլ

Video: Հեռախոսային անվտանգության համակարգ Arduino- ով ՝ 5 քայլ

Video: Հեռախոսային անվտանգության համակարգ Arduino- ով ՝ 5 քայլ
Video: Masterclass: Perfecting Your Home Wireless Network - Episode 3 2024, Հուլիսի
Anonim
Հեռախոսային անվտանգության համակարգ Arduino- ով
Հեռախոսային անվտանգության համակարգ Arduino- ով

Ձեր տունը անպաշտպան կլինի, եթե չկիրառեք այս նախագիծը: Այս նախագիծը կօգնի ձեզ ազդանշան արձակել բջջային հեռախոսի միջոցով, երբ ներխուժողը ներխուժի ձեր տուն:

Այդ կերպ, եթե օգտվեք այս նախագծից, բջջային հեռախոսի միջոցով SMS կստանաք և ներխուժումների դեպքում կկարողանաք պաշտպանել ձեր տունը:

Դրա համար մենք կօգտագործենք Arduino համատեղելի տախտակը ՝ SIM800L մոդուլով և PIR ցուցիչով: PIR սենսորը պատասխանատու կլինի ներխուժողի առկայությունը հայտնաբերելու համար, իսկ SIM800L- ը ՝ տան սեփականատիրոջը ահազանգող SMS ուղարկելու համար:

Պարագաներ

  • Arduino համատեղելի տախտակ
  • Սենսոր PIR
  • Դիմադրություն 10kR
  • Ցատկողներ
  • Նախատախտակ
  • SIM800L մոդուլ

Քայլ 1. Նախագծի սիրտը

Նախագծի սիրտը SIM800L մոդուլն է: Այս մոդուլը կկարողանա ստանալ Arduino հրամաններ և SMS ուղարկել օգտվողի բջջային հեռախոսին: Այդ կերպ, երբ օգտագործողը ստանում է ահազանգը, նա կարող է զանգահարել ոստիկանություն կամ կատարել ցանկացած այլ տեսակի գործողություն:

Arduino Compatible Board- ը պատասխանատու կլինի սենսորի վիճակը ստուգելու համար, այնուհետև զգուշացնող հաղորդագրություն կուղարկի օգտվողին, եթե հայտնաբերի ներխուժողի առկայությունը:

Այս գործընթացը կատարվում է Arduino- ի և SIM800L մոդուլի միջև եղած կառավարման հրամանների շնորհիվ: Հետևաբար, դրանից մենք ձեզ քայլ առ քայլ կներկայացնենք այս համակարգը կառուցելու, ձեր տունը պաշտպանված թողնելու և նախազգուշացնելու համար, երբ որևէ ներխուժող ներխուժի այն:

Եթե ցանկանում եք ներբեռնել Arduino- ի համատեղելի խորհուրդը, կարող եք մուտք գործել այս հղում և ֆայլեր ձեռք բերել ՝ ձեր տախտակները գնելու համար JLCPCB- ում:

Հիմա, եկեք սկսենք:

Քայլ 2. Նախագծի էլեկտրոնային սխեման և ծրագրավորումը

Նախագծի էլեկտրոնային սխեման և ծրագրավորումը
Նախագծի էլեկտրոնային սխեման և ծրագրավորումը
Նախագծի էլեկտրոնային սխեման և ծրագրավորումը
Նախագծի էլեկտրոնային սխեման և ծրագրավորումը

Նախ, մենք հասանելի կդարձնենք էլեկտրոնային սխեման, այնուհետև ձեզ համար քայլ առ քայլ կքննարկենք ծրագրի կոդը:

#ներառել SoftwareSerial չիպը (10, 11);

Լարային SeuNumero = "+5585988004783";

#սահմանել տվիչը 12

bool ValorAtual = 0, ValorAnterior = 0;

դատարկ կարգավորում ()

{Serial.begin (9600); Serial.println ("Inicializando Sistema …"); ուշացում (5000); chip.begin (9600); ուշացում (1000);

pinMode (տվիչ, Մուտք); // Կազմաձևում է Pino do Sensor- ը Entrada- ով

}

դատարկ շրջան ()

{// Le o valor do pino do sensor ValorAtual = digitalRead (տվիչ);

եթե (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert; ValorAnterior = 1; }

եթե (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude (); ValorAnterior = 0; }

}

void IntrudeAlert () // Funcao para enviar mensagem de alerta Umidade Baixa

{chip.println ("AT+CMGF = 1"); ուշացում (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); ուշացում (1000); Լարային SMS = "Intrude Alert!"; chip.println (SMS); ուշացում (100); chip.println ((char) 26); ուշացում (1000); }

դատարկ NoMoreIntrude () // Funcao para enviar mensagem de alerta Umidade Normal

{chip.println ("AT+CMGF = 1"); ուշացում (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); ուշացում (1000); Լարային SMS = "Այլևս ներխուժել"; chip.println (SMS); ուշացում (100); chip.println ((char) 26); ուշացում (1000); }

Ստորև ներկայացված կոդի մեջ մենք սկզբում հայտարարեցինք SoftwareSerial.h հաղորդակցական գրադարանի սերիան, ինչպես ցույց է տրված ստորև:

#ներառում

Գրադարանը սահմանելուց հետո սահմանվեցին Tx և Rx կապի կապերը: Այս կապումներն այլընտրանքային կապում են և օգտագործվում են Arduino- ի այլ կապում սերիական հաղորդակցության հնարավորություն տալու համար: SoftwareSerial գրադարանը մշակվել է, որը թույլ է տալիս օգտագործել ծրագրակազմը ՝ գործառույթը կրկնելու համար

SoftwareSerial չիպ (10, 11);

Սրանից հետո բջջային հեռախոսի համարը հայտարարված է ստորև:

Լարային SeuNumero = "+5585988004783";

Էլեկտրոնային դիզայնի սխեման պարզ է և հեշտ հավաքվում: Ինչպես տեսնում եք միացումում, Arduino Compatible Board- ը պատասխանատու է սենսորի կարգավիճակը կարդալու, այնուհետև տան սեփականատիրոջը SMS ուղարկելու համար:

Հաղորդագրությունը կուղարկվի, եթե ներսում ներխուժող անձ հայտնաբերվի: PIR (Passive Infra Red) տվիչը սենսոր է, որն օգտագործվում է ինֆրակարմիր ազդանշանից շարժումը հայտնաբերելու համար: Arduino- ին ուղարկված ազդանշանից SIM800L մոդուլը հաղորդագրություն կուղարկի օգտվողին:

Դիոդը կօգտագործվի SIM800L մոդուլը մատակարարելու համար լարման անկում ապահովելու համար: Քանի որ մոդուլը չի կարող սնուցվել 5 Վ -ով: Այս կերպ, 4.3V լարումը կժամանի ձեր մոդուլը սնուցելու և ապահովելու համար, որ այն անվտանգ աշխատի:

Քայլ 3: The Void Setup () գործառույթը

Անվավեր կարգաբերման գործառույթում մենք նախաստորագրելու ենք սերիական հաղորդակցությունը և կարգաբերելու ենք սենսորի քորոցը որպես մուտք: Կոդի տարածաշրջանը ներկայացված է ստորև:

դատարկ կարգավորում ()

{

Serial.begin (9600); Serial.println («Inicializando Sistema…»); ուշացում (5000); chip.begin (9600); ուշացում (1000); pinMode (տվիչ, Մուտք); // Configura o Pino do Sensor como Entrada}

Ինչպես հնարավոր է տեսնել, երկու սերիական հաղորդակցությունը նախաստորագրվեց: Serial.begin- ն օգտագործվում է Arduino- ի հարազատ սերիան նախաստորագրելու համար, իսկ chip.begin- ը `SoftwareSerial գրադարանի միջոցով ընդօրինակված սերիան: Դրանից հետո մենք կանենք void loop գործառույթը:

Քայլ 4. Նախագիծը և դատարկ օղակի գործառույթը

Նախագիծը և դատարկ օղակի գործառույթը
Նախագիծը և դատարկ օղակի գործառույթը
Նախագիծը և դատարկ օղակի գործառույթը
Նախագիծը և դատարկ օղակի գործառույթը

Այժմ մենք կներկայացնենք ծրագրավորման հիմնական տրամաբանությունը void loop գործառույթում:

void loop () {// Le o valor do pino do sensor ValorAtual = digitalRead (տվիչ);

եթե (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert ();

ValorAnterior = 1;

}

եթե (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude ();

ValorAnterior = 0;

}

}

Նախ, PIR ներկայության տվիչից ազդանշանը կկարդա, ինչպես ցույց է տրված ստորև:

ValorAtual = digitalRead (տվիչ);

Դրանից հետո այն կստուգվի, եթե ValorAtual փոփոխականի արժեքը 1 է կամ 0, ինչպես ցույց է տրված ստորև:

եթե (ValorAtual == 1 && ValorAnterior == 0) {IntrudeAlert ();

ValorAnterior = 1;

} if (ValorAtual == 0 && ValorAnterior == 0) {NoMoreIntrude ();

ValorAnterior = 0;

}

Case ValorAtual փոփոխականի դեպքում դա 1 է, իսկ ValorAnterior փոփոխականը `0, սենսորն իրականում ակտիվացված է և առջևում ապաակտիվացված (ValorAnterior == 0): Այս կերպ գործառույթը կկատարվի, և օգտագործողը կստանա հաղորդագրություն ձեր բջջային հեռախոսում: Դրանից հետո ValorAnterior փոփոխականի արժեքը հավասար կլինի 1 -ի:

Այս կերպ, ValorAnterior փոփոխականը ազդանշան կստանա, որ սենսորի փաստացի վիճակը գործարկվում է:

Այժմ, եթե ValorAtual փոփոխականի արժեքը 0 է, և ValorAnterior փոփոխականի արժեքը հավասար է 0 -ի, սենսորը չի հայտնաբերում ներխուժումը, այնուհետև դրա արժեքը գործարկվում է:

Այս կերպ համակարգը կուղարկի հաղորդագրություն օգտագործողի բջջային հեռախոսի համար և կթարմացնի սենսորի իրական արժեքը 0 -ով: Այս արժեքը ցույց կտա, որ սենսորը այս պահին չի գործարկվում:

Օգտագործողի համար ուղարկված հաղորդագրությունները ներկայացված են վերևում:

Այժմ մենք կսովորենք, թե ինչպես աշխատել օգտվողի բջջային հեռախոսի համար հաղորդագրություններ ուղարկելու գործառույթով:

Քայլ 5: Հաղորդագրություններ ուղարկելու գործառույթները

Այս համակարգում կա երկու գործառույթ. Դրանք նույն կառուցվածքով գործառույթներ են: Նրանց միջև եղած տարբերությունը անունը և ուղարկված հաղորդագրությունն է, բայց երբ այն վերլուծենք, կտեսնենք, որ դրանք ամբողջովին նույնն են:

Հաջորդը, մենք կներկայացնենք գործառույթների ամբողջական կառուցվածքը և կքննարկենք կոդը:

void IntrudeAlert () // Funcao para enviar mensagem de alerta Umidade Baixa {chip.println ("AT+CMGF = 1"); ուշացում (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); ուշացում (1000); Լարային SMS = "Բաց դուռ"; chip.println (SMS); ուշացում (100); chip.println ((char) 26); ուշացում (1000); }

դատարկ NoMoreIntrude () // Funcao para enviar mensagem de alerta Umidade Normal

{chip.println ("AT+CMGF = 1"); ուշացում (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); ուշացում (1000); Լարային SMS = "Փակ դուռ"; chip.println (SMS); ուշացում (100); chip.println ((char) 26); ուշացում (1000); }

SIM800L մոդուլը օգտագործում է AT հրամանը `իր գործառույթները վերահսկելու համար: Հետևաբար, այս հրամանների միջոցով մենք հաղորդագրություն կուղարկենք օգտագործողի բջջային հեռախոսի համար:

AT+CGMF = 1 -ը օգտագործվում է մոդուլը կարգավորելու համար SMS տեքստային ռեժիմում աշխատելու համար: Հետաձգումից հետո համակարգը օգտագործողի համար հաղորդագրություն կուղարկի հետևյալ հրամանի միջոցով:

chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r");

Հրամանում SIM800L մոդուլը պատրաստ կլինի ուղարկել հաղորդագրություն SeuNumero տողում գրանցված բջջային հեռախոսի համարի համար: Դրանից հետո համակարգը կբեռնի հաղորդագրությունը տողում և կուղարկի օգտվողի բջջային հեռախոսը, ինչպես ցույց է տրված ստորև:

Լարային SMS = "Փակ դուռ"; chip.println (SMS); ուշացում (100); chip.println ((char) 26); ուշացում (1000);

Հաղորդագրությունը (26) օգտագործվում է հաղորդագրության վերջը ազդանշան տալու համար: Այս աշխատանքային գործընթացը նման է երկու գործառույթների ՝ օգտվողին հաղորդագրություն ուղարկելու համար:

Շնորհակալագրեր

Այժմ, մենք բարձր ենք գնահատում JLCPCB- ի աջակցությունը այս աշխատանքը կատարելու համար, և եթե ձեզ հետաքրքրում է, մուտք գործեք հետևյալ հղումը և ներբեռնեք Arduino համատեղելի խորհուրդը:

Խորհուրդ ենք տալիս: