Spisu treści:
- Krok 1: Schemat blokowy systemu
- Krok 2: Komponenty do tego projektu
- Krok 3: Krok 2: Schemat obwodu i połączenia
- Krok 4: Zainstaluj system operacyjny na DragonBoards
- Krok 5: Interfejsy łączności
- Krok 6: Instalowanie niezbędnych modułów oprogramowania
- Krok 7: Demonstracja
- Krok 8: Dziękuję
Wideo: Inteligentna wizja IoT: 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
To projekt skoncentrowany na kontekście inteligentnego miasta. W tej kwestii rozwiązujemy trzy główne problemy:
1 – oszczędność energii w oświetleniu publicznym; 2 – poprawić bezpieczeństwo miasta; 3 – poprawić płynność ruchu.
1 – Stosując oświetlenie LED na ulicach oszczędności sięgają już 50%, a z dodatkiem Telemanagement możemy mieć 30% więcej oszczędności.
2 – Za pomocą inteligentnych kamer możemy sterować oświetleniem, aby przyciemnić się tam, gdzie nie ma ludzi, i rozjaśnić odcinek ulicy, na którym przechodzą ludzie. Nie tylko zaoszczędzi to energię, ale zwiększy poczucie bycia obserwowanym, a tym samym zastraszy ludzi o złych intencjach. Ponadto alarmy wizualne (na przykład migające lampki) mogą być stosowane w przypadku podejrzanego zachowania.
3 – Inteligentna kamera będzie obserwować ruch uliczny, przetwarzać lokalnie jego warunki i sterować sygnałami świetlnymi, aby jak najlepiej zarządzać ruchem. W ten sposób można by uniknąć korków, samochody nie musiałyby długo czekać na czerwone sygnały, gdy na skrzyżowaniu nie ma przepływu i tak dalej. Jeśli chodzi o problemy technologiczne, rozwiązujemy również typowe problemy w IoT, takie jak solidna łączność w skali miasta i integracja kamer w sieci IoT, wykorzystując przetwarzanie brzegowe do przesyłania tylko istotnych informacji.
Zobacz naszą publikację na Embarcados i GitHub
Również na YouTube
Nasz zespół:
Milton Felipe Souza Santos
Gustavo Retuci Pinheiro
Eduardo Caldas Cardoso
Jonathas Baker
(Informacje kontaktowe na dole)
Krok 1: Schemat blokowy systemu
To jest przegląd architektury rozwiązania.
System składa się z Camera-Gateway, która wykorzystuje RFmesh na interfejsie FAN, WiFi na LAN, a także CAT-M do łączności WAN. Zawiera również inteligentne fotokomórki, inteligentne kamery i sygnały świetlne.
Wszystkie urządzenia w sieci, głównie inteligentna kamera, przesyłają dane przez 6lowpan do inteligentnej bramy, dzięki czemu może ona podejmować decyzje dotyczące sterowania oświetleniem publicznym i sygnalizacją świetlną.
Brama jest również połączona z naszym serwerem przez VPN. W ten sposób mamy dostęp do FAN i LAN, bota do sprawdzania stanu czy sterowania urządzeniami.
Krok 2: Komponenty do tego projektu
Inteligentna kamera
- DragonBoard410C/DragonBoard820C
- Kamera USB
- Karta sieciowa OneRF
Bramka kamery
- DragonBoard410C/DragonBoard820C
- Kamera USB
- Karta sieciowa OneRF
- Modem Cat-M/3G
Inteligentny sygnał świetlny
Krok 3: Krok 2: Schemat obwodu i połączenia
Inteligentna kamera
- Kamera na porcie USB
- Karta sieciowa OneRF na porcie UART
Bramka kamery
- Kamera na porcie USB
- Karta sieciowa OneRF na porcie UART
- modem 3G/Cat-M na porcie USB
(Wszystko połączone przez IoT Mezzanine)
Inteligentne oświetlenie uliczne
- Konwencjonalne oświetlenie uliczne
- Płytka przekaźnikowa (3 kanały)
- Karta sieciowa OneRF
Inteligentna fotokomórka
- Karta sieciowa OneRF
- Miernik mocy
Krok 4: Zainstaluj system operacyjny na DragonBoards
Instalacja Debiana na Dragonboard820C (metoda Fastboot)
Korzystając z systemu operacyjnego Linux, zainstaluj pakiety wymienione na:
Na smoczej desce:
zrób s4 WYŁ, WYŁ, WYŁ, WYŁ
Włącz, naciskając vol (-)
Jeśli używasz monitora szeregowego (bardzo zalecane), otrzymasz komunikat „fastboot: przetwarzanie poleceń” (monitor szeregowy na 115200) Podłącz micro-usb (J4) do komputera
Na komputerze głównym:Pobierz (i rozpakuj) z
$ sudo urządzenia fastboot
452bb893 szybki rozruch (przykład)
$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img
$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img
Instalacja Debiana na Dragonboard410C
Kroki na komputerze (Linux)
1 – Pobierz obraz
$ cd ~
$ mkdir Debian_SD_Card_Install_image
$ cd Debian_SD_Card_Install_image
$ wget
2 – Rozpakuj pliki
$ cd ~/Debian_SD_Card_Install_image
$ rozpakuj dragonboard410c_sdcard_install_debian-233.zip
3 – Włóż kartę microSD do komputera i sprawdź, czy jest zamontowana
$ df -h
/dev/sdb1 7.4G 32K 7.4G 1% /media/3533-3737
4 – Odmontuj kartę microSD i wypal obraz
$ umount /dev/sdb1
$ sudo dd if=db410c_sd_install_debian.img of=/dev/sdb bs=4M oflag=status synchronizacji=noxfer
5 – Usuń kartę microSD z komputera
Kroki na komputerze (Windows)Pobierz – Obraz karty SD – (Opcja 1) Obraz karty SD – Zainstaluj i uruchom z eMMC
www.96boards.org/documentation/consumer/dr…
Rozpakuj obraz instalacji karty SD
Pobierz i zainstaluj narzędzie Win32DiskImager
sourceforge.net/projects/win32diskimager/f…
Otwórz narzędzie Win32DiskImager
Włóż kartę SD do komputera
Znajdź wyodrębniony plik.img
Kliknij Napisz
Stopnie na DragonboardUpewnij się, że DragonBoard™ 410c jest odłączony od zasilania
Ustaw przełącznik S6 na DragonBoard™ 410c na 0-1-0-0, „Przełącznik SD Boot” powinien być ustawiony na „ON”.
Podłącz HDMI
Podłącz klawiaturę USB
Włóż kartę microSD
Podłącz zasilacz
Wybierz obraz do zainstalowania i kliknij „Zainstaluj”
poczekaj na zakończenie instalacji
Wyjmij zasilacz
Wyjmij kartę microSD
Ustaw przełącznik S6 na 0-0-0-0
GOTOWE
Krok 5: Interfejsy łączności
Instalacja Cat-m i 3G
Zastosuj następujące polecenia AT za pomocą komputera hosta:
AT#SIMDET? // sprawdź obecność karty SIM#SIMDET: 2, 0 // karta SIM nie została włożona
#SIMDET: 2, 1 // włożono kartę SIM
AT+CREG? //sprawdź, czy jest zarejestrowany
+CREG: 0, 1 //(wyłącz niezamówiony kod wynikowy rejestracji sieciowej (ustawienie fabryczne), zarejestrowana sieć domowa)
AT+COPS?
+COPS: 0, 0,”VIVO”, 2 // (tryb = wybór automatyczny, format = alfanumeryczny, oper, ?)
AT + CPAS //Stan aktywności telefonu
+CPAS: 0 //gotowy
AT+CSQ // sprawdź jakość usług
+CSQ: 16, 3 //(rssi, bitowa stopa błędów)
AT+CGATT? //stan podłączenia GPRS
+CGATT: 1 //załączone
AT+CGDCONT=1,”IP”,”zap.vivo.com.br”,, 0, 0 // skonfiguruj kontekst
ok
AT+CGDCONT? // sprawdź kontekst
+CGDCONT: 1,”IP”,”zap.vivo.com.br”,””, 0, 0
AT#SGACT=1, 1 //Aktywacja kontekstu
#SGACT: 100.108.48.30
ok
Skonfiguruj interfejs
Korzystanie ze środowiska graficznego
Podłącz modem (oneRF_Modem_v04 – HE910)
Otwórz połączenia sieciowe
Kliknij +, aby dodać nowe połączenie
Wybierz mobilną łączność szerokopasmową
Wybierz właściwe urządzenie
Wybierz kraj
Wybierz dostawcę
Wybierz plan i Zapisz
Usuń modem
Podłącz ponownie modem
Używanie terminalapt-get install pppconfig
konfiguracja ppp
dostawca = vivo
dynamika
FACET
żywy
żywy
115200
Ton
*99#
nie (ręcznie)
/dev/ttyUSB0
zapisać
kot /etc/ppp/rówieśnicy/vivo
kot /etc/chatscripts/vivo
na żywo
Jeśli używasz modułu Cat-M, po prostu użyj wcześniej następujących poleceń:
echo 1bc7 1101 > /sys/bus/usb-serial/drivers/option1/new_id
apt-get install comgt
comgt -d /dev/ttyUSB0 comgt informacje -d /dev/ttyUSB0
Krok 6: Instalowanie niezbędnych modułów oprogramowania
Na komputerze deweloperskim
Zwróć uwagę, że niektóre kroki zależą od sprzętu i należy je dostosować do rzeczywistych specyfikacji komputera. Biblioteki można zainstalować jednym poleceniem.
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-dev propybunemp-bin python-pip python-numpy python-scipy python-matplotlib python-przyszłość python-protobuf python-pisanie python-hipoteza python-yaml
Otwórz CV
Ta struktura służy do opracowywania algorytmów statystycznych opartych na obrazach na maszynie programistycznej. Ponieważ większość naszego kodu jest napisana w Pythonie, najłatwiejszą metodą instalacji jest po prostu
pip zainstaluj opencv-python
Pamiętaj jednak, że te koła nie będą używać niczego poza twoim procesorem i mogą nawet nie wykorzystywać wszystkich jego rdzeni, więc możesz chcieć kompilować ze źródeł, aby osiągnąć maksymalną wydajność. Aby zbudować pakiet w systemie Linux, na przykład, pobierz plik zip ze strony wydań OpenCV i rozpakuj go. Z rozpakowanego folderu:
mkdir build && cd buildcmake.. make all -j4
sudo dokonać instalacji
Polecenie -j4 nakazuje make użyć czterech wątków. Użyj tyle, ile ma twój procesor!
Kawa
Aby skonfigurować framework Caffe ze źródeł:
git clone https://github.com/BVLC/caffe.git && cd caffemkdir build
cmak..
Zrób wszystko
zrób test zrób runtest
Jeśli wszystkie testy przebiegną pomyślnie, wszystko jest gotowe.
Przepływ Tensora
Google nie pozwala na kompilację TensorFlow za pomocą zwykłych narzędzi. Wymaga do tego Bazela i prawdopodobnie nie zadziała, więc unikaj kompilacji i po prostu pobierz wstępnie skompilowany moduł za pomocą:
pip zainstalować tensorflow
Jeśli twój komputer jest trochę stary i nie ma instrukcji AVX, pobierz ostatni przepływ tensoryczny inny niż AVX za pomocą
pip install tensorflow==1.5
I jesteś skończony.
SNPE - silnik przetwarzania neuronowego Snapdragon™
Konfiguracja Snappy, jak nasi przyjaciele z Qualcomm nazywają SNPE, nie jest trudna, ale kroki powinny być ściśle przestrzegane. Schemat instalacji to:
sklonuj repozytoria git frameworków sieci neuronowych
CaffeCaffe2
Przepływ Tensora
ONNX
uruchom skrypty, aby sprawdzić zależnościsnpe/bin/dependencies.sh
snpe/bin/check_python_depends.sh
dla każdego zainstalowanego frameworka uruchom snpe/bin/envsetup.sh
źródło $SNPE/bin/envsetup.sh -c $CAFFE_GIT
źródło $SNPE/bin/envsetup.sh -f $CAFFE2_GIT
źródło $SNPE/bin/envsetup.sh -t $TENSORFLOW_GIT
źródło $SNPE/bin/envsetup.sh -o $ONNX_GIT
Aby pozyskać SNPE w każdej otwartej instancji terminala, dołącz cztery linie kroku trzeciego na końcu pliku ~/.bashrc.
Na tablicy docelowej
Przejście na arm64 z amd64 nie jest łatwym zadaniem, ponieważ wiele bibliotek korzysta z instrukcji x86, aby zwiększyć swoją wydajność. Na szczęście większość potrzebnych zasobów można skompilować na samej tablicy. Potrzebne biblioteki można zainstalować jednym poleceniem.
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-dev propybunemp-bin python-pip python-numpy python-scipy python-matplotlib python-przyszłość python-protobuf pisanie w python python-hipoteza python-yaml
Zainstaluj je za pomocą apt i przejdź dalej. Pamiętaj, że ten krok może zająć trochę czasu, ponieważ wywołania apt tworzą kod, który nie jest wstępnie skompilowany.
Otwórz CV
Pobierz wydanie z repozytorium OpenCV, rozpakuj je gdzieś i z rozpakowanego folderu:
mkdir build && cd buildcmake..
zrób wszystko -j3
sudo dokonać instalacji
Zauważ, że użyliśmy opcji -j3. Jeśli uzyskujesz dostęp do płyty przez ssh, pełne obciążenie wszystkich rdzeni może wystarczyć do przerwania połączenia. To nie jest pożądane. Ograniczając użycie wątków do trzech, zawsze będziemy mieć przynajmniej jeden wolny wątek, który poradzi sobie z połączeniami ssh i ogólnym porządkiem systemu.
Dotyczy to Dragonboard 820 i Inforce 6640 z układem APQ8096. Na Dragonboard 410 będziesz chciał mieć trochę wolnej pamięci wirtualnej lub ograniczyć wątki kompilacji do jednego, ponieważ ma mniej dostępnej fizycznej pamięci RAM.
Warto również zauważyć, że chłodzenie chipa pomoże zwiększyć wydajność poprzez ograniczenie dławienia termicznego. Radiator załatwia sprawę przy małych obciążeniach, ale będziesz potrzebować odpowiedniego wentylatora do kompilacji i innych obciążeń intensywnie korzystających z procesora.
Dlaczego nie zainstalować OpenCV z apt lub pip? Ponieważ kompilacja na maszynie docelowej sprawia, że każda dostępna instrukcja procesora jest widoczna dla kompilatora, poprawiając wydajność wykonywania.
SNPE - silnik przetwarzania neuronowego Snapdragon™
Zainstalowaliśmy Snappy tak, jak na komputerze stacjonarnym, mimo że nie zainstalowano rzeczywistego szkieletu sieci neuronowej (SNPE potrzebuje tylko repozytoriów git, a nie rzeczywistych plików binarnych).
Ponieważ jednak wszystko, czego potrzebujemy, to pliki binarne i nagłówki dla polecenia snpe-net-run, istnieje możliwość, że wystarczy mieć następujące pliki w folderze i dodać ten folder do PATH:
Sieć neuronowa binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run
Biblioteki procesora
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
Biblioteki DSP
snpe/lib/dsp/libsnpe_dsp_skel.so
snpe/lib/aarch64-linux-gcc4.9/libsnpe_adsp.so
Przeglądarka wyników
snpe/models/alexnet/scripts/show_alexnet_classifications.py
Pogrubiony element, /usr/lib/aarch64-linux-gnu/libatomic.so.1, jest dostarczany z Linaro na tej ścieżce i musi zostać skopiowany do tego hipotetycznego folderu minimalnego.
Inne ważne pakiety:
sudo apt-get install net-toolssudo apt-get install gedit
sudo apt zainstaluj nodejs
sudo apt zainstaluj openvpn
Krok 7: Demonstracja
Zobacz krótką demonstrację działania Smart IoT Vision dla Smart-City!
www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be
Krok 8: Dziękuję
Dziękujemy zespołowi Qualcomm i Embarcados za stworzenie i wsparcie konkursu.
Zapraszamy do kontaktu:
Bibliografia
Instrukcja instalacji Dragonboard 410c dla systemów Linux i 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/
Zalecana:
Inteligentna skrytka: 7 kroków
Inteligentna skrytka: W tej instrukcji pokażę, jak zrobić inteligentną skrytkę. Skrzynka jest zasilana przez Arduino (UNO) i wykorzystuje RFID oraz silnik serwo do kontrolowania dostępu, jednocześnie śledząc dane przychodzące z różnych czujników. być przechowywane w
Inteligentna boja [Podsumowanie]: 8 kroków (ze zdjęciami)
Smart Buoy [Podsumowanie]: Wszyscy kochamy morze. Jako kolektyw gromadzimy się w nim na wakacje, uprawiać sporty wodne lub zarabiać na życie. Ale wybrzeże to dynamiczny obszar zdany na łaskę fal. Podnoszący się poziom mórz skubnie plaże i potężne wydarzenia ekstremalne, takie jak hurri
Inteligentna donica - wskazuje poziom wody: 5 kroków (ze zdjęciami)
Smart Planter - wskazuje poziom wody: Właśnie kupiliśmy kilka uroczo wyglądających roślin do naszego nowego domu. Pomiędzy wszystkimi elektronicznymi gadżetami wypełnionymi w domu, rośliny wprowadzają żywy nastrój. Więc w zamian chciałem zrobić coś dla roślin. Dlatego zbudowałem ten sprytny plan
Inteligentna sadzarka: 14 kroków
Smart Planter: Ideą tego projektu było zbudowanie inteligentnej donicy do końcowego projektu robotyki Comp 3012. Wybrałem to do projektu, ponieważ lubię rośliny i ogrodnictwo latem i chciałem być punktem wyjścia do większego projektu, który mogę ukończyć lato
Demonstracje Sipeed MaiX Bit OpenMV - Wizja komputerowa: 3 kroki
Prezentacje Sipeed MaiX Bit OpenMV - Wizja komputerowa: To drugi artykuł z serii o Sipeed AI na platformie mikrokontrolerów Edge. Tym razem będę pisał o MaiX Bit (link do sklepu Seeed Studio), mniejszej, gotowej do pracy na płytce prototypowej. Jego specyfikacje są bardzo podobne do