Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Serce projektu
- Krok 2: Projekt obwodu elektronicznego i programowanie
- Krok 3: Funkcja Void Setup()
- Krok 4: Projekt i funkcja pętli pustki
- Krok 5: Funkcje do wysyłania wiadomości
Wideo: Telefoniczny system bezpieczeństwa z Arduino: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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
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
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:
Cyfrowy system telefoniczny Nortel 6x16 KSU: 4 kroki
Cyfrowy System Telefoniczny Nortel 6x16 KSU: W tym projekcie opowiem Ci o produktach Nortel, ich przeznaczeniu, trochę o nich i jak skonfigurować Key Telephone System Nortel 6x16
Bezprzewodowy przycisk bezpieczeństwa dla bezpieczeństwa PLC: 6 kroków (ze zdjęciami)
Bezprzewodowy przycisk bezpieczeństwa dla bezpieczeństwa PLC: Ten projekt jest moim dowodem koncepcji wykorzystania IoT i (ewentualnie) robotyki do stworzenia dodatkowej warstwy bezpieczeństwa dla niebezpiecznych zakładów produkcyjnych. Ten przycisk może służyć do uruchamiania lub zatrzymywania wielu procesów, w tym sterowania sygnałem
Stacja dokująca Lego Multi Device, tablet telefoniczny: 15 kroków (ze zdjęciami)
Stacja dokująca Lego Multi Device, tablet telefoniczny: zbuduj własną stację dokującą do ładowania lego
Automat telefoniczny w domu: 6 kroków (ze zdjęciami)
Payphone in the Home: Ten projekt prawdopodobnie zaczął się z powodu mojej dziwnej obsesji na punkcie ćwierćdolarówek i urządzeń na monety. Myślę, że pomogły też legendy o złotych czasach hakowania i phreakingu. Do tego doszedł fakt, że moich telefonów bezprzewodowych nigdy nie znaleziono, co
Jak zmienić telefon komórkowy LG EnV 2 w przenośny modem telefoniczny do laptopa (lub komputera stacjonarnego): 7 kroków
Jak zmienić telefon komórkowy LG EnV 2 w przenośny modem telefoniczny do laptopa (lub komputera stacjonarnego): Wszyscy w pewnym momencie mieliśmy potrzebę korzystania z Internetu tam, gdzie po prostu nie było to możliwe, na przykład w samochodzie lub na wakacjach, gdzie pobierają wysoką opłatę za godzinę korzystania z Wi-Fi. wreszcie wymyśliłem prosty sposób na uzyskanie