Inhaltsverzeichnis:
- Schritt 1: Erforderliche Komponenten
- Schritt 2: Remote-Gerät erstellen
- Schritt 3: Software und Bibliotheken
- Schritt 4: Verwenden von SSH und Installieren von Libs
- Schritt 5: Bluetooth-Protokoll
- Schritt 6: Verwenden von Mezzanine auf DragonBoard 410c
- Schritt 7: DragonBoard 410c-Software
Video: Erkennen von Notfallsituationen - Qualcomm Dragonboard 410c - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
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
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
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
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:
Löten von oberflächenmontierbaren Komponenten - Lötgrundlagen: 9 Schritte (mit Bildern)
Löten von oberflächenmontierbaren Komponenten | Lötgrundlagen: Bisher habe ich in meiner Lötgrundlagen-Serie genug Grundlagen zum Löten besprochen, damit Sie mit dem Üben beginnen können. In diesem Instructable, was ich besprechen werde, ist etwas fortgeschrittener, aber es sind einige der Grundlagen zum Löten von Surface Mount Compo
Durchlöten von Komponenten - Lötgrundlagen: 8 Schritte (mit Bildern)
Löten von Durchgangslochkomponenten | Lötgrundlagen: In diesem Instructable werde ich einige Grundlagen zum Löten von Durchgangslochkomponenten auf Leiterplatten diskutieren. Ich gehe davon aus, dass Sie bereits die ersten 2 Instructables für meine Lötgrundlagen-Serie ausgecheckt haben. Wenn Sie nicht in meinem In
Anhängen von Google Kalender an Google Sites: 5 Schritte
Anhängen von Google-Kalendern an Google Sites: Dies ist eine Anleitung, die Ihnen beibringt, wie Sie Google-Kalender erstellen, verwenden und bearbeiten und sie dann mithilfe der Freigabefunktionen an eine Google-Site anhängen. Dies kann für viele Menschen von Vorteil sein, da Google Sites verwendet werden kann, um i
Pflanzenkrankheiten mit maschinellem Lernen erkennen – wikiHow
Wie man Pflanzenkrankheiten mit maschinellem Lernen erkennt: Der Prozess des Erkennens und Erkennens erkrankter Pflanzen war schon immer ein manueller und mühsamer Prozess, bei dem Menschen den Pflanzenkörper visuell untersuchen müssen, was oft zu einer falschen Diagnose führen kann. Es wurde auch vorhergesagt, dass als globaler W
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": 8 Schritte
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Eine für Menschen lesbare Zusammenfassung dieser Lizenz findet sich hier.Was ist Gandalf?Gandalf ist eine Stand-A