Turinys:

„Smart IoT Vision“: 8 žingsniai
„Smart IoT Vision“: 8 žingsniai

Video: „Smart IoT Vision“: 8 žingsniai

Video: „Smart IoT Vision“: 8 žingsniai
Video: The 8 principles of transforming your relationship with money | Thuli Sithole | TEDxLytteltonWomen 2024, Lapkritis
Anonim
„Smart IoT Vision“
„Smart IoT Vision“

Tai projektas, orientuotas į išmaniojo miesto kontekstą. Šiuo klausimu mes išsprendžiame tris pagrindines problemas:

1 - energijos taupymas viešajame apšvietime; 2 - gerinti miesto saugumą; 3 - pagerinti eismo srautą.

1 - Naudojant LED lemputes gatvėse, sutaupoma iki 50 proc., O pridėjus „Telemanagement“, galime sutaupyti 30% daugiau.

2 - Naudodami išmaniąsias kameras, galime valdyti, kad šviesos pritemdytų ten, kur nėra žmonių srauto, ir padaryti gatvės dalį šviesesnę ten, kur žmonės vaikšto. Tai ne tik sutaupys energijos, bet ir padidins stebėjimo jausmą, taigi įbaugins blogus ketinimus turinčius žmones. Be to, įtartino elgesio atveju gali būti naudojami vaizdiniai aliarmai (pavyzdžiui, mirksi lempos).

3 - Išmanioji kamera stebės eismą, vietoje apdoros jo sąlygas ir valdys šviesos signalus, kad galėtų geriausiai valdyti eismą. Tokiu būdu būtų galima išvengti kamščių, automobiliams nereikėtų ilgai laukti raudonų signalų, kai perėjoje nėra srauto ir pan. Kalbant apie technologines problemas, mes taip pat sprendžiame dažniausiai pasitaikančias IoT problemas, tokias kaip patikimas ryšys miesto mastu ir fotoaparatų integravimas į „IoT Network“, naudojant krašto apdorojimą tik svarbiai informacijai perduoti.

Peržiūrėkite mūsų leidinį „Embarcados“ir „GitHub“

Taip pat „YouTube“

Mūsų komanda:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Baker

(Kontaktinė informacija apačioje)

1 žingsnis: sistemos bloko schema

Sistemos bloko schema
Sistemos bloko schema

Tai yra sprendimo architektūros apžvalga.

Sistemą sudaro „Camera-Gateway“, kuri naudoja RFmesh FAN sąsajoje, „WiFi“LAN tinkle ir CAT-M WAN ryšiui. Jame taip pat yra išmaniųjų fotoelementų, išmaniųjų fotoaparatų ir šviesos signalų.

Visi tinklų įrenginiai, daugiausia išmanioji kamera, siunčia duomenis per 6 slėptuvę į išmaniuosius vartus, todėl ji gali priimti sprendimus dėl viešojo apšvietimo ir šviesos signalų valdymo.

Vartai taip pat prijungti prie mūsų serverio per VPN. Tokiu būdu mes turime prieigą prie FAN ir LAN, roboto, norėdami patikrinti būseną arba valdyti įrenginius.

2 žingsnis: šio projekto komponentai

Šio projekto komponentai
Šio projekto komponentai
Šio projekto komponentai
Šio projekto komponentai
Šio projekto komponentai
Šio projekto komponentai

„Smart Cam“

- „DragonBoard410C“/„DragonBoard820C“

- USB kamera

- „OneRF NIC“

„Camera Gateway“

- „DragonBoard410C“/„DragonBoard820C“

- USB kamera

- „OneRF NIC“

- „Cat-M/3G“modemas

Protingas šviesos signalas

3 žingsnis: 2 žingsnis: grandinės schema ir jungtys

2 žingsnis: grandinės schema ir jungtys
2 žingsnis: grandinės schema ir jungtys
2 žingsnis: grandinės schema ir jungtys
2 žingsnis: grandinės schema ir jungtys
2 žingsnis: grandinės schema ir jungtys
2 žingsnis: grandinės schema ir jungtys
2 žingsnis: grandinės schema ir jungtys
2 žingsnis: grandinės schema ir jungtys

„Smart Cam“

- Fotoaparatas USB jungtyje

- „OneRF NIC“UART prievade

„Camera Gateway“

- Fotoaparatas USB jungtyje

- „OneRF NIC“UART prievade

- 3G/Cat-M modemas prie USB prievado

(Visa tai sujungta „IoT Mezzanine“)

„Smart Stree“šviesa

- Įprastas gatvės apšvietimas

- Relės lenta (3 kanalai)

- „OneRF NIC“

Išmanusis fotoelementas

- „OneRF NIC“

- Galios matuoklis

4 veiksmas: įdiekite „Os“į „DragonBoards“

„Debian“diegimas „Dragonboard820C“(„Fastboot“metodas)

Naudodami „Linux“OS įdiekite paketus, išvardytus:

Drakono lentoje:

padaryti s4 OFF, OFF, OFF, OFF

Įjunkite spaudimą vol (-)

Jei naudojate nuoseklųjį monitorių (labai rekomenduojama), gausite pranešimą „greitas įkrovimas: apdorojimo komandos“(nuoseklusis monitorius, 115200) Prijunkite „micro-usb“(J4) prie kompiuterio

Pagrindiniame kompiuteryje: atsisiųskite (ir išpakuokite) iš

$ sudo greito paleidimo įrenginiai

452bb893 greitas įkrovimas (pavyzdys)

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

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

„Debian“diegimas „Dragonboard410C“

Žingsniai kompiuteryje („Linux“)

1 - atsisiųskite paveikslėlį

$ cd ~

$ mkdir „Debian_SD_Card_Install_image“

$ cd „Debian_SD_Card_Install_image“

$ wget

2 - išpakuokite failus

$ cd ~/Debian_SD_Card_Install_image

$ unzip dragonboard410c_sdcard_install_debian-233.zip

3 - Įdėkite „microSD“į kompiuterį ir patikrinkite, ar jis prijungtas

$ df -h

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

4 - Atjunkite „microSD“ir įrašykite vaizdą

$ umount /dev /sdb1

$ sudo dd if = db410c_sd_install_debian.img of =/dev/sdb bs = 4M oflag = sinchronizavimo būsena = noxfer

5 - Išimkite „microSD“iš savo kompiuterio

Žingsniai kompiuteryje („Windows“) Atsisiuntimas - SD kortelės vaizdas - (1 parinktis) SD kortelės vaizdas - Įdiekite ir paleiskite iš „eMMC“

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

Išpakuokite SD kortelės diegimo vaizdą

Atsisiųskite ir įdiekite „Win32DiskImager“įrankį

sourceforge.net/projects/win32diskimager/f…

Atidarykite „Win32DiskImager“įrankį

Įdėkite SD kortelę į kompiuterį

Raskite ištrauktą.img failą

Spustelėkite Rašyti

„Dragonboard“veiksmai Įsitikinkite, kad „DragonBoard ™ 410c“yra atjungtas nuo maitinimo šaltinio

Nustatykite „DragonBoard ™ 410c“S6 jungiklį į 0-1-0-0, „SD įkrovos jungiklis“turi būti nustatytas į „ON“.

Prijunkite HDMI

Prijunkite USB klaviatūrą

Įdėkite „microSD“

Įjunkite maitinimo adapterį

Pasirinkite norimą įdiegti vaizdą ir spustelėkite „Įdiegti“

palaukite, kol diegimas bus baigtas

Nuimkite maitinimo adapterį

Pašalinkite „microSD“

Nustatykite S6 jungiklį į 0-0-0-0

PADARYTA

5 veiksmas: ryšio sąsajos

Cat-m ir 3G diegimas

Naudokite šias AT komandas naudodami pagrindinį kompiuterį:

AT#SIMDET? // patikrinti SIM kortelės buvimą#SIMDET: 2, 0 // SIM neįdėtas

#SIMDET: 2, 1 // įterptas sim

AT+CREG? // patikrinkite, ar jis užregistruotas

+CREG: 0, 1 // (išjungti tinklo registracijos nepageidaujamą rezultato kodą (numatytasis gamykloje), registruotas namų tinklas)

AT+COPS?

+COPS: 0, 0, „VIVO“, 2 // (režimas = automatinis pasirinkimas, formatas = raidiniai ir skaitmeniniai, oper,?)

AT+CPAS // Telefono veiklos būsena

+CPAS: 0 // paruošta

AT+CSQ // patikrinkite paslaugos kokybę

+CSQ: 16, 3 // (rssi, bitų klaidų lygis)

AT+CGATT? // GPRS priedo būsena

+CGATT: 1 // pridedamas

AT+CGDCONT = 1, „IP“, „zap.vivo.com.br“,, 0, 0 // konfigūruoti kontekstą

Gerai

AT+CGDCONT? // patikrinti kontekstą

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

AT#SGACT = 1, 1 // Konteksto aktyvinimas

#SGACT: 100.108.48.30

Gerai

Nustatykite sąsają

Naudojant grafinę aplinką

Prijunkite modemą (oneRF_Modem_v04 - HE910)

Atidarykite tinklo ryšius

Norėdami pridėti naują ryšį, spustelėkite +

Pasirinkite Mobilusis plačiajuostis ryšys

Pasirinkite tinkamą įrenginį

Pasirinkite šalį

Pasirinkite teikėją

Pasirinkite planą ir išsaugokite

Pašalinkite modemą

Iš naujo prijunkite modemą

Naudodami terminalapt-get install pppconfig

pppconfig

teikėjas = vivo

dinamikas

CHAP

vivo

vivo

115200

Tonas

*99#

ne (rankinis)

/dev/ttyUSB0

sutaupyti

katė/etc/ppp/bendraamžiai/vivo

katė/etc/chatscripts/vivo

pon vivo

Jei naudojate „Cat-M“modulį, prieš tai tiesiog naudokite šias komandas:

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

apt-get install comgt

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

6 veiksmas: esminių programinės įrangos modulių diegimas

Plėtros kompiuteryje

Atminkite, kad kai kurie veiksmai priklauso nuo aparatūros ir turi būti pakoreguoti, kad atitiktų jūsų faktines kompiuterio specifikacijas. Bibliotekos gali būti įdiegtos naudojant vieną komandą.

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-tipping python-hypotesis python-yaml

„OpenCV“

Ši sistema naudojama kuriant vaizdais pagrįstus statistinius algoritmus kūrimo mašinoje. Kadangi dauguma mūsų kodo parašyta „Python“, paprasčiausias diegimo būdas yra tiesiog

pip įdiegti opencv-python

Tačiau atminkite, kad šie ratai nenaudos nieko, išskyrus jūsų procesorių, ir gali net nenaudoti visų jo branduolių, todėl galbūt norėsite kompiliuoti iš šaltinio, kad pasiektumėte maksimalų našumą. Pavyzdžiui, norėdami sukurti paketą „Linux“, atsisiųskite ZIP failą iš „OpenCV Releases“puslapio ir išpakuokite jį. Iš neišpakuoto aplanko:

mkdir build && cd buildcmake.. padaryti visus -j4

sudo make install

Komanda -j4 nurodo padaryti keturis siūlus. Naudokite tiek, kiek turi jūsų procesorius!

Kavinė

Norėdami nustatyti „Caffe“sistemą iš šaltinių:

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

cmake..

padaryti viską

padaryti testą padaryti runtest

Jei visi bandymai sėkmingai atliekami, viskas yra paruošta.

„TensorFlow“

„Google“neleidžia kompiliuoti „TensorFlow“naudojant įprastus įrankius. Tam reikia „Bazel“ir tikėtina, kad jis neveiks, todėl venkite jo kompiliuoti ir tiesiog paimkite iš anksto sudarytą modulį su:

pip install tensorflow

Jei jūsų kompiuteris yra šiek tiek senas ir jame nėra AVX instrukcijų, gaukite paskutinį ne AVX tensorflow su

pip install tensorflow == 1.5

Ir baigsite.

SNPE - „Snapdragon ™“nervų apdorojimo variklis

Nustatyti „Snappy“, kaip mūsų „Qualcomm“draugai vadina SNPE, nėra sunku, tačiau reikia atidžiai sekti veiksmus. Diegimo schema yra tokia:

klonuoti neuroninių tinklų sistemų „git“saugyklas

„CaffeCaffe2“

„TensorFlow“

ONNX

paleiskite scenarijus, kad patikrintumėte priklausomybessnpe/bin/dependencies.sh

snpe/bin/check_python_depends.sh

kiekvienai įdiegtai sistemai paleiskite snpe/bin/envsetup.sh

šaltinis $ SNPE/bin/envsetup.sh -c $ CAFFE_GIT

šaltinis $ SNPE/bin/envsetup.sh -f $ CAFFE2_GIT

šaltinis $ SNPE/bin/envsetup.sh -t $ TENSORFLOW_GIT

šaltinis $ SNPE/bin/envsetup.sh -o $ ONNX_GIT

Norėdami gauti SNPE kiekviename atidarytame terminalo egzemplioriuje, pridėkite keturių žingsnių keturias eilutes prie ~/.bashrc failo pabaigos.

Tikslinėje lentoje

Pereiti prie „arm64“iš „amd64“nėra lengva užduotis, nes daugelis bibliotekų pasinaudos x86 instrukcijomis, kad padidintų jų našumą. Laimei, daugumą reikalingų išteklių galima surinkti pačioje lentoje. Reikalingas bibliotekas galima įdiegti naudojant vieną komandą.

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-tipping python-hypotesis python-yaml

Įdiekite juos naudodami apt ir tęskite. Atminkite, kad šis veiksmas gali užtrukti, nes tinkami skambučiai sukuria kodą, kuris nėra iš anksto sukompiliuotas.

„OpenCV“

Atsisiųskite leidimą iš „OpenCV“saugyklos, išpakuokite jį kur nors ir iš neišpakuoto aplanko:

mkdir build && cd buildcmake..

padaryti viską -j3

sudo make install

Atkreipkite dėmesį, kad mes naudojome parinktį -j3. Jei prieinate prie plokštės per ssh, gali pakakti, kad visos šerdys būtų visiškai įkrautos, kad nutrauktumėte ryšį. Tai nėra pageidautina. Apriboję siūlų naudojimą iki trijų, mes visada turėsime bent vieną laisvą siūlą, kad galėtume susidoroti su ssh jungtimis ir bendru sistemos tvarkymu.

Tai skirta „Dragonboard 820“ir „Inforce 6640“su APQ8096 lustu. „Dragonboard 410“norėsite turėti šiek tiek laisvos virtualios atminties arba apriboti kompiliavimo gijas iki vienos, nes joje yra mažiau fizinės RAM.

Taip pat atkreiptinas dėmesys, kad lusto aušinimas padės padidinti našumą, ribojant terminį droselį. Šilumos kriauklė daro triuką esant mažoms apkrovoms, tačiau norėsite tinkamo ventiliatoriaus kompiliavimui ir kitoms procesoriui imlioms apkrovoms.

Kodėl neįdiegus „OpenCV“naudojant apt arba pip? Kadangi ją surenkant tikslinėje mašinoje kompiliatorius mato visas turimas procesoriaus instrukcijas, pagerindamas vykdymo našumą.

SNPE - „Snapdragon ™“nervų apdorojimo variklis

Mes įdiegėme „Snappy“, kaip ir staliniame kompiuteryje, nors nebuvo įdiegta tikroji neuronų tinklo sistema (SNPE reikia tik „git“saugyklų, o ne tikrųjų dvejetainių failų).

Tačiau kadangi mums tereikia komandos „snpe-net-run“dvejetainių failų ir antraščių, yra tikimybė, kad veikia tik šie failai aplanke ir pridėjus šį aplanką prie PATH:

Neuroninis tinklas binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run

CPU bibliotekos

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 bibliotekos

snpe/lib/dsp/libsnpe_dsp_skel.so

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

Rezultatų peržiūros priemonė

snpe/models/alexnet/scripts/show_alexnet_classifications.py

Paryškintas elementas, Kiti svarbūs paketai:

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

sudo apt įdiegti nodejs

sudo apt įdiegti openvpn

7 žingsnis: demonstravimas

Peržiūrėkite trumpą „Smart IoT Vision for Smart-City“veikimo demonstraciją !!

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

8 žingsnis: ačiū

Dėkojame „Qualcomm“komandai ir „Embarcados“už konkurso sukūrimą ir palaikymą.

Nedvejodami susisiekite su mumis:

Nuorodos

„Dragonboard 410c“diegimo vadovas, skirtas „Linux“ir „Android“

github.com/96boards/documentation/wiki/Dr….

„DragonBoard 410c“https://github.com/96boards/documentation/wiki/Dr….

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/

Rekomenduojamas: