Introduction: IoT - Smart Home - EaD INATEL

Projeto Smart Home

Esse Tutorial vai mostrar os passos para implementação de uma solução Smart Home contendo serviço na nuvem dweet.io, utilização de cinco atuadores e sensores do kit Linker Mezzanine e mais um sensor externo.

A solução ainda inclui um aplicativo desenvolvido com Ionic que realiza o controle e notificações da solução Smart Home.

O aplicativo foi desenvolvido para uso em smartphones baseados em Android.

A figura abaixo mostra o diagrama em blocos da solução:

Step 1: Material

1 DragonBoard 410C;

1 Linker Mezzanine;

1 Teclado;

1 Mouse;

1 Monitor com HDMI;

1 Relé;

1 Sensor de temperatura;

1 Sensor de luminosidade;

1 Sensor ultrassônico;

1 Sensor de toque;

3 Leds;

3 Resistores de 1kΩ;

1 Transistores BC337

Step 2: Criar As Coisas No Dweet.io

No site dweet.io clique no botão PLAY, como mostra a figura abaixo:

Figura 1

A imagem mostrada abaixo é a página que será aberta após o clique no PLAY:

Figura 2

A solução utiliza onze coisas no dweet.io. São elas:

  • "Luzes": Controla o acionamento manual das luzes (acende ou apaga um Led).

Valores possíveis:

0 desligado

1 ligado

  • "ArCondicionado": Controla o acionamento manual do Ar condicionado (aciona/desativa o relé)

Valores possíveis:

0 desligado

1 ligado

  • "AutoTemperatura": Liga/desliga o controle automático de temperatura

Valores possíveis:

0 desligado

1 ligado

  • "TemperaturaDesejada": Temperatura desejada para a casa

Valores possíveis:

Mínimo 18⁰C

Máximo 30⁰C

  • "Temperatura": Temperatura ambiente medida pelo sensor

Valores possíveis:

Mínimo - 50⁰C

Máximo 125⁰C

  • "AutoLuminosidade": Liga/desliga o controle automático de temperatura

Valores possíveis:

0 desligado

1 ligado

  • "LuzDesejada": Luminosidade desejada para a casa

Valores possíveis:

Mínimo 0

Máximo 1000

  • "Luminosidade": Luminosidade ambiente medida pelo sensor

Valores possíveis:

Mínimo 0

Máximo 1000

  • "DistanciaMedida": Indica a distância medida pelo sensor ultrassônico em centímetros.
  • "SistemaDesligado": Indica se o sistema foi desligado manualmente

Valores possíveis:

Sistema Ligado 1

Sistema Desligado 0

A figura a seguir mostra o POST para a solução Smart Home.

Figura 3

A figura a seguir mostra o resultado bem-sucedido de um POST para a coisa “SmHo_CarMene”:

Figura 4

Step 3: Conexões Dos Sensores E Atuadores

A figura abaixo mostra os sensores e atuadores para essa solução:

Figura Circuito

O sensor de temperatura deve ser conectado na porta analógica ADC2 da Linker Mezzanine.

O sensor de luminosidade deve ser conectado na porta analógica ADC1 da Linker Mezzanine.

O sensor de toque deve ser conectado na porta digital D1 da Linker Mezzanine.

O Relé deve ser conectado na porta digital D2 da Linker Mezzanine.

O Led que será usado como indicativo de acionamento das luzes deve ser conectado na GPIO E, como ilustrado na figura a seguir:

Figura LED

O sensor de distância ultrassônico HC-SR04 possui duas portas. Uma de entrada (Trigger) e uma de saída (Echo). A porta Trigger deve ser conectada na GPIO 24 e a porta Echo na GPIO 25, como ilustrado na figura a seguir:

Figura Distancia

Abaixo, link com a explicação geral do funcionamento do circuito e solução:

https://drive.google.com/file/d/1zmU43bmwLLtlY1a6O...

Step 4: Instalação Do Ionic No Computador Pessoal

Antes de desenvolver o aplicativo para o smartphone, é preciso instalar o Ionic no computador pessoal. Os passos para a instalação e verificação se a mesma foi bem-sucedida é mostrado abaixo:

  • Entre no site: https://nodejs.org/en/ e faça o download da versão mais recente LTS do Node
  • Instale o Node no seu computador pessoal
  • Envie os comandos do prompt de comandos (cmd) para verificar se a instalaçaum foi feita com sucesso:

node -v

npm -v

  • Instale o Ionic com os comandos abaixo através do prompt de comandos (cmd):

npm install –g cordova ionic

npm install –g cordova

  • Verifique se o Ionic foi instalado com sucesso usando o comando abaixo:

ionic -v

Step 5: Desenvolvimento De Um Aplicativo No Smartphone Usando Ionic

Para criar um aplicativo em branco deve-se executar a seguinte linha de comando no prompt de comando do seu computador pessoal (botão direito do mouse no “Windows”, clicar em “Executar”, em “Abrir:” digitar “cmd”).

No prompt de comando do seu computador pessoal digite o comando abaixo:

ionic start shome_cmmm blank (use o nome do seu projeto)

Um novo projeto será criado na pasta do usuário utilizado para executar o comando acima.

Vá para o diretório com o comando abaixo:

cd shome_cmmm

Para executar a aplicação execute o comando abaixo:

ionic serve

A página abaixo será aberta no seu navegador (preferencialmente o Google Chrome):

Figura Home Blank

Crie o provider dweet.ts com o comando abaixo:

ionic generate provider dweet

Abra o aplicativo IDE de desenvolvimento “Visual Studio Code”.

Abra a pasta contendo o projeto (shome_cmmm).

Substitua os arquivos:

  • home.html (src/pages/home)
  • home.ts (src/pages/home)
  • dweet.ts (src/providers/dweet)
  • app.module.ts (src/app)

Pelos arquivos anexados.

Após a substituição dos arquivos a página do seu projeto será atualizada e aparecerá algo como a figura abaixo:

Figura Home Smart Home

O aplicativo desenvolvido com Ionic tem funcionalidades para controle manual de liga/desliga para ar-condicionado, luzes, sistema automático de temperatura e sistema automático de luminosidade.

Ainda possui a capacidade de permitir ao usuário controlar os valores de temperatura e luminosidade desejadas através de controles deslizantes.

Abaixo figura com o “look & feel” do aplicativo no smartphone (utilize o App “Ionic DevApp” para Android):

Figura lookfeel_1

Figura lookfeel_2

As funções destacadas na figura abaixo mostram o controle manual para ligar/desligar em ordem de cima para baixo as luzes e ar-condicionado:

Figura luzes&ar

As funções abaixo se referem ao controle automático da temperatura. É possível ligar/desligar o controle automático.

Figura autotemp

Quando o mesmo está ligado, o controle deslizante pode ser utilizado para determinar a temperatura desejada no ambiente.

A lógica de funcionamento é simples e utiliza a temperatura desejada como referência para acionar ou não o equipamento (ar-condicionado) para que a temperatura medida pelo sensor fique igual ou abaixo da desejada.

As funções abaixo se referem ao controle automático da luminosidade. É possível ligar/desligar o controle automático.

Figura autoluz

Quando o mesmo está ligado, o controle deslizante pode ser utilizado para determinar a luminosidade desejada no ambiente.

A lógica de funcionamento é simples e utiliza a luminosidade desejada como referência para acionar ou não o equipamento (luzes) para que a luminosidade medida pelo sensor fique igual ou abaixo da desejada.

A função mostrada na figura abaixo se refere ao medidor de distância idealizado para ser instalado na garagem da casa inteligente e que irá auxiliar o motorista a não se chocar com a parede.

Figura sensordistancia

A distância mínima definida é de 10cm da parede e o aplicativo irá informar a distância em que se encontra o automóvel da parede.

Step 6: Iniciar a DragonBoard 410c

Conectar monitor HDMI, teclado e mouse. Usar a aplicação “Terminal” para acessar o prompt de comandos.

Step 7: Verificar Se Todas As Bibliotecas Necessárias Estão Instaladas Na DragonBoard 410c

Executar os seguintes comandos na aplicação “Terminal” da DragonBoard 410C, caso não tenha configurado a Dragonboard para utilização dos sensores analógicos ainda:
NOTA: Caso já tenha a Dragonboard configurada para uso de sensores analógicos, desconsidere esse passo e vá para o próximo.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

Siga o tutorial abaixo para instalar as bibliotecas necessárias.

#Bibliotecas adicionais:

sudo apt-get install build-essential autoconf

automake libtool-bin pkg-config python-dev

sudo reboot

# LIBSOC

git clone https://github.com/jackmitch/

libsoc.git

cd libsoc

sudo autoreconf -i

sudo ./configure --enable-python=2 --enableboard=dragonboard410c --with-board-configs

sudo make

sudo make install

sudo ldconfig /usr/local/lib

sudo reboot

#96Boards

git clone https://github.com/96boards/96BoardsGPIO.git

Após instalar a biblioteca 96Boards é necessário verificar, e se for o caso, substituir a string "LS_SHARED" por "LS_GPIO_SHARED" no arquivo "/home/linaro/96boardsGPIO/lib/gpio.c".

Instale a biblioteca 96Boards como apresentado abaixo:

#96Boards

cd 96BoardsGPIO/

sudo ./autogen.sh

sudo ./configure

sudo make

sudo make install

sudo ldconfig

Instale a biblioteca SPIDEV que permitirá que os sensores analógicos possam ser usados pela DragonBoard 410C.

# SPIDEV

git clone https://github.com/doceme/pyspidev.git

cd py-spidev

sudo python setup.py install

sudo ldconfig

sudo reboot

Após a instalação da biblioteca é preciso configurar o arquivo "/usr/local/etc/libsoc.conf". Inclua as linhas destacadas em negrito abaixo, se as mesmas ainda não estiverem presentes no arquivo:

[board]

model = Qualcomm Technologies, Inc. APQ 8016

SBC

[GPIO]

# dragonboard 410c pin layout

#

GPIO-A = 36

GPIO-B = 12

...

GPIO-K = 28

GPIO-L = 33

GPIO-CS = 18

# include mappings by pin number on board

GPIO-23 = 36

GPIO-24 = 12

...

GPIO-33 = 28

GPIO-34 = 33

GPIO-12 = 18

Para que as funções POST e GET funcionem com o site dweet.io é necessário instalar a biblioteca “requests”. O procedimento é mostrado abaixo:

sudo pip install requests

Step 8: Software Na DragonBoard 410c

Copiar os seguintes arquivos para o diretório /home/linaro/Downloads:

  • dweet.py
  • Smart_Home_CMMM.py

Os arquivos estão anexos.

Step 9: Execução Aplicativo Python Na DragonBoard 410c

Vá para o diretório /home/linaro/Downloads:

cd Downloads (se já se encontrar no /home/linaro)

Envie o comando abaixo para que os sensores passem a realizar o sensoriamento da casa e enviar as informações para a nuvem (dweet.io):

sudo python smart_home_cmmm.py

Step 10: Execução Aplicativo Smart Home No Smartphone

Para executar o aplicativo de controle Smart Home a partir do smartphone é necessário fazer o seguinte procedimento:

  • Instale o App “Ionic DevApp” no seu smartphone
  • Certifique-se que o smartphone e o computador com o ionic estejam na mesma rede Wi-Fi
  • Abra o aplicativo no smartphone
  • Escolha o projeto Ionic criado anteriormente (executado com o comando “ionic serve”)
  • Pronto! Agora é usar o aplicativo!

Veja links com vídeos mostrando a utilização do App:

https://drive.google.com/file/d/1bHgeDL3nVnZ0w8lir...

https://drive.google.com/file/d/1Uh9sWDYARe7jC6fot...