From f93ba9ba8b9de0b5bacf70d780004fc568510a54 Mon Sep 17 00:00:00 2001 From: Jose Date: Fri, 11 Apr 2025 09:24:51 +0200 Subject: [PATCH] mqtt me la pela --- hardware/include/MqttClient.hpp | 2 ++ hardware/include/mqtt.hpp | 2 -- hardware/src/MqttClient.cpp | 62 ++++++++++++++++++++++++++++++++- hardware/src/mqtt.cpp | 61 -------------------------------- 4 files changed, 63 insertions(+), 64 deletions(-) delete mode 100644 hardware/include/mqtt.hpp delete mode 100644 hardware/src/mqtt.cpp diff --git a/hardware/include/MqttClient.hpp b/hardware/include/MqttClient.hpp index e69de29..0903615 100644 --- a/hardware/include/MqttClient.hpp +++ b/hardware/include/MqttClient.hpp @@ -0,0 +1,2 @@ +#include +#include \ No newline at end of file diff --git a/hardware/include/mqtt.hpp b/hardware/include/mqtt.hpp deleted file mode 100644 index 0903615..0000000 --- a/hardware/include/mqtt.hpp +++ /dev/null @@ -1,2 +0,0 @@ -#include -#include \ No newline at end of file diff --git a/hardware/src/MqttClient.cpp b/hardware/src/MqttClient.cpp index c09ca64..c6a6c79 100644 --- a/hardware/src/MqttClient.cpp +++ b/hardware/src/MqttClient.cpp @@ -1 +1,61 @@ -#include "MqttClient.hpp" \ No newline at end of file +#include "mqtt.hpp" + +// MQTT configuration +WiFiClient espClient; +PubSubClient client(espClient); + +void OnMqttReceived(char *topic, byte *payload, unsigned int length) +{ + Serial.print("Received on "); + Serial.print(topic); + Serial.print(": "); + + String content = ""; + + for (size_t i = 0; i < length; i++) { + content.concat((char)payload[i]); + } + + Serial.print(content); + Serial.println(); +} + +void InitMqtt(const char * MQTTServerAddress, uint16_t MQTTServerPort) +{ + client.setServer(MQTTServerAddress, MQTTServerPort); + client.setCallback(OnMqttReceived); +} + +// conecta o reconecta al MQTT +// consigue conectar -> suscribe a topic y publica un mensaje +// no -> espera 5 segundos +void ConnectMqtt(const char * MQTTClientName) +{ + Serial.print("Starting MQTT connection..."); + if (client.connect(MQTTClientName)) + { + client.subscribe("hello/world"); + client.publish("hello/world", "connected"); + } + else + { + Serial.print("Failed MQTT connection, rc="); + Serial.print(client.state()); + Serial.println(" try again in 5 seconds"); + + delay(5000); + } +} + +// gestiona la comunicación MQTT +// comprueba que el cliente está conectado +// no -> intenta reconectar +// si -> llama al MQTT loop +void HandleMqtt(const char * MQTTClientName) +{ + if (!client.connected()) + { + ConnectMqtt(MQTTClientName); + } + client.loop(); +} diff --git a/hardware/src/mqtt.cpp b/hardware/src/mqtt.cpp deleted file mode 100644 index c6a6c79..0000000 --- a/hardware/src/mqtt.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "mqtt.hpp" - -// MQTT configuration -WiFiClient espClient; -PubSubClient client(espClient); - -void OnMqttReceived(char *topic, byte *payload, unsigned int length) -{ - Serial.print("Received on "); - Serial.print(topic); - Serial.print(": "); - - String content = ""; - - for (size_t i = 0; i < length; i++) { - content.concat((char)payload[i]); - } - - Serial.print(content); - Serial.println(); -} - -void InitMqtt(const char * MQTTServerAddress, uint16_t MQTTServerPort) -{ - client.setServer(MQTTServerAddress, MQTTServerPort); - client.setCallback(OnMqttReceived); -} - -// conecta o reconecta al MQTT -// consigue conectar -> suscribe a topic y publica un mensaje -// no -> espera 5 segundos -void ConnectMqtt(const char * MQTTClientName) -{ - Serial.print("Starting MQTT connection..."); - if (client.connect(MQTTClientName)) - { - client.subscribe("hello/world"); - client.publish("hello/world", "connected"); - } - else - { - Serial.print("Failed MQTT connection, rc="); - Serial.print(client.state()); - Serial.println(" try again in 5 seconds"); - - delay(5000); - } -} - -// gestiona la comunicación MQTT -// comprueba que el cliente está conectado -// no -> intenta reconectar -// si -> llama al MQTT loop -void HandleMqtt(const char * MQTTClientName) -{ - if (!client.connected()) - { - ConnectMqtt(MQTTClientName); - } - client.loop(); -}