Bezpieczeństwo zawsze było głównym problemem dla nas wszystkich i na rynku dostępnych jest wiele systemów bezpieczeństwa i nadzoru opartych na zaawansowanej technologii i IoT. Alarm antywłamaniowy to jeden z klasycznych i popularnych projektów wśród studentów i hobbystów elektroniki. Zbudowaliśmy również wiele alarmów antywłamaniowych w oparciu o różne technologie:
- Obwód alarmu bezpieczeństwa lasera
- Alarm bezpieczeństwa oparty na podczerwieni
- Alarm antywłamaniowy wykorzystujący PIR
- System bezpieczeństwa oparty na GSM
Dzisiaj dodajemy do naszej listy jeszcze jeden alarm bezpieczeństwa oparty na czujniku ultradźwiękowym. Ten alarm drzwi kontrolowanych Arduino można zainstalować w pobliżu drzwi, aby wykryć obecność kogokolwiek przy drzwiach. Zawsze, gdy ktoś znajdzie się w zasięgu czujnika ultradźwiękowego, brzęczyk zaczyna piszczeć. Możesz dostosować zasięg wykrywania czujnika do swoich drzwi. Ten system może również służyć jako czujnik ruchu.
Wymagane komponenty:
- Płytka prototypowa
- Czujnik ultradźwiękowy
- Brzęczyk
- Arduino Mega (dowolny model)
- Przewody połączeniowe
- Kabel USB do Arduino lub adaptera 12V, 1A.
Moduł czujnika ultradźwiękowego:
Czujnik ultradźwiękowy HC-SR04 służy tutaj do wykrywania obecności jakiejkolwiek osoby przy drzwiach. Moduł czujnika składa się z nadajnika ultradźwiękowego, odbiornika i obwodu sterującego. Czujnik ultradźwiękowy składa się z dwóch okrągłych oczu, z których jedno służy do przesyłania fali ultradźwiękowej, a drugie do jej odbierania.
Możemy obliczyć odległość obiektu na podstawie czasu potrzebnego fali ultradźwiękowej na powrót do czujnika. Ponieważ czas i prędkość dźwięku są znane, możemy obliczyć odległość za pomocą następujących wzorów.
- Odległość = (czas x prędkość dźwięku) / 2
Wartość dzieli się przez dwa, ponieważ fala przemieszcza się do przodu i do tyłu, pokonując tę samą odległość. Ale w tym projekcie użyliśmy biblioteki NewPing.h i ta biblioteka zajmuje się tym obliczeniem i musimy tylko użyć kilku słów kluczowych, wyjaśnienie znajduje się w sekcji programowania poniżej.
Sprawdź poniższy projekt, aby zmierzyć odległość dowolnego obiektu i poprawnie zrozumieć działanie czujnika ultradźwiękowego:
- Pomiar odległości oparty na Arduino przy użyciu czujnika ultradźwiękowego
- Pomiar odległości za pomocą HC-SR04 i mikrokontrolera AVR
Schemat obwodu i wyjaśnienie:
Połączenia obwodów tego alarmu ultradźwiękowego są bardzo proste. Kołek wyzwalający czujnika ultradźwiękowego jest podłączony do pinu nr. 12 Arduino i pin Echo czujnika jest połączony z pinem nr 11 Arduino. Vcc czujnika jest podłączone do pinu 5V Arduino, a GND czujnika jest połączone z GND Arduino. Jeden pin brzęczyka jest podłączony do GND Arduino, a drugi pin jest połączony z 8- tym pinem Arduino.
Objaśnienie robocze:
Praca z tym alarmem drzwiowym Arduino jest bardzo łatwa. Za każdym razem, gdy ktoś znajdzie się na ścieżce / zasięgu czujnika ultradźwiękowego, mikrokontroler wykrywa odległość obiektu od czujnika i jeśli obiekt znajduje się w zdefiniowanym zakresie, wysyła sygnał High do brzęczyka i brzęczyk zaczyna piszczeć.
Możesz przetestować obwód, umieszczając cokolwiek przed czujnikiem w zakresie, sprawdź wideo do demonstracji. Ta funkcja czujnika ultradźwiękowego może być również wykorzystana do zbudowania robota unikającego przeszkody.
Objaśnienie programowania:
W tym projekcie wykorzystaliśmy bibliotekę NewPing.h dla czujnika ultradźwiękowego, opracowaną przez Tima Eckela. Chociaż możemy używać czujnika ultradźwiękowego bez tej biblioteki, tak jak to zrobiliśmy w naszym poprzednim projekcie, ale ta biblioteka zapewnia wiele dobrych funkcji dla czujnika ultradźwiękowego i staje się łatwe do kodowania czujnika ultradźwiękowego przy użyciu tej biblioteki. Możemy z łatwością korzystać z funkcji czujnika ultradźwiękowego, korzystając z tej biblioteki bez pisania zbyt wielu wierszy kodu; jest jak inne biblioteki, które są używane do obsługi złożoności na niższym poziomie.
#zawierać
Możesz sprawdzić wszystkie funkcje, zastosowania i przykładowe kody tej biblioteki, klikając to łącze. Sprawdź również oficjalną stronę Arduino w tej bibliotece.
Najnowsze wydanie Biblioteki można pobrać z powyższego linku. Ponadto pobraliśmy bibliotekę z poniższego linku, który jest zmodyfikowany dla Teensy:
github.com/PaulStoffregen/NewPing
Najpierw należy przetestować czujnik, wypalając przykładowe kody podane na jego stronie. Użyliśmy również przykładowych kodów w naszym projekcie i zmodyfikowaliśmy je zgodnie z naszym projektem alarmu drzwi.
Pin wyzwalacza jest podłączony do Pin 12 Arduino, a pin Echo jest połączony z pinem 11 Arduino. MAX_DISTANCE oznacza, że odległość, na jaką czujnik może wykryć przeszkodę, wynosi 500 cm lub 5 m.
# zdefiniować TRIGGER_PIN 12 # zdefiniować ECHO_PIN 11 # zdefiniować MAX_DISTANCE 500
Poniższy wiersz podaje prędkość transmisji, z jaką dane są wysyłane do portu szeregowego Arduino z czujnika ultradźwiękowego.
Serial.begin (115200);
Pin nr 10 jest skonfigurowany jako pin wyjściowy i jest podłączony do brzęczyka. Drugi pin brzęczyka jest podłączony do GND Arduino.
pinMode (10, WYJŚCIE);
W void echoCheck () funkcji, sonar.ping_result / US_ROUNDTRIP_CM służy do obliczania odległości przeszkody od czujnika. Flaga służy do uruchamiania brzęczyka, gdy przeszkoda znajduje się w odległości 50 cm od czujnika ultradźwiękowego. Możesz zmienić tę „odległość” w zależności od wymagań lub rozmiaru drzwi.
if ((sonar.ping_result / US_ROUNDTRIP_CM) <50) flag = 1; else if ((sonar.ping_result / US_ROUNDTRIP_CM)> 50) flag = 0;
Kod jest bardzo dobrze skomentowany przez autora biblioteki NewPing.h i można go łatwo zrozumieć. Ponadto możesz sprawdzić samą stronę biblioteki, aby lepiej ją zrozumieć i możesz użyć tej biblioteki do tworzenia złożonych projektów za pomocą czujnika ultradźwiękowego. Pełny kod tego projektu alarmu drzwi jest podany poniżej.
Przede wszystkim czujnik ultradźwiękowy służy do pomiaru odległości od dowolnego obiektu, ale tutaj widzimy, że może być używany jako Alarm bezpieczeństwa lub Alarm do drzwi z Arduino. Podobnie możemy stworzyć wiele przydatnych projektów, wykorzystując to, jak: Automatyczny wskaźnik poziomu wody i kontroler za pomocą Arduino