Мазмұны:

Arduino көмегімен телефондық қауіпсіздік жүйесі: 5 қадам
Arduino көмегімен телефондық қауіпсіздік жүйесі: 5 қадам

Бейне: Arduino көмегімен телефондық қауіпсіздік жүйесі: 5 қадам

Бейне: Arduino көмегімен телефондық қауіпсіздік жүйесі: 5 қадам
Бейне: Lesson 68, Home Automation: How to control 16 Channel Relay module using Arduino control 16 AC loads 2024, Қараша
Anonim
Arduino көмегімен телефондық қауіпсіздік жүйесі
Arduino көмегімен телефондық қауіпсіздік жүйесі

Егер сіз бұл жобаны қолданбасаңыз, сіздің үй қорғалмайды. Бұл жоба сіздің үйіңізге қаскүнем кірген кезде ұялы телефон арқылы дабыл қосуға көмектеседі.

Осылайша, егер сіз бұл жобаны қолдансаңыз, сізге ұялы телефон арқылы SMS келеді және басып кірген жағдайда үйіңізді қорғай аласыз.

Ол үшін біз SIM800L модулі мен PIR сенсоры бар Arduino үйлесімді тақтасын қолданамыз. PIR сенсоры зиянкестердің болуын анықтауға, ал SIM800L үй иесіне ескерту SMS жіберуге жауап береді.

Жабдықтар

  • Arduino үйлесімді тақта
  • PIR сенсоры
  • Резистор 10 кР
  • Секіргіштер
  • Protoboard
  • SIM800L модулі

1 -қадам: Жобаның жүрегі

Жобаның жүрегі - SIM800L модулі. Бұл модуль Arduino командаларын қабылдай алады және пайдаланушының ұялы телефонына SMS жібере алады. Осылайша, пайдаланушы ескерту алған кезде полицияға хабарласа алады немесе кез келген басқа әрекетті жасай алады.

Arduino үйлесімді тақтасы сенсордың күйін тексеруге жауап береді, содан кейін зиянкестердің бар екенін анықтаған жағдайда пайдаланушыға ескерту хабарламасын жібереді.

Бұл процесс Arduino мен SIM800L модулі арасындағы басқару командаларының арқасында жүзеге асады. Сондықтан, біз сізге бұл жүйені құруды, сіздің үйді қорғауды қалауды және кез келген зиянкестер кірген кезде сізге ескертуді біртіндеп ұсынамыз.

Егер сіз Arduino үйлесімді тақтасын жүктегіңіз келсе, сіз осы сілтемеге кіре аласыз және JLCPCB тақталарын сатып алу үшін файлдарды ала аласыз.

Енді, бастайық!

2 -қадам: Жобаның электронды схемасы және бағдарламалау

Электрондық схема және бағдарламалау жобасы
Электрондық схема және бағдарламалау жобасы
Электрондық схема және бағдарламалау
Электрондық схема және бағдарламалау

Алдымен біз электронды схеманы қол жетімді етеміз, содан кейін біз сіз үшін жобаның кодын кезең -кезеңімен талқылайтын боламыз.

#include SoftwareSerial чипі (10, 11);

SeuNumero жолы = «+5585988004783»;

#анықтайтын сенсор 12

bool ValorAtual = 0, ValorAnterior = 0;

жарамсыз орнату ()

{Serial.begin (9600); Serial.println («Inicializando Systema …»); кешіктіру (5000); chip.begin (9600); кешіктіру (1000);

pinMode (сенсор, INPUT); // Entrada сенсорының конфигурациясы

}

бос цикл ()

{// Le o valor do pino do sensor ValorAtual = digitalRead (сенсор);

егер (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert; ValorAnterior = 1; }

if (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude (); ValorAnterior = 0; }

}

жарамсыз IntrudeAlert () // Униде Байкаға арналған ескертулер

{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 () // Қалыпты

{chip.println («AT+CMGF = 1»); кешіктіру (1000); chip.println («AT + CMGS = \» « + SeuNumero +» / «\ r»); кешіктіру (1000); String SMS = «Енді кіруге болмайды!»; chip.println (SMS); кешіктіру (100); chip.println ((char) 26); кешіктіру (1000); }

Төменде көрсетілген кодта біз алдымен SoftwareSerial.h сериялық байланыс кітапханасын төменде көрсетілгендей жарияладық.

#қосу

Кітапхананы анықтағаннан кейін Tx және Rx байланыс түйреуіштері анықталды. Бұл түйреуіштер баламалы түйреуіштер болып табылады және басқа Arduino түйреуіштерінде сериялық байланысқа рұқсат беру үшін қолданылады. SoftwareSerial кітапханасы бағдарламалық жасақтаманы функционалдылықты қайталау үшін пайдалануға мүмкіндік беру үшін жасалған

SoftwareSerial чипі (10, 11);

Осыдан кейін төменде ұялы телефон нөмірі жарияланды.

SeuNumero жолы = «+5585988004783»;

Электронды дизайн схемасы қарапайым және құрастыруға оңай. Схемада көріп тұрғаныңыздай, Arduino үйлесімді тақтасы сенсордың күйін оқуға, содан кейін үй иесіне SMS жіберуге жауап береді.

Хабарлама үйге кірген адам табылған жағдайда жіберіледі. PIR (Passive Infra Red) сенсоры - инфрақызыл сигналдан қозғалысты анықтау үшін қолданылатын сенсор. Arduino -ға жіберілген сигналдан SIM800L модулі пайдаланушыға хабарлама жібереді.

Диод SIM800L модулін беру үшін кернеудің төмендеуін қамтамасыз ету үшін қолданылады. Себебі модуль 5В -пен жұмыс істей алмайды. Осылайша, модульді қуаттандыратын және оның қауіпсіз жұмыс істеуін қамтамасыз ететін 4.3В кернеуі келеді.

3 -қадам: Void Setup () функциясы

Бос орнату функциясында біз сериялық байланысты инициализациялаймыз және сенсорлық түйреуішті кіріс ретінде конфигурациялаймыз. Кодтың аймағы төменде көрсетілген.

жарамсыз орнату ()

{

Serial.begin (9600); Serial.println («Inicializando Sistema…»); кешіктіру (5000); chip.begin (9600); кешіктіру (1000); pinMode (сенсор, INPUT); // Entrada кіретін сенсордың конфигурациясы}

Көріп отырғаныңыздай, екі сериялық байланыс инициализацияланды. Serial.begin Arduino түпнұсқалық сериясын инициализациялау үшін қолданылады, chip.begin - SoftwareSerial кітапханасы арқылы эмуляцияланған серия. Осыдан кейін біз void loop функциясын орындаймыз.

4 -қадам: Жоба және Void Loop функциясы

Жоба және бос цикл функциясы
Жоба және бос цикл функциясы
Жоба және Void Loop функциясы
Жоба және Void Loop функциясы

Енді біз void loop функциясында бағдарламалаудың негізгі логикасын ұсынамыз.

void loop () {// Le o valor do pino do sensor ValorAtual = digitalRead (сенсор);

егер (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert ();

ValorAnterior = 1;

}

if (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude ();

ValorAnterior = 0;

}

}

Біріншіден, PIR қатысу сенсорының сигналы төменде көрсетілгендей оқылады.

ValorAtual = digitalRead (сенсор);

Осыдан кейін ValorAtual айнымалы мәнінің төменде көрсетілгендей 1 немесе 0 екендігі тексеріледі.

if (ValorAtual == 1 && ValorAnterior == 0) {IntrudeAlert ();

ValorAnterior = 1;

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

ValorAnterior = 0;

}

ValorAtual айнымалысы 1 болса, ValorAnterior айнымалы мәндері 0 болса, датчик іске қосылады және алдыңғы жағында ол өшіріледі (ValorAnterior == 0). Осылайша, функция орындалады және пайдаланушы ұялы телефонға хабарлама алады. Осыдан кейін ValorAnterior айнымалы мәні 1 -ге тең болады.

Осылайша, ValorAnterior айнымалысы сенсордың нақты күйінің іске қосылғандығы туралы сигнал береді.

Енді ValorAtual айнымалы мәні 0 -ге тең және ValorAnterior айнымалы мәні 0 -ге тең болса, сенсор кіруді анықтамайды, содан кейін оның мәні іске қосылады.

Осылайша, жүйе пайдаланушының ұялы телефонына хабарлама жібереді және сенсордың нақты мәнін 0 -ге жаңартады. Бұл мән сенсордың қазіргі уақытта қосылмайтынын көрсетеді.

Пайдаланушыға жіберілген хабарламалар жоғарыда көрсетілген.

Енді біз пайдаланушының ұялы телефонына хабарлама жіберу функциясымен жұмыс жасауды үйренеміз.

5 -қадам: хабарларды жіберу функциялары

Бұл жүйеде екі функция бар. Олар бірдей құрылымы бар функциялар. Олардың арасындағы айырмашылық - бұл атау мен жіберілген хабарлама, бірақ біз оны талдағанда, олардың мүлдем бірдей екенін көреміз.

Әрі қарай, біз функциялардың толық құрылымын ұсынамыз және кодты талқылаймыз.

жарамсыз IntrudeAlert () // Қызметтер мен қызметтерді жоюға арналған нұсқаулықтар (chip.println («AT+CMGF = 1»)); кешіктіру (1000); chip.println («AT + CMGS = \» « + SeuNumero +» / «\ r»); кешіктіру (1000); Жолдық SMS = «Есік ашылды!»; chip.println (SMS); кешіктіру (100); chip.println ((char) 26); кешіктіру (1000); }

жарамсыз NoMoreIntrude () // Қалыпты

{chip.println («AT+CMGF = 1»); кешіктіру (1000); chip.println («AT + CMGS = \» « + SeuNumero +» / «\ r»); кешіктіру (1000); String SMS = «Жабық есік!»; chip.println (SMS); кешіктіру (100); chip.println ((char) 26); кешіктіру (1000); }

SIM800L модулі өз функцияларын басқару үшін AT командасын қолданады. Сондықтан, осы командалар арқылы біз пайдаланушының ұялы телефонына хабарлама жібереміз.

AT+CGMF = 1 модульді SMS мәтіндік режимде жұмыс істеу үшін конфигурациялау үшін қолданылады. Кідірістен кейін жүйе келесі пәрмен арқылы пайдаланушыға хабарлама жібереді.

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

Пәрменде SIM800L модулі SeuNumero жолында тіркелген ұялы телефон нөміріне хабарлама жіберуге дайын болады. Осыдан кейін жүйе хабарламаны жолға жүктейді және төменде көрсетілгендей пайдаланушының ұялы телефонына жібереді.

String SMS = «Жабық есік!»; chip.println (SMS); кешіктіру (100); chip.println ((char) 26); кешіктіру (1000);

Char (26) хабардың аяқталуын білдіру үшін қолданылады. Бұл жұмыс процесі пайдаланушыға хабарлама жіберу үшін екі функцияға ұқсас.

Алғыс хаттар

Енді біз бұл жұмысты орындау үшін JLCPCB қолдауын бағалаймыз және сізді қызықтырса, келесі сілтемеге кіріп, Arduino үйлесімді тақтасын жүктеңіз.

Ұсынылған: