Spisu treści:
- Krok 1: Wymagane składniki
- Krok 2: Tworzenie zdalnego urządzenia
- Krok 3: Oprogramowanie i biblioteki
- Krok 4: Używanie SSH i instalowanie bibliotek
- Krok 5: Protokół Bluetooth
- Krok 6: Korzystanie z Mezzanine na DragonBoard 410c
- Krok 7: Oprogramowanie DragonBoard 410c
Wideo: Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Szukając systemów bezpieczeństwa, które monitorują sytuacje awaryjne, można zauważyć, że przetwarzanie wszystkich zapisanych informacji jest zbyt trudne. Myśląc o tym postanowiliśmy wykorzystać naszą wiedzę z zakresu przetwarzania dźwięku/obrazu, czujników i aktuatorów do stworzenia jednego kompletnego systemu, który umożliwia przewidywanie sytuacji, w których ludzkie życie jest zagrożone.
Ten projekt ma lokalny czujnik i zdalne urządzenia do zbierania danych i wysyłania ich do smoczej deski, która ma moc obliczeniową zdolną do wydobywania ważnych informacji z otrzymanych danych.
Urządzeniem zdalnym jest płytka Arduino z modułem HC-06 umożliwiającym przesyłanie wszystkich informacji oraz tania sieć zdolna do przetwarzania dużej ilości danych.
Krok 1: Wymagane składniki
Przede wszystkim musisz zdecydować, jakich czujników i aktuatorów będziesz używać oraz wykonać szkic architektoniczny.
W naszym przypadku używamy tych czujników połączonych w ARDUINO Pro Mini, wymienionych poniżej:
- PIR (Passive Infrared - Czujnik obecności)
- DHT 11 (czujnik wilgotności i temperatury)
- Czujnik CO (czujnik tlenku węgla)
- Czujnik hałasu
Siłowniki:
- silnik serwo
- brzęczyk
Komunikacja:
Moduł Bluetooth HC-06
Do Dragonboard 410c będziemy mieć kilka czujników i oprogramowania do przetwarzania wszystkich danych wejściowych:
Czujniki:
- DHT 11
- Czujnik światła słonecznego
Siłowniki:
- Przekaźnik
- Stan diody
- Brzęczyk
Krok 2: Tworzenie zdalnego urządzenia
Teraz nadszedł czas, aby podłączyć wszystkie poniższe komponenty do płytki Arduino, tworząc urządzenie, które będzie odbierało dane z otoczenia (hałas, wilgotność, temperatura itp.) i wysyłało do Dragonboard przez moduł bluetooth HC-06.
Należy zwrócić uwagę na połączenia, ponieważ każdy czujnik ma określone miejsca do podłączenia.
W systemie możliwe jest posiadanie więcej niż jednego urządzenia do zbierania danych. Im więcej urządzeń zainstalowałeś w środowisku, tym dokładniejsza jest diagnostyka generowana przez przetwarzanie danych. Ponieważ będzie można wydobyć szerszy zakres informacji, które mogą być przydatne.
Zdecydowaliśmy się na płytkę arduino, ponieważ ma więcej kompatybilnych czujników i można zainstalować te zdalne urządzenia w różnych miejscach, zbierając więcej informacji.
Lokalnym urządzeniem jest DragonBoard 410c, który przetwarza informacje audio, wideo, cyfrowe i analogowe za pomocą wydajnego procesora SnapDragon 410.
Umieszczanie komponentów (Remote Devide)
Jeden kawałek ma kilka pinów, które należy podłączyć w odpowiednie piny na płytce arduino pro mini.
Moduł Bluetooth HC-06 posiada 4 piny:
- TX (Transmissor) -> podłączony na pinie RX Arduino
- RX (odbiornik) -> podłączony na pinie TX Arduino
- VCC -> podłączony na 5v
- GND
Czujnik DHT 11 ma 4 piny (ale tylko 3 w użyciu):
- Sygnał -> podłączony na cyfrowym pinie
- VCC -> podłączony na 5v
- GND
Czujnik PIR posiada 3 piny:
- Sygnał -> podłączony na pinie cyfrowym
- VCC -> podłączony na 5v
- GND
Czujnik gazu (MQ) posiada 4 piny:
- Digital OUT -> podłączony na cyfrowym pin (jeśli chcesz uzyskać informację cyfrową)
- Analog OUT -> w naszym przypadku korzystamy z tego podłączonego na pin analogowy
- VCC -> podłączony na 5v
- GND
Czujnik hałasu (KY-038) posiada 3 piny:
- Sygnał -> podłączony na pinie analogowym
- VCC -> podłączony na 5v
- GND
Kod dla zdalnego urządzenia Arduino:
/* * Arduino wysyła dane przez Blutooth * * Wartości czujników są odczytywane, łączone na * String i wysyłane przez port szeregowy. */ #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht(DHTPIN, DHTTYPE); wilgotność pływaka, temperatura; wartość logiczna pir = 0; int co, mikrofon; Wiadomość ciąg = ""; nazwa znaku[40]; void setup() { Serial.begin(9600); dht.początek(); } void loop() { wilgotność = dht.readHumidity(); temperatura = dht.odczytajTemperatura(); pir = odczyt cyfrowy(PIRPIN); co = odczyt analogowy (COPIN); mikrofon = odczyt analogowy (A0); msg = "#;" +String(wilgotność) + ";" + String(temperatura) +";"+ String(mikrofon) +";"+ String(pir)+ ";" + String(co) + ";#" +"\n"; Serial.print(wiadomość); opóźnienie (2000); }
Wyjaśnienie kodu:
Wszystkie piny zastosowane w Arduino podane są na początku kodu i inicjalizowane są odpowiednie biblioteki wymagane do działania czujników. Wszystkie dane zostaną przekazane do odpowiednich zmiennych, które co 2000 milisekund otrzymają wartości odczytane z każdego czujnika, następnie wszystkie zostaną połączone w String, a następnie zapisane w Serial. Stamtąd kod pytona obecny w DragonBoard jest bardzo łatwy do przechwytywania takich danych.
Krok 3: Oprogramowanie i biblioteki
Aby przetworzyć wszystkie otrzymane dane i kontrolować system bezpieczeństwa, konieczne jest użycie niektórych programów i bibliotek w Qualcomm DragonBoard 410c.
W tym e-specyficznym projekcie używamy:
Oprogramowania:
- Pyton
- Arduino
Platformy:
- Amazon AWS -> serwer online
- Phant -> Usługa danych hosta
Biblioteki:
- OpenCV - Przetwarzanie wideo (https://opencv-python-tutroals.readthedocs.io/en/latest/)
- PyAudio - Przetwarzanie dźwięku (https://people.csail.mit.edu/hubert/pyaudio/)
- Fala (https://www.physionet.org/physiotools/wave-installation.shtm)
- AudioOp (https://docs.python.org9https://scikit-learn.org/stable/install.html/2/library/audioop.html)
- Numpy (https://www.numpy.org)
- SciKit1 - Szkolenie i przewidywanie uczenia maszynowego (https://scikit-learn.org/stable/install.html)
- cPickle - Zapisz parametry uczenia maszynowego (https://pymotw.com/2/pickle/)
- MRAA - Użyj GPIO (https://iotdk.intel.com/docs/master/mraa/python/)
- UPM - Użyj GPIO (https://github.com/intel-iot-devkit/upm)
- PySerial - Użyj do komunikacji szeregowej z urządzeniem Bluetooth (https://pythonhosted.org/pyserial/)
Krok 4: Używanie SSH i instalowanie bibliotek
Przede wszystkim musisz uzyskać adres IP z Dragonboard, w tym celu musisz włączyć DragonBoard połączony z myszą, klawiaturą i monitorem HDMI. Po włączeniu płytki musisz połączyć się z siecią, wtedy idziesz do terminala i uruchamiasz polecenie:
sudo ifconfig
po tym możesz uzyskać adres IP.
Dzięki adresowi IP możesz uzyskać dostęp do Dragonboard przez SHH, w tym celu musisz otworzyć terminal w komputerze podłączonym do tej samej sieci co tablica. W terminalu możesz uruchomić polecenie:
ssh linaro@{IP}
(należy zastąpić {IP} adresem IP otrzymanym w Dragonboard).
Pierwszą biblioteką, którą musisz zainstalować, jest biblioteka mraa. W tym celu musisz uruchomić w terminalu następującą komendę:
sudo add-apt-repository ppa:mraa/mraa && sudo apt-ge;t aktualizacja && sudo apt-get zainstaluj libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa
Aby zainstalować opencv dla Pythona wystarczy uruchomić polecenie:
sudo apt-get zainstaluj python-opencv
Aby zainstalować PyAudio musisz uruchomić polecenie:
sudo apt-get zainstaluj python-pyaudio python3-pyaudio
Na płycie są już zainstalowane biblioteki WAVE i AudioOp. Aby zainstalować numpy, musisz uruchomić polecenie:
sudo apt-get zainstaluj python-numpy python-scipy
Ostatnią biblioteką, którą musisz zainstalować, jest scikit, aby ją zainstalować, musisz mieć zainstalowanego pip. Następnie wystarczy uruchomić polecenie:
pip zainstaluj scikit-lear
Krok 5: Protokół Bluetooth
Połączenie DragonBoard z Arduino przez Bluetooth
Moduł Bluetooth (HC-06) został początkowo podłączony do Arduino Nano zgodnie z poniższym przykładem:
Używając interfejsu graficznego Linaro (system operacyjny używany w bieżącym projekcie w DragonBoard), po prawej stronie dolnego paska kliknij symbol Bluetooth, a następnie kliknij "Setup New Device" i skonfiguruj swój moduł Bluetooth, pozostawiając go sparowanym. Sprawdź, czy Twój moduł jest rzeczywiście podłączony, klikając ponownie symbol Bluetooth, kliknij „Urządzenia…” i sprawdź, czy nazwa Twojego urządzenia znajduje się na liście i jest podłączona. Teraz wybierz swoje urządzenie na ekranie „Urządzenia Bluetooth”, kliknij je prawym przyciskiem myszy i zanotuj port, do którego podłączony jest moduł Bluetooth (np. „rfcomm0”). Uwaga: Nazwa portu, do którego jest podłączone urządzenie, będzie ważna w następnym kroku, aby umożliwić wymianę danych.
Ustanowienie wymiany danych DragonBoard i Bluetooth
W zasadzie krok po kroku podążamy za linkiem: https://www.uugear.com/portfolio/bluetooth-communi… ale nie wykonaliśmy części parowania tylko wykonanie kodów Pythona i Arduino. W pythonie wykorzystano bibliotekę szeregową, która jest inicjowana w porcie podłączonym do bluetooth, stąd kod pythona odczytuje dane z czujników, które są podłączone do arduino przez moduł bluetooth.
Krok 6: Korzystanie z Mezzanine na DragonBoard 410c
Do wykonania połączeń między smoczą deską a komponentami używamy tarczy zwanej przez Mezannine, opracowanej przez 96boards.
Dzięki tej osłonie podłączanie urządzeń peryferyjnych staje się znacznie łatwiejsze.
Zastosowane złącza pochodzą z zestawu rozwojowego Grove, więc używa tylko specjalnego kabla, który łączy się w obie strony, Wszystkie części można łatwo znaleźć na tej stronie:
Używamy tych zestawów poniżej:
- Przekaźnik Grove
- Grove czujnik światła słonecznego
- Gniazdo led Grove
- Grove temp&humi czujnik
- Brzęczyk Gaju
Krok 7: Oprogramowanie DragonBoard 410c
Część programu w DragonBoard została napisana w Pythonie, a program używany na Arduino został opracowany w C++. Co 2 minuty Arduino odczytuje wszystkie podłączone do niego czujniki. Następnie Arduino wysyła odczyt do DragonBoard przez Bluetooth. DragonBoard łączy odczyty pochodzące z Arduino z odczytami, które wykonuje przez nakładkę Mezzanine z cechami próbek audio i wideo.
Na podstawie tych danych Zarząd próbuje przewidzieć, czy ma miejsce sytuacja awaryjna. Zarząd wysyła do Amazon Web Service za pomocą Phant surowe dane i prognozę, którą wykonał. Jeśli tablica przewiduje, że dzieje się dziwna sytuacja, spróbuje ostrzec użytkownika mruganiem diodą i brzęczykiem na antresoli i pokaż w aplikacji webowej. W aplikacji internetowej można również zobaczyć surowe dane, aby zrozumieć, co dzieje się w tym obszarze.
Zalecana:
Wykrywanie wibracji za pomocą modułu czujnika wstrząsu piezoelektrycznego: 6 kroków
Wykrywanie wibracji za pomocą modułu piezoelektrycznego czujnika uderzeniowego: W tym samouczku nauczymy się wykrywać wibracje uderzeniowe za pomocą prostego czujnika piezoelektrycznego Moduł wibracji i Visuino.Obejrzyj film demonstracyjny
Wykrywanie zombie Smart Security Owl (głębokie uczenie): 10 kroków (ze zdjęciami)
Zombie Detecting Smart Security Owl (Deep Learning): Cześć wszystkim, witamy w T3chFlicks! W tym samouczku na Halloween pokażemy, w jaki sposób wprowadziliśmy niezwykle upiorny akcent do przyziemnego klasyka gospodarstwa domowego: kamery bezpieczeństwa. Jak?! Stworzyliśmy sowę noktowizyjną, która wykorzystuje przetwarzanie obrazu do śledzenia ludzi
Wykrywanie obiektów za pomocą płyt Sipeed MaiX (Kendryte K210): 6 kroków
Wykrywanie obiektów za pomocą płyt Sipeed MaiX (Kendryte K210): Kontynuując mój poprzedni artykuł o rozpoznawaniu obrazów za pomocą płyt Sipeed MaiX, postanowiłem napisać kolejny samouczek, skupiając się na wykrywaniu obiektów. Ostatnio pojawiło się trochę interesującego sprzętu z chipem Kendryte K210, w tym S
VentMan Część II: Zautomatyzowane wykrywanie pieca Arduino dla wentylatorów wspomagających: 6 kroków
VentMan Część II: Zautomatyzowane wykrywanie pieca Arduino dla wentylatorów wspomagających: Główne punkty: To był tymczasowy hack wprowadzony w celu wykrycia, kiedy mój silnik dmuchawy AC / pieca działał, aby moje dwa wentylatory wspomagające mogły się włączyć. Potrzebuję dwóch wentylatorów wspomagających w moich kanałach, aby wtłoczyć więcej ciepłego/chłodnego powietrza do dwóch oddzielnych sypialni. Ale ja
Wykrywanie obiektów z Dragonboard 410c lub 820c przy użyciu OpenCV i Tensorflow.: 4 kroki
Object Detection W/ Dragonboard 410c lub 820c Using OpenCV i Tensorflow.: Ta instrukcja opisuje, jak zainstalować OpenCV, Tensorflow i frameworki uczenia maszynowego dla Pythona 3.5 w celu uruchomienia aplikacji Object Detection