Мазмуну:

Телефон коопсуздук системасы Arduino менен: 5 кадам
Телефон коопсуздук системасы Arduino менен: 5 кадам

Video: Телефон коопсуздук системасы Arduino менен: 5 кадам

Video: Телефон коопсуздук системасы Arduino менен: 5 кадам
Video: Ежедневные новости Crypto Pirates — вторник, 19 января 2022 г. — последнее обновление новостей о криптовалютах 2024, Ноябрь
Anonim
Телефон коопсуздук системасы Arduino менен
Телефон коопсуздук системасы Arduino менен

Эгер сиз бул долбоорду колдонбосоңуз, үйүңүз корголбойт. Бул долбоор чоочун адам үйүңүзгө киргенде уюлдук телефон аркылуу ойготкучту иштетүүгө жардам берет.

Ошентип, эгер сиз бул долбоорду колдонсоңуз, сизге уюлдук телефон аркылуу SMS келет жана басып кирген учурда үйүңүздү коргоп кала аласыз.

Бул үчүн биз SIM800L модулу жана PIR сенсору менен Arduino шайкеш келген тактасын колдонобуз. PIR сенсору кирген адамдын бар экендигин аныктоого жооп берет жана SIM800L үй ээсине эскертүү SMS жөнөтүүгө жооптуу болот.

Жабдуулар

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

1 -кадам: Долбоордун жүрөгү

Долбоордун жүрөгү SIM800L модулу. Бул модуль Arduino командаларын кабыл алып, колдонуучунун уюлдук телефонуна SMS жөнөтө алат. Ошентип, колдонуучу эскертүү алганда, полицияга чалып же башка аракеттерди жасай алат.

Arduino Compatible Board сенсордун абалын текшерүү үчүн жооптуу болот жана андан кийин кирүүчү бар экенин аныктаса, колдонуучуга эскертүү билдирүүсүн жөнөтөт.

Бул процесс Arduino менен SIM800L модулунун ортосундагы башкаруу буйруктарынын аркасында ишке ашат. Ошондуктан, биз сизди бул системаны куруу үчүн этап -этабы менен тааныштырабыз, үйүңүздү коргоп коюңуз жана ар кандай кирүүчү басып киргенде сизге эскертебиз.

Эгерде сиз Arduino Compatible Board жүктөп алууну кааласаңыз, анда бул шилтемеге кирип, JLCPCBдеги такталарыңызды сатып алуу үчүн файлдарды ала аласыз.

Эми, баштайлы!

2 -кадам: Электрондук схема жана программалоо

Электрондук схема жана программалоо долбоору
Электрондук схема жана программалоо долбоору
Электрондук схема жана программалоо долбоору
Электрондук схема жана программалоо долбоору

Биринчиден, биз электрондук схеманы жеткиликтүү кылабыз, андан кийин долбоордун кодун этап -этабы менен талкуулайбыз.

#incluse 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); // Configura or Pino do Sensor como Entrada

}

боштук цикл ()

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

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

{IntrudeAlert; ValorAnterior = 1; }

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

{NoMoreIntrude (); ValorAnterior = 0; }

}

жараксыз IntrudeAlert () // Көңүл буруңуз

{chip.println ("AT+CMGF = 1"); кечигүү (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); кечигүү (1000); String SMS = "Intrude Alert!"; chip.println (SMS); кечиктирүү (100); chip.println ((char) 26); кечигүү (1000); }

жараксыз NoMoreIntrude () // Funcao en aligna de alerta Umidade Normal

{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 Compatible Board сенсордун абалын окуп, андан кийин үйдүн ээсине SMS жөнөтүүгө жооптуу.

Билдирүү үйдүн ичине кирген адам аныкталса жөнөтүлөт. PIR (Passive Infra Red) сенсору - инфракызыл сигналдын кыймылын аныктоо үчүн колдонулган сенсор. Arduinoго жөнөтүлгөн сигналдан SIM800L модулу колдонуучуга билдирүү жөнөтөт.

Диод SIM800L модулун берүү үчүн чыңалуунун төмөндөшүн камсыз кылуу үчүн колдонулат. Модуль 5V менен иштей албайт. Ошентип, модулуңузду иштетүү жана анын коопсуз иштешин камсыз кылуу үчүн 4.3V чыңалуусу келет.

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

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

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

{

Serial.begin (9600); Serial.println ("Inicializando Sistema…"); кечиктирүү (5000); chip.begin (9600); кечигүү (1000); pinMode (сенсор, INPUT); // Configura o Pino do Sensor como Entrada}

Көрүнүп тургандай, эки сериялык байланыш башталды. Serial.begin Arduino эне сериясын инициализациялоо үчүн колдонулат жана chip.begin - SoftwareSerial китепканасы аркылуу эмуляцияланган серия. Андан кийин, биз void loop функциясын аткарабыз.

4 -кадам: Долбоор жана Void Loop Function

Долбоор жана Void Loop Функциясы
Долбоор жана 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;

}

эгер (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 () // Funcao envisar mensagem de alerta Umidade Baixa {chip.println ("AT+CMGF = 1"); кечигүү (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); кечигүү (1000); String SMS = "Эшик ачылды!"; chip.println (SMS); кечиктирүү (100); chip.println ((char) 26); кечигүү (1000); }

жараксыз NoMoreIntrude () // Funcao envisar mensagem de alerta Umidade Normal

{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 Command колдонот. Ошондуктан, бул буйруктар аркылуу биз колдонуучунун уюлдук телефону үчүн билдирүү жөнөтөбүз.

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 менен шайкеш келген тактаны жүктөп алыңыз.

Сунушталууда: