Introduction: BeerFridgeIoT With Dragonboard 410C (Inatel EAD)
O projeto corrente da Geladeira IoT é um protótipo para monitoramento de uma geladeira de cerveja. O objetivo é garantir a cerveja gelada no verão, verificando se a temperatura está adequada e a cerveja pronta para o consumo.
A aplicação também monitora a abertura da porta e registra o log de quando foi a última vez que porta da geladeira foi aberta. Será que alguém andou pegando uma das minhas cervejas?
A Dragonboard será responsável por controlar a geladeira, acionando o seu compressor quando a temperatura estiver acima do desejado, a luz interna conforme acionamento de um botão e exibir o status/log de porta fechada.
Também irá enviar informações a nuvem, neste projeto utilizando o site www.dweet.com. Através de um aplicativo híbrido, desenvolvido no framework Ionic Cordova será possível monitorar remotamente a geladeira.
Step 1: Lista De Materiais
- Dragonboard 410C;
- Placa de expansão Linker Base Mezzanine Card;
- Sensor de temperatura – Linker Temperature;
- Botão - Touch Sensor;
- Botão – Linker Button;
- Led – Linker Led;
- Relé – Linker Relay;
Step 2: Conexões
- Conectar o sensor de temperatura na entrada analógica ADC2;
- Leitura da temperatura interna da geladeira;
- Conectar o relé (Linker Relay) na saída digital D2;
- Este relé será responsável por acionar o compressor da geladeira para refrigerar a câmara;
- Conectar o led (Linker Led) na saída digital D3;
- Esta saída será utilizada para simular a iluminação da geladeira;
- Conectar o botão (Linker Button) na entrada digital D1;
- Este botão será utilizado como sensor de porta, indicando se a porta da geladeira está aberta ou fechada;
- Conectar o botão (Touch Sensor) na entrada digital D4;
- Esta entrada será utilizada como botão para acionamento da lâmpada da geladeira;
Step 3: Programa
O programa de controle da Geladeira IoT foi desenvolvido em Python.
Para instalação do Python e as bibliotecas adicionais na Dragonboard, siga as seguintes instruções:
- Inicialmente abra o terminal e execute;
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get dist-upgrade
- Editor de texto:
- sudo apt-get install gedit
- sudo apt-get install python-pip
- Biblioteca 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
- Antes de instalar essa biblioteca é necessário verificar se a sua versão é compatível com a versão da LIBSOC previamente instalada. No arquivo /home/linaro/96boardsGPIO/lib/gpio.c procure pela string LS_SHARE e substitua por LS_GPIO_SHARED;
- Após prossiga com a instalação:
- cd 96BoardsGPIO/
- sudo ./autogen.sh
- sudo ./configure
- sudo make
- sudo make install
- sudo ldconfig
- SPIDEV
- Para acesso aos sensores analógico é utilizado o protocolo SPI. A instalação da biblioteca é explicada a seguir:
- git clone https://github.com/doceme/pyspidev.git
- cd py-spidev
- sudo python setup.py install
- sudo ldconfig
- sudo reboot
- Será necessário incluir no arquivo sudo gedit /usr/local/etc/libsoc.conf a seguinte definição GPIO-CS = 18
O código fonte principal está nomeado como BeerFridgeIoT.py. O código fonte dweet.py contém as funções necessárias para acesso ao portal dweet. Os dois arquivos devem estar na mesma pasta para executar o programa.
Para executar o programa utilize o seguinte comando: sudo python BeerFridgeIoT.py
Attachments
Step 4: Nuvem
Para postagem na nuvem foi escolhido o portal Dweet.
Para testar a aplicação é necessário acessar o site www.dweet.io e clicar a "coisa".
Clique no botão Play e configure como segue:
No item POST/dweet/for/{thing}
Thing:
BeerFridgeIoT
Content:
{
"SetPoint": 10,
"Temperatura": 20,
"Porta": 0,
"LogPortaAberta": 0,
"Compressor": 0,
"Lampada": 0
}
Step 5: Aplicativo
O aplicativo foi desenvolvido em uma plataforma híbrida utilizando o Ionic Framework.
Uma mobile app nativa é aquela desenvolvida com as linguagens padrão da SDK do dispositivo. No caso do Android o Java e no caso do iOS o Objective-C, e mais recentemente o Swift. Já uma app híbrida é aquela que é toda desenvolvida com html, css e javascript e que mesmo assim pode ser empacotada e distribuída nas app stores como uma app nativa. O desenvolvimento híbrido consiste em utilizar html, css e javascript para a construção de uma mobile app que depois será instalada e executada do mesmo modo de uma app nativa. Isso só é possível pois, assim que a app é aberta pelo usuário, todo esse código roda dentro de algo chamado webview.
A partir do aplicativo é possível visualizar as principais informações da geladeira, como por exemplo, temperatura corrente, se a porta está fechada ou aberta e a última vez que a geladeira foi acessada.