myWeather

Participantes:

Juliano Alves de Oliveira
Jorge Henrique Souza Santos de Freitas
Felipe Gustavo Hernandes Leite

Resumo do projeto:

O projeto consiste em um protótipo de uma estação meteorológica de baixo custo, que medirá parâmetros relacionados ao clima e poderá ser conectada à internet.

Descrição do projeto:

O projeto consiste em um protótipo de uma estação meteorológica de baixo custo, que medirá parâmetros relacionados ao clima e poderá ser conectada à internet. Nossa proposta é entregar uma experiência de previsão e notificação do tempo personalizada, utilizando estações meteorológicas conectadas à nuvem e interações com os usuários em linguagem natural. As estações que serão espalhadas pela cidade, periodicamente, realizarão a coleta de diversas grandezas físicas, como temperatura, umidade relativa do ar ou precipitação de chuva, e estes dados serão transmitidos aos servidores e processados. Além das informações obtidas pela estação, o usuário interagirá com uma aplicação classificando, em linguagem natural, o clima, em “agradável”, “muito frio”ou “muito quente” e o aspecto geral do tempo “chuvoso”, “garoa”ou “ensolarado”, por exemplo. A correlação dessas informações, o feedback dos usuários e a comparação com os modelos de previsão convencionais possibilitará o treinamento de uma inteligência artificial que criará correlações entre estas diversas variáveis coletadas, permitindo identificar e classificar o comportamento dos diversos microclimas espalhados pela cidade, trazendo para cada usuário uma perspectiva do clima (sensação térmica adequada para cada um) e previsão do tempo relevantes. Conforme mais dados vão sendo coletados, se criará um histórico do comportamento climático de cada local, permitindo que o algoritmo se aprimore ao longo do tempo. O projeto, sendo de baixo custo, facilitará a instalação em diversos pontos de uma região e, portanto, refinará a aquisição de dados. Além dessa aplicação, o projeto poderá ser usado como um kit didático para escolas de ensino fundamental. Como futuras features para o projeto, o usuário poderá criar locais de interesse ou até mesmo rotas, possibilitando programar o seu dia, criar alertas de enchente, alertas de chuva, umidade do ar abaixo do recomendado entre outros.

Histórico do desenvolvimento:

31/08/2016

Kit recebido. Ready for action 😉

Kit LPCXpresso 4337

 


23/10/16 – Documentação Fase 2

Descritivo da Solução

A solução para o problema abordado pelo projeto pode ser analisada sob dois aspectos:

  • Hardware: o desenvolvimento da estação meteorológica de baixo custo que nos fornecerá os dados climáticos locais de uma dada região utiliza um conjunto básico de sensoriamento conforme mencionado na seção de Hardware. Os sensores de pressão e luminosidade foram conectados ao barramento I2C0, disponível no conector J3 do kit LPCXpresso 4337. O sensor de umidade foi ligado a este mesmo conector para implementação da comunicação 1-wire entre o sensor e o kit de desenvolvimento.
  • Software: explicar a comunicação entre o kit e o servidor para envio dos dados; Os algoritmos de previsão e classificação são divididos em duas etapas. A primeira delas trata-se de um algoritmo simples de clustering, onde as informações inseridas pelos usuários são classificadas entre frio, agradável e quente. Os algoritmos de predição contam com duas etapas, a primeira delas trata os dados analisando a tendência de cada parâmetro ao longo do tempo, e o segundo é um algoritmo de naive bayes, onde cada tendência dos dados são inseridos para a predição do tempo.

Diagrama de Blocos

 

 

 

Códigos Fonte (Firmware)

 

Códigos Fonte (Software)

 

Esquemas Elétricos

 

Vídeo

 

Principais Desafio Que Foram Enfrentados

– Algoritmos de predição;
– Infraestrutura;
-Comunicação remota com o servidor;
– Hardware de baixo custo e alta confiabilidade;

 

 

 

Hardware:

Sensores utilizados no projeto

Para medidas básicas de parâmetros climáticos, os sensores abaixo foram selecionados para compor o protótipo inicial. Os critérios para seleção foram a facilidade em se encontrar estes sensores no mercado, preço e possuir interfaces digitais compatíveis e disponíveis no kit LPCXpresso 4337.

Pressão Atmosférica

Para aferir a pressão atmosférica, o sensor que utilizaremos é o barômetro Bosch BMP180:

bmp180Umidade e temperatura

No myWeather, será o AM2302 da Aosong Electronics que nos fornecerá informações sobre a umidade relativa do ar e a temperatura ambiente, com precisão de 2% e 0,5ºC, respectivamente:

dht22

Luminosidade

Para medir a luz ambiente, o sensor escolhido foi o Rohm BH1750:

bh1750Precipitação pluviométrica e velocidade do vento

Finalmente, para se mensurar o índice de precipitação e a velocidade do vento selecionamos um pluviômetro e um anemômetro dentre os diversos disponíveis no mercado:

anemometro

pluviometro

 

 

Software/Firmware:

Interface com o usuário:

Já temos uma interface com usuário em fase beta, ou seja, ainda temos bugs 🙂 . Mas o legal é que ele aplica o conceito de progressive apps [1]  o que torna o nosso site um app! Teste ele no seu navegador desktop e do smartphone. Queremos sugestões e opiniões sobre o que já foi feito. Logo logo mais novidades. Acesse myWeather

alpha_image

Falando com o Mundo:

Nossa estação já esta balbuciando algumas palavras! ? E o melhor esta sendo ouvida. Ela esta dizendo algo do tipo:

{
  "_id": {
    "$oid": "57e722d1473a802218a8918f"
  },
  "_etag": {
    "$oid": "57e722d1225e1053e5117210"
  },
  "temp": 33625,
  "coord": [
    {
      "lat": -23.8941901,
      "log": -46.4213524
    }
  ],
  "_type": "DOCUMENT"
}

Meio estranho não é? Mas eu garanto que isso já é um grande passo para a nossa proposta. Logo mais ela vai ganhar mais fluência, o que vai garantir um serviço mais relevante para você!

Referências:

[1] Progressive app. url: https://developers.google.com/web/progressive-web-apps/

[2] Banco de dados. url: https://docs.mongodb.com/

[3] Rest API. url: http://restheart.org/

[4] NGINX . url: https://www.nginx.com/

[5] Node.js. url: https://nodejs.org/en/

[6] Let’s encrypt. url: https://letsencrypt.org/