Სარჩევი:

ტელეფონის უსაფრთხოების სისტემა Arduino– ით: 5 ნაბიჯი
ტელეფონის უსაფრთხოების სისტემა Arduino– ით: 5 ნაბიჯი

ვიდეო: ტელეფონის უსაფრთხოების სისტემა Arduino– ით: 5 ნაბიჯი

ვიდეო: ტელეფონის უსაფრთხოების სისტემა Arduino– ით: 5 ნაბიჯი
ვიდეო: მანქანის ზარით და SMS-ით დაქოქვა(Arduino) 2024, ნოემბერი
Anonim
ტელეფონის უსაფრთხოების სისტემა Arduino– ით
ტელეფონის უსაფრთხოების სისტემა Arduino– ით

თუ თქვენს პროექტს არ გამოიყენებთ, თქვენი სახლი დაუცველი იქნება. ეს პროექტი დაგეხმარებათ განგაშის გააქტიურებაში მობილური ტელეფონის საშუალებით, როდესაც თქვენს სახლში შემოიჭრება შემოჭრილი.

ამ გზით, თუ თქვენ იყენებთ ამ პროექტს, თქვენ მიიღებთ SMS- ს მობილური ტელეფონის საშუალებით და შეძლებთ თქვენი სახლის დაცვას შემოჭრის შემთხვევაში.

ამისათვის ჩვენ გამოვიყენებთ Arduino თავსებადი დაფას SIM800L მოდულით და PIR სენსორით. PIR სენსორი პასუხისმგებელი იქნება შემოჭრის არსებობის გამოვლენაზე და SIM800L პასუხისმგებელი იქნება სახლის მფლობელისთვის გამაფრთხილებელი SMS- ის გაგზავნაზე.

მარაგები

  • Arduino თავსებადი დაფა
  • სენსორი PIR
  • რეზისტორი 10 კრ
  • მხტუნავები
  • პროტობორდი
  • SIM800L მოდული

ნაბიჯი 1: პროექტის გული

პროექტის საფუძველია SIM800L მოდული. ამ მოდულს შეეძლება მიიღოს Arduino ბრძანებები და გაუგზავნოს SMS მომხმარებლის მობილურ ტელეფონს. ამ გზით, როდესაც მომხმარებელი მიიღებს გაფრთხილებას, მას შეუძლია დარეკოს პოლიციაში ან შეასრულოს ნებისმიერი სხვა სახის ქმედება.

Arduino თავსებადი დაფა იქნება პასუხისმგებელი სენსორის მდგომარეობის შემოწმებაზე და შემდეგ გაუგზავნის გამაფრთხილებელ შეტყობინებას მომხმარებელს, თუ იგი აღმოაჩენს შემოჭრილის არსებობას.

ეს პროცესი ხორციელდება Arduino- სა და SIM800L მოდულს შორის საკონტროლო ბრძანებების წყალობით. ამიტომ, ჩვენ ეტაპობრივად გაგაცნობთ ამ სისტემის ასაშენებლად, დატოვეთ თქვენი სახლი დაცული და გაგაფრთხილებთ, როდესაც რაიმე შემოჭრილი შემოიჭრება მასში.

თუ გსურთ ჩამოტვირთოთ Arduino თავსებადი დაფა, შეგიძლიათ შეხვიდეთ ამ ბმულზე და მიიღოთ ფაილები თქვენი დაფების შესაძენად JLCPCB– ში.

ახლა, დავიწყოთ!

ნაბიჯი 2: პროექტი ელექტრონული წრე და პროგრამირება

პროექტი ელექტრონული წრე და პროგრამირება
პროექტი ელექტრონული წრე და პროგრამირება
პროექტი ელექტრონული წრე და პროგრამირება
პროექტი ელექტრონული წრე და პროგრამირება

პირველ რიგში, ჩვენ გავცემთ ელექტრონულ წრეს და შემდეგ ეტაპობრივად განვიხილავთ პროექტის კოდს თქვენთვის.

#მოიცავს პროგრამული უზრუნველყოფის სერიული ჩიპი (10, 11);

სიმებიანი SeuNumero = "+5585988004783";

#განსაზღვრეთ სენსორი 12

bool ValorAtual = 0, ValorAnterior = 0;

ბათილად დაყენება ()

{Serial.begin (9600); Serial.println ("Inicializando Sistema …"); დაგვიანება (5000); ჩიპი.დაწყება (9600); დაგვიანება (1000);

pinMode (სენსორი, INPUT); // კონფიგურაცია ო პინო დო სენსორი ანტრადა

}

ბათილი მარყუჟი ()

{// 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 = "გაფრთხილება შეტევისთვის!"; chip.println (SMS); დაგვიანება (100); ჩიპი. println ((char) 26); დაგვიანება (1000); }

void 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); ჩიპი. println ((char) 26); დაგვიანება (1000); }

ქვემოთ ნაჩვენები კოდით, ჩვენ თავდაპირველად გამოვაცხადეთ სერიული საკომუნიკაციო ბიბლიოთეკა SoftwareSerial.h, როგორც ქვემოთ მოცემულია.

#ჩართეთ

ბიბლიოთეკის განსაზღვრის შემდეგ განისაზღვრა საკომუნიკაციო ქინძისთავები Tx და Rx. ეს ქინძისთავები ალტერნატიული ქინძისთავებია და გამოიყენება სერიული კომუნიკაციის სხვა არდუინოს ქინძისთავების დასაშვებად. SoftwareSerial ბიბლიოთეკა შეიქმნა იმისთვის, რომ მოგცეთ საშუალება გამოიყენოთ პროგრამული უზრუნველყოფა ფუნქციონირების გამეორებისთვის

პროგრამული უზრუნველყოფა სერიული ჩიპი (10, 11);

ამის შემდეგ, ტელეფონის ნომერი გამოცხადდა ნაჩვენებია ქვემოთ.

სიმებიანი SeuNumero = "+5585988004783";

ელექტრონული დიზაინის სქემა მარტივია და ადვილად შეიკრიბება. როგორც ხედავთ მიკროსქემზე, Arduino თავსებადი დაფა პასუხისმგებელია სენსორის სტატუსის წაკითხვაზე და შემდეგ სახლის მფლობელისთვის SMS- ის გაგზავნაზე.

შეტყობინება გაიგზავნება, თუ სახლში შემოიჭრება თავდამსხმელი. PIR (პასიური ინფრაწითელი) სენსორი არის სენსორი, რომელიც გამოიყენება ინფრაწითელი სიგნალიდან მოძრაობის დასადგენად. არდუინოში გაგზავნილი სიგნალიდან SIM800L მოდული გაუგზავნის შეტყობინებას მომხმარებელს.

დიოდი გამოყენებული იქნება SIM800L მოდულის მიწოდების მიზნით ძაბვის ვარდნის უზრუნველსაყოფად. მას შემდეგ, რაც მოდული ვერ იკვებება 5V– ით. ამგვარად, 4.3V ძაბვა მოვა თქვენი მოდულის ენერგიაზე და უზრუნველყოს მისი უსაფრთხოდ მუშაობა.

ნაბიჯი 3: Void Setup () ფუნქცია

Void კონფიგურაციის ფუნქციაში ჩვენ დავიწყებთ სერიული კომუნიკაციის ინიციალიზაციას და სენსორის პინის კონფიგურაციას, როგორც შეყვანისას. კოდის რეგიონი მოცემულია ქვემოთ.

ბათილად დაყენება ()

{

სერიული.დაწყება (9600); Serial.println ("Inicializando Sistema …"); დაგვიანებით (5000); ჩიპი.დაწყება (9600); დაგვიანება (1000); pinMode (სენსორი, INPUT); // კონფიგურაცია პინო დო სენსორი com Entrada}

როგორც ჩანს, ორი სერიული კომუნიკაცია დაიწყო. Serial.begin გამოიყენება Arduino- ს მშობლიური სერიალის ინიციალიზაციისთვის, ხოლო chip.begin არის სერიალი, რომელიც ემულაცია SoftwareSerial ბიბლიოთეკის საშუალებით. ამის შემდეგ, ჩვენ ვაქცევთ ბათილი მარყუჟის ფუნქციას.

ნაბიჯი 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, როგორც ნაჩვენებია ქვემოთ.

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: ფუნქციები შეტყობინებების გასაგზავნად

ამ სისტემაში ორი ფუნქციაა. ისინი ერთნაირი სტრუქტურის ფუნქციებია. მათ შორის განსხვავება არის სახელი და გაგზავნილი შეტყობინება, მაგრამ როდესაც გავაანალიზებთ, დავინახავთ, რომ ისინი სრულიად ერთნაირები არიან.

შემდეგი, ჩვენ წარმოვადგენთ ფუნქციების სრულ სტრუქტურას და განვიხილავთ კოდს.

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); ჩიპი. println ((char) 26); დაგვიანება (1000); }

void 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); ჩიპი. println ((char) 26); დაგვიანება (1000); }

SIM800L მოდული იყენებს AT ბრძანებას თავისი ფუნქციების გასაკონტროლებლად. ამიტომ, ამ ბრძანებების საშუალებით, ჩვენ გამოგიგზავნით შეტყობინებას მომხმარებლის მობილურისთვის.

AT+CGMF = 1 გამოიყენება მოდულის კონფიგურაციისთვის SMS ტექსტის რეჟიმში. შეფერხების შემდეგ, სისტემა გაგზავნის შეტყობინებას მომხმარებლისთვის შემდეგი ბრძანების საშუალებით.

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

ბრძანებაში SIM800L მოდული მომზადდება იმისათვის, რომ გაგზავნოს შეტყობინება SeuNumero სტრიქონში რეგისტრირებული მობილური ტელეფონის ნომრისთვის. ამის შემდეგ, სისტემა ჩატვირთავს შეტყობინებას სტრიქონში და გაუგზავნის მომხმარებლის მობილურს, როგორც ეს ნაჩვენებია ქვემოთ.

სიმებიანი SMS = "დახურული კარი!"; chip.println (SMS); დაგვიანება (100); ჩიპი. println ((char) 26); დაგვიანება (1000);

Char (26) გამოიყენება შეტყობინების დასასრულის სიგნალიზაციისთვის. ეს სამუშაო პროცესი მსგავსია ორი ფუნქციისთვის, რომ გაგზავნოს შეტყობინება მომხმარებლისთვის.

მადლობები

ახლა ჩვენ ვაფასებთ JLCPCB- ის მხარდაჭერას ამ სამუშაოს განსახორციელებლად და, დაინტერესების შემთხვევაში, შედით შემდეგ ბმულზე და ჩამოტვირთეთ Arduino თავსებადი დაფა.

გირჩევთ: