Aqui você pode encontrar os módulos que compõem o projeto de estação meteorológica IoT de código aberto.
Cada base da estação meteorológica é composta pelos seguintes sensores:
- 🌡️ Temperatura: PT100 com conversor RTD (resistance-to-digital) MAX31685
- 💧 Umidade Relativa: HDC1080
- ☁️ Pressão atmosférica: BME680
- 🌬️ Direção e Intensidade do Vento: instrumentos de medição construídos manualmente com base no HMC5883L para uso como sensor de efeito hall
- ⚡ Tensão interna, da bateria e do painel solar: ADCs internos da placa
Todos os módulos foram desenvolvidos em MicroPython e procuram, na medida do possível, seguir o guia de padronização para facilitar contribuições, integração e entendimento do projeto. Mudanças no guia de padronização podem ser feitas para melhorias ou caso alguma particularidade de um sensor específico não seja contemplada. O código final integra todos os sensores.
Através do protocolo LoRaWAN, a estações meteorológicas enviam em intervalos regulares as medições efetuadas para a estação base.
Por ter uma estrutura modular, o projeto permite que instrumentos de medição sejam facilmente adicionados, substituídos ou removidos. Até mesmo o protocolo de comunicação pode ser substituído.
A API foi desenvolvida em NodeJS com TypeScript e utiliza o banco de dados MongoDB. Está hospedada no serviço Render no endereço https://owi-server.onrender.com. Atualizações no repositório da API são automaticamente refletidas no Render dentro de alguns minutos.
Foram desenvolvidos alguns exemplos de utilização dos dados disponibilizados pela API em R e Python.
Está disponível um dashboard no Grafana (link privado para a organização, link público) que consome os dados da API através de uma conexão websocket. No momento da escrita, 14 dez 2022, ainda não é suportado o data source "WebSocket API" em dashboards públicos, logo, não exibirá nenhum dado no link público.
🎓 Este projeto foi desenvolvido durante a disciplina Laboratório Experimental do Campus Inteligente da UNICAMP, lecionada pelo professor @fruett.