Inhaltsverzeichnis:

Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c - Gunook
Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c - Gunook

Video: Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c - Gunook

Video: Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c - Gunook
Video: Wie erkenne ich kritische Patienten? | Dr. Q erklärt: Das ABCDE - Schema 2024, November
Anonim
Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c
Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c
Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c
Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c
Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c
Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c

Auf der Suche nach Sicherheitssystemen, die Notfallsituationen überwachen, können Sie feststellen, dass es zu schwierig ist, alle aufgezeichneten Informationen zu verarbeiten. Vor diesem Hintergrund haben wir uns entschieden, unser Wissen in Audio-/Bildverarbeitung, Sensoren und Aktoren zu nutzen, um ein Gesamtsystem zu schaffen, das es ermöglicht, Situationen vorherzusagen, in denen das Leben von Menschen in Gefahr ist.

Dieses Projekt verfügt über lokale Sensoren und entfernte Geräte, um Daten zu sammeln und an das Dragonboard zu senden, das über eine Rechenleistung verfügt, die in der Lage ist, wichtige Informationen aus den empfangenen Daten zu extrahieren.

Das Remote-Gerät ist ein Arduino-Board mit einem Modul HC-06, das alle Informationen übertragen kann, und ein kostengünstiges breites Netz, das große Datenmengen verarbeiten kann.

Schritt 1: Erforderliche Komponenten

Zunächst müssen Sie entscheiden, welche Sensoren und Aktoren Sie verwenden möchten, und die Architekturskizze erstellen.

In unserem Fall verwenden wir diese Sensoren, die in ARDUINO Pro Mini angeschlossen sind und unten aufgeführt sind:

  • PIR (Passives Infrarot – Präsenzsensor)
  • DHT 11 (Feuchtigkeits- und Temperatursensor)
  • CO-Sensor (Kohlenmonoxidsensor)
  • Geräuschsensor

Aktoren:

  • Motorservo
  • Summer

Kommunikation:

Bluetooth-Modul HC-06

Zum Dragonboard 410c werden wir einige Sensoren und Software haben, um alle Dateneingaben zu verarbeiten:

Sensoren:

  • DHT 11
  • Sonnenlichtsensor

Aktoren:

  • Relais
  • LED-Status
  • Summer

Schritt 2: Remote-Gerät erstellen

Remote-Gerät erstellen
Remote-Gerät erstellen

Jetzt ist es an der Zeit, alle folgenden Komponenten an das Arduino Board anzuschließen, um ein Gerät zu erstellen, das die Daten aus der Umgebung (Lärm, Feuchtigkeit, Temperatur usw.) empfängt und über das Bluetooth-Modul HC-06 an das Dragonboard sendet.

Achten Sie auf die Anschlüsse, da alle Sensoren spezielle Anschlussstellen haben.

Auf dem System ist es möglich, mehr als ein Gerät zum Sammeln von Daten zu haben. Je mehr Geräte Sie in der Umgebung installiert haben, desto genauer ist die durch die Datenverarbeitung generierte Diagnose. Da es möglich sein wird, eine breitere Palette von Informationen zu extrahieren, die nützlich sein können.

Wir haben uns für die Verwendung eines Arduino-Boards entschieden, da es mehr kompatible Sensoren hat und es möglich ist, diese Remote-Geräte an verschiedenen Orten zu installieren, um mehr Informationen zu sammeln.

Das lokale Gerät ist das DragonBoard 410c, das mit Ihrem leistungsstarken SnapDragon 410-Prozessor Audio-, Video-, digitale und analoge Informationen verarbeitet.

Platzierung der Komponenten (Remote Devide)

Welches Stück hat einige Pins, die mit den richtigen Pins auf dem Arduino Pro Mini Board verbunden werden müssen.

Das Bluetooth-Modul HC-06 hat 4 Pins:

  • TX (Transmissor) -> an den Pin des RX Arduino angeschlossen
  • RX (Empfänger) -> an den Pin des TX Arduino angeschlossen
  • VCC -> am 5v. angeschlossen
  • Masse

DHT 11 Sensor hat 4 Pins (aber nur 3 in Gebrauch):

  • Signal -> an einem digitalen Pin angeschlossen
  • VCC -> am 5v. angeschlossen
  • Masse

Der PIR-Sensor hat 3 Pins:

  • Signal -> an einem digitalen Pin angeschlossen
  • VCC -> am 5v. angeschlossen
  • Masse

