Sommario:
- Passaggio 1: diagramma a blocchi del sistema
- Passaggio 2: componenti per questo progetto
- Passaggio 3: Passaggio 2: Schema del circuito e collegamenti
- Passaggio 4: installa il sistema operativo su DragonBoards
- Passaggio 5: interfacce di connettività
- Passaggio 6: installazione dei moduli software essenziali
- Passaggio 7: dimostrazione
- Passaggio 8: grazie
Video: Visione IoT intelligente: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
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
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
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
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:
Luce LED da scrivania intelligente - Illuminazione intelligente con Arduino - Area di lavoro Neopixel: 10 passaggi (con immagini)
Luce LED da scrivania intelligente | Illuminazione intelligente con Arduino | Neopixels Workspace: Al giorno d'oggi trascorriamo molto tempo a casa, studiando e lavorando virtualmente, quindi perché non rendere il nostro spazio di lavoro più grande con un sistema di illuminazione personalizzato e intelligente basato su Arduino e LED Ws2812b. Qui ti mostro come costruire il tuo Smart Luce LED da scrivania che
Becco laser per visione notturna! (OPPURE Come realizzare una torcia per la conservazione della visione notturna, LED Throwie, Transformer Toy Mashup!): 5 passaggi
Becco laser per visione notturna! (OPPURE Come creare una torcia per la conservazione della visione notturna, LED Throwie, Transformer Toy Mashup!): Un istruibile da un noob per il noob. Cosa ottieni quando mashup una torcia per la conservazione della visione notturna, un Throwie LED e un trasformatore spiffy giocattolo? Un istruibile con un nome davvero lungo! Lo chiameremo "Nightvision Laserbeak" per
Sveglia intelligente: una sveglia intelligente realizzata con Raspberry Pi: 10 passaggi (con immagini)
Sveglia intelligente: una sveglia intelligente realizzata con Raspberry Pi: hai mai desiderato un orologio intelligente? Se è così, questa è la soluzione per te! Ho realizzato Smart Alarm Clock, questo è un orologio con cui puoi modificare l'ora della sveglia in base al sito web. Quando la sveglia suona, ci sarà un suono (cicalino) e 2 luci si accenderanno
Giardinaggio intelligente basato su IoT e agricoltura intelligente con ESP32: 7 passaggi
Giardinaggio intelligente basato su IoT e agricoltura intelligente Utilizzo di ESP32: il mondo sta cambiando come il tempo e quindi l'agricoltura. Oggigiorno, le persone stanno integrando l'elettronica in ogni campo e l'agricoltura non fa eccezione per questo. Questa fusione dell'elettronica in agricoltura sta aiutando gli agricoltori e le persone che gestiscono i giardini. In questo
Trasformare la fotocamera in "visione notturna militare", aggiungere l'effetto di visione notturna o creare la modalità di visione notturna su qualsiasi telecamera!!!: 3 passaggi
Trasforma la tua fotocamera in "visione notturna militare", aggiungi l'effetto di visione notturna o crea la modalità di visione notturna" su qualsiasi telecamera!!!: *** Questo è stato inserito nel CONCORSO DIGITAL DAYS PHOTO, per favore votami** *Se hai bisogno di aiuto, invia un'e-mail a: [email protected] Parlo inglese, francese, giapponese, spagnolo e conosco altre lingue se