Sommario:

Visione IoT intelligente: 8 passaggi
Visione IoT intelligente: 8 passaggi

Video: Visione IoT intelligente: 8 passaggi

Video: Visione IoT intelligente: 8 passaggi
Video: Internet of Things (IoT) | What is IoT | How it Works | IoT Explained | Edureka 2024, Novembre
Anonim
Visione IoT intelligente
Visione IoT intelligente

Si tratta di un progetto incentrato sul contesto delle smart city. A questo proposito, ci sono tre problemi principali che stiamo risolvendo:

1 – risparmio energetico nell'illuminazione pubblica; 2 – migliorare la sicurezza della città; 3 – migliorare il flusso del traffico.

1 – Utilizzando luci a led per strada il risparmio è già fino al 50%, e con l'aggiunta della Telegestione si può avere il 30% in più di risparmio.

2 – Con l'uso di telecamere intelligenti, possiamo controllare le luci per attenuare dove il flusso di persone è assente e rendere più luminoso il tratto di strada dove le persone camminano. Non solo risparmierà energia, ma aumenterà la sensazione di essere osservati, quindi intimidirà le persone con cattive intenzioni. Inoltre, gli allarmi visivi (ad esempio il lampeggio delle lampade) potrebbero essere utilizzati in caso di comportamenti sospetti.

3 – La smart camera guarderà il traffico, elaborerà localmente le sue condizioni e controllerà i segnali luminosi per gestire al meglio il traffico. In questo modo si potrebbero evitare gli ingorghi, le auto non dovrebbero aspettare a lungo i segnali rossi quando non c'è flusso nell'attraversamento, e così via. Per quanto riguarda i problemi tecnologici, stiamo anche risolvendo quelli che sono problemi comuni nell'IoT come la connettività robusta su scala cittadina e l'integrazione di telecamere per la rete IoT, utilizzando l'edge processing per trasmettere solo le informazioni rilevanti.

Vedi la nostra pubblicazione su Embarcados e GitHub

Anche su YouTube

La nostra squadra:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Baker

(Informazioni di contatto in basso)

Passaggio 1: diagramma a blocchi del sistema

Diagramma a blocchi di sistema
Diagramma a blocchi di sistema

Questa è una panoramica dell'architettura della soluzione.

Il sistema è composto da un Camera-Gateway che utilizza RFmesh sull'interfaccia FAN, WiFi su LAN e anche CAT-M per connettività WAN. Contiene anche fotocellule intelligenti, Smart Camera e segnali luminosi.

Tutti i dispositivi nelle reti, principalmente la smart camera, stanno inviando dati tramite 6lowpan allo smart gateway, in modo che possa prendere le decisioni relative all'illuminazione pubblica e al controllo dei segnali luminosi.

Il gateway è anche connesso al nostro server tramite VPN. In questo modo abbiamo accesso alla FAN e alla LAN, bot per verificare lo stato o controllare i dispositivi.

Passaggio 2: componenti per questo progetto

Componenti per questo progetto
Componenti per questo progetto
Componenti per questo progetto
Componenti per questo progetto
Componenti per questo progetto
Componenti per questo progetto

Smart Cam

- DragonBoard410C/DragonBoard820C

- Fotocamera USB

- OneRF NIC

Gateway telecamera

- DragonBoard410C/DragonBoard820C

- Fotocamera USB

- OneRF NIC

- Modem Cat-M/3G

Segnale luminoso intelligente

Passaggio 3: Passaggio 2: Schema del circuito e collegamenti

Passaggio 2: schema elettrico e collegamenti
Passaggio 2: schema elettrico e collegamenti
Passaggio 2: schema elettrico e collegamenti
Passaggio 2: schema elettrico e collegamenti
Passaggio 2: schema elettrico e collegamenti
Passaggio 2: schema elettrico e collegamenti
Passaggio 2: schema elettrico e collegamenti
Passaggio 2: schema elettrico e collegamenti

Smart Cam

- Fotocamera su porta USB

- OneRF NIC alla porta UART

Gateway telecamera

- Fotocamera su porta USB

- OneRF NIC alla porta UART

- Modem 3G/Cat-M su porta USB

(Tutti collegati dal Mezzanine IoT)

Luce stradale intelligente

- Lampione convenzionale

- Scheda relè (3 canali)

- OneRF NIC

Fotocellula intelligente

- OneRF NIC

- Misuratore di potenza

Passaggio 4: installa il sistema operativo su DragonBoards

Installazione di Debian su Dragonboard820C (metodo Fastboot)

Utilizzando un sistema operativo Linux, installa i pacchetti elencati in:

Sulla tavola dei draghi:

rendi s4 OFF, OFF, OFF, OFF

Accendere premendo vol (-)

Se stai utilizzando un monitor seriale (altamente consigliato), riceverai il messaggio “fastboot: elaborazione comandi” (monitor seriale a 115200) Collegare la micro-usb (J4) sul PC

Sul PC host: scarica (e decomprimi) da

$ sudo dispositivi fastboot

452bb893 avvio rapido (esempio)

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

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

Installazione di Debian su Dragonboard410C

Passi sul computer (Linux)

1 – Scarica l'immagine

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 – Decomprimi i file

$ cd ~/Debian_SD_Card_Install_image

$ unzip dragonboard410c_sdcard_install_debian-233.zip

3 – Inserisci la microSD sul tuo computer e controlla se è montata

$ df -h

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

4 – Smonta la microSD e masterizza l'immagine

$ umount /dev/sdb1

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

5 – Rimuovi la microSD dal tuo PC

Passaggi sul computer (Windows) Download – Immagine scheda SD – (Opzione 1) Immagine scheda SD – Installa e avvia da eMMC

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

Decomprimi l'immagine di installazione della scheda SD

Scarica e installa lo strumento Win32DiskImager

sourceforge.net/projects/win32diskimager/f…

Apri lo strumento Win32DiskImager

Inserire la scheda SD nel computer

Trova il file.img estratto

Clicca su Scrivi

Passaggi sulla DragonboardAssicurati che DragonBoard™ 410c sia scollegato dall'alimentazione

Impostare l'interruttore S6 su DragonBoard™ 410c su 0-1-0-0, "Interruttore di avvio SD" dovrebbe essere impostato su "ON".

Collega un HDMI

Collega una tastiera USB

Inserisci la microSD

Spina adattatore di alimentazione

Seleziona l'immagine da installare e fai clic su "Installa"

attendi il completamento dell'installazione

Rimuovere l'adattatore di alimentazione

Rimuovere la microSD

Imposta l'interruttore S6 su 0-0-0-0

FATTO

Passaggio 5: interfacce di connettività

Installazione di Cat-m e 3G

Applicare i seguenti comandi AT utilizzando una macchina host:

AT#SIMDET? // verifica presenza SIM#SIMDET: 2, 0 // sim non inserita

#SIMDET: 2, 1 // sim inserita

AT+CREG? //controlla se è registrato

+CREG: 0, 1 //(disabilita la registrazione in rete codice risultato non richiesto (impostazione di fabbrica), rete domestica registrata)

AT+COPS?

+COPS: 0, 0,”VIVO”, 2 // (mode = scelta automatica, formato = alfanumerico, oper, ?)

AT+CPAS //Stato attività telefono

+CPAS: 0 //pronto

AT+CSQ // controlla la qualità del servizio

+CSQ: 16, 3 //(rssi, tasso di errore in bit)

AT+CGATT? //stato dell'allegato GPRS

+CGATT: 1 //allegato

AT+CGDCONT=1,”IP”,”zap.vivo.com.br”,, 0, 0 // configura il contesto

ok

AT+CGDCONT? // controlla il contesto

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

AT#SGACT=1, 1 //Attivazione del contesto

#SGACT: 100.108.48.30

ok

Configura l'interfaccia

Utilizzo dell'ambiente grafico

Collegare il modem (oneRF_Modem_v04 – HE910)

Apri connessioni di rete

Fare clic su + per aggiungere una nuova connessione

Seleziona banda larga mobile

Seleziona il dispositivo corretto

Seleziona il Paese

Seleziona il fornitore

Seleziona il piano e Risparmia

Rimuovere il modem

Ricollegare il modem

Utilizzo di terminalapt-get install pppconfig

pppconfig

provider = vivo

dinamico

CAP

vivo

vivo

115200

Tono

*99#

no (manuale)

/dev/ttyUSB0

Salva

cat /etc/ppp/peers/vivo

cat /etc/chatscripts/vivo

pon vivo

Se stai usando il modulo Cat-M, usa prima i seguenti comandi:

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

apt-get install comgt

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

Passaggio 6: installazione dei moduli software essenziali

Sul computer di sviluppo

Tieni presente che alcuni passaggi dipendono dall'hardware e devono essere regolati per soddisfare le specifiche effettive del tuo computer. Le librerie possono essere installate con un singolo comando.

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 protompith-f5 opendoc python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hyposis python-yaml

OpenCV

Questo framework viene utilizzato per sviluppare algoritmi statistici basati su immagini sulla macchina di sviluppo. Poiché la maggior parte del nostro codice è scritto in Python, il metodo di installazione più semplice è semplicemente

pip install opencv-python

Nota, tuttavia, che queste ruote non utilizzeranno nulla a parte la tua CPU e potrebbero non utilizzare nemmeno tutti i suoi core, quindi potresti voler compilare dal sorgente per ottenere le massime prestazioni. Per creare il pacchetto in Linux, ad esempio, scarica il file zip dalla pagina dei rilasci di OpenCV e decomprimilo. Dalla cartella decompressa:

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

sudo make install

Il comando -j4 indica a make di utilizzare quattro thread. Usane quanti ne ha la tua CPU!

caffè

Per configurare il framework Caffe dalle fonti:

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

cmq..

fare tutto

fai il test fai il test

Se tutti i test vengono eseguiti correttamente, sei a posto.

TensorFlow

Google non ti consente di compilare TensorFlow con strumenti ordinari. Richiede Bazel per questo e probabilmente non funzionerà, quindi evita di compilarlo e prendi semplicemente il modulo precompilato con:

pip install tensorflow

Se il tuo computer è un po' vecchio e non ha istruzioni AVX, ottieni l'ultimo tensorflow non AVX con

pip install tensorflow==1.5

E hai finito.

SNPE – Motore di elaborazione neurale Snapdragon™

Impostare Snappy, come chiamano SNPE i nostri amici di Qualcomm, non è difficile, ma i passaggi dovrebbero essere seguiti da vicino. Lo schema di installazione è:

clonare i repository git dei framework di rete neurale

CaffeCaffe2

TensorFlow

ONNX

eseguire gli script per verificare le dipendenzesnpe/bin/dependencies.sh

snpe/bin/check_python_depends.sh

per ogni framework installato eseguire snpe/bin/envsetup.sh

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

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

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

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

Per creare SNPE in ogni istanza di terminale che apri, aggiungi le quattro righe del passaggio tre alla fine del tuo file ~/.bashrc.

Sul tabellone di destinazione

Passare a arm64 da amd64 non è un compito facile, poiché molte librerie sfrutteranno le istruzioni x86 per migliorare le loro prestazioni. Fortunatamente, è possibile compilare la maggior parte delle risorse necessarie sulla scheda stessa. Le librerie necessarie possono essere installate con un singolo comando.

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 protompith-f5 opendoc python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hyposis python-yaml

Installali con apt e vai avanti. Nota che questo passaggio potrebbe richiedere del tempo, poiché le chiamate apt fanno per creare il codice che non è precompilato.

OpenCV

Scarica la versione dal repository OpenCV, decomprimila da qualche parte e dalla cartella decompressa:

mkdir build && cd buildcmake..

fai tutto -j3

sudo make install

Nota che abbiamo usato l'opzione -j3. Se accedi alla scheda tramite ssh, avere tutti i core completamente caricati potrebbe essere sufficiente per interrompere la connessione. Non è desiderabile. Limitando l'utilizzo dei thread a tre, avremo sempre almeno un thread libero per far fronte alle connessioni ssh e alla manutenzione generale del sistema.

Questo è per Dragonboard 820 e Inforce 6640 con il chip APQ8096. Su Dragonboard 410 vorrai avere della memoria virtuale libera o limitare i thread di compilazione a uno, poiché ha meno RAM fisica disponibile.

È anche da notare che il raffreddamento del chip aiuterà ad aumentare le prestazioni limitando il throttling termico. Un dissipatore di calore fa il trucco con piccoli carichi, ma vorrai una ventola adeguata per la compilazione e altri carichi ad alta intensità di CPU.

Perché non installare OpenCV con apt o pip? Perché compilandolo nella macchina di destinazione rende visibile al compilatore ogni istruzione del processore disponibile, migliorando le prestazioni di esecuzione.

SNPE – Motore di elaborazione neurale Snapdragon™

Abbiamo installato Snappy proprio come se fosse su un computer desktop, anche se non era installato un vero framework di rete neurale (SNPE ha bisogno solo dei repository git, non dei binari effettivi).

Tuttavia, poiché tutto ciò di cui abbiamo bisogno sono i binari e le intestazioni per il comando snpe-net-run, c'è la possibilità che solo avere i seguenti file su una cartella e aggiungere questa cartella al PATH funzioni:

Rete neurale binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run

Librerie 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

Librerie DSP

snpe/lib/dsp/libsnpe_dsp_skel.so

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

Visualizzatore di risultati

snpe/models/alexnet/scripts/show_alexnet_classifications.py

L'elemento in grassetto, /usr/lib/aarch64-linux-gnu/libatomic.so.1, è fornito con Linaro su questo percorso e deve essere copiato in questa ipotetica cartella minimale.

Altri pacchetti importanti:

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

sudo apt install nodejs

sudo apt install openvpn

Passaggio 7: dimostrazione

Guarda una breve dimostrazione della Smart IoT Vision per lavorare in Smart-City!!

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

Passaggio 8: grazie

Ringraziamo il team Qualcomm e Embarcados per aver creato e supportato il concorso.

Sentiti libero di contattarci su:

Riferimenti

Guida all'installazione di Dragonboard 410c per Linux e 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/

Consigliato: