Inhoudsopgave:
- Stap 1: Systeemblokdiagram
- Stap 2: Componenten voor dit project
- Stap 3: Stap 2: Schakelschema en aansluitingen
- Stap 4: installeer OS op de DragonBoards
- Stap 5: Connectiviteitsinterfaces
- Stap 6: Essentiële softwaremodules installeren
- Stap 7: Demonstratie
- Stap 8: Bedankt
Video: Slimme IoT-visie: 8 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Dit is een project gericht op de smart city-context. In deze kwestie zijn er drie grote problemen die we oplossen:
1 – energiebesparing in openbare verlichting; 2 – de veiligheid van de stad verbeteren; 3 – de doorstroming van het verkeer verbeteren.
1 – Door LED-verlichting op straat te gebruiken, is de besparing al tot 50% en met de toevoeging van Telemanagement kunnen we 30% meer besparen.
2 – Met het gebruik van slimme camera's kunnen we de lichten bedienen om te dimmen waar de mensenstroom afwezig is en het straatgedeelte helderder te maken waar mensen lopen. Het bespaart niet alleen energie, maar verhoogt ook het gevoel bekeken te worden, waardoor mensen met slechte bedoelingen worden geïntimideerd. Verder zouden visuele alarmen (bijvoorbeeld het knipperen van de lampen) ingezet kunnen worden bij verdacht gedrag.
3 – De slimme camera houdt het verkeer in de gaten, verwerkt lokaal de omstandigheden en regelt de lichtsignalen om het verkeer zo goed mogelijk te beheren. Zo konden files worden vermeden, hoeven auto's niet lang te wachten op rode seinen als er geen doorstroming is op de kruising, enzovoort. Met betrekking tot technologische problemen lossen we ook veelvoorkomende problemen op in IoT, zoals robuuste connectiviteit op stadsschaal en camera-integratie voor IoT Network, door edge-verwerking te gebruiken om alleen relevante informatie te verzenden.
Zie onze publicatie op Embarcados en GitHub
Ook op YouTube
Ons team:
Milton Felipe Souza Santos
Gustavo Retuci Pinheiro
Eduardo Caldas Cardoso
Jonathas Baker
(Contactgegevens onderaan)
Stap 1: Systeemblokdiagram
Dit is een overzicht van de oplossingsarchitectuur.
Het systeem bestaat uit een Camera-Gateway die RFmesh gebruikt op de FAN-interface, WiFi op LAN en ook CAT-M voor WAN-connectiviteit. Het bevat ook slimme fotocellen, slimme camera's en lichtsignalen.
Alle apparaten in de netwerken, voornamelijk de slimme camera, sturen gegevens via 6lowpan naar de slimme gateway, zodat deze de beslissingen kan nemen over de aansturing van openbare verlichting en lichtsignalen.
De gateway is ook via VPN verbonden met onze server. Op deze manier hebben we toegang tot de FAN en LAN, bot voor het controleren van de status of het aansturen van de apparaten.
Stap 2: Componenten voor dit project
Slimme camera
- DragonBoard410C/DragonBoard820C
- USB-camera
- OneRF NIC
Camera-gateway
- DragonBoard410C/DragonBoard820C
- USB-camera
- OneRF NIC
- Cat-M/3G-modem
Slim lichtsignaal
Stap 3: Stap 2: Schakelschema en aansluitingen
Slimme camera
- Camera op USB-poort
- OneRF NIC op UART-poort
Camera-gateway
- Camera op USB-poort
- OneRF NIC op UART-poort
- 3G/Cat-M-modem op USB-poort
(Allemaal verbonden door de IoT Mezzanine)
Slimme straatlantaarn
- Conventionele straatverlichting
- Relaiskaart (3 kanalen)
- OneRF NIC
Slimme fotocel
- OneRF NIC
- Krachtmeter
Stap 4: installeer OS op de DragonBoards
Debian installeren op Dragonboard820C (Fastboot-methode)
Installeer met een Linux-besturingssysteem de pakketten die worden vermeld in:
Op het drakenbord:
maak s4 UIT, UIT, UIT, UIT
Zet aan door op vol (-) te drukken
Als u een seriële monitor gebruikt (sterk aanbevolen), krijgt u de melding "fastboot: processing commands" (seriële monitor op 115200) Sluit de micro-usb (J4) aan op de pc
Op host-pc: downloaden (en uitpakken) van
$ sudo fastboot-apparaten
452bb893 fastboot (voorbeeld)
$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img
$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img
Debian installeren op Dragonboard410C
Stappen op de computer (Linux)
1 – Download de afbeelding
$ cd ~
$ mkdir Debian_SD_Card_Install_image
$ cd Debian_SD_Card_Install_image
$ wget
2 – Pak de bestanden uit
$ cd ~/Debian_SD_Card_Install_image
$ unzip dragonboard410c_sdcard_install_debian-233.zip
3 – Plaats de microSD op uw computer en controleer of deze is gemonteerd
$ df -h
/dev/sdb1 7.4G 32K 7.4G 1% /media/3533-3737
4 – Ontkoppel de microSD en brand de afbeelding
$ umount /dev/sdb1
$ sudo dd if=db410c_sd_install_debian.img of=/dev/sdb bs=4M oflag=sync status=noxfer
5 – Verwijder de microSD van uw pc
Stappen op de computer (Windows)Download – SD Card image – (Optie 1) SD Card Image – Installeren en opstarten vanaf eMMC
www.96boards.org/documentation/consumer/dr…
Unzip SD-kaart Afbeelding installeren
Download en installeer de Win32DiskImager-tool
sourceforge.net/projects/win32diskimager/f…
Open Win32DiskImager-tool
Plaats de SD-kaart in de computer
Zoek het uitgepakte.img-bestand
Klik op Schrijven
Stappen op het DragonboardZorg ervoor dat DragonBoard™ 410c is losgekoppeld van de stroom
Zet S6-schakelaar op DragonBoard™ 410c op 0-1-0-0, "SD Boot-schakelaar" moet worden ingesteld op "ON".
Sluit een HDMI aan
Sluit een USB-toetsenbord aan
Plaats de microSD
Stekker voedingsadapter
Selecteer de afbeelding om te installeren en klik op "Installeren"
wacht tot de installatie is voltooid
Stroomadapter verwijderen
Verwijder de microSD
Zet S6-schakelaar op 0-0-0-0
GEDAAN
Stap 5: Connectiviteitsinterfaces
Cat-m en 3G. installeren
Pas de volgende AT-opdrachten toe met behulp van een hostcomputer:
AT#SIMDET? // check SIM-aanwezigheid#SIMDET: 2, 0 // sim niet geplaatst
#SIMDET: 2, 1 // sim ingevoegd
AT+CREG? // controleer of het is geregistreerd
+CREG: 0, 1 //(netwerkregistratie uitschakelen ongevraagde resultaatcode (fabrieksinstelling), geregistreerd thuisnetwerk)
AT+COPS?
+COPS: 0, 0,”VIVO”, 2 // (mode = automatische keuze, formaat = alfanumeriek, oper, ?)
AT+CPAS //Telefoonactiviteitsstatus
+CPAS: 0 //klaar
AT+CSQ // controleer de kwaliteit van de service
+CSQ: 16, 3 //(rssi, bitfoutpercentage)
AT+CGATT? //status van GPRS-bijlage
+CGATT: 1 //bijgevoegd
AT+CGDCONT=1,”IP”,”zap.vivo.com.br”,, 0, 0 // context configureren
Oke
AT+CGDCONT? // controleer de context
+CGDCONT: 1,”IP”,”zap.vivo.com.br”,””, 0, 0
AT#SGACT=1, 1 //Context-activering
#SGACT: 100.108.48.30
Oke
De interface instellen
Grafische omgeving gebruiken
Sluit de modem aan (oneRF_Modem_v04 – HE910)
Netwerkverbindingen openen
Klik op + om een nieuwe verbinding toe te voegen
Selecteer mobiel breedband
Selecteer het juiste apparaat
Selecteer het land
Selecteer de aanbieder
Selecteer het abonnement en Opslaan
De modem verwijderen
Sluit de modem opnieuw aan
Terminalapt-get install pppconfig gebruiken
pppconfig
provider = vivo
dinamico
KEREL
levend
levend
115200
Toon
*99#
nee (handleiding)
/dev/ttyUSB0
opslaan
kat /etc/ppp/peers/vivo
cat /etc/chatscripts/vivo
pon vivo
Als u de Cat-M-module gebruikt, gebruik dan eerst de volgende opdrachten:
echo 1bc7 1101 > /sys/bus/usb-serial/drivers/option1/new_id
apt-get install comgt
comgt -d /dev/ttyUSB0 comgt info -d /dev/ttyUSB0
Stap 6: Essentiële softwaremodules installeren
Op de ontwikkelcomputer
Houd er rekening mee dat sommige stappen hardware-afhankelijk zijn en moeten worden aangepast om aan uw werkelijke computerspecificaties te voldoen. De bibliotheken kunnen met een enkele opdracht worden geïnstalleerd.
sudo apt install build-essentiële git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgmpidoc-hdf5ne open python-pip python-numpy python-scipy python-matplotlib python-toekomstige python-protobuf python-typing python-hypotesis python-yaml
OpenCV
Dit raamwerk wordt gebruikt om op afbeeldingen gebaseerde statistische algoritmen op de ontwikkelmachine te ontwikkelen. Aangezien de meeste van onze code in Python is geschreven, is de eenvoudigste installatiemethode om gewoon
pip installeer opencv-python
Houd er echter rekening mee dat deze wielen niets anders gebruiken dan uw CPU en mogelijk niet eens alle kernen gebruiken, dus misschien wilt u vanaf de bron compileren om maximale prestaties te bereiken. Om het pakket bijvoorbeeld in Linux te bouwen, downloadt u het zip-bestand van de OpenCV Releases-pagina en pakt u het uit. Vanuit de uitgepakte map:
mkdir build && cd buildcmake.. make all -j4
sudo make install
De opdracht -j4 geeft make de opdracht om vier threads te gebruiken. Gebruik zoveel als je CPU heeft!
Cafe
Het Caffe-framework instellen vanuit bronnen:
git clone https://github.com/BVLC/caffe.git && cd caffemkdir bouwen
cmake..
Maak alle
maak test maak runtest
Als alle tests succesvol verlopen, bent u helemaal klaar.
TensorFlow
Google laat je TensorFlow niet compileren met gewone tools. Het vereist Bazel ervoor en de kans is groot dat het niet werkt, dus vermijd het compileren en pak gewoon de vooraf gecompileerde module met:
pip installeren tensorflow
Als uw computer een beetje oud is en geen AVX-instructies heeft, haalt u de laatste niet-AVX-tensorflow op met
pip install tensorflow==1.5
En je bent klaar.
SNPE – Snapdragon™ Neural Processing Engine
Het opzetten van Snappy, zoals onze Qualcomm-vrienden SNPE noemen, is niet moeilijk, maar de stappen moeten nauwgezet worden gevolgd. Het installatieschema is:
kloon de git-repositories van de neurale netwerkframeworks
CaffeCaffe2
TensorFlow
ONNX
voer de scripts uit om te controleren op dependenciessnpe/bin/dependencies.sh
snpe/bin/check_python_depends.sh
voer voor elk geïnstalleerd framework snpe/bin/envsetup.sh. uit
bron $SNPE/bin/envsetup.sh -c $CAFFE_GIT
bron $SNPE/bin/envsetup.sh -f $CAFFE2_GIT
bron $SNPE/bin/envsetup.sh -t $TENSORFLOW_GIT
bron $SNPE/bin/envsetup.sh -o $ONNX_GIT
Om SNPE te gebruiken in elke terminalinstantie die u opent, voegt u de vier regels van stap drie toe aan het einde van uw ~/.bashrc-bestand.
Op het doelbord
Overstappen naar arm64 van amd64 is geen moeiteloze taak, omdat veel bibliotheken zullen profiteren van x86-instructies om hun prestaties te verbeteren. Gelukkig is het mogelijk om de meeste benodigde bronnen op het bord zelf te verzamelen. De benodigde bibliotheken kunnen met een enkele opdracht worden geïnstalleerd.
sudo apt install build-essentiële git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgmpidoc-hdf5ne open python-pip python-numpy python-scipy python-matplotlib python-toekomstige python-protobuf python-typing python-hypotesis python-yaml
Installeer ze met apt en ga verder. Houd er rekening mee dat deze stap enige tijd kan duren, omdat apt-aanroepen doen om de code te bouwen die niet vooraf is gecompileerd.
OpenCV
Download de release uit de OpenCV-repository, pak deze ergens uit en uit de uitgepakte map:
mkdir build && cd buildcmake..
maak alle -j3
sudo make install
Merk op dat we de -j3-optie hebben gebruikt. Als je via ssh toegang hebt tot het bord, kan het voldoende zijn om alle kernen volledig te laden om de verbinding te verbreken. Dat is niet wenselijk. Door het gebruik van threads te beperken tot drie, hebben we altijd ten minste één gratis thread om ssh-verbindingen en algemene systeemhuishouding aan te kunnen.
Dit is voor de Dragonboard 820 en Inforce 6640 met de APQ8096-chip. Op de Dragonboard 410 wil je wat vrij virtueel geheugen hebben of de compilethreads beperken tot één, omdat er minder fysiek RAM beschikbaar is.
Het is ook van belang dat het koelen van de chip de prestaties zal helpen verbeteren door thermische beperking te beperken. Een koellichaam doet de truc bij kleine belastingen, maar u wilt een goede ventilator voor het compileren en andere CPU-intensieve belastingen.
Waarom installeer je OpenCV niet met apt of pip? Omdat het compileren in de doelmachine elke beschikbare processorinstructie zichtbaar maakt voor de compiler, waardoor de uitvoeringsprestaties worden verbeterd.
SNPE – Snapdragon™ Neural Processing Engine
We installeerden Snappy net zoals het op een desktopcomputer was, ook al was er geen echt neuraal netwerkframework geïnstalleerd (SNPE heeft alleen de git-repo's nodig, niet de daadwerkelijke binaire bestanden).
Omdat we echter alleen de binaire bestanden en headers voor de opdracht snpe-net-run nodig hebben, bestaat de mogelijkheid dat alleen het hebben van de volgende bestanden in een map en het toevoegen van deze map aan het PATH werkt:
Neurale netwerk binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run
CPU-bibliotheken
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-bibliotheken
snpe/lib/dsp/libsnpe_dsp_skel.so
snpe/lib/aarch64-linux-gcc4.9/libsnpe_adsp.so
Resultaten kijker
snpe/models/alexnet/scripts/show_alexnet_classifications.py
Het vetgedrukte item, /usr/lib/aarch64-linux-gnu/libatomic.so.1, wordt geleverd met Linaro op dit pad en moet worden gekopieerd naar deze hypothetische minimale map.
Andere belangrijke pakketten:
sudo apt-get install net-toolssudo apt-get install gedit
sudo apt install nodejs
sudo apt installeer openvpn
Stap 7: Demonstratie
Bekijk een korte demonstratie van de Smart IoT Vision voor Smart-City werken!!
www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be
Stap 8: Bedankt
We bedanken het Qualcomm-team en Embarcados voor het maken en ondersteunen van de wedstrijd.
Neem gerust contact met ons op via:
Referenties
Dragonboard 410c Installatiehandleiding voor Linux en 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/
Aanbevolen:
Slimme bureaulamp - Slimme verlichting met Arduino - Neopixels-werkruimte: 10 stappen (met afbeeldingen)
Slimme bureaulamp | Slimme verlichting met Arduino | Neopixels-werkruimte: tegenwoordig brengen we veel tijd thuis door, studeren en werken virtueel, dus waarom zouden we onze werkruimte niet groter maken met een aangepast en slim verlichtingssysteem op Arduino en Ws2812b-leds. Hier laat ik u zien hoe u uw Smart LED bureaulamp die
IOT slimme infraroodthermometer (COVID-19): 3 stappen
IOT Smart Infrared Thermometer (COVID-19): Vanwege de COVID-opstand van 2019 hebben we besloten om een IOT Smart Infrared Thermometer te maken die verbinding maakt met slimme apparaten om de geregistreerde temperatuur weer te geven, dit is niet alleen een goedkoper alternatief, maar ook een geweldig lesmodule voor tech en IOT die w
Slimme wekker: een slimme wekker gemaakt met Raspberry Pi - Ajarnpa
Slimme wekker: een slimme wekker gemaakt met Raspberry Pi: heb je ooit een slimme klok gewild? Dan is dit de oplossing voor jou! Ik heb Smart Alarm Clock gemaakt, dit is een klok waarvan je de wektijd kunt wijzigen volgens de website. Als het alarm afgaat, klinkt er een geluid (zoemer) en gaan er 2 lampjes
Op IoT gebaseerde slimme vuilnisbak: 8 stappen
IoT Based Smart Dustbin: In deze tutorial gaan we een IoT Based Smart Dustbin Monitoring System maken. We gaan controleren of de Dustbin vol is of niet en als deze vol is, informeer dan de eigenaar via een pushmelding op hun telefoon. Softwarevereisten: Blynk
IoT-portemonnee (slimme portemonnee met Firebeetle ESP32, Arduino IDE en Google Spreadsheet): 13 stappen (met afbeeldingen)
IoT Wallet (slimme portemonnee met Firebeetle ESP32, Arduino IDE en Google Spreadsheet): Eerste prijs in Instructables Pocket-Sized Contest!:DAls je wat geld hebt geïnvesteerd in cryptocurrencies, weet je waarschijnlijk al dat ze zeer volatiel zijn. Ze veranderen van de ene op de andere dag en je weet maar nooit veel 'echt' geld dat je nog in je portemonnee hebt