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/main.hpp b/hardware/include/main.hpp index 6d06a4a..f556608 100644 --- a/hardware/include/main.hpp +++ b/hardware/include/main.hpp @@ -1,3 +1,17 @@ +<<<<<<< HEAD +#include + +#include "json.hpp" +#include "rest.hpp" +#include "wifi.hpp" +#include "test.hpp" +#include "mqtt.hpp" + +#define LED 2 +#define SERVER_IP "192.168.1.178" +#define REST_PORT 80 +#define MQTT_PORT 1883 +======= #include #include "JsonTools.hpp" @@ -5,4 +19,5 @@ #include "WifiConnection.hpp" #include "MqttClient.hpp" -uint32_t getChipID(); \ No newline at end of file +uint32_t getChipID(); +>>>>>>> main diff --git a/hardware/include/wifi.hpp b/hardware/include/wifi.hpp new file mode 100644 index 0000000..1d7a7f1 --- /dev/null +++ b/hardware/include/wifi.hpp @@ -0,0 +1,7 @@ +#include +#include + +#define SSID "Redmi Note 14 Pro 5G" +#define PASSWORD "aitv5949" + +int setup_wifi(); \ 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/rest.cpp b/hardware/src/rest.cpp new file mode 100644 index 0000000..bb9a35f --- /dev/null +++ b/hardware/src/rest.cpp @@ -0,0 +1,2 @@ +#include "rest.hpp" +