Innholdsfortegnelse:

Smart IoT Vision: 8 trinn
Smart IoT Vision: 8 trinn

Video: Smart IoT Vision: 8 trinn

Video: Smart IoT Vision: 8 trinn
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Smart IoT Vision
Smart IoT Vision

Dette er et prosjekt som fokuserer på smart city -konteksten. I denne saken er det tre store problemer vi løser:

1 - energisparing i offentlig belysning; 2 - forbedre bysikkerheten; 3 - forbedre trafikkflyten.

1 - Ved å bruke LED -lamper på gater er besparelsene allerede opptil 50%, og med tillegg av Telemanagement kan vi spare 30% mer.

2 - Ved bruk av smarte kameraer kan vi kontrollere lysene for å dempe ned der folk flyter er fraværende og gjøre gateseksjonen lysere der folk går. Det vil ikke bare spare energi, men øke følelsen av å bli sett på, og dermed skremme dårlige intensjoner. Videre kan visuelle alarmer (for eksempel blinkende lamper) brukes ved mistenkelig oppførsel.

3 - Det smarte kameraet vil overvåke trafikken, behandle forholdene lokalt og kontrollere lyssignalene for best mulig å håndtere trafikken. På denne måten kunne trafikkork unngås, biler ville ikke måtte vente lenge på røde signaler når det ikke er flyt i krysset, og så videre. Når det gjelder teknologiske problemer, løser vi også vanlige problemer i IoT, for eksempel robust tilkobling i byskala og kameraintegrasjon for IoT Network, ved å bruke kantbehandling for å overføre bare relevant informasjon.

Se vår publikasjon om Embarcados og GitHub

Også på YouTube

Vårt team:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Baker

(Kontaktinformasjon nederst)

Trinn 1: Systemblokkdiagram

Systemblokkdiagram
Systemblokkdiagram

Dette er en oversikt over løsningsarkitekturen.

Systemet består av en Camera-Gateway som bruker RFmesh på FAN-grensesnittet, WiFi på LAN, og også CAT-M for WAN-tilkobling. Den inneholder også smarte fotoceller, smarte kameraer og lyssignaler.

Alle enhetene i nettverkene, hovedsakelig det smarte kameraet, sender data via 6lowpan til smartgatewayen, slik at det kan ta avgjørelser angående offentlig belysning og lyssignalkontroll.

Gatewayen er også koblet til serveren vår via VPN. På denne måten har vi tilgang til FAN og LAN, bot for å kontrollere statusen eller kontrollere enhetene.

Trinn 2: Komponenter for dette prosjektet

Komponenter for dette prosjektet
Komponenter for dette prosjektet
Komponenter for dette prosjektet
Komponenter for dette prosjektet
Komponenter for dette prosjektet
Komponenter for dette prosjektet

Smart kamera

- DragonBoard410C/DragonBoard820C

- USB -kamera

- OneRF NIC

Camera Gateway

- DragonBoard410C/DragonBoard820C

- USB -kamera

- OneRF NIC

- Cat-M/3G-modem

Smart lyssignal

Trinn 3: Trinn 2: Kretsdiagram og tilkoblinger

Trinn 2: Kretsdiagram og tilkoblinger
Trinn 2: Kretsdiagram og tilkoblinger
Trinn 2: Kretsdiagram og tilkoblinger
Trinn 2: Kretsdiagram og tilkoblinger
Trinn 2: Kretsdiagram og tilkoblinger
Trinn 2: Kretsdiagram og tilkoblinger
Trinn 2: Kretsdiagram og tilkoblinger
Trinn 2: Kretsdiagram og tilkoblinger

Smart kamera

- Kamera på USB -port

- OneRF NIC ved UART -port

Camera Gateway

- Kamera på USB -port

- OneRF NIC ved UART -port

- 3G/Cat-M-modem ved USB-port

(Alt forbundet med IoT Mezzanine)

Smart Stree Light

- Konvensjonell gatelys

- Relébrett (3 kanaler)

- OneRF NIC

Smart fotocelle

- OneRF NIC

- Strømmåler

Trinn 4: Installer Os på DragonBoards

Installere Debian på Dragonboard820C (Fastboot -metode)

Installer pakkene som er oppført i: https://www.96boards.org/documentation/consumer/d… ved å bruke et Linux -operativsystem

På dragebordet:

gjør s4 AV, AV, AV, AV

Slå på å trykke vol (-)

Hvis du bruker en seriell skjerm (sterkt anbefalt), får du meldingen "fastboot: behandlingskommandoer" (seriell skjerm på 115200) Koble til mikro-usb (J4) på PCen

På verts -PC: Last ned (og pakk ut) fra

$ sudo fastboot -enheter

452bb893 fastboot (eksempel)

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

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

Installere Debian på Dragonboard410C

Trinn på datamaskinen (Linux)

1 - Last ned bildet

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 - Pakk ut filene

$ cd ~/Debian_SD_Card_Install_image

$ unzip dragonboard410c_sdcard_install_debian-233.zip

3 - Sett inn microSD på datamaskinen og sjekk om den er montert

$ df -h

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

4 - Koble fra microSD og brenn bildet

$ umount /dev /sdb1

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

5 - Fjern microSD fra PCen

Trinn på datamaskinen (Windows) Last ned - SD -kortbilde - (Alternativ 1) SD -kortbilde - Installer og start opp fra eMMC

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

Pakk ut SD -kort Installer bilde

Last ned og installer Win32DiskImager -verktøyet

sourceforge.net/projects/win32diskimager/f…

Åpne Win32DiskImager -verktøyet

Sett inn SD -kortet i datamaskinen

Finn den utpakkede.img -filen

Klikk på Skriv

Trinn på Dragonboard Sørg for at DragonBoard ™ 410c er koblet fra strømmen

Sett S6-bryteren på DragonBoard ™ 410c til 0-1-0-0, "SD Boot-bryter" skal være satt til "ON".

Koble til en HDMI

Koble til et USB -tastatur

Sett inn microSD

Plugg strømadapteren

Velg bildet du vil installere, og klikk på "Installer"

vent til installasjonen er ferdig

Fjern strømadapteren

Fjern microSD

Sett S6-bryteren til 0-0-0-0

FERDIG

Trinn 5: Tilkoblingsgrensesnitt

Installere Cat-m og 3G

Bruk følgende AT -kommandoer ved hjelp av en vertsmaskin:

PÅ#SIMDET? // sjekk SIM -tilstedeværelse#SIMDET: 2, 0 // sim ikke satt inn

#SIMDET: 2, 1 // sim satt inn

I+CREG? // sjekk om den er registrert

+CREG: 0, 1 // (deaktiver nettverksregistrering uønsket resultatkode (fabrikkstandard), registrert hjemmenettverk)

AT+COPS?

+COPS: 0, 0,”VIVO”, 2 // (modus = automatisk valg, format = alfanumerisk, oper,?)

AT+CPAS // Telefonaktivitetsstatus

+CPAS: 0 // klar

AT+CSQ // sjekk kvaliteten på tjenesten

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

AT+CGATT? // status for GPRS -vedlegg

+CGATT: 1 // vedlagt

AT+CGDCONT = 1,”IP”,”zap.vivo.com.br”,, 0, 0 // konfigurer kontekst

OK

AT+CGDCONT? // sjekk kontekst

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

AT#SGACT = 1, 1 // Kontekstaktivering

#SGACT: 100.108.48.30

OK

Sett opp grensesnittet

Bruker grafisk miljø

Koble til modemet (oneRF_Modem_v04 - HE910)

Åpne nettverkstilkoblinger

Klikk på + for å legge til ny tilkobling

Velg Mobilt bredbånd

Velg riktig enhet

Velg landet

Velg leverandøren

Velg planen og lagre

Fjern modemet

Koble til modemet igjen

Ved hjelp av terminalapt-get install pppconfig

pppconfig

leverandør = vivo

dinamico

KAPITTEL

vivo

vivo

115200

Tone

*99#

nei (manuell)

/dev/ttyUSB0

lagre

cat/etc/ppp/peers/vivo

cat/etc/chatscripts/vivo

pon vivo

Hvis du bruker Cat-M-modul, bare bruk følgende kommandoer før:

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

apt-get install comgt

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

Trinn 6: Installere viktige programvaremoduler

På utviklingsdatamaskinen

Vær oppmerksom på at noen trinn er maskinvareavhengige og bør justeres for å oppfylle de faktiske datamaskinens spesifikasjoner. Bibliotekene kan installeres med en enkelt kommando.

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-bin opnempi-doc protobuf-compiler python python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotese python-yaml

OpenCV

Dette rammeverket brukes til å utvikle bildebaserte statistiske algoritmer på utviklingsmaskinen. Siden det meste av koden vår er skrevet i Python, er den enkleste installasjonsmetoden å bare

pip installer opencv-python

Vær imidlertid oppmerksom på at disse hjulene ikke vil bruke noe annet enn CPU'en din og kanskje ikke engang bruke alle kjernene, så det kan være lurt å kompilere fra kilden for å oppnå maksimal ytelse. For å bygge pakken i Linux, for eksempel, laster du ned zip -filen fra OpenCV Releases -siden og pakker den ut. Fra den utpakkede mappen:

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

sudo gjør install

Kommandoen -j4 instruerer for å bruke fire tråder. Bruk så mange som CPU -en din har!

Kaffe

Slik konfigurerer du Caffe -rammeverket fra kilder:

git -klon https://github.com/BVLC/caffe.git && cd caffemkdir build

cmake..

lage alt

gjør test gjør runtest

Hvis alle testene kjøres vellykket, er du klar.

TensorFlow

Google lar deg ikke kompilere TensorFlow med vanlige verktøy. Det krever Bazel for det, og sjansen er stor for at det ikke vil fungere, så unngå å kompilere det og bare ta tak i den forhåndskompilerte modulen med:

pip installer tensorflow

Hvis datamaskinen din er litt gammel og ikke har AVX-instruksjoner, kan du få den siste tensorflowen uten AVX med

pip install tensorflow == 1.5

Og du er ferdig.

SNPE - Snapdragon ™ nevral prosessormotor

Å sette opp Snappy, som våre Qualcomm -venner kaller SNPE, er ikke vanskelig, men trinnene bør følges nøye. Installasjonsoversikten er:

klone git -depotene for nevrale nettverksrammer

CaffeCaffe2

TensorFlow

ONNX

kjør skriptene for å se etter dependenciessnpe/bin/dependencies.sh

snpe/bin/check_python_depends.sh

for hver installerte rammeverk kjør snpe/bin/envsetup.sh

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

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

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

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

For å kilde SNPE i hver terminalforekomst du åpner, legg til trinn tre sine fire linjer til slutten av ~/.bashrc -filen.

På målbrettet

Å flytte til arm64 fra amd64 er ikke en enkel oppgave, siden mange biblioteker vil dra fordel av x86 -instruksjoner for å øke ytelsen. Heldigvis er det mulig å samle de fleste nødvendige ressursene på selve brettet. De nødvendige bibliotekene kan installeres med en enkelt kommando.

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-bin opnempi-doc protobuf-compiler python python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotese python-yaml

Installer dem med apt og gå videre. Vær oppmerksom på at dette trinnet kan ta litt tid, ettersom passende anrop ringer for å bygge koden som ikke er forhåndskompilert.

OpenCV

Last ned versjonen fra OpenCV -depotet, pakk den ut et sted og fra den utpakkede mappen:

mkdir build && cd buildcmake..

lage alle -j3

sudo gjør install

Vær oppmerksom på at vi brukte alternativet -j3. Hvis du får tilgang til kortet via ssh, kan det være nok å ha alle kjernene fullastet for å koble tilkoblingen. Det er ikke ønskelig. Ved å begrense trådbruken til tre, vil vi alltid ha minst en ledig tråd for å håndtere ssh -tilkoblinger og generell rengjøring av systemet.

Dette er for Dragonboard 820 og Inforce 6640 med APQ8096 -brikken. På Dragonboard 410 vil du ha litt ledig virtuelt minne eller begrense kompileringstrådene til en, siden den har mindre fysisk RAM tilgjengelig.

Det er også oppmerksom på at avkjøling av brikken vil bidra til å øke ytelsen ved å begrense termisk struping. En kjøleribbe gjør susen ved små belastninger, men du vil ha en skikkelig vifte for kompilering og andre CPU-intensive laster.

Hvorfor ikke installere OpenCV med apt eller pip? Fordi kompilering av den i målmaskinen gjør hver tilgjengelig prosessorinstruksjon synlig for kompilatoren, noe som forbedrer utførelsesytelsen.

SNPE - Snapdragon ™ nevral prosessormotor

Vi installerte Snappy akkurat som det var på en stasjonær datamaskin, selv om det ikke var installert et faktisk rammeverk for nevrale nettverk (SNPE trenger bare git repos, ikke de faktiske binærfiler).

Siden alt vi trenger er binærfiler og overskrifter for kommandoen snpe-net-run, er det en mulighet for at bare å ha følgende filer i en mappe og legge denne mappen til PATH fungerer:

Neuralt nettverk binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run

CPU -biblioteker

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 -biblioteker

snpe/lib/dsp/libsnpe_dsp_skel.so

snpe/lib/aarch64-linux-gcc4.9/libsnpe_adsp.so

Resultatviser

snpe/models/alexnet/scripts/show_alexnet_classifications.py

Det fete elementet, /usr/lib/aarch64-linux-gnu/libatomic.so.1, leveres med Linaro på denne banen og må kopieres til denne hypotetiske minimalmappen.

Andre ufrivillige pakker:

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

sudo apt install nodejs

sudo apt installer openvpn

Trinn 7: Demonstrasjon

Se en kort demonstrasjon av Smart IoT Vision for Smart-City-arbeid !!

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

Trinn 8: Takk

Vi takker Qualcomm -teamet og Embarcados for å lage og støtte konkurransen.

Kontakt oss gjerne på:

Referanser

Dragonboard 410c Installasjonsguide for Linux og 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/

Anbefalt: