Skip to content

Grupo-Syntax-Squad/Tupan-Consumer

Repository files navigation

Tupã Consumer

Serviço de recepção de dados para a aplicação Tupã.

Pré requisitos

  • Python
  • Redis
  • PostgreSQL

Setup do ambiente de execução

Criando e ativando o ambiente virtual (Opcional)

python -m venv .venv & ./.venv/Scripts/activate

Warning

É possível que a política de execução de scripts do Windows impossibilite a criação do ambiente virtual, caso aconteça segue o artigo sobre políticas de execução: https://learn.microsoft.com/pt-br/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.4

Instalando dependências

pip install -r ./requirements.txt

Variáveis de ambiente

Copie o arquivo .env_sample e adapte os valores das variáveis de ambiente para seu ambiente de execução.

cp ./.env_sample ./.env

Rodando o serviço

python ./src/main.py

Formato do json recebido pelo MQTT

{
    "mac": "123",
    "dados": {
        "temp": 40,
        "umid": 3
    },
    "timestamp": 1729399539.969931
}

Note

Vale ressaltar que as chaves dos dados variam de estação para estação, ou seja, nem sempre a temperatura vai ter uma chave chamada "temp", e haverá casos em que nem existirá temperatura.

Script de teste de envio de dados ao serviço

Caso surgir a necessidade de um envio de dados manual de teste esse script fará o envio utilizando todo o setup do serviço.

import paho.mqtt.publish as publish
from dotenv import load_dotenv
from os import getenv
from json import dumps
from datetime import datetime

load_dotenv()

TOPICO=getenv("TOPICO")
HOST=getenv("HOST_MQTT")
PORT=int(getenv("PORT_MQTT"))

mensagem = {
    "mac": "123",
    "data": {
        "temp": 40,
        "umid": 3
    },
    "timestamp": datetime.now().timestamp()
}

publish.single(
    topic=TOPICO,
    payload=dumps(mensagem),
    hostname=HOST,
    port=PORT
)

print(f"Mensagem publicada no tópico {TOPICO}: {mensagem}")

Data Logger

O Data Logger faz parte da estação, ele é o microprocessador que recebe as informações dos sensores e transmite via protocolo MQTT para o serviço Tupã Consumer que irá tratar e armazenar esses dados. Para o data logger foi utilizado o microprocessador ESP32.

Setup do Data Logger

Instalando dependências

É necessário instalar algumas dependências para a execução do código do microprocessador presente em ./esp

  • ESP32 no Boards Manager É necessário instalar os Boards do ESP32 feito por Espressif.

ESP32 no Boards Manager

  • ArduinoJson É necessário instalar o ArduinoJson por Benoit Blanchon.

ArduinoJson no Library Manager

  • ArduinoMqttClient É necessário instalar o ArduinoMqttClient por Arduino.

ArduinoMqttClient no Library Manager

Selecionar o Board e a Porta

É necessário selecionar o Board: ESP32 Dev Module e a Porta que aparecer após a conexão do microprocessador na máquina, na aba ferramentas (tools).

Selecionando o Board e a Porta em ferramentas

Upload do código no processador

Após realizar os processos acima, basta fazer upload do código do microprocessador para o mesmo. Fazendo upload do código para o microprocessador

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •