Inhoudsopgave:

Slimme IoT-visie: 8 stappen
Slimme IoT-visie: 8 stappen

Video: Slimme IoT-visie: 8 stappen

Video: Slimme IoT-visie: 8 stappen
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, November
Anonim
Slimme IoT-visie
Slimme IoT-visie

Dit is een project gericht op de smart city-context. In deze kwestie zijn er drie grote problemen die we oplossen:

1 – energiebesparing in openbare verlichting; 2 – de veiligheid van de stad verbeteren; 3 – de doorstroming van het verkeer verbeteren.

1 – Door LED-verlichting op straat te gebruiken, is de besparing al tot 50% en met de toevoeging van Telemanagement kunnen we 30% meer besparen.

2 – Met het gebruik van slimme camera's kunnen we de lichten bedienen om te dimmen waar de mensenstroom afwezig is en het straatgedeelte helderder te maken waar mensen lopen. Het bespaart niet alleen energie, maar verhoogt ook het gevoel bekeken te worden, waardoor mensen met slechte bedoelingen worden geïntimideerd. Verder zouden visuele alarmen (bijvoorbeeld het knipperen van de lampen) ingezet kunnen worden bij verdacht gedrag.

3 – De slimme camera houdt het verkeer in de gaten, verwerkt lokaal de omstandigheden en regelt de lichtsignalen om het verkeer zo goed mogelijk te beheren. Zo konden files worden vermeden, hoeven auto's niet lang te wachten op rode seinen als er geen doorstroming is op de kruising, enzovoort. Met betrekking tot technologische problemen lossen we ook veelvoorkomende problemen op in IoT, zoals robuuste connectiviteit op stadsschaal en camera-integratie voor IoT Network, door edge-verwerking te gebruiken om alleen relevante informatie te verzenden.

Zie onze publicatie op Embarcados en GitHub

Ook op YouTube

Ons team:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Baker

(Contactgegevens onderaan)

Stap 1: Systeemblokdiagram

Systeemblokdiagram
Systeemblokdiagram

Dit is een overzicht van de oplossingsarchitectuur.

Het systeem bestaat uit een Camera-Gateway die RFmesh gebruikt op de FAN-interface, WiFi op LAN en ook CAT-M voor WAN-connectiviteit. Het bevat ook slimme fotocellen, slimme camera's en lichtsignalen.

Alle apparaten in de netwerken, voornamelijk de slimme camera, sturen gegevens via 6lowpan naar de slimme gateway, zodat deze de beslissingen kan nemen over de aansturing van openbare verlichting en lichtsignalen.

De gateway is ook via VPN verbonden met onze server. Op deze manier hebben we toegang tot de FAN en LAN, bot voor het controleren van de status of het aansturen van de apparaten.

Stap 2: Componenten voor dit project

Componenten voor dit project
Componenten voor dit project
Componenten voor dit project
Componenten voor dit project
Componenten voor dit project
Componenten voor dit project

Slimme camera

- DragonBoard410C/DragonBoard820C

- USB-camera

- OneRF NIC

Camera-gateway

- DragonBoard410C/DragonBoard820C

- USB-camera

- OneRF NIC

- Cat-M/3G-modem

Slim lichtsignaal

Stap 3: Stap 2: Schakelschema en aansluitingen

Stap 2: Schakelschema en aansluitingen
Stap 2: Schakelschema en aansluitingen
Stap 2: Schakelschema en aansluitingen
Stap 2: Schakelschema en aansluitingen
Stap 2: Schakelschema en aansluitingen
Stap 2: Schakelschema en aansluitingen
Stap 2: Schakelschema en aansluitingen
Stap 2: Schakelschema en aansluitingen

Slimme camera

- Camera op USB-poort

- OneRF NIC op UART-poort

Camera-gateway

- Camera op USB-poort

- OneRF NIC op UART-poort

- 3G/Cat-M-modem op USB-poort

(Allemaal verbonden door de IoT Mezzanine)

Slimme straatlantaarn

- Conventionele straatverlichting

- Relaiskaart (3 kanalen)

- OneRF NIC

Slimme fotocel

- OneRF NIC

- Krachtmeter

Stap 4: installeer OS op de DragonBoards

Debian installeren op Dragonboard820C (Fastboot-methode)

Installeer met een Linux-besturingssysteem de pakketten die worden vermeld in:

Op het drakenbord:

maak s4 UIT, UIT, UIT, UIT

Zet aan door op vol (-) te drukken

Als u een seriële monitor gebruikt (sterk aanbevolen), krijgt u de melding "fastboot: processing commands" (seriële monitor op 115200) Sluit de micro-usb (J4) aan op de pc

Op host-pc: downloaden (en uitpakken) van

$ sudo fastboot-apparaten

452bb893 fastboot (voorbeeld)

$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img

$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img

Debian installeren op Dragonboard410C

Stappen op de computer (Linux)

1 – Download de afbeelding

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 – Pak de bestanden uit

$ cd ~/Debian_SD_Card_Install_image

$ unzip dragonboard410c_sdcard_install_debian-233.zip

3 – Plaats de microSD op uw computer en controleer of deze is gemonteerd

$ df -h

/dev/sdb1 7.4G 32K 7.4G 1% /media/3533-3737

4 – Ontkoppel de microSD en brand de afbeelding

$ umount /dev/sdb1

$ sudo dd if=db410c_sd_install_debian.img of=/dev/sdb bs=4M oflag=sync status=noxfer

5 – Verwijder de microSD van uw pc

Stappen op de computer (Windows)Download – SD Card image – (Optie 1) SD Card Image – Installeren en opstarten vanaf eMMC

www.96boards.org/documentation/consumer/dr…

Unzip SD-kaart Afbeelding installeren

Download en installeer de Win32DiskImager-tool

sourceforge.net/projects/win32diskimager/f…

Open Win32DiskImager-tool

Plaats de SD-kaart in de computer

Zoek het uitgepakte.img-bestand

Klik op Schrijven

Stappen op het DragonboardZorg ervoor dat DragonBoard™ 410c is losgekoppeld van de stroom

Zet S6-schakelaar op DragonBoard™ 410c op 0-1-0-0, "SD Boot-schakelaar" moet worden ingesteld op "ON".

Sluit een HDMI aan

Sluit een USB-toetsenbord aan

Plaats de microSD

Stekker voedingsadapter

Selecteer de afbeelding om te installeren en klik op "Installeren"

wacht tot de installatie is voltooid

Stroomadapter verwijderen

Verwijder de microSD

Zet S6-schakelaar op 0-0-0-0

GEDAAN

Stap 5: Connectiviteitsinterfaces

Cat-m en 3G. installeren

Pas de volgende AT-opdrachten toe met behulp van een hostcomputer:

AT#SIMDET? // check SIM-aanwezigheid#SIMDET: 2, 0 // sim niet geplaatst

#SIMDET: 2, 1 // sim ingevoegd

AT+CREG? // controleer of het is geregistreerd

+CREG: 0, 1 //(netwerkregistratie uitschakelen ongevraagde resultaatcode (fabrieksinstelling), geregistreerd thuisnetwerk)

AT+COPS?

+COPS: 0, 0,”VIVO”, 2 // (mode = automatische keuze, formaat = alfanumeriek, oper, ?)

AT+CPAS //Telefoonactiviteitsstatus

+CPAS: 0 //klaar

AT+CSQ // controleer de kwaliteit van de service

+CSQ: 16, 3 //(rssi, bitfoutpercentage)

AT+CGATT? //status van GPRS-bijlage

+CGATT: 1 //bijgevoegd

AT+CGDCONT=1,”IP”,”zap.vivo.com.br”,, 0, 0 // context configureren

Oke

AT+CGDCONT? // controleer de context

+CGDCONT: 1,”IP”,”zap.vivo.com.br”,””, 0, 0

AT#SGACT=1, 1 //Context-activering

#SGACT: 100.108.48.30

Oke

De interface instellen

Grafische omgeving gebruiken

Sluit de modem aan (oneRF_Modem_v04 – HE910)

Netwerkverbindingen openen

Klik op + om een nieuwe verbinding toe te voegen

Selecteer mobiel breedband

Selecteer het juiste apparaat

Selecteer het land

Selecteer de aanbieder

Selecteer het abonnement en Opslaan

De modem verwijderen

Sluit de modem opnieuw aan

Terminalapt-get install pppconfig gebruiken

pppconfig

provider = vivo

dinamico

KEREL

levend

levend

115200

Toon

*99#

nee (handleiding)

/dev/ttyUSB0

opslaan

kat /etc/ppp/peers/vivo

cat /etc/chatscripts/vivo

pon vivo

Als u de Cat-M-module gebruikt, gebruik dan eerst de volgende opdrachten:

echo 1bc7 1101 > /sys/bus/usb-serial/drivers/option1/new_id

apt-get install comgt

comgt -d /dev/ttyUSB0 comgt info -d /dev/ttyUSB0

Stap 6: Essentiële softwaremodules installeren

Op de ontwikkelcomputer

Houd er rekening mee dat sommige stappen hardware-afhankelijk zijn en moeten worden aangepast om aan uw werkelijke computerspecificaties te voldoen. De bibliotheken kunnen met een enkele opdracht worden geïnstalleerd.

sudo apt install build-essentiële git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgmpidoc-hdf5ne open python-pip python-numpy python-scipy python-matplotlib python-toekomstige python-protobuf python-typing python-hypotesis python-yaml

OpenCV

Dit raamwerk wordt gebruikt om op afbeeldingen gebaseerde statistische algoritmen op de ontwikkelmachine te ontwikkelen. Aangezien de meeste van onze code in Python is geschreven, is de eenvoudigste installatiemethode om gewoon

pip installeer opencv-python

Houd er echter rekening mee dat deze wielen niets anders gebruiken dan uw CPU en mogelijk niet eens alle kernen gebruiken, dus misschien wilt u vanaf de bron compileren om maximale prestaties te bereiken. Om het pakket bijvoorbeeld in Linux te bouwen, downloadt u het zip-bestand van de OpenCV Releases-pagina en pakt u het uit. Vanuit de uitgepakte map:

mkdir build && cd buildcmake.. make all -j4

sudo make install

De opdracht -j4 geeft make de opdracht om vier threads te gebruiken. Gebruik zoveel als je CPU heeft!

Cafe

Het Caffe-framework instellen vanuit bronnen:

git clone https://github.com/BVLC/caffe.git && cd caffemkdir bouwen

cmake..

Maak alle

maak test maak runtest

Als alle tests succesvol verlopen, bent u helemaal klaar.

TensorFlow

Google laat je TensorFlow niet compileren met gewone tools. Het vereist Bazel ervoor en de kans is groot dat het niet werkt, dus vermijd het compileren en pak gewoon de vooraf gecompileerde module met:

pip installeren tensorflow

Als uw computer een beetje oud is en geen AVX-instructies heeft, haalt u de laatste niet-AVX-tensorflow op met

pip install tensorflow==1.5

En je bent klaar.

SNPE – Snapdragon™ Neural Processing Engine

Het opzetten van Snappy, zoals onze Qualcomm-vrienden SNPE noemen, is niet moeilijk, maar de stappen moeten nauwgezet worden gevolgd. Het installatieschema is:

kloon de git-repositories van de neurale netwerkframeworks

CaffeCaffe2

TensorFlow

ONNX

voer de scripts uit om te controleren op dependenciessnpe/bin/dependencies.sh

snpe/bin/check_python_depends.sh

voer voor elk geïnstalleerd framework snpe/bin/envsetup.sh. uit

bron $SNPE/bin/envsetup.sh -c $CAFFE_GIT

bron $SNPE/bin/envsetup.sh -f $CAFFE2_GIT

bron $SNPE/bin/envsetup.sh -t $TENSORFLOW_GIT

bron $SNPE/bin/envsetup.sh -o $ONNX_GIT

Om SNPE te gebruiken in elke terminalinstantie die u opent, voegt u de vier regels van stap drie toe aan het einde van uw ~/.bashrc-bestand.

Op het doelbord

Overstappen naar arm64 van amd64 is geen moeiteloze taak, omdat veel bibliotheken zullen profiteren van x86-instructies om hun prestaties te verbeteren. Gelukkig is het mogelijk om de meeste benodigde bronnen op het bord zelf te verzamelen. De benodigde bibliotheken kunnen met een enkele opdracht worden geïnstalleerd.

sudo apt install build-essentiële git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgmpidoc-hdf5ne open python-pip python-numpy python-scipy python-matplotlib python-toekomstige python-protobuf python-typing python-hypotesis python-yaml

Installeer ze met apt en ga verder. Houd er rekening mee dat deze stap enige tijd kan duren, omdat apt-aanroepen doen om de code te bouwen die niet vooraf is gecompileerd.

OpenCV

Download de release uit de OpenCV-repository, pak deze ergens uit en uit de uitgepakte map:

mkdir build && cd buildcmake..

maak alle -j3

sudo make install

Merk op dat we de -j3-optie hebben gebruikt. Als je via ssh toegang hebt tot het bord, kan het voldoende zijn om alle kernen volledig te laden om de verbinding te verbreken. Dat is niet wenselijk. Door het gebruik van threads te beperken tot drie, hebben we altijd ten minste één gratis thread om ssh-verbindingen en algemene systeemhuishouding aan te kunnen.

Dit is voor de Dragonboard 820 en Inforce 6640 met de APQ8096-chip. Op de Dragonboard 410 wil je wat vrij virtueel geheugen hebben of de compilethreads beperken tot één, omdat er minder fysiek RAM beschikbaar is.

Het is ook van belang dat het koelen van de chip de prestaties zal helpen verbeteren door thermische beperking te beperken. Een koellichaam doet de truc bij kleine belastingen, maar u wilt een goede ventilator voor het compileren en andere CPU-intensieve belastingen.

Waarom installeer je OpenCV niet met apt of pip? Omdat het compileren in de doelmachine elke beschikbare processorinstructie zichtbaar maakt voor de compiler, waardoor de uitvoeringsprestaties worden verbeterd.

SNPE – Snapdragon™ Neural Processing Engine

We installeerden Snappy net zoals het op een desktopcomputer was, ook al was er geen echt neuraal netwerkframework geïnstalleerd (SNPE heeft alleen de git-repo's nodig, niet de daadwerkelijke binaire bestanden).

Omdat we echter alleen de binaire bestanden en headers voor de opdracht snpe-net-run nodig hebben, bestaat de mogelijkheid dat alleen het hebben van de volgende bestanden in een map en het toevoegen van deze map aan het PATH werkt:

Neurale netwerk 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

Resultaten kijker

snpe/models/alexnet/scripts/show_alexnet_classifications.py

Het vetgedrukte item, /usr/lib/aarch64-linux-gnu/libatomic.so.1, wordt geleverd met Linaro op dit pad en moet worden gekopieerd naar deze hypothetische minimale map.

Andere belangrijke pakketten:

sudo apt-get install net-toolssudo apt-get install gedit

sudo apt install nodejs

sudo apt installeer openvpn

Stap 7: Demonstratie

Bekijk een korte demonstratie van de Smart IoT Vision voor Smart-City werken!!

www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be

Stap 8: Bedankt

We bedanken het Qualcomm-team en Embarcados voor het maken en ondersteunen van de wedstrijd.

Neem gerust contact met ons op via:

Referenties

Dragonboard 410c Installatiehandleiding voor Linux en 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 http:/ /caffe.berkeleyvision.org/installation.html#… https://www.tensorflow.org/install/ https://caffe.berkeleyvision.org/installation.html#… https://caffe.berkeleyvision.org/

Aanbevolen: