Taula de continguts:
- Pas 1: diagrama de blocs del sistema
- Pas 2: components d'aquest projecte
- Pas 3: Pas 2: diagrama de circuit i connexions
- Pas 4: instal·leu Os als DragonBoards
- Pas 5: interfícies de connectivitat
- Pas 6: Instal·lació de mòduls de programari essencials
- Pas 7: demostració
- Pas 8: gràcies
Vídeo: Visió intel·ligent de l’IoT: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Es tracta d’un projecte centrat en el context de la ciutat intel·ligent. En aquest assumpte, hi ha tres problemes principals que estem resolent:
1 - estalvi energètic en enllumenat públic; 2 - millorar la seguretat de la ciutat; 3 - millorar el flux de trànsit.
1 - Mitjançant l'ús de llums LED als carrers, l'estalvi ja arriba al 50% i, amb l'addició de la telegestió, podem estalviar un 30% més.
2 - Amb l'ús de càmeres intel·ligents, podem controlar els llums per disminuir-los allà on la gent flueix absent i fer que la secció del carrer sigui més brillant per on camina la gent. No només estalviarà energia, sinó que augmentarà la sensació de ser observat, de manera que intimidarà les persones amb males intencions. A més, es podrien utilitzar alarmes visuals (parpellejant les llums, per exemple) en cas de comportament sospitós.
3 - La càmera intel·ligent vigilarà el trànsit, processarà localment les seves condicions i controlarà els senyals lluminosos per gestionar millor el trànsit. D’aquesta manera, es podrien evitar embussos, els cotxes no haurien d’esperar durant molt de temps els senyals vermells quan no hi ha cabal a la travessia, etc. Pel que fa als problemes tecnològics, també estem resolent problemes comuns a l'IoT, com ara una connectivitat sòlida a escala de ciutat i la integració de càmeres per a la xarxa IoT, mitjançant l'ús de processament de vora per transmetre només informació rellevant.
Consulteu la nostra publicació a Embarcados i GitHub
També a YouTube
El nostre equip:
Milton Felipe Souza Santos
Gustavo Retuci Pinheiro
Eduardo Caldas Cardoso
Jonathas Baker
(Informació de contacte a la part inferior)
Pas 1: diagrama de blocs del sistema
Aquesta és una visió general de l'arquitectura de la solució.
El sistema es compon d'una càmera-passarel·la que utilitza RFmesh a la interfície FAN, WiFi a LAN i també CAT-M per a la connectivitat WAN. També conté fotocèl·lules intel·ligents, càmeres intel·ligents i senyals lluminosos.
Tots els dispositius de les xarxes, principalment la càmera intel·ligent, envien dades a través de 6lowpan a la passarel·la intel·ligent, de manera que pot prendre les decisions relatives a la il·luminació pública i el control de senyals lluminosos.
La passarel·la també està connectada al nostre servidor mitjançant VPN. D’aquesta manera, tenim accés al FAN i LAN, bot per comprovar l’estat o controlar els dispositius.
Pas 2: components d'aquest projecte
Càmera intel·ligent
- DragonBoard410C / DragonBoard820C
- Càmera USB
- NIC OneRF
Passarel·la de la càmera
- DragonBoard410C / DragonBoard820C
- Càmera USB
- NIC OneRF
- Mòdem Cat-M / 3G
Senyal de llum intel·ligent
Pas 3: Pas 2: diagrama de circuit i connexions
Càmera intel·ligent
- Càmera al port USB
- OneRF NIC al port UART
Passarel·la de càmera
- Càmera al port USB
- OneRF NIC al port UART
- Mòdem 3G / Cat-M al port USB
(Tot connectat per l'IoT Mezzanine)
Llum Smart Stree
- Farola convencional
- Taula de retransmissió (3 canals)
- NIC OneRF
Fotocèl·lula intel·ligent
- NIC OneRF
- Mesurador de potència
Pas 4: instal·leu Os als DragonBoards
Instal·lació de Debian al Dragonboard820C (mètode Fastboot)
Mitjançant un sistema operatiu Linux, instal·leu els paquets indicats a:
Al drac:
fer s4 OFF, OFF, OFF, OFF
Activa la pressió de vol (-)
Si utilitzeu un monitor sèrie (molt recomanable), rebrà el missatge “fastboot: processant ordres” (monitor sèrie al 115200) Connecteu el micro-usb (J4) al PC
Al PC amfitrió: descarregueu-lo i descomprimiu-lo des de
Dispositius $ sudo fastboot
452bb893 fastboot (exemple)
$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img
$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img
Instal·lació de Debian a Dragonboard410C
Passos a l'ordinador (Linux)
1 - Descarregueu la imatge
$ cd ~
$ mkdir Debian_SD_Card_Install_image
$ cd Debian_SD_Card_Install_image
$ wget
2 - Descomprimiu els fitxers
$ cd ~ / Debian_SD_Card_Install_image
$ unzip dragonboard410c_sdcard_install_debian-233.zip
3 - Introduïu la microSD a l'ordinador i comproveu si està muntada
$ df -h
/ dev / sdb1 7.4G 32K 7.4G 1% / media / 3533-3737
4 - Desmunteu la microSD i graveu la imatge
$ umount / dev / sdb1
$ sudo dd if = db410c_sd_install_debian.img of = / dev / sdb bs = 4M oflag = estat de sincronització = noxfer
5 - Traieu la microSD de l'ordinador
Passos a l'ordinador (Windows) Descàrrega: imatge de la targeta SD - (opció 1) Imatge de la targeta SD: instal·lació i arrencada des de l'eMMC
www.96boards.org/documentation/consumer/dr…
Descomprimiu la imatge d'instal·lació de la targeta SD
Descarregueu i instal·leu l'eina Win32DiskImager
sourceforge.net/projects/win32diskimager/f…
Obriu l'eina Win32DiskImager
Introduïu la targeta SD a l'ordinador
Cerqueu el fitxer.img extret
Feu clic a Escriu
Passos del Dragonboard Assegureu-vos que DragonBoard ™ 410c està desconnectat de la xarxa
Estableix el commutador S6 a DragonBoard ™ 410c a 0-1-0-0; el "commutador d'arrencada SD" s'ha d'establir a "ACTIVAT".
Connecteu un HDMI
Connecteu un teclat USB
Inseriu la microSD
Endoll adaptador de corrent
Seleccioneu la imatge que voleu instal·lar i feu clic a "Instal·la"
espereu a que finalitzi la instal·lació
Traieu l'adaptador de corrent
Traieu la microSD
Estableix el commutador S6 a 0-0-0-0
FET
Pas 5: interfícies de connectivitat
Instal·lació de Cat-m i 3G
Apliqueu les ordres AT següents mitjançant una màquina amfitrió:
A # SIMDET? // comproveu la presència de SIM # SIMDET: 2, 0 // sim no inserit
#SIMDET: 2, 1 // sim inserit
A + CREG? // comproveu si està registrat
+ CREG: 0, 1 // (desactiva el codi de resultat no sol·licitat de registre de xarxa (predeterminat de fàbrica), xarxa domèstica registrada)
AT + COPS?
+ COPS: 0, 0, "VIVO", 2 // (mode = elecció automàtica, format = alfanumèric, oper,?)
AT + CPAS // Estat de l’activitat del telèfon
+ CPAS: 0 // llest
AT + CSQ // comprova la qualitat del servei
+ CSQ: 16, 3 // (rssi, taxa d'errors de bits)
AT + CGATT? // estat del fitxer adjunt GPRS
+ CGATT: 1 // adjunt
AT + CGDCONT = 1, "IP", "zap.vivo.com.br",, 0, 0 // configurar el context
D'acord
AT + CGDCONT? // comprovar el context
+ CGDCONT: 1, "IP", "zap.vivo.com.br", "", 0, 0
AT # SGACT = 1, 1 // Activació del context
#SGACT: 100.108.48.30
D'acord
Configureu la interfície
Utilitzant entorn gràfic
Connecteu el mòdem (oneRF_Modem_v04 - HE910)
Obriu Connexions de xarxa
Feu clic a + per afegir una connexió nova
Seleccioneu banda ampla mòbil
Seleccioneu el dispositiu correcte
Seleccioneu el país
Seleccioneu el proveïdor
Seleccioneu el pla i Desa
Traieu el mòdem
Torneu a connectar el mòdem
Utilitzant terminalapt-get install pppconfig
pppconfig
proveïdor = vivo
dinàmic
CHAP
vivo
vivo
115200
To
*99#
no (manual)
/ dev / ttyUSB0
guardar
cat / etc / ppp / peers / vivo
cat / etc / chatscripts / vivo
pon vivo
Si feu servir el mòdul Cat-M, feu servir les ordres següents abans:
echo 1bc7 1101> / sys / bus / usb-serial / drivers / option1 / new_id
apt-get install comgt
comgt -d / dev / ttyUSB0 informació comgt -d / dev / ttyUSB0
Pas 6: Instal·lació de mòduls de programari essencials
A l'ordinador de desenvolupament
Tingueu en compte que alguns passos depenen del maquinari i s’han d’ajustar per complir les especificacions reals de l’ordinador. Les biblioteques es poden instal·lar amb una sola ordre.
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-compil python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf tything python python-hypotesis python-yaml
OpenCV
Aquest marc s'utilitza per desenvolupar algoritmes estadístics basats en imatges a la màquina de desenvolupament. Com que la majoria del nostre codi està escrit en Python, el mètode d'instal·lació més senzill és simplement fer-ho
instal·lar pip opencv-python
Tingueu en compte, però, que aquestes rodes no utilitzaran res a part de la vostra CPU i que ni tan sols poden utilitzar tots els seus nuclis, de manera que és possible que vulgueu compilar des de la font per aconseguir el màxim rendiment. Per construir el paquet a Linux, per exemple, descarregueu el fitxer zip de la pàgina OpenCV Releases i descomprimiu-lo. Des de la carpeta descomprimida:
mkdir build && cd buildcmake.. make all -j4
sudo make install
L'ordre -j4 indica a make per utilitzar quatre fils. Feu-ne servir tantes com tingui la vostra CPU.
Cafè
Per configurar el marc Caffe des de fonts:
git clone https://github.com/BVLC/caffe.git && cd caffemkdir build
cmake..
fer-ho tot
fer prova fer més runt
Si totes les proves s’executen correctament, ja estareu a punt.
TensorFlow
Google no us permet compilar TensorFlow amb eines normals. Necessita Bazel i és probable que no funcioni, així que eviteu compilar-lo i agafeu el mòdul precompilat amb:
pip instal·lar tensorflow
Si l’ordinador és poc antic i no té instruccions AVX, obteniu l’últim tensorflow que no és AVX
pip install tensorflow == 1.5
I ja està.
SNPE: motor de processament neuronal Snapdragon ™
Configurar Snappy, com diuen els nostres amics de Qualcomm a SNPE, no és difícil, però cal seguir els passos de prop. El resum de la instal·lació és:
clonar els dipòsits git dels marcs de xarxes neuronals
CaffeCaffe2
TensorFlow
ONNX
executeu els scripts per comprovar si hi ha dependenciessnpe / bin / dependencies.sh
snpe / bin / check_python_depends.sh
per a cada marc instal·lat, executeu snpe / bin / envsetup.sh
font $ SNPE / bin / envsetup.sh -c $ CAFFE_GIT
font $ SNPE / bin / envsetup.sh -f $ CAFFE2_GIT
font $ SNPE / bin / envsetup.sh -t $ TENSORFLOW_GIT
font $ SNPE / bin / envsetup.sh -o $ ONNX_GIT
Per obtenir SNPE a totes les instàncies de terminal que obriu, afegiu les quatre línies del pas tres al final del fitxer ~ /.bashrc.
Al tauler de destinació
Passar a arm64 des de amd64 no és una tasca senzilla, ja que moltes biblioteques aprofitaran les instruccions x86 per augmentar el seu rendiment. Per sort, és possible compilar la majoria dels recursos necessaris al propi tauler. Les biblioteques necessàries es poden instal·lar amb una sola ordre.
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 tything python python-hypotesis python-yaml
Instal·leu-los amb apt i continueu. Tingueu en compte que aquest pas pot trigar una mica, ja que es fan trucades apt per crear el codi que no s'ha compilat prèviament.
OpenCV
Descarregueu la versió des del dipòsit OpenCV, descomprimiu-la en algun lloc i des de la carpeta descomprimida:
mkdir build && cd buildcmake..
fer tot -j3
sudo make install
Tingueu en compte que hem utilitzat l'opció -j3. Si accediu a la placa mitjançant ssh, és possible que tingueu tots els nuclis completament carregats per deixar de banda la connexió. Això no és desitjable. En limitar l’ús de fils a tres, sempre tindrem com a mínim un fil gratuït per fer front a les connexions ssh i la neteja general del sistema.
Això és per al Dragonboard 820 i l’Inforce 6640 amb el xip APQ8096. Al Dragonboard 410 voldreu tenir memòria virtual gratuïta o limitar els fils de compilació a un, ja que té menys RAM física disponible.
També cal destacar que el refredament del xip ajudarà a augmentar el rendiment limitant l’acceleració tèrmica. Un dissipador de calor fa el truc amb càrregues petites, però voldreu un ventilador adequat per compilar i altres càrregues que requereixin intensitat de CPU.
Per què no instal·leu OpenCV amb apt o pip? Com que la compilació a la màquina de destinació fa que totes les instruccions de processador disponibles siguin visibles per al compilador, millorant el rendiment d’execució.
SNPE: motor de processament neuronal Snapdragon ™
Vam instal·lar Snappy tal com estava en un ordinador d’escriptori, tot i que no hi havia cap marc de xarxa neuronal instal·lat (SNPE només necessita els repos git, no els binaris reals).
No obstant això, com que només necessitem els fitxers binaris i les capçaleres de l'ordre snpe-net-run, hi ha la possibilitat que només tingueu els fitxers següents en una carpeta i afegiu aquesta carpeta al PATH:
Xarxa neuronal binarysnpe / bin / aarch64-linux-gcc4.9 / snpe-net-run
Biblioteques de 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
Biblioteques DSP
snpe / lib / dsp / libsnpe_dsp_skel.so
snpe / lib / aarch64-linux-gcc4.9 / libsnpe_adsp.so
Visor de resultats
snpe / models / alexnet / scripts / show_alexnet_classifications.py
L'element en negreta, /usr/lib/aarch64-linux-gnu/libatomic.so.1, es proporciona amb Linaro en aquest camí i s'ha de copiar a aquesta hipotètica carpeta mínima.
Altres paquets importants:
sudo apt-get install net-toolssudo apt-get install gedit
sudo apt install nodejs
sudo apt instal·lar openvpn
Pas 7: demostració
Mireu una breu demostració de la Smart IoT Vision per al funcionament de Smart-City !!
www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be
Pas 8: gràcies
Agraïm l'equip de Qualcomm i Embarcados per crear i donar suport al concurs.
No dubti en contactar amb nosaltres a:
Referències
Guia d'instal·lació de Dragonboard 410c per a Linux i Android
github.com/96boards/documentation/wiki/Dr….
DragonBoard 410c
caffe.berkeleyvision.org/install_apt.html https://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/
Recomanat:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: 6 passos (amb imatges)
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: el tutorial de Deze es troba a Engels, per a la versió del clàssic espanyol. Teniu un telèfon intel·ligent (antic) sense utilitzar? Convertiu-lo en una pantalla intel·ligent amb Fulls de càlcul de Google i paper i llapis seguint aquest senzill tutorial pas a pas. Quan hagis acabat
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: sempre somio amb controlar els meus aparells d’il·luminació. Aleshores algú va fabricar una increïble llum LED de colors. Fa poc em vaig trobar amb una làmpada LED de Joseph Casha a Youtube. Inspirant-me en ell, vaig decidir afegir diverses funcions mantenint la comoditat
Rellotge despertador intel·ligent: un despertador intel·ligent fabricat amb Raspberry Pi: 10 passos (amb imatges)
Rellotge despertador intel·ligent: un rellotge despertador intel·ligent fet amb Raspberry Pi: Heu volgut mai un rellotge intel·ligent? Si és així, aquesta és la solució per a vosaltres. He creat Smart Alarm Clock (Rellotge despertador intel·ligent), aquest és un rellotge que permet canviar l’hora de l’alarma segons el lloc web. Quan l’alarma s’activi, hi haurà un so (brunzidor) i 2 llums
Jardineria intel·ligent i agricultura intel·ligent basades en IoT mitjançant ESP32: 7 passos
Jardineria intel·ligent i agricultura intel·ligent basades en l’IoT que utilitzen ESP32: el món canvia a mesura que l’agricultura passa. Avui en dia, la gent integra electrònica en tots els camps i l’agricultura no n’és una excepció. Aquesta fusió d'electrònica a l'agricultura està ajudant els agricultors i les persones que gestionen els jardins