diff --git a/hardware/include/JsonTools.hpp b/hardware/include/JsonTools.hpp index 2e07621..19786b4 100644 --- a/hardware/include/JsonTools.hpp +++ b/hardware/include/JsonTools.hpp @@ -2,10 +2,14 @@ #include #include +#if DEVICE_ROLE == SENSOR #include "BME280.hpp" #include "MQ7v2.hpp" #include "GPS.hpp" +#endif +#if DEVICE_ROLE == ACTUATOR #include "MAX7219.hpp" +#endif String serializeSensorValue( int groupId, @@ -17,4 +21,7 @@ String serializeSensorValue( const MQ7Data_t &mq7, const GPSData_t &gps); +#if DEVICE_ROLE == ACTUATOR MAX7219Status_t deserializeActuatorStatus(HTTPClient &http, int httpResponseCode); +#endif +int deserializeGroupId(HTTPClient &http, int httpResponseCode); \ No newline at end of file diff --git a/hardware/include/WifiConnection.hpp b/hardware/include/WifiConnection.hpp index ac204e0..35b1f7e 100644 --- a/hardware/include/WifiConnection.hpp +++ b/hardware/include/WifiConnection.hpp @@ -3,7 +3,7 @@ #include #include -#define SSID "iPhone de Jose" -#define WIFI_PASSWORD "bombardeenlaus" +#define SSID "DIGIFIBRA-D2ys" +#define WIFI_PASSWORD "4EEATsyTcZ" int WiFi_Init(); \ No newline at end of file diff --git a/hardware/include/globals.hpp b/hardware/include/globals.hpp index 6536edf..f3906d8 100644 --- a/hardware/include/globals.hpp +++ b/hardware/include/globals.hpp @@ -4,6 +4,7 @@ #define MQTT_URI "miarma.net" #define API_URI "https://contaminus.miarma.net/api/v1/" +#define RAW_API_URI "https://contaminus.miarma.net/api/raw/v1/" #define REST_PORT 443 #define MQTT_PORT 1883 diff --git a/hardware/src/lib/http/JsonTools.cpp b/hardware/src/lib/http/JsonTools.cpp index 7d8c2c9..efef83e 100644 --- a/hardware/src/lib/http/JsonTools.cpp +++ b/hardware/src/lib/http/JsonTools.cpp @@ -36,6 +36,7 @@ String serializeSensorValue( return output; } +#if DEVICE_ROLE == ACTUATOR MAX7219Status_t deserializeActuatorStatus(HTTPClient &http, int httpResponseCode) { if (httpResponseCode > 0) @@ -86,3 +87,30 @@ MAX7219Status_t deserializeActuatorStatus(HTTPClient &http, int httpResponseCode }; } } +#endif + +int deserializeGroupId(HTTPClient &http, int httpResponseCode) +{ + if (httpResponseCode > 0) + { +#ifdef DEBUG + Serial.print("HTTP Response code: "); + Serial.println(httpResponseCode); +#endif + String responseJson = http.getString(); + DynamicJsonDocument doc(ESP.getMaxAllocHeap()); + DeserializationError error = deserializeJson(doc, responseJson); + + if (error) + { +#ifdef DEBUG + Serial.print(F("deserializeJson() failed: ")); + Serial.println(error.f_str()); +#endif + return -1; + } + + return (int)doc["message"] | -1; + } + return -1; +} \ No newline at end of file diff --git a/hardware/src/main.cpp b/hardware/src/main.cpp index a2dbb93..028be4b 100644 --- a/hardware/src/main.cpp +++ b/hardware/src/main.cpp @@ -5,7 +5,8 @@ const String mqttId = "CUS-" + String(DEVICE_ID, HEX); int GROUP_ID; TaskTimer globalTimer{0, 10000}; -TaskTimer mqttTimer{0, 2500}; +TaskTimer mqttTimer{0, 5000}; +TaskTimer wifiTimer{0, 5000}; #if DEVICE_ROLE == ACTUATOR TaskTimer matrixTimer{0, 25}; @@ -32,7 +33,11 @@ void setup() Serial.println("Iniciando..."); #endif - WiFi_Init(); + while(WiFi_Init() != WL_CONNECTED) + { + Serial.println("Esperando conexión WiFi..."); + delay(1000); + } MQTT_Init(MQTT_URI, MQTT_PORT); try @@ -223,8 +228,7 @@ uint32_t getChipID() int getGroupId(int deviceId) { - String url = String(API_URI) + "groups/" + GROUP_ID + "/devices/" + String(DEVICE_ID, HEX) + "/actuators/" + MAX7219_ID + "/status"; + String url = String(RAW_API_URI) + "devices/" + String(DEVICE_ID, HEX) + "/my-group"; getRequest(url, response); - MAX7219Status_t statusData = deserializeActuatorStatus(httpClient, httpClient.GET()); - currentMessage = statusData.actuatorStatus; + return deserializeGroupId(httpClient, httpClient.GET()); } \ No newline at end of file