Índice:

Visão inteligente de IoT: 8 etapas
Visão inteligente de IoT: 8 etapas

Vídeo: Visão inteligente de IoT: 8 etapas

Vídeo: Visão inteligente de IoT: 8 etapas
Vídeo: Exemplos da Internet das Coisas (IoT): fazendas inteligentes, carros e mais! 2024, Novembro
Anonim
Smart IoT Vision
Smart IoT Vision

Este é um projeto focado no contexto da cidade inteligente. Nesse caso, há três grandes problemas que estamos resolvendo:

1 - economia de energia na iluminação pública; 2 - melhorar a segurança da cidade; 3 - melhorar o fluxo de tráfego.

1 - Com o uso de luzes LED em ruas, a economia já é de até 50%, e com a adição do Telegestão, podemos ter 30% a mais de economia.

2 - Com o uso de câmeras inteligentes, podemos controlar as luzes para diminuir onde o fluxo de pessoas está ausente e tornar mais claro o trecho da rua por onde as pessoas estão caminhando. Além de economizar energia, aumentará a sensação de estar sendo observado, intimidando pessoas mal-intencionadas. Além disso, alarmes visuais (piscando as lâmpadas, por exemplo), podem ser usados em caso de comportamento suspeito.

3 - A câmera inteligente vigiará o trânsito, processará localmente suas condições e controlará os semáforos para melhor administrar o trânsito. Desta forma, os engarrafamentos poderiam ser evitados, os carros não teriam que esperar muito tempo sem sinais vermelhos quando não houvesse fluxo na passagem, e assim por diante. Em relação aos problemas tecnológicos, também estamos resolvendo problemas comuns em IoT, como conectividade robusta em escala de cidade e integração de câmeras para rede IoT, usando processamento de borda para transmitir apenas informações relevantes.

Veja nossa publicação no Embarcados e GitHub

Também no YouTube

Nosso time:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Baker

(Informações de contato na parte inferior)

Etapa 1: Diagrama de blocos do sistema

Diagrama de Bloco do Sistema
Diagrama de Bloco do Sistema

Esta é uma visão geral da arquitetura da solução.

O sistema é composto por um Camera-Gateway que usa RFmesh na interface FAN, WiFi na LAN e também CAT-M para conectividade WAN. Ele também contém fotocélulas inteligentes, câmeras inteligentes e sinais de luz.

Todos os dispositivos da rede, principalmente a câmera inteligente, estão enviando dados por meio do 6lowpan para o gateway inteligente, para que ele tome as decisões relacionadas à iluminação pública e ao controle dos sinais luminosos.

O gateway também está conectado ao nosso servidor via VPN. Desta forma, temos acesso ao FAN e LAN, bot para verificar o estado ou controlar os dispositivos.

Etapa 2: Componentes para este projeto

Componentes para este projeto
Componentes para este projeto
Componentes para este projeto
Componentes para este projeto
Componentes para este projeto
Componentes para este projeto

Smart Cam

- DragonBoard410C / DragonBoard820C

- Câmera USB

- OneRF NIC

Camera Gateway

- DragonBoard410C / DragonBoard820C

- Câmera USB

- OneRF NIC

- Modem Cat-M / 3G

Sinal de luz inteligente

Etapa 3: Etapa 2: Diagrama de circuito e conexões

Etapa 2: Diagrama de Circuito e Conexões
Etapa 2: Diagrama de Circuito e Conexões
Etapa 2: Diagrama de circuito e conexões
Etapa 2: Diagrama de circuito e conexões
Etapa 2: Diagrama de Circuito e Conexões
Etapa 2: Diagrama de Circuito e Conexões
Etapa 2: Diagrama de circuito e conexões
Etapa 2: Diagrama de circuito e conexões

Smart Cam

- Câmera na porta USB

- OneRF NIC na porta UART

Camera Gateway

- Câmera na porta USB

- OneRF NIC na porta UART

- Modem 3G / Cat-M na porta USB

(Todos conectados pelo Mezanino IoT)

Smart Stree Light

- Poste de luz convencional

- Placa de relé (3 canais)

- OneRF NIC

Fotocélula Inteligente

- OneRF NIC

- Medidor de energia

Etapa 4: Instale o sistema operacional no DragonBoards

Instalando Debian no Dragonboard820C (método Fastboot)

Usando um sistema operacional Linux, instale os pacotes listados em:

No dragonboard:

faça s4 DESLIGADO, DESLIGADO, DESLIGADO, DESLIGADO

Ligue pressionando vol (-)

Se estiver usando um monitor serial (altamente recomendado), você receberá a mensagem “fastboot: processing command” (monitor serial em 115200) Conecte o micro-usb (J4) no PC

No PC host: Baixe (e descompacte) em

dispositivos $ sudo fastboot

452bb893 fastboot (exemplo)

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

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

Instalando Debian no Dragonboard410C

Etapas no computador (Linux)

1 - Baixe a imagem

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 - Descompacte os arquivos

$ cd ~ / Debian_SD_Card_Install_image

$ unzip dragonboard410c_sdcard_install_debian-233.zip

3 - Insira o microSD no seu computador e verifique se ele está montado

$ df -h

/ dev / sdb1 7,4G 32K 7,4G 1% / media / 3533-3737

4 - Desmonte o microSD e grave a imagem

$ umount / dev / sdb1

$ sudo dd if = db410c_sd_install_debian.img of = / dev / sdb bs = 4M oflag = sync status = noxfer

5 - Remova o microSD do seu PC

Etapas no computador (Windows) Download - Imagem do cartão SD - (Opção 1) Imagem do cartão SD - Instale e inicialize a partir do eMMC

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

Descompacte a imagem de instalação do cartão SD

Baixe e instale a ferramenta Win32DiskImager

sourceforge.net/projects/win32diskimager/f…

Abra a ferramenta Win32DiskImager

Insira o cartão SD no computador

Encontre o arquivo.img extraído

Clique em Write

Passos no DragonboardCertifique-se de que o DragonBoard ™ 410c esteja desconectado da energia

Defina a chave S6 no DragonBoard ™ 410c para 0-1-0-0, “SD Boot switch” deve ser definido como “ON”.

Conecte um HDMI

Conecte um teclado USB

Insira o microSD

Conecte o adaptador de energia

Selecione a imagem a instalar e clique em “Instalar”

espere a instalação terminar

Remova o adaptador de energia

Remova o microSD

Defina o interruptor S6 para 0-0-0-0

FEITO

Etapa 5: interfaces de conectividade

Instalando Cat-m e 3G

Aplique os seguintes comandos AT usando uma máquina host:

AT # SIMDET? // verificar a presença do SIM # SIMDET: 2, 0 // sim não inserido

#SIMDET: 2, 1 // sim inserido

AT + CREG? // verifique se está registrado

+ CREG: 0, 1 // (desativar código de resultado não solicitado de registro de rede (padrão de fábrica), rede doméstica registrada)

AT + COPS?

+ COPS: 0, 0,”VIVO”, 2 // (modo = escolha automática, formato = alfanumérico, oper,?)

AT + CPAS // Status de atividade do telefone

+ CPAS: 0 // pronto

AT + CSQ // verifica a qualidade do serviço

+ CSQ: 16, 3 // (rssi, taxa de erro de bit)

AT + CGATT? // estado do anexo GPRS

+ CGATT: 1 // anexado

AT + CGDCONT = 1,”IP”,”zap.vivo.com.br”,, 0, 0 // configura o contexto

OK

AT + CGDCONT? // verifique o contexto

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

AT # SGACT = 1, 1 // Ativação de contexto

#SGACT: 100.108.48.30

OK

Configure a interface

Usando ambiente gráfico

Conecte o modem (oneRF_Modem_v04 - HE910)

Conexões de rede abertas

Clique em + para adicionar uma nova conexão

Selecione Banda Larga Móvel

Selecione o dispositivo correto

Selecione o país

Selecione o provedor

Selecione o plano e salve

Remova o Modem

Reconecte o Modem

Usando terminalapt-get install pppconfig

pppconfig

provedor = vivo

dinamico

INDIVÍDUO

vivo

vivo

115200

Tom

*99#

não (manual)

/ dev / ttyUSB0

Salve 

cat / etc / ppp / peers / vivo

cat / etc / chatscripts / vivo

pon vivo

Se você estiver usando o módulo Cat-M, basta usar os seguintes comandos antes:

echo 1bc7 1101> / sys / bus / usb-serial / drivers / opção1 / new_id

apt-get install comgt

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

Etapa 6: Instalando Módulos de Software Essenciais

No computador de desenvolvimento

Observe que algumas etapas dependem do hardware e devem ser ajustadas para atender às especificações reais do computador. As bibliotecas podem ser instaladas com um único comando.

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-futuro python-protobuf python-type python-hypotesis python-yaml

OpenCV

Esta estrutura é usada para desenvolver algoritmos estatísticos baseados em imagens na máquina de desenvolvimento. Uma vez que a maior parte do nosso código é escrito em Python, o método de instalação mais fácil é apenas

pip install opencv-python

Observe, no entanto, que essas rodas não usarão nada além de sua CPU e podem nem mesmo usar todos os seus núcleos, então você pode querer compilar a partir da fonte para obter o desempenho máximo. Para construir o pacote no Linux, por exemplo, você faz o download do arquivo zip da página OpenCV Releases e descompacta-o. Da pasta descompactada:

mkdir build && cd buildcmake.. make all -j4

sudo make install

O comando -j4 instrui o make a usar quatro threads. Use tantos quantos sua CPU tiver!

Caffe

Para configurar a estrutura Caffe a partir de fontes:

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

cmake..

faça tudo

faça teste faça teste de execução

Se todos os testes forem executados com êxito, você está pronto.

TensorFlow

O Google não permite que você compile o TensorFlow com ferramentas comuns. Requer o Bazel para isso e é provável que não funcione, portanto, evite compilá-lo e apenas pegue o módulo pré-compilado com:

pip instalar tensorflow

Se o seu computador for um pouco antigo e não tiver instruções AVX, obtenha o último tensorflow não AVX com

pip install tensorflow == 1.5

E está feito.

SNPE - Snapdragon ™ Neural Processing Engine

Configurar o Snappy, como nossos amigos da Qualcomm chamam de SNPE, não é difícil, mas as etapas devem ser seguidas de perto. O esquema de instalação é:

clonar os repositórios git dos frameworks de rede neural

CaffeCaffe2

TensorFlow

ONNX

execute os scripts para verificar se há dependênciasnpe / bin / dependencies.sh

snpe / bin / check_python_depends.sh

para cada estrutura instalada, execute snpe / bin / envsetup.sh

fonte $ SNPE / bin / envsetup.sh -c $ CAFFE_GIT

fonte $ SNPE / bin / envsetup.sh -f $ CAFFE2_GIT

fonte $ SNPE / bin / envsetup.sh -t $ TENSORFLOW_GIT

fonte $ SNPE / bin / envsetup.sh -o $ ONNX_GIT

Para originar SNPE em cada instância de terminal que você abrir, anexe as quatro linhas da etapa três ao final de seu arquivo ~ /.bashrc.

No alvo

Mudar de amd64 para arm64 não é uma tarefa fácil, pois muitas bibliotecas aproveitarão as instruções do x86 para aumentar seu desempenho. Felizmente, é possível compilar a maioria dos recursos necessários no próprio quadro. As bibliotecas necessárias podem ser instaladas com um único comando.

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-futuro python-protobuf python-type python-hypotesis python-yaml

Instale-os com o apt e siga em frente. Observe que esta etapa pode levar algum tempo, pois as chamadas do apt fazem para construir o código que não é pré-compilado.

OpenCV

Baixe a versão do repositório OpenCV, descompacte-o em algum lugar e da pasta descompactada:

mkdir build && cd buildcmake..

fazer tudo -j3

sudo make install

Observe que usamos a opção -j3. Se você acessar a placa via ssh, ter todos os núcleos totalmente carregados pode ser o suficiente para interromper a conexão. Isso não é desejável. Limitando o uso de thread a três, sempre teremos pelo menos um thread livre para lidar com conexões ssh e manutenção geral do sistema.

Isso é para o Dragonboard 820 e Inforce 6640 com o chip APQ8096. No Dragonboard 410, você desejará ter um pouco de memória virtual livre ou limitar os threads de compilação a um, já que ele tem menos RAM física disponível.

Também é importante notar que o resfriamento do chip ajudará a aumentar o desempenho, limitando o estrangulamento térmico. Um dissipador de calor faz o truque com cargas pequenas, mas você vai querer um ventilador adequado para compilar e outras cargas intensivas da CPU.

Por que não instalar o OpenCV com apt ou pip? Porque compilá-lo na máquina de destino torna todas as instruções de processador disponíveis visíveis para o compilador, melhorando o desempenho de execução.

SNPE - Snapdragon ™ Neural Processing Engine

Instalamos o Snappy exatamente como em um computador desktop, embora não houvesse uma estrutura de rede neural real instalada (o SNPE só precisa dos repositórios git, não dos binários reais).

No entanto, como tudo o que precisamos são os binários e cabeçalhos para o comando snpe-net-run, existe a possibilidade de que apenas ter os seguintes arquivos em uma pasta e adicionar esta pasta ao PATH funcione:

Rede neural binarysnpe / bin / aarch64-linux-gcc4.9 / snpe-net-run

Bibliotecas 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

Bibliotecas DSP

snpe / lib / dsp / libsnpe_dsp_skel.so

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

Visualizador de resultados

snpe / models / alexnet / scripts / show_alexnet_classifications.py

O item em negrito, /usr/lib/aarch64-linux-gnu/libatomic.so.1, é fornecido com o Linaro neste caminho e deve ser copiado para esta pasta mínima hipotética.

Outros pacotes imprtant:

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

sudo apt install nodejs

sudo apt install openvpn

Etapa 7: Demonstração

Veja uma breve demonstração do Smart IoT Vision para Smart-City funcionando !!

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

Etapa 8: Obrigado

Agradecemos a equipe Qualcomm e a Embarcados por criar e apoiar o concurso.

Sinta-se à vontade para nos contatar em:

Referências

Guia de instalação do Dragonboard 410c para Linux e 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/

Recomendado: