Spisu treści:

Inteligentna wizja IoT: 8 kroków
Inteligentna wizja IoT: 8 kroków

Wideo: Inteligentna wizja IoT: 8 kroków

Wideo: Inteligentna wizja IoT: 8 kroków
Wideo: Jak skonfigurować kamerę IP wifi EZ-2006-O-IR bezprzewodowo z routerem wifi 2024, Listopad
Anonim
Inteligentna wizja IoT
Inteligentna wizja IoT

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

Schemat blokowy systemu
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

Komponenty do tego projektu
Komponenty do tego projektu
Komponenty do tego projektu
Komponenty do tego projektu
Komponenty do tego projektu
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

Krok 2: Schemat obwodu i połączenia
Krok 2: Schemat obwodu i połączenia
Krok 2: Schemat obwodu i połączenia
Krok 2: Schemat obwodu i połączenia
Krok 2: Schemat obwodu i połączenia
Krok 2: Schemat obwodu i połączenia
Krok 2: Schemat obwodu i połączenia
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: