Spisu treści:

Telefoniczny system bezpieczeństwa z Arduino: 5 kroków
Telefoniczny system bezpieczeństwa z Arduino: 5 kroków

Wideo: Telefoniczny system bezpieczeństwa z Arduino: 5 kroków

Wideo: Telefoniczny system bezpieczeństwa z Arduino: 5 kroków
Wideo: Co można zbudować na Arduino? Sprawdź 5 ciekawych projektów DIY (robot-lodówka, WIELKI zegar... 2024, Listopad
Anonim
Telefoniczny system bezpieczeństwa z Arduino
Telefoniczny system bezpieczeństwa z Arduino

Twój dom nie będzie chroniony, jeśli nie zastosujesz tego projektu. Ten projekt pomoże Ci uruchomić alarm przez telefon komórkowy, gdy intruz włamie się do Twojego domu.

W ten sposób, jeśli skorzystasz z tego projektu, otrzymasz SMS-a przez telefon komórkowy i będziesz mógł chronić swój dom na wypadek inwazji.

W tym celu użyjemy płytki kompatybilnej z Arduino z modułem SIM800L i czujnikiem PIR. Czujnik PIR będzie odpowiadał za wykrycie obecności intruza, a SIM800L za wysłanie alertu SMS do właściciela domu.

Kieszonkowe dzieci

  • Płytka kompatybilna z Arduino
  • Czujnik PIR
  • Rezystor 10kR
  • Zworki
  • Płyta prototypowa
  • Moduł SIM800L

Krok 1: Serce projektu

Sercem projektu jest moduł SIM800L. Moduł ten będzie mógł odbierać polecenia Arduino i wysyłać SMS na telefon komórkowy użytkownika. W ten sposób, gdy użytkownik otrzyma powiadomienie, może wezwać policję lub wykonać inną czynność.

Płytka zgodna z Arduino będzie odpowiedzialna za sprawdzenie stanu czujnika, a następnie wyśle wiadomość alarmową do użytkownika, jeśli wykryje obecność intruza.

Proces ten realizowany jest dzięki komendom sterującym pomiędzy Arduino a modułem SIM800L. Dlatego od tego momentu przedstawimy Ci krok po kroku, jak zbudować ten system, chronić swój dom i ostrzegać o każdym intruzie.

Jeśli chcesz pobrać płytkę zgodną z Arduino, możesz uzyskać dostęp do tego linku i pobrać pliki do zakupu płyt w JLCPCB.

Teraz zacznijmy!

Krok 2: Projekt obwodu elektronicznego i programowanie

Projektowy obwód elektroniczny i programowanie
Projektowy obwód elektroniczny i programowanie
Projektowy obwód elektroniczny i programowanie
Projektowy obwód elektroniczny i programowanie

Najpierw udostępnimy obwód elektroniczny, a następnie krok po kroku omówimy dla Ciebie kod projektu.

#include SoftwareSerial chip(10, 11);

Ciąg SeuNumero = "+5585988004783";

#zdefiniuj czujnik 12

bool ValorAtual = 0, ValorAnterior = 0;

pusta konfiguracja()

{ Szeregowy.początek(9600); Serial.println("Inicializando Sistema…"); opóźnienie(5000); chip.początek (9600); opóźnienie (1000);

pinMode(czujnik, WEJŚCIE); //Konfiguruj Pino do czujnika como Entrada

}

pusta pętla()

{ //Le o valor do pino do sensor ValorAtual = digitalRead(sensor);

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

{ Alarm włamania; Wartość przednia = 1; }

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

{ NieWięcejIntruzów(); Wartość przednia = 0; }

}

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

{ chip.println("AT+CMGF=1"); opóźnienie (1000); chip.println("AT+CMGS=\"" + SeuNumero + "\"\r"); opóźnienie (1000); String SMS = "Alarm włamania!"; chip.println(SMS); opóźnienie (100); chip.println((char)26); opóźnienie (1000); }

void NoMoreIntrude()//Funcao para enviar mensagem de alerta Umidade Normal

{ chip.println("AT+CMGF=1"); opóźnienie (1000); chip.println("AT+CMGS=\"" + SeuNumero + "\"\r"); opóźnienie (1000); String SMS = "Nigdy więcej wtrącania się!"; chip.println(SMS); opóźnienie (100); chip.println((char)26); opóźnienie (1000); }

W poniższym kodzie wstępnie zadeklarowaliśmy bibliotekę komunikacji szeregowej SoftwareSerial.h, jak pokazano poniżej.

#włączać

Po zdefiniowaniu biblioteki zdefiniowano piny komunikacyjne Tx i Rx. Te piny są pinami alternatywnymi i służą do komunikacji szeregowej na innych pinach Arduino. Biblioteka SoftwareSerial została opracowana, aby umożliwić korzystanie z oprogramowania do replikowania funkcjonalności

OprogramowanieUkład szeregowy (10, 11);

Następnie numer telefonu komórkowego został zadeklarowany, pokazany poniżej.

Ciąg SeuNumero = "+5585988004783";

Schemat projektowania elektronicznego jest prosty i łatwy w montażu. Jak widać na obwodzie, płytka kompatybilna z Arduino odpowiada za odczyt stanu czujnika, a następnie wysłanie SMS-a do właściciela domu.

Wiadomość zostanie wysłana, jeśli w domu zostanie wykryty intruz. Czujnik PIR (Passive Infra Red) jest czujnikiem używanym do wykrywania ruchu z sygnału podczerwieni. Z sygnału wysłanego do Arduino moduł SIM800L wyśle wiadomość do użytkownika.

Dioda posłuży do zapewnienia spadku napięcia zasilającego moduł SIM800L. Ponieważ moduł nie może być zasilany napięciem 5V. W ten sposób napięcie 4,3 V dotrze do modułu i zapewni jego bezpieczne działanie.

Krok 3: Funkcja Void Setup()

W funkcji void setup zainicjujemy komunikację szeregową i skonfigurujemy pin czujnika jako wejście. Region kodu jest przedstawiony poniżej.

pusta konfiguracja()

{

Serial.początek(9600); Serial.println("Inicializando Sistema…");delay(5000); chip.początek (9600); opóźnienie (1000); pinMode(czujnik, WEJŚCIE); //Konfiguracja o Pino do czujnika como Entrada }

Jak widać, zainicjowano dwie komunikację szeregową. Serial.begin służy do inicjalizacji natywnego numeru seryjnego Arduino, a chip.begin to numer seryjny emulowany przez bibliotekę SoftwareSerial. Następnie zajmiemy się funkcją void loop.

Krok 4: Projekt i funkcja pętli pustki

Projekt i funkcja pętli pustki
Projekt i funkcja pętli pustki
Projekt i funkcja pętli pustki
Projekt i funkcja pętli pustki

Teraz przedstawimy główną logikę programowania w funkcji void loop.

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

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

{ Alarm włamania();

Wartość przednia = 1;

}

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

{ NieWięcejIntruzów();

Wartość przednia = 0;

}

}

Najpierw odczytany zostanie sygnał z czujnika obecności PIR, jak pokazano poniżej.

ValorAtual = digitalRead (czujnik);

Następnie zostanie zweryfikowane, czy wartość w zmiennej ValorAtual wynosi 1 czy 0, jak pokazano poniżej.

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

Wartość przednia = 1;

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

Wartość przednia = 0;

}

Jeśli zmienna ValorAtual ma wartość 1, a zmienne ValorAnterior ma wartość 0, czujnik faktycznie jest aktywowany, a wcześniej jest dezaktywowany (ValorAnterior == 0). W ten sposób funkcja zostanie wykonana, a użytkownik otrzyma wiadomość na Twój telefon komórkowy. Następnie wartość zmiennej ValorAnterior będzie równa 1.

W ten sposób zmienna ValorAnterior zostanie zasygnalizowana, że aktualny stan czujnika jest uruchomiony.

Teraz w przypadku, gdy wartość zmiennej ValorAtual wynosi 0, a wartość zmiennej ValorAnterior jest równa 0, czujnik nie wykrywa wtargnięcia, a następnie aktywuje jego wartość.

W ten sposób system wyśle wiadomość na telefon użytkownika i zaktualizuje faktyczną wartość czujnika na 0. Wartość ta będzie oznaczać, że czujnik w danej chwili nie zadziałał.

Powyżej przedstawiono wiadomości, które zostały wysłane do użytkownika.

Teraz dowiemy się, jak działa funkcja wysyłania wiadomości na telefon komórkowy użytkownika.

Krok 5: Funkcje do wysyłania wiadomości

W tym systemie są dwie funkcje. Są to funkcje o tej samej strukturze. Różnica między nimi to nazwa i wysłana wiadomość, ale gdy ją przeanalizujemy, zobaczymy, że są zupełnie takie same.

Następnie przedstawimy pełną strukturę funkcji i omówimy kod.

void IntrudeAlert() //Funcao para enviar mensagem de alerta Umidade Baixa{chip.println("AT+CMGF=1"); opóźnienie (1000); chip.println("AT+CMGS=\"" + SeuNumero + "\"\r"); opóźnienie (1000); String SMS = "Otwarte drzwi!"; chip.println(SMS); opóźnienie (100); chip.println((char)26); opóźnienie (1000); }

void NoMoreIntrude()//Funcao para enviar mensagem de alerta Umidade Normal

{ chip.println("AT+CMGF=1"); opóźnienie (1000); chip.println("AT+CMGS=\"" + SeuNumero + "\"\r"); opóźnienie (1000); Ciąg SMS = "Zamknięte drzwi!"; chip.println(SMS); opóźnienie (100); chip.println((char)26); opóźnienie (1000); }

Moduł SIM800L wykorzystuje komendę AT do sterowania swoimi funkcjami. Dlatego za pomocą tych poleceń wyślemy wiadomość na telefon komórkowy użytkownika.

AT+CGMF = 1 służy do konfiguracji modułu do pracy w trybie tekstowym SMS. Po opóźnieniu system wyśle wiadomość do użytkownika za pomocą następującego polecenia.

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

W poleceniu moduł SIM800L zostanie przygotowany do wysłania wiadomości na numer telefonu komórkowego zarejestrowany w ciągu SeuNumero. Następnie system załaduje wiadomość w ciągu i wyśle na telefon komórkowy użytkownika, jak pokazano poniżej.

Ciąg SMS = "Zamknięte drzwi!"; chip.println(SMS); opóźnienie (100); chip.println((char)26); opóźnienie (1000);

Znak(26) służy do sygnalizacji końca wiadomości. Ten proces pracy jest podobny dla dwóch funkcji, które wysyłają wiadomość do użytkownika.

Podziękowanie

Teraz doceniamy wsparcie JLCPCB w wykonaniu tej pracy, a jeśli jesteś zainteresowany, skorzystaj z poniższego linku i pobierz płytkę kompatybilną z Arduino.

Zalecana: