Introduction: TempControl

TempControl é um projeto desenvolvido para coletar informações sobre a umidade e a temperatura do ar. Tais informações podem ser acessadas de qualquer Smartphone com o sistema operacional Android.

As informações serão obtidas através de sensores instalados em uma placa Arduino e compartilhadas com uma placa DragonBoard. Uma vez que este passo seja concluído, a informação será enviada para uma API criada no Thingspeak e fornecerá a informação a ser consumida.

Um aplicativo Android foi desenvolvido como uma maneira de acessar informações da API e exibir no celular.

Aplicabilidade: o projeto pode ser aplicado em um ambiente onde há necessidade de monitoramento de temperatura e umidade e, com base nessas informações, é necessário tomar medidas como conseqüência das mudanças climáticas.

Step 1: Sobre TempControl

TempControl é um sistema para coletar informações sobre a umidade e a temperatura, que poderá ser acessado utilizando smatphones Android.

Será coletada as informações de temperatura e umidade do ar no arduíno enviadas para a placa Dragonboard) e posteriormente enviadas para um webservice (segue a descrição abaixo).

Um aplicativo android básico será construído para exibir as informações coletadas dos sensores, o aplicativo irá consumir as informações do webservice e mostrar na tela do celular.

Step 2: Obtendo Informações

Para o projeto foi utilizado um sensor básico de umidade e temperatura chamado DHT11.

O sensor DHT11 é um sensor de temperatura e umidade, que permite medir temperaturas de 0 a 50 Celsius, e umidade na faixa de 20 a 90%. Não é um sensor extremamente rápido e preciso, por isso não é recomendada a utilização em ambientes de alto risco. Sua faixa de precisão para temperatura é de 2 graus, e de umidade, 5%.

Este sensor é ligado diretamente é uma placa Arduino Uno R3.

Após o arduino ler as informações de temperatura e umidade, esses dados são enviados pela porta serial, e posteriormente lida por outra placa, que neste projeto foi a Qualcomm DragonBoard 410C. A DragonBoard é responsável por enviar esses dados através de uma interface wireless para uma API criada no ThingSpeak.

Step 3: Algorítimo Arduíno

O programa representado na imagem desse passo, lê as informações do sensor, e apresenta essas informações no serial monitor do Arduino. A biblioteca para uso com o DHT11 pode ser encontrada no site:
http://hobbyist.co.nz/sites/default/files/WeatherS...

Para compilar o código no Arduíno é necessário um software especifico. Esse software é uma IDE que pode ser baixada no site oficial do Arduino:
https://www.arduino.cc/en/Main/Software

Esse software é executado em um computador onde é feita a programação, conhecida como sketch, na qual será feita upload para a placa de prototipagem Arduino, através de uma comunicação serial. O sketch feito pelo projetista dirá à placa o que deve ser executado durante o seu funcionamento.

Após a execução do programa, os dados contendo as informações de temperatura e umidade podem ser observados no serial monitor da IDE, conforme a imagem desse passo.

Código fonte do programa "Sensor de umidade e temperatura DHT11":

https://pastebin.com/5P5vwySZ

Step 4: Conexão Serial Arduino Com DragonBoard 410c

Três jumpers fazem a ligação entre o arduino e a dragon board.

Um jumper liga dois pinos negativos das duas placas entre si.

A saída serial do arduino cujos pinos são 0 - RX e 1 - TX se ligam diretamente à porta UART0 da placa dragonboard. ( O pino RX do arduino se liga na outra ponta com um pino TX da Dragon Board, e o pino TX do arduino se liga na outra ponta com um pino RX da Dragon Board).

Há dois UARTS em série disponíveis no Dragonboard UART0 e UART1.

O UART0 possui as linhas padrão UART0 TX e UART0 RX, juntamente com os sinais de controle de fluxo UART0 CTS e UART0 RTS.

- Pin 5 - UART0 TX

- Pin 7 - UART0 RX

- Pin 3 - UART0 CTS

- Pin 9 - UART0 RTS

O UART1 inclui apenas as linhas UART1 TX e UART1 RX.

- Pin 11 - UART1 TX

- Pin 13 - UART1 RX

Step 5: Preparando O Ambiente De Desenvolvimento DragonBoard

Para implementar o programa na dragonboard é necessário a instalação de alguns softwares:

•Windows 10 (pode ser máquina virtual com rede em Bridge)

•Microsoft Visual Studio 2017 Community

http://www.visualstudio.com

•Windows IoTCoreDashboard

http://go.microsoft.com/fwlink/?LinkID=708576

•Windows IoTRemote Client

https://www.microsoft.com/pt-br/store/p/windows-io...

•Windows IoTProject Template for Visual Studio

https://go.microsoft.com/fwlink/?linkid=847472

PDF com instruções para preparar o ambiente para implementação, e criação de um projeto Windows IOT:

http://bit.ly/2yIrG5t

Step 6: Implementando O Código Fonte Na Dragonboard

Código fonte para dragonbord:

https://github.com/Joabcks/BackgroundApplication4


Basicamente o programa irá ler as informações que estão sendo recebidas na porta serial da dragonboard e irá armazenar os dados lidos em uma variável STRING chamada rxBuffer. Esses dados serão posteriormente enviados para a API no thingspeak através de requisições http.

Um ponto bastante importante é que o campo "SerialPort.BaudRate = 9600;" representa a taxa de transmissão de dados, e esse valor deve ser idêntico ao programado no Arduíno.

Step 7: Fornecendo As Informações

A informação é fornecida por uma API hospedada no ThingSpeak e alimentada pela placa Dragon.

ThingSpeak é um serviço que oferece uma infraestrutura de web e um protocolo de comunicação baseado em http para envio e recebimento de dados gerados em Arduino ou qualquer outro dispositivo com recursos para comunicação em rede. Pode-se dizer que qualquer dispositivo com conectividade para a Internet com serviço http e capaz de realizar GET e POST pode se comunicar com o ThingSpeak.

Esta API mantém uma política de limpeza de mensagens antigas, tornando as informações acessadas sempre atualizadas.

Site oficial ThingSpeak:

https://thingspeak.com/

Neste projeto a API recebe uma string com os dados do sensor de umidade e temperatura

- field1 corresponde a informação de temperatura e umidade

Exemplo para enviar informações para api - ESCRITA

GET - https://api.thingspeak.com/update?api_key=D3X4B8IT...

Exemplo para dar um get nas informações da api - LEITURA

GET - https://api.thingspeak.com/channels/349784/feeds.json?api_key=G9P52GPM1WVZZQ99

Step 8: Mostrando As Informações

Códido Fonte projeto App Android:

https://github.com/feliperamoscarvalho/ControledeT...

O app android basicamente consome as informações da API do ThingSpeak e imprime na tela do celular.

Step 9: Considerações Finais

Os componentes para desenvolver este projeto foram:

1 - Qualcomm DragonBoard 410C (R$ 599,90)

1 - Arduino Uno Rev3 (R$44,90)

1 - Sensor de umidade e temperatura DHT11 (R$12,90)

1 - Jumpers

Componentes do projeto:

JOAB FERREIRA - joabcks@gmail.com

FELIPE - ramos.felippe@gmail.com

PABLO - pablohenrique.mg@gmail.com

PEDRO - pnaves@gmail.com

FLAVIO - flaviorsteixeira@gmail.com

Referencias:

https://www.arduino.cc/en/Main/Software

https://docs.microsoft.com/en-us/windows/iot-core/...

http://www.arduinoecia.com.br/2013/05/sensor-de-um...

https://www.mathworks.com/help/thingspeak/?requestedDomain=www.mathworks.com