Gassensor (MQ) hat 4 Pins:

  • Digital OUT -> an einem digitalen Pin angeschlossen (wenn Sie eine digitale Information wünschen)
  • Analog OUT -> in unserem Fall verwenden wir dies an einem analogen Pin angeschlossen
  • VCC -> am 5v. angeschlossen
  • Masse

Geräuschsensor (KY-038) hat 3 Pins:

  • Signal -> an einem analogen Pin angeschlossen
  • VCC -> am 5v. angeschlossen
  • Masse

Code für Arduino-Ferngerät:

/* * Arduino sendet Daten über Blutooth * * Die Werte der Sensoren werden gelesen, auf * String verkettet und über die serielle Schnittstelle gesendet. */ #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht(DHTPIN, DHTTYPE); Schwebefeuchtigkeit, Temperatur; boolesches pir = 0; int co, mic; Zeichenfolge msg = ""; Zeichenname[40]; Void setup () { Serial.begin (9600); dht.begin(); aufrechtzuerhalten. Void Schleife () { Feuchtigkeit = dht.readHumidity (); Temperatur = dht.readTemperature(); pir = digitalRead (PIRPIN); co = analogRead (COPIN); Mikrofon = analogRead (A0); msg = "#;" +String(Feuchtigkeit) + ";" + String(Temperatur) +";"+ String(Mikrofon) +";"+ String(pir)+ ";" + String(co) + ";#" +"\n"; Serial.print (Nachricht); Verzögerung (2000); }

Code-Erklärung:

Alle im Arduino verwendeten Pins werden am Anfang des Codes zitiert und die jeweiligen für den Betrieb der Sensoren benötigten Bibliotheken werden initialisiert. Alle Daten werden an entsprechende Variablen übergeben, die alle 2000 Millisekunden die von jedem Sensor gelesenen Werte erhalten, dann werden alle in einem String verkettet und dann in Serial geschrieben. Von dort aus ist es mit dem im DragonBoard vorhandenen Python-Code sehr einfach, solche Daten zu erfassen.

Schritt 3: Software und Bibliotheken

Um alle empfangenen Daten zu verarbeiten und das Sicherheitssystem zu steuern, müssen einige Softwares und Bibliotheken im Qualcomm DragonBoard 410c verwendet werden.

In diesem speziellen Projekt verwenden wir:

Software:

  • Python
  • Arduino

Plattformen:

  • Amazon AWS -> Online-Server
  • Phant -> Host-Datendienst

Bibliotheken:

  • OpenCV - Videoverarbeitung (https://opencv-python-tutroals.readthedocs.io/en/latest/)
  • PyAudio - Audioverarbeitung (https://people.csail.mit.edu/hubert/pyaudio/)
  • Wave (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 - Trainieren und Vorhersagen des maschinellen Lernens (https://scikit-learn.org/stable/install.html)
  • cPickle – Speichern Sie die Machine-Learning-Parameter (https://pymotw.com/2/pickle/)
  • MRAA - Verwenden Sie die GPIOs (https://iotdk.intel.com/docs/master/mraa/python/)
  • UPM - Verwenden Sie die GPIOs (https://github.com/intel-iot-devkit/upm)
  • PySerial - Zur seriellen Kommunikation mit Bluetooth-Geräten (https://pythonhosted.org/pyserial/)

Schritt 4: Verwenden von SSH und Installieren von Libs

Zuerst müssen Sie die IP-Adresse vom Dragonboard erhalten, dazu müssen Sie das DragonBoard einschalten, das mit einer Maus, einer Tastatur und einem HDMI-Monitor verbunden ist. Wenn das Board eingeschaltet ist, müssen Sie sich mit einem Netzwerk verbinden, dann gehen Sie zum Terminal und führen den Befehl aus:

sudo ifconfig

Danach können Sie die IP-Adresse abrufen.

Mit der IP-Adresse können Sie über SHH auf das Dragonboard zugreifen, dazu müssen Sie ein Terminal in einem Computer öffnen, der im selben Netzwerk wie das Board angeschlossen ist. Im Terminal können Sie den Befehl ausführen:

ssh linaro@{IP}

(Sie sollten {IP} durch die IP-Adresse ersetzen, die Sie im Dragonboard erhalten).

Die erste Lib, die Sie installieren müssen, ist die mraa Lib. Dazu müssen Sie im Terminal den folgenden Befehl ausführen:

sudo add-apt-repository ppa:mraa/mraa && sudo apt-ge;t update && sudo apt-get install libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa

Um opencv für Python zu installieren, müssen Sie nur den Befehl ausführen:

sudo apt-get install python-opencv

Um PyAudio zu installieren, müssen Sie den Befehl ausführen:

sudo apt-get install python-pyaudio python3-pyaudio

Die Libs WAVE und AudioOp sind bereits auf dem Board installiert. Um numpy zu installieren, müssen Sie den Befehl ausführen:

sudo apt-get install python-numpy python-scipy

Die letzte Bibliothek, die Sie installieren müssen, ist das Scikit, um es zu installieren, müssen Sie pip installiert haben. Dann müssen Sie nur den Befehl ausführen:

pip install scikit-lear

Schritt 5: Bluetooth-Protokoll

Bluetooth-Protokoll
Bluetooth-Protokoll
Bluetooth-Protokoll
Bluetooth-Protokoll
Bluetooth-Protokoll
Bluetooth-Protokoll

DragonBoard Verbindung mit dem Arduino über Bluetooth

Das Bluetooth-Modul (HC-06) wurde zunächst nach folgendem Beispiel mit dem Arduino Nano verbunden:

Klicken Sie auf der grafischen Oberfläche von Linaro (im aktuellen Projekt verwendetes Betriebssystem in DragonBoard) auf der rechten Seite der unteren Leiste auf das Bluetooth-Symbol und dann auf "Neues Gerät einrichten" und konfigurieren Sie es mit Ihrem Bluetooth-Modul, das gepaart bleibt. Überprüfen Sie, ob Ihr Modul tatsächlich verbunden ist, indem Sie erneut auf das Bluetooth-Symbol klicken, auf „Geräte…“klicken und prüfen, ob der Name Ihres Geräts aufgelistet und verbunden ist. Wählen Sie nun Ihr Gerät im Bildschirm "Bluetooth-Geräte" aus und klicken Sie mit der rechten Maustaste darauf und notieren Sie den Port, mit dem Ihr Bluetooth-Modul verbunden ist (z. B.: "rfcomm0"). Hinweis: Der Portname, mit dem Ihr Gerät verbunden ist, ist für den nächsten Schritt wichtig, um den Datenaustausch zu ermöglichen.

Einrichtung von DragonBoard-Datenaustausch und Bluetooth

Grundsätzlich folgen wir Schritt für Schritt dem Link: https://www.uugear.com/portfolio/bluetooth-communi… aber wir haben nicht den Teil des Pairings durchgeführt, sondern nur die Ausführung der Python-Codes und Arduino. In Python wurde die serielle Bibliothek verwendet, die in dem mit Bluetooth verbundenen Port initialisiert wird, daher liest der Python-Code die Daten der Sensoren, die über das Bluetooth-Modul mit dem Arduino verbunden sind.

Schritt 6: Verwenden von Mezzanine auf DragonBoard 410c

Verwenden von Mezzanine auf DragonBoard 410c
Verwenden von Mezzanine auf DragonBoard 410c

Um die Verbindungen zwischen dem Dragonboard und den Komponenten herzustellen, verwenden wir eine von 96boards entwickelte Schildart namens Mezannine.

Mit dieser Abschirmung wird das Anschließen von Peripheriegeräten viel einfacher.

Die verwendeten Anschlüsse stammen aus dem Entwicklungskit des Grove, es wird also nur ein spezielles Kabel verwendet, das beide Richtungen verbindet.

Alle Teile sind leicht auf dieser Website zu finden:

Wir verwenden diese Kits unten:

  • Grove-Relais
  • Grove Sonnenlichtsensor
  • Grove LED-Steckdose
  • Grove temp&humi sensor
  • Grove Summer

Schritt 7: DragonBoard 410c-Software

Der Programmteil im DragonBoard wurde in Python codiert und das auf dem Arduino verwendete Programm wurde in C++ entwickelt. Alle 2 Minuten liest der Arduino alle daran angeschlossenen Sensoren. Dann sendet der Arduino den Messwert per Bluetooth an das DragonBoard. Das DragonBoard kombiniert das Lesen des Arduino mit dem Lesen des Mezzanine-Shields mit den Funktionen aus den Audio- und Videobeispielen.

Mit diesen Daten versucht der Vorstand vorherzusagen, ob es sich um eine Notfallsituation handelt. Das Board sendet mit dem Phant die Rohdaten und die Vorhersage, die es gemacht hat, an den Amazon Web Service. Wenn das Board vorhersagt, dass eine seltsame Situation auftritt, versucht es, den Benutzer durch Blinken einer LED und eines Summers im Mezzanine zu warnen und in der Webanwendung anzuzeigen. In der Webanwendung ist es auch möglich, die Rohdaten zu sehen, um zu verstehen, was in diesem Bereich passiert.

Empfohlen: