Spisu treści:

Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c: 7 kroków
Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c: 7 kroków

Wideo: Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c: 7 kroków

Wideo: Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c: 7 kroków
Wideo: ChargeAsap Flash Pro Plus Review - The Ultimate Apple Charger 2024, Listopad
Anonim
Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c
Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c
Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c
Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c
Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c
Wykrywanie sytuacji awaryjnych - Qualcomm Dragonboard 410c

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

Tworzenie zdalnego urządzenia
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

Protokół Bluetooth
Protokół Bluetooth
Protokół Bluetooth
Protokół Bluetooth
Protokół Bluetooth
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

Korzystanie z antresoli na DragonBoard 410c
Korzystanie z antresoli 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: