Inhaltsverzeichnis:
- Schritt 1: Systemblockdiagramm
- Schritt 2: Komponenten für dieses Projekt
- Schritt 3: Schritt 2: Schaltplan und Anschlüsse
- Schritt 4: Installieren Sie OS auf den DragonBoards
- Schritt 5: Konnektivitätsschnittstellen
- Schritt 6: Installieren wesentlicher Softwaremodule
- Schritt 7: Demonstration
- Schritt 8: Danke
Video: Intelligente IoT-Vision - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Dies ist ein Projekt, das sich auf den Kontext der Smart City konzentriert. In dieser Angelegenheit gibt es drei Hauptprobleme, die wir lösen:
1 – Energieeinsparung bei der öffentlichen Beleuchtung; 2 – Verbesserung der Stadtsicherheit; 3 – Verkehrsfluss verbessern.
1 – Durch den Einsatz von LED-Leuchten auf Straßen betragen die Einsparungen bereits bis zu 50 %, und mit dem Zusatz von Telemanagement können wir 30 % mehr Einsparungen erzielen.
2 – Mit Hilfe von intelligenten Kameras können wir das Licht an Stellen, an denen kein Personenstrom herrscht, herunterdimmen und den Straßenabschnitt dort heller machen, wo die Leute gehen. Es spart nicht nur Energie, sondern erhöht auch das Gefühl, beobachtet zu werden, und schüchtert so Menschen mit schlechten Absichten ein. Darüber hinaus können bei verdächtigem Verhalten visuelle Alarme (z. B. Blinken der Lampen) eingesetzt werden.
3 – Die Smart-Kamera beobachtet den Verkehr, verarbeitet lokal seine Bedingungen und steuert die Lichtsignale, um den Verkehr optimal zu steuern. Auf diese Weise könnten Staus vermieden werden, Autos müssten nicht lange auf rote Signale warten, wenn es an der Kreuzung keinen Fluss gibt, und so weiter. In Bezug auf technologische Probleme lösen wir auch häufige Probleme im IoT wie robuste Konnektivität im Stadtmaßstab und Kameraintegration für das IoT-Netzwerk, indem wir Edge-Processing verwenden, um nur relevante Informationen zu übertragen.
Siehe unsere Publikation auf Embarcados und GitHub
Auch auf YouTube
Unser Team:
Milton Felipe Souza Santos
Gustavo Retuci Pinheiro
Eduardo Caldas Cardoso
Jonathas Bäcker
(Kontaktdaten ganz unten)
Schritt 1: Systemblockdiagramm
Dies ist ein Überblick über die Lösungsarchitektur.
Das System besteht aus einem Kamera-Gateway, das RFmesh auf der FAN-Schnittstelle, WiFi auf LAN und auch CAT-M für die WAN-Konnektivität verwendet. Es enthält auch intelligente Fotozellen, intelligente Kameras und Lichtsignale.
Alle Geräte in den Netzwerken, hauptsächlich die Smart Camera, senden Daten über 6lowpan an das Smart Gateway, damit es die Entscheidungen über die öffentliche Beleuchtung und Lichtsignalsteuerung treffen kann.
Das Gateway ist auch über VPN mit unserem Server verbunden. Auf diese Weise haben wir Zugriff auf FAN und LAN, Bot zur Statuskontrolle oder Steuerung der Geräte.
Schritt 2: Komponenten für dieses Projekt
Intelligente Kamera
- DragonBoard410C/DragonBoard820C
- USB-Kamera
- OneRF-NIC
Kamera-Gateway
- DragonBoard410C/DragonBoard820C
- USB-Kamera
- OneRF-NIC
- Cat-M/3G-Modem
Intelligentes Lichtsignal
Schritt 3: Schritt 2: Schaltplan und Anschlüsse
Intelligente Kamera
- Kamera am USB-Anschluss
- OneRF-NIC am UART-Port
Kamera-Gateway
- Kamera am USB-Anschluss
- OneRF-NIC am UART-Port
- 3G/Cat-M-Modem am USB-Port
(Alle durch das IoT Mezzanine verbunden)
Intelligentes Straßenlicht
- Konventionelle Straßenbeleuchtung
- Relaisplatine (3 Kanäle)
- OneRF-NIC
Intelligente Fotozelle
- OneRF-NIC
- Leistungsmesser
Schritt 4: Installieren Sie OS auf den DragonBoards
Debian auf Dragonboard820C installieren (Fastboot-Methode)
Installieren Sie unter einem Linux-Betriebssystem die Pakete, die unter https://www.96boards.org/documentation/consumer/d… aufgeführt sind.
Auf dem Drachenbrett:
mache s4 AUS, AUS, AUS, AUS
Schalten Sie das Drücken von Lautstärke ein (-)
Wenn Sie einen seriellen Monitor verwenden (sehr zu empfehlen), erhalten Sie die Meldung „fastboot: processing commands“(serial monitor at 115200) Verbinden Sie den Micro-USB (J4) mit dem PC
Auf dem Host-PC:Herunterladen (und entpacken) von
$ sudo Fastboot-Geräte
452bb893 Fastboot (Beispiel)
$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img
$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img
Debian auf Dragonboard410C installieren
Schritte auf dem Computer (Linux)
1 – Laden Sie das Bild herunter
$ cd ~
$ mkdir Debian_SD_Card_Install_image
$ cd Debian_SD_Card_Install_image
$ wget
2 – Entpacken Sie die Dateien
$ cd ~/Debian_SD_Card_Install_image
$ Dragonboard410c_sdcard_install_debian-233.zip entpacken
3 – Legen Sie die microSD in Ihren Computer ein und prüfen Sie, ob sie gemountet ist
$ df -h
/dev/sdb1 7,4G 32K 7,4G 1% /media/3533-3737
4 – Unmounten Sie die microSD und brennen Sie das Image
$ umount /dev/sdb1
$ sudo dd if=db410c_sd_install_debian.img of=/dev/sdb bs=4M oflag=sync status=noxfer
5 – Entfernen Sie die microSD von Ihrem PC
Schritte auf dem Computer (Windows)Download – SD-Karten-Image – (Option 1) SD-Karten-Image – Installieren und booten von eMMC
www.96boards.org/documentation/consumer/dr…
Installationsabbild der SD-Karte entpacken
Laden Sie das Win32DiskImager-Tool herunter und installieren Sie es
sourceforge.net/projects/win32diskimager/f…
Öffnen Sie das Win32DiskImager-Tool
Legen Sie die SD-Karte in den Computer ein
Suchen Sie die extrahierte.img-Datei
Klicken Sie auf Schreiben
Schritte auf dem DragonboardStellen Sie sicher, dass das DragonBoard™ 410c vom Strom getrennt ist
Stellen Sie den S6-Schalter am DragonBoard™ 410c auf 0-1-0-0, „SD Boot switch“sollte auf „ON“gestellt werden.
Anschließen eines HDMI
Schließen Sie eine USB-Tastatur an
Legen Sie die microSD ein
Steckernetzteil
Wählen Sie das zu installierende Image aus und klicken Sie auf „Installieren“.
Warten Sie, bis die Installation abgeschlossen ist
Netzteil entfernen
Entfernen Sie die microSD
Stellen Sie den S6-Schalter auf 0-0-0-0
GETAN
Schritt 5: Konnektivitätsschnittstellen
Cat-m und 3G. installieren
Wenden Sie die folgenden AT-Befehle mit einem Hostcomputer an:
AT#SIMDET? // SIM-Präsenz prüfen#SIMDET: 2, 0 // SIM nicht eingefügt
#SIMDET: 2, 1 // Sim eingefügt
AT+CREG? //überprüfe ob es registriert ist
+CREG: 0, 1 //(Netzwerkregistrierung deaktivieren, unaufgeforderter Ergebniscode (Werkseinstellung), registriertes Heimnetzwerk)
AT+COPS?
+COPS: 0, 0,”VIVO”, 2 // (Modus = automatische Auswahl, Format = alphanumerisch, oper, ?)
AT+CPAS //Telefonaktivitätsstatus
+CPAS: 0 //bereit
AT+CSQ // Servicequalität prüfen
+CSQ: 16, 3 //(rssi, Bitfehlerrate)
AT+CGATT? //Status des GPRS-Anhangs
+CGATT: 1 //angehängt
AT+CGDCONT=1,”IP”,”zap.vivo.com.br”,, 0, 0 // Kontext konfigurieren
OK
AT+CGDCONT? // Kontext prüfen
+CGDCONT: 1,”IP”,”zap.vivo.com.br”,””, 0, 0
AT#SGACT=1, 1 //Kontextaktivierung
#SGACT: 100.108.48.30
OK
Einrichten der Schnittstelle
Verwenden der grafischen Umgebung
Modem anschließen (oneRF_Modem_v04 – HE910)
Netzwerkverbindungen öffnen
Klicken Sie auf +, um eine neue Verbindung hinzuzufügen
Wählen Sie Mobiles Breitband
Wählen Sie das richtige Gerät aus
Wählen Sie das Land
Wählen Sie den Anbieter aus
Wählen Sie den Plan und speichern Sie
Entfernen Sie das Modem
Verbinden Sie das Modem erneut
Verwenden von terminalapt-get install pppconfig
pppconfig
Anbieter = vivo
dinamico
KERL
vivo
vivo
115200
Ton
*99#
nein (manuell)
/dev/ttyUSB0
speichern
Katze /etc/ppp/peers/vivo
Katze /etc/chatscripts/vivo
pon vivo
Wenn Sie das Cat-M-Modul verwenden, verwenden Sie zuvor einfach die folgenden Befehle:
echo 1bc7 1101 > /sys/bus/usb-serial/drivers/option1/new_id
apt-get install comgt
comgt -d /dev/ttyUSB0 comgt-Info -d /dev/ttyUSB0
Schritt 6: Installieren wesentlicher Softwaremodule
Auf dem Entwicklungscomputer
Beachten Sie, dass einige Schritte hardwareabhängig sind und an Ihre tatsächlichen Computerspezifikationen angepasst werden sollten. Die Bibliotheken können mit einem einzigen Befehl installiert werden.
sudo apt install build-essential git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgflags2 hdf5 openmpi-doceropnempith-on python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typisierung python-hypotesis python-yaml
OpenCV
Dieses Framework wird verwendet, um bildbasierte statistische Algorithmen auf der Entwicklungsmaschine zu entwickeln. Da der größte Teil unseres Codes in Python geschrieben ist, ist die einfachste Installationsmethode einfach
pip install opencv-python
Beachten Sie jedoch, dass diese Räder außer Ihrer CPU nichts verwenden und möglicherweise nicht einmal alle ihre Kerne verwenden. Daher möchten Sie möglicherweise aus dem Quellcode kompilieren, um die maximale Leistung zu erzielen. Um das Paket beispielsweise unter Linux zu erstellen, laden Sie die ZIP-Datei von der OpenCV-Release-Seite herunter und entpacken sie. Aus dem entpackten Ordner:
mkdir build && cd buildcmake.. make all -j4
sudo machen installieren
Der Befehl -j4 weist make an, vier Threads zu verwenden. Verwenden Sie so viele, wie Ihre CPU hat!
Kaffee
So richten Sie das Caffe-Framework aus Quellen ein:
git-Klon https://github.com/BVLC/caffe.git && cd caffemkdir build
cmake..
mache alles
mach test mach lauftest
Wenn alle Tests erfolgreich ausgeführt werden, sind Sie bereit.
TensorFlow
Google lässt Sie TensorFlow nicht mit gewöhnlichen Tools kompilieren. Es erfordert Bazel dafür und die Chancen stehen gut, dass es nicht funktioniert, also vermeiden Sie es, es zu kompilieren und greifen Sie einfach auf das vorkompilierte Modul mit:
pip installieren tensorflow
Wenn Ihr Computer etwas alt ist und keine AVX-Anweisungen hat, holen Sie sich den letzten Nicht-AVX-Tensorflow mit
pip installieren tensorflow==1.5
Und du bist fertig.
SNPE – Snapdragon™ Neural Processing Engine
Snappy einzurichten, wie unsere Qualcomm-Freunde SNPE nennen, ist nicht schwer, aber die Schritte sollten genau befolgt werden. Die Installationsskizze lautet:
Klonen Sie die Git-Repositorys der neuronalen Netzwerk-Frameworks
CaffeCaffe2
TensorFlow
ONNX
Führen Sie die Skripte aus, um nach Abhängigkeiten zu suchen snpe/bin/dependencies.sh
snpe/bin/check_python_depends.sh
für jedes installierte Framework snpe/bin/envsetup.sh. ausführen
source $SNPE/bin/envsetup.sh -c $CAFFE_GIT
source $SNPE/bin/envsetup.sh -f $CAFFE2_GIT
source $SNPE/bin/envsetup.sh -t $TENSORFLOW_GIT
source $SNPE/bin/envsetup.sh -o $ONNX_GIT
Um SNPE in jeder geöffneten Terminalinstanz zu beziehen, fügen Sie die vier Zeilen von Schritt drei an das Ende Ihrer ~/.bashrc-Datei an.
Auf der Zieltafel
Der Wechsel von amd64 auf arm64 ist keine leichte Aufgabe, da viele Bibliotheken x86-Anweisungen nutzen, um ihre Leistung zu steigern. Glücklicherweise ist es möglich, die meisten notwendigen Ressourcen auf dem Board selbst zusammenzustellen. Die benötigten Bibliotheken können mit einem einzigen Befehl installiert werden.
sudo apt install build-essential git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgflags2 hdf5 openmpi-doceropnempith-on python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typisierung python-hypotesis python-yaml
Installieren Sie sie mit apt und fahren Sie fort. Beachten Sie, dass dieser Schritt einige Zeit in Anspruch nehmen kann, da apt-Aufrufe ausführen, um den nicht vorkompilierten Code zu erstellen.
OpenCV
Laden Sie die Version aus dem OpenCV-Repository herunter, entpacken Sie sie irgendwo und aus dem entpackten Ordner:
mkdir build && cd buildcmake..
mache alles -j3
sudo machen installieren
Beachten Sie, dass wir die Option -j3 verwendet haben. Wenn Sie über ssh auf das Board zugreifen, kann es ausreichen, wenn alle Kerne voll geladen sind, um die Verbindung zu trennen. Das ist nicht wünschenswert. Indem wir die Thread-Nutzung auf drei beschränken, haben wir immer mindestens einen freien Thread, um SSH-Verbindungen und die allgemeine Systemverwaltung zu bewältigen.
Dies ist für das Dragonboard 820 und Inforce 6640 mit dem APQ8096-Chip. Auf dem Dragonboard 410 möchten Sie möglicherweise freien virtuellen Speicher haben oder die Kompilierungs-Threads auf einen beschränken, da weniger physischer RAM zur Verfügung steht.
Es ist auch zu beachten, dass die Kühlung des Chips zur Leistungssteigerung beiträgt, indem die thermische Drosselung begrenzt wird. Ein Kühlkörper reicht bei kleinen Lasten aus, aber Sie benötigen einen richtigen Lüfter zum Kompilieren und für andere CPU-intensive Lasten.
Warum nicht OpenCV mit apt oder pip installieren? Denn durch die Kompilierung auf dem Zielcomputer wird jede verfügbare Prozessoranweisung für den Compiler sichtbar, wodurch die Ausführungsleistung verbessert wird.
SNPE – Snapdragon™ Neural Processing Engine
Wir haben Snappy wie auf einem Desktop-Computer installiert, obwohl kein eigentliches neuronales Netzwerk-Framework installiert war (SNPE benötigt nur die Git-Repos, nicht die eigentlichen Binärdateien).
Da wir jedoch nur die Binärdateien und Header für den Befehl snpe-net-run benötigen, besteht die Möglichkeit, dass nur die folgenden Dateien in einem Ordner vorhanden sind und dieser Ordner zum PATH hinzugefügt wird:
Neuronales Netzwerk binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run
CPU-Bibliotheken
snpe/lib/aarch64-linux-gcc4.9/libSNPE.so
snpe/lib/aarch64-linux-gcc4.9/libsymphony-cpu.so
/usr/lib/aarch64-linux-gnu/libatomic.so.1
DSP-Bibliotheken
snpe/lib/dsp/libsnpe_dsp_skel.so
snpe/lib/aarch64-linux-gcc4.9/libsnpe_adsp.so
Ergebnisanzeige
snpe/models/alexnet/scripts/show_alexnet_classifications.py
Das fettgedruckte Element /usr/lib/aarch64-linux-gnu/libatomic.so.1 wird mit Linaro auf diesem Pfad bereitgestellt und muss in diesen hypothetischen Minimalordner kopiert werden.
Andere wichtige Pakete:
sudo apt-get install net-toolssudo apt-get install gedit
sudo apt install nodejs
sudo apt install openvpn
Schritt 7: Demonstration
Sehen Sie sich eine kurze Demonstration der Smart IoT Vision für Smart-City-Arbeiten an!!
www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be
Schritt 8: Danke
Wir danken dem Qualcomm-Team und Embarcados für die Erstellung und Unterstützung des Wettbewerbs.
Kontaktieren Sie uns gerne unter:
Verweise
Dragonboard 410c Installationsanleitung für Linux und Android
github.com/96boards/documentation/wiki/Dr….
DragonBoard 410c
caffe.berkeleyvision.org/install_apt.htmlhttps://caffe.berkeleyvision.org/installation.html#… https://developer.qualcomm.com/docs/snpe/setup.ht…https://caffe.berkeleyvision.org/installation.html#… https://github.com/BVLC/caffe https://caffe.berkeleyvision.org/installation.html#… https://github.com/tensorflow/tensorflow https:// /caffe.berkeleyvision.org/installation.html#… https://www.tensorflow.org/install/ https://caffe.berkeleyvision.org/installation.html#… https://caffe.berkeleyvision.org/
Empfohlen:
Intelligente Brillen: 4 Schritte
Smart Glasses: Hallo zusammen, heute zeige ich euch, wie man Smart Glasses zu Hause herstellt! Eines der großartigsten Dinge an Datenbrillen ist, wie nützlich es in der heutigen Technologiewelt ist, so etwas zu haben und dass es nicht nur eine Version gibt
Intelligente Lektion: 6 Schritte
Smart Lesson: O projeto Smart Lesson visa criar um produto no qual os professores possam utilizar como um conteúdo a mais para ensinar seus alunos os levando a um nível de aprendizado muito superior por conseguir de mostrar…;dos conteguir
So verbinden Sie einen ESP32 mit der IoT-Cloud: 8 Schritte
So verbinden Sie einen ESP32 mit der IoT-Cloud: Diese Anleitung enthält eine Reihe von Artikeln zum Anschließen von Hardware wie Arduino und ESP8266 an die Cloud. Ich werde Ihnen erklären, wie Sie Ihren ESP32-Chip mit dem AskSensors IoT-Dienst mit der Cloud verbinden. Warum ESP32?Nach dem großen Erfolg
So fügen Sie IOT-Funktionen zu Ihren Projekten hinzu – wikiHow
So fügen Sie Ihren Projekten IOT-Funktionen hinzu: Nichts ist besser, als ein DIY-Projekt zu erstellen, das ein kommerzielles Produkt ersetzt, das Sie für nützlich halten. Nun, eigentlich gibt es etwas Besseres. Hinzufügen von IOT-Fähigkeiten zu Ihrem Projekt. Wenn es um Automatisierung geht, flippen Anfänger in der Regel aus
LTE CAT-M1 GSM IoT Sensors Network T - 15 Minuten.: 5 Schritte
LTE CAT-M1 GSM IoT Sensors Network… T - 15 Minuten.: Am 08. April 2018 gab R&D Software Solutions srl [itbrainpower.net] der Öffentlichkeit die Ankündigung des xyz-mIoT von itbrainpower.net Shield bekannt - das erste und kompakteste IoT-Board, das die Vielseitigkeit der ARM0-Mikrosteuerung kombiniert