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":
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
•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:
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:
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