Estação de medição de temperatura Open-Source com Arduino e IoT - Publicação dos dados

medição de temperatura
Este post faz parte da série Estação de medição de temperatura Open-Source com Arduino e IoT. Leia também os outros posts da série:

Este artigo é o terceiro de uma série de três artigos que mostra como construir uma estação de medição de temperatura Open-Source com Arduino e IoT.  Com esses três artigos em mãos e os componentes, placas e ferramentas necessárias, qualquer um com um conhecimento técnico mínimo de eletrônica poderá construir e contribuir para a medição de temperatura em diferentes pontos do Brasil e, quem sabe, claro, do planeta (nada impede isso).

 

O coração do sistema é uma placa Arduino fácil de ser encontrada e comprada. Para comunicação com internet, será utilizado um módulo Wi-Fi ESP8266 ESP-01, o qual utilizará MQTT. Esta série esta sendo construída por mim e por Douglas Salin Zuqueto.

 

A série de artigos que está sendo escrita aborda os seguintes assuntos:

 

Esta série foi desenvolvida com o hardware oferecido pelo loja FILIPEFLOP, a qual foi fundamental para o desenvolvimento deste projeto, pois sem o auxílio do hardware, o projeto se tornaria inviável.

 

FILIPEFLOP

 

Este artigo será dividido em dois tópicos gerais: desenvolvimento da interface web que se conecta ao WebSocket do Broker MQTT e uso/demonstração do sistema.

 

 

WebSocket - O que é?

 

Um WebSocket, em resumo, nada mais é que o bom e velho Socket (TCP, em modo full-duplex) projetado para rodar em aplicações mais alto-nível, como site/WebAPPs em HTML5, por exemplo. Em outras palavras: é o bom e velho Socket TCP rodando diretamente no Browser!

 

Além disso, um WebSocket permite que esta comunicação fique transparente ao usuário da aplicação, de modo que ele nem perceba o que está ocorrendo. Com isso, o WebSocket atua no back-end de WebAPPs.

 

Para saber mais sobre WebSockets em HTML5, leia o aertigo deste link.

 

 

WebSocket com Broker MQTT e Interface multiplataforma

 

No projeto desta série de artigos, toda a medição de temperatura feita pelo Arduino + sensor de temperatura e transmitida para um broker MQTT via Wi-Fi com o ESP8266 ESP-01 será visível via página Web. Em outras palavras, a interface com o usuário do sistema final é uma página web aberta em um browser comum.

 

E aí está um dos grandes pontos do projeto: permitir a interface com o usuário de (quase) todo browser, em qualquer dispositivo (mobile ou não) com acesso à Internet. Com isso, abstrai-se a interface com usuário final, desprendendo-se assim de requisitos de sistema operacional. Portanto, é correto dizer que a interface com usuário final é multiplataforma.

 

medição de temperatura open-source: A interface com o usuário final é multiplataforma
Figura 1 - A interface com o usuário final é multiplataforma

 

 

Recursos de software para implementação da interface

 

A aplicação web desenvolvida para ser a interface com o usuário final é dividida em 3 partes: Layout, Geolocalização,  MQTT e configurações.

 

Para a construção do layout foi utilizada a biblioteca MaterializeCSS. Ela oferece um conjunto de componentes web, tais como: tabelas, formulários, ícones, menus e etc. Além de oferecer um sistema de grid (para design responsivo) e cores baseadas no Material Design. Ambas as funcionalidades foram utilizadas na construção do layout.

 

Para a comunicação MQTT, foi utilizada a biblioteca mosquitto. Essa biblioteca possui um encapsulamento de WebSockets, onde, no back-end, toda comunicação de dados será feita via Sockets.

 

O sistema terá uma área onde o usuário entrará com 3 informações:

  • Tópico a ser assinado (no nosso caso será EMCOL);
  • Latitude;
  • Longitude.

 

Essas configurações serão salvas no localStorage do navegador (análogo a um banco de dados local do navegador) para que, posteriormente, essas informações sejam usadas na tela principal e na área de geolocalização.

 

Já a parte de geolocalização é feita através do uso de uma biblioteca denominada leaflet. Com base nas coordenadas que o usuário salvou nas configurações, as coordenadas  serão mapeadas automaticamente no mapa e através de uma label, a temperatura também será apresentada. No caso das outras estações, elas também serão mapeadas no Mapa. Assim, mostrando visualmente, uma verdadeira rede de estações meteorológicas implementadas. Portanto, o sistema tem porte para ser aplicado a nível mundial! 

 

 

Interface - Download

 

A interface, assim como todo o projeto, podem ser baixados no GitHub oficial do projeto. O GitHub está dividido em três repositórios distintos: um para o software que roda no Arduino, um do software que roda no módulo ESP8266 e o sistema on-line.

 

A interface de usuário é capaz de rodar em qualquer servidor web, inclusive localmente no seu próprio computador! Em suma, pode-se disponibilizar a interface em qualquer hospedagem web gratuita.

 

 

Vídeo - Funcionamento completo

 

Um vídeo do sistema funcionando por completo (da leitura do sensor de temperatura até a interface web para usuário final) pode ser visto abaixo:

 

 

 

Futuro do projeto

 

O futuro deste projeto depende exclusivamente de você, caro leitor maker/hobbista/entusiasta de sistemas embarcados!

 

O projeto está no ponto de ser replicado e usado a nível mundial, formando assim uma base de temperaturas-ambiente open-source. Logo, quanto mais gente colocar o projeto pra rodar e ler temperatura, melhor!

 

Coloque o projeto para rodar e contribua assim para a primeira iniciativa open-source de medição de temperatura do Brasil! Ajude-nos a fazer com que o Brasil seja a diferença!

Outros artigos da série

<< Estação de medição de temperatura Open-Source com Arduino e IoT - Comunicação
Este post faz da série Estação de medição de temperatura Open-Source com Arduino e IoT. Leia também os outros posts da série:
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Pedro Bertoleti
Sou engenheiro eletricista formado pela Faculdade de Engenharia de Guaratinguetá (FEG - UNESP) e trabalho com Android embarcado em Campinas-SP. Curioso e viciado em tecnologia, sempre busco me aprimorar na área de sistemas embarcados (modalidades bare-metal, RTOS, Linux embarcado e Android embarcado).Para mais informações, acesse minha página no Facebook:https://www.facebook.com/pbertoleti

2
Deixe um comentário

avatar
 
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Marcel Philippe Abreu AndradeRuben P Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Marcel Philippe Abreu Andrade
Visitante
Marcel

Pedro Bertoleti tenho uma dúvida para que eu possa acessar o sistema Web eu preciso de instalar o servidor (broker) mosquitto? e eu preciso instalar também o cliente mosquitto?, essa parte eu não entendi eu fui nessa página (https://mosquitto.org/download/) e instalei o binário para o Windows, esse binário é o servidor (broker)? desculpa, mas uma outra pergunta é: eu instalei o Wampserver para colocar o projeto Web para que eu possa acessar o localhost estou fazendo da forma correta? já que o MQTT utiliza um outro servidor (broker) que é acessado pela porta 1883. Caso eu esteja fazendo da forma… Leia mais »

Ruben P
Visitante
Ruben Guirão Pires

Hey, eu sou um estudante de eletrônica e gostei bastante das matérias.
Tenho algumas dúvidas quanto a esse projeto:
1- No lugar do MQTT Broker, é possível usar o thingspeak?
2- Pode-se trocar o DHT-22 por um sensor de umidade FC-28?
3- Na programação do Módulo ESP8266, a biblioteca que ele importa é a https://github.com/itead/ITEADLIB_Arduino_WeeESP8266? Ela pode ser utilizada com pic ao invés de arduíno?
Eu estou tentando fazer algo desse tipo usando seu outro artigo de

PIC na IoT com ESP8266 e ThingSpeak