Cuprins:

Smart IoT Vision: 8 pași
Smart IoT Vision: 8 pași

Video: Smart IoT Vision: 8 pași

Video: Smart IoT Vision: 8 pași
Video: Top 10 IoT Projects 2022 | Useful IoT Devices | Smart IoT Projects | IoT Applications | Simplilearn 2024, Noiembrie
Anonim
Smart IoT Vision
Smart IoT Vision

Acesta este un proiect axat pe contextul orașului inteligent. În această chestiune, există trei probleme majore pe care le rezolvăm:

1 - economisirea energiei în iluminatul public; 2 - îmbunătățirea securității orașului; 3 - îmbunătăți fluxul de trafic.

1 - Prin utilizarea luminilor cu LED-uri pe străzi, economiile sunt deja de până la 50% și, prin adăugarea Telemanagementului, putem avea cu 30% mai multe economii.

2 - Cu ajutorul camerelor inteligente, putem controla luminile pentru a se estompa acolo unde oamenii circulă este absentă și pentru a face secțiunea străzii mai strălucitoare pe unde merg oamenii. Nu numai că va economisi energie, ci va crește sentimentul de a fi urmărit, astfel, intimidând oamenii cu intenții rele. În plus, alarmele vizuale (de exemplu, clipirea lămpilor) ar putea fi utilizate în caz de comportament suspect.

3 - Camera inteligentă va urmări traficul, va procesa local condițiile sale și va controla semnalele luminoase pentru a gestiona cel mai bine traficul. În acest fel, blocajele de trafic ar putea fi evitate, mașinile nu ar trebui să aștepte mult timp semnale roșii atunci când nu există flux în trecere și așa mai departe. În ceea ce privește problemele tehnologice, rezolvăm și problemele obișnuite în IoT, cum ar fi conectivitatea robustă la scară de oraș și integrarea camerei pentru rețeaua IoT, utilizând procesarea de margine pentru a transmite numai informații relevante.

Consultați publicația noastră pe Embarcados și GitHub

Tot pe YouTube

Echipa noastră:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Baker

(Informații de contact în partea de jos)

Pasul 1: Diagrama blocului de sistem

Diagrama blocului sistemului
Diagrama blocului sistemului

Aceasta este o prezentare generală a arhitecturii soluției.

Sistemul este compus dintr-o cameră-gateway care utilizează RFmesh pe interfața FAN, WiFi pe LAN și, de asemenea, CAT-M pentru conectivitate WAN. De asemenea, conține fotocelule inteligente, camere inteligente și semnale luminoase.

Toate dispozitivele din rețele, în principal camera inteligentă, trimit date prin 6lowpan către gateway-ul inteligent, astfel încât să poată lua deciziile privind iluminatul public și controlul semnalelor luminoase.

Gateway-ul este, de asemenea, conectat la serverul nostru prin VPN. În acest mod, avem acces la FAN și LAN, bot pentru verificarea stării sau controlul dispozitivelor.

Pasul 2: Componente pentru acest proiect

Componente pentru acest proiect
Componente pentru acest proiect
Componente pentru acest proiect
Componente pentru acest proiect
Componente pentru acest proiect
Componente pentru acest proiect

Cam inteligent

- DragonBoard410C / DragonBoard820C

- Cameră USB

- NIC OneRF

Camera Gateway

- DragonBoard410C / DragonBoard820C

- Cameră USB

- OneRF NIC

- Modem Cat-M / 3G

Semnal luminos inteligent

Pasul 3: Pasul 2: Diagrama circuitului și conexiunile

Pasul 2: Diagrama circuitului și conexiunile
Pasul 2: Diagrama circuitului și conexiunile
Pasul 2: Diagrama circuitului și conexiunile
Pasul 2: Diagrama circuitului și conexiunile
Pasul 2: Diagrama circuitului și conexiunile
Pasul 2: Diagrama circuitului și conexiunile
Pasul 2: Diagrama circuitului și conexiunile
Pasul 2: Diagrama circuitului și conexiunile

Cam inteligent

- Camera pe portul USB

- OneRF NIC la portul UART

Camera Gateway

- Camera pe portul USB

- OneRF NIC la portul UART

- Modem 3G / Cat-M la port USB

(Toate conectate prin mezaninul IoT)

Smart Stree Light

- Iluminat stradal convențional

- Placă de releu (3 canale)

- NIC OneRF

Fotocelulă inteligentă

- NIC OneRF

- Masurator de putere

Pasul 4: Instalați Os pe DragonBoards

Instalarea Debian pe Dragonboard820C (Metoda Fastboot)

Folosind un sistem de operare Linux, instalați pachetele listate în:

Pe dragonboard:

face s4 OFF, OFF, OFF, OFF

Porniți apăsând vol (-)

Dacă utilizați un monitor serial (foarte recomandat), veți primi mesajul „fastboot: processing controls” (monitor serial la 115200) Conectați micro-usb-ul (J4) pe PC

Pe computerul gazdă: Descărcați (și dezarhivați) de pe

Dispozitive $ sudo fastboot

452bb893 fastboot (exemplu)

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

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

Instalarea Debian pe Dragonboard410C

Pași pe computer (Linux)

1 - Descărcați imaginea

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 - Dezarhivați fișierele

$ cd ~ / Debian_SD_Card_Install_image

$ dezarhivați dragonboard410c_sdcard_install_debian-233.zip

3 - Introduceți microSD-ul pe computer și verificați dacă este montat

$ df -h

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

4 - Demontați microSD-ul și ardeți imaginea

$ umount / dev / sdb1

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

5 - Scoateți microSD-ul de pe computer

Pași pe computer (Windows) Descărcare - Imagine card SD - (Opțiunea 1) Imagine card SD - Instalare și pornire de pe eMMC

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

Dezarhivați imaginea de instalare a cardului SD

Descărcați și instalați instrumentul Win32DiskImager

sourceforge.net/projects/win32diskimager/f…

Deschideți instrumentul Win32DiskImager

Introduceți cardul SD în computer

Găsiți fișierul.img extras

Faceți clic pe Scrieți

Pași pe Dragonboard Asigurați-vă că DragonBoard ™ 410c este deconectat de la alimentare

Setați comutatorul S6 pe DragonBoard ™ 410c la 0-1-0-0, „SD Boot switch” trebuie setat la „ON”.

Conectați un HDMI

Conectați o tastatură USB

Introduceți microSD-ul

Conectați adaptorul de alimentare

Selectați imaginea de instalat și faceți clic pe „Instalați”

așteptați terminarea instalării

Scoateți adaptorul de alimentare

Scoateți microSD-ul

Setați comutatorul S6 la 0-0-0-0

TERMINAT

Pasul 5: Interfețe de conectivitate

Instalarea Cat-m și 3G

Aplicați următoarele comenzi AT utilizând o mașină gazdă:

LA # SIMDET? // verificați prezența SIM # SIMDET: 2, 0 // sim nu este inserat

#SIMDET: 2, 1 // sim inserat

AT + CREG? // verifică dacă este înregistrat

+ CREG: 0, 1 // (dezactivează înregistrarea rețelei cod rezultat nesolicitat (implicit din fabrică), rețea de domiciliu înregistrată)

AT + COPS?

+ COPS: 0, 0, „VIVO”, 2 // (mod = alegere automată, format = alfanumeric, oper,?)

AT + CPAS // Starea activității telefonului

+ CPAS: 0 // gata

AT + CSQ // verifică calitatea serviciului

+ CSQ: 16, 3 // (rssi, rata de eroare pe biți)

AT + CGATT? // starea atașamentului GPRS

+ CGATT: 1 // atașat

AT + CGDCONT = 1, „IP”, „zap.vivo.com.br”,, 0, 0 // configurați contextul

Bine

AT + CGDCONT? // verifică contextul

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

AT # SGACT = 1, 1 // Activarea contextului

#SGACT: 100.108.48.30

Bine

Configurați interfața

Utilizarea mediului grafic

Conectați modemul (oneRF_Modem_v04 - HE910)

Deschideți Conexiuni de rețea

Faceți clic pe + pentru a adăuga o conexiune nouă

Selectați Mobile Broadband

Selectați dispozitivul corect

Selectați țara

Selectați furnizorul

Selectați planul și Salvați

Scoateți modemul

Reconectați modemul

Folosind terminalapt-get install pppconfig

pppconfig

furnizor = vivo

dinamico

CHAP

vivo

vivo

115200

Ton

*99#

nu (manual)

/ dev / ttyUSB0

Salvați

cat / etc / ppp / peers / vivo

cat / etc / chatscripts / vivo

pon vivo

Dacă utilizați modulul Cat-M, utilizați următoarele comenzi înainte:

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

apt-get install comgt

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

Pasul 6: Instalarea modulelor software esențiale

Pe computerul de dezvoltare

Rețineți că unii pași sunt dependenți de hardware și ar trebui să fie reglați pentru a corespunde specificațiilor dvs. reale ale computerului. Bibliotecile pot fi instalate cu o singură comandă.

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-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotesis python-yaml

OpenCV

Acest cadru este utilizat pentru a dezvolta algoritmi statistici pe bază de imagini pe mașina de dezvoltare. Deoarece majoritatea codului nostru este scris în Python, cea mai ușoară metodă de instalare este simpla

pip instalează opencv-python

Rețineți, totuși, că aceste roți nu vor folosi nimic în afară de CPU și nici măcar nu vor folosi toate nucleele sale, deci poate doriți să compilați de la sursă pentru a obține performanțe maxime. Pentru a construi pachetul în Linux, de exemplu, nu descărcați fișierul zip din pagina OpenCV Releases și dezarhivați-l. Din folderul dezarhivat:

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

sudo make install

Comanda -j4 instruiește make pentru a utiliza patru fire. Folosiți cât de multe CPU are!

Caffe

Pentru a configura cadrul Caffe din surse:

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

cmake..

face totul

face test face runtest

Dacă toate testele rulează cu succes, atunci sunteți gata.

TensorFlow

Google nu vă permite să compilați TensorFlow cu instrumente obișnuite. Este nevoie de Bazel pentru aceasta și este posibil să nu funcționeze, așa că evitați să îl compilați și să luați modulul precompilat cu:

pip instala tensorflow

Dacă computerul dvs. este puțin vechi și nu are instrucțiuni AVX, obțineți ultimul flux tensor non-AVX cu

pip instala tensorflow == 1.5

Și ai terminat.

SNPE - Motor de procesare neuronală Snapdragon ™

Configurarea Snappy, așa cum apelează prietenii noștri Qualcomm la SNPE, nu este dificilă, dar pașii ar trebui urmați îndeaproape. Schema de instalare este:

clonați depozitele git ale cadrelor de rețea neuronală

CaffeCaffe2

TensorFlow

ONNX

rulați scripturile pentru a verifica dependenciessnpe / bin / dependencies.sh

snpe / bin / check_python_depends.sh

pentru fiecare cadru instalat rulați snpe / bin / envsetup.sh

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

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

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

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

Pentru a sursa SNPE în fiecare instanță de terminal pe care o deschideți, adăugați cele patru linii ale pasului trei la sfârșitul fișierului dvs. ~ /.bashrc.

Pe tabloul țintă

Trecerea la arm64 de la amd64 nu este o sarcină fără efort, deoarece multe biblioteci vor profita de instrucțiunile x86 pentru a-și spori performanța. Din fericire, este posibil să se compileze majoritatea resurselor necesare pe tabloul însuși. Bibliotecile necesare pot fi instalate cu o singură comandă.

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-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotesis python-yaml

Instalați-le cu apt și continuați. Rețineți că acest pas poate dura ceva timp, deoarece apelurile apt fac pentru a construi codul care nu este precompilat.

OpenCV

Descărcați versiunea din depozitul OpenCV, dezarhivați-o undeva și din folderul dezarhivat:

mkdir build && cd buildcmake..

face tot -j3

sudo make install

Rețineți că am folosit opțiunea -j3. Dacă accesați placa prin ssh, să aveți toate nucleele încărcate complet poate fi suficient pentru a renunța la conexiune. Nu este de dorit. Limitând utilizarea firului la trei, vom avea întotdeauna cel puțin un fir gratuit pentru a face față conexiunilor ssh și menajului general al sistemului.

Aceasta este pentru Dragonboard 820 și Inforce 6640 cu cipul APQ8096. Pe Dragonboard 410 veți dori să aveți memorie virtuală gratuită sau să limitați firele de compilare la unul, deoarece are mai puțină memorie RAM fizică disponibilă.

De asemenea, este de remarcat faptul că răcirea cipului va contribui la creșterea performanței prin limitarea limitării termice. Un radiator face trucul la sarcini mici, dar veți dori un ventilator adecvat pentru a compila și alte sarcini care necesită CPU.

De ce nu instalați OpenCV cu apt sau pip? Deoarece compilarea acestuia în mașina țintă face ca toate instrucțiunile de procesor disponibile să fie vizibile pentru compilator, îmbunătățind performanța de execuție.

SNPE - Motor de procesare neuronală Snapdragon ™

Am instalat Snappy exact așa cum a fost pe un computer desktop, chiar dacă nu a fost instalat un cadru de rețea neuronală real (SNPE are nevoie doar de git repos, nu de binare reale).

Cu toate acestea, întrucât tot ce avem nevoie sunt binare și anteturi pentru comanda snpe-net-run, există posibilitatea ca doar să aveți următoarele fișiere într-un folder și să adăugați acest folder în PATH:

Rețea neuronală binarysnpe / bin / aarch64-linux-gcc4.9 / snpe-net-run

Biblioteci CPU

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

Biblioteci DSP

snpe / lib / dsp / libsnpe_dsp_skel.so

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

Vizualizator de rezultate

snpe / models / alexnet / scripts / show_alexnet_classifications.py

Elementul aldin, /usr/lib/aarch64-linux-gnu/libatomic.so.1, este furnizat cu Linaro pe această cale și trebuie copiat în acest ipotetic folder minim.

Alte pachete importante:

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

sudo apt install nodejs

sudo apt instalează openvpn

Pasul 7: demonstrație

Vedeți o scurtă demonstrație a Smart IoT Vision pentru Smart-City care funcționează !!

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

Pasul 8: Mulțumesc

Mulțumim echipei Qualcomm și Embarcados pentru crearea și susținerea concursului.

Nu ezitați să ne contactați pe:

Referințe

Ghid de instalare Dragonboard 410c pentru Linux și 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/

Recomandat: