| Item | Detalhe |
|---|---|
| Disciplina | Disruptive Architectures: IOT, IOB & Generative AI |
| Professor | André Tritiack |
| Grupo | Arthur Thomas RM: 561061 |
| Data da Entrega | 03/11/2025 |
| Status | CONCLUÍDO COM SUCESSO |
| Arquivo/Link | Status | Descrição |
|---|---|---|
| Link do Vídeo | [https://youtu.be/oKUahJeDL2E] | Demonstração da comunicação (Wokwi -> Mosquitto -> Node-RED) em tempo real. |
integrantes.txt |
OK | Arquivo contendo os nomes completos dos membros. |
q4/src/main.cpp |
OK | Código final do ESP32 com credenciais e lógica de simulação. |
Implementar um sistema de comunicação IoT completo utilizando o protocolo MQTT. O sistema consiste em um dispositivo simulado (ESP32) enviando dados para um Broker em nuvem (Mosquitto na Azure), que é visualizado e processado em um dashboard (Node-RED).
Toda a infraestrutura de comunicação foi configurada em uma Máquina Virtual na Azure.
| Recurso | Detalhe |
|---|---|
| IP Público | 102.37.159.53 |
| Sistema Operacional | Ubuntu Server 20.04 LTS |
| Node-RED Acesso | http://102.37.159.53:1880 |
As seguintes portas foram liberadas no Grupo de Segurança de Rede (NSG):
- 22: SSH (Acesso)
- 1883: MQTT (Broker Mosquitto)
- 1880: Node-RED (Dashboard)
O Mosquitto Broker foi configurado para não permitir conexões anônimas, exigindo autenticação:
- Usuário MQTT:
arthur - Senha MQTT:
arthur
O código foi desenvolvido no ambiente PlatformIO/VS Code e simulado no Wokwi, utilizando a estrutura [env:q4] no platform.ini.
Apenas as dependências essenciais foram mantidas para o ambiente q4:
bblanchon/ArduinoJson: Para criar o payload JSON.knolleary/PubSubClient: Para gerenciar a comunicação MQTT.
O ESP32 simula a leitura de quatro variáveis, gerando valores aleatórios dentro dos limites exigidos, e publica o resultado no formato JSON a cada 5 segundos no tópico fiap/grupoA/sensor_data.
| Variável | Range de Simulação |
|---|---|
| Temperatura | 20°C a 35°C |
| Umidade | 40% a 80% |
| Pressão | 980 hPa a 1050 hPa |
| Altitude | 0 m a 500 m |
{"id":"FIAP-GrupoA", "temperatura":26.8, "umidade":67, "pressao":982, "altitude":318, "timestamp":8176}