Serviço de recepção de dados para a aplicação Tupã.
- Pré requisitos
- Setup do ambiente de execução
- Rodando o serviço
- Formato do json recebido pelo MQTT
- Script de teste de envio de dados ao serviço
- Data Logger
- Setup do Data Logger
- Python
- Redis
- PostgreSQL
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
pip install -r ./requirements.txt
Copie o arquivo .env_sample e adapte os valores das variáveis de ambiente para seu ambiente de execução.
cp ./.env_sample ./.env
python ./src/main.py
{
"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.
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}")
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.
É 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.
- ArduinoJson É necessário instalar o ArduinoJson por Benoit Blanchon.
- ArduinoMqttClient É necessário instalar o ArduinoMqttClient por Arduino.
É 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).
Após realizar os processos acima, basta fazer upload do código do microprocessador para o mesmo.