From 51db1583542abf700b11c76400e99831705e4d23 Mon Sep 17 00:00:00 2001 From: Jose Date: Fri, 25 Apr 2025 22:29:57 +0200 Subject: [PATCH] Add hardware support for GPS, MAX7219, BME280, and MQ7 sensors - Implemented GPS functionality with initialization and reading latitude and longitude. - Added MAX7219 display support, including initialization, text display, animation control, and brightness settings. - Integrated BME280 sensor for reading temperature, pressure, and humidity. - Developed MQ7 sensor interface for reading gas concentration values. - Created HTTP client for GET and POST requests. - Implemented MQTT client for message handling and connection management. - Added JSON serialization and deserialization functions for sensor and actuator data. - Established WiFi connection setup for network communication. --- hardware/.vscode/settings.json | 11 +- hardware/docs/MAX7219.PDF | Bin 0 -> 189267 bytes hardware/include/BME280.hpp | 3 +- hardware/include/GPS.hpp | 7 + hardware/include/MAX7219.hpp | 17 + hardware/include/MQ7.hpp | 2 +- hardware/include/main.hpp | 14 +- hardware/platformio.ini | 3 + hardware/src/BME280.cpp | 24 -- hardware/src/lib/actuator/MAX7219.cpp | 35 ++ hardware/src/{ => lib/http}/JsonTools.cpp | 356 +++++++++--------- hardware/src/{ => lib/http}/RestClient.cpp | 53 +-- hardware/src/{ => lib/inet}/MqttClient.cpp | 0 .../src/{ => lib/inet}/WifiConnection.cpp | 66 ++-- hardware/src/lib/sensor/BME280.cpp | 34 ++ hardware/src/lib/sensor/GPS.cpp | 22 ++ hardware/src/{ => lib/sensor}/MQ7.cpp | 2 +- hardware/src/main.cpp | 95 +++-- 18 files changed, 441 insertions(+), 303 deletions(-) create mode 100644 hardware/docs/MAX7219.PDF create mode 100644 hardware/include/GPS.hpp create mode 100644 hardware/include/MAX7219.hpp delete mode 100644 hardware/src/BME280.cpp create mode 100644 hardware/src/lib/actuator/MAX7219.cpp rename hardware/src/{ => lib/http}/JsonTools.cpp (96%) rename hardware/src/{ => lib/http}/RestClient.cpp (73%) rename hardware/src/{ => lib/inet}/MqttClient.cpp (100%) rename hardware/src/{ => lib/inet}/WifiConnection.cpp (94%) create mode 100644 hardware/src/lib/sensor/BME280.cpp create mode 100644 hardware/src/lib/sensor/GPS.cpp rename hardware/src/{ => lib/sensor}/MQ7.cpp (99%) diff --git a/hardware/.vscode/settings.json b/hardware/.vscode/settings.json index 977f71d..18d3f86 100644 --- a/hardware/.vscode/settings.json +++ b/hardware/.vscode/settings.json @@ -7,10 +7,17 @@ "functional": "cpp", "tuple": "cpp", "utility": "cpp", - "bmp280.h": "c" + "bmp280.h": "c", + "deque": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "vector": "cpp", + "string_view": "cpp", + "initializer_list": "cpp" }, "github.copilot.enable": { - "*": false, + "*": true, "plaintext": false, "markdown": false, "scminput": false, diff --git a/hardware/docs/MAX7219.PDF b/hardware/docs/MAX7219.PDF new file mode 100644 index 0000000000000000000000000000000000000000..7d8611c1d7782035e2e0b51f8126ffe872053ae4 GIT binary patch literal 189267 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 L4T4WU5WW8cdrtcl literal 0 HcmV?d00001 diff --git a/hardware/include/BME280.hpp b/hardware/include/BME280.hpp index 12ebfee..38efd2d 100644 --- a/hardware/include/BME280.hpp +++ b/hardware/include/BME280.hpp @@ -1,7 +1,8 @@ #include #include -#define I2C_BMP280_ADDRESS 0x76 +#define I2C_BME280_ADDRESS 0x76 void BME280_Init(); +bool BME280_DataReady(); bool BME280_Read(float &pressure, float &temperature, float &humidity); \ No newline at end of file diff --git a/hardware/include/GPS.hpp b/hardware/include/GPS.hpp new file mode 100644 index 0000000..91ca80e --- /dev/null +++ b/hardware/include/GPS.hpp @@ -0,0 +1,7 @@ +#include "TinyGPSPlus.h" + +#define RX 4 +#define TX 5 + +void GPS_Init(); +void GPS_Read(float &lat, float &lon); \ No newline at end of file diff --git a/hardware/include/MAX7219.hpp b/hardware/include/MAX7219.hpp new file mode 100644 index 0000000..c182911 --- /dev/null +++ b/hardware/include/MAX7219.hpp @@ -0,0 +1,17 @@ +#include +#include +#include + +#define HARDWARE_TYPE MD_MAX72XX::FC16_HW +#define MAX_DEVICES 4 // 4 modulos 8x8 + +#define DATA_PIN 19 +#define CS_PIN 18 +#define CLK_PIN 17 + +void MAX7219_Init(); +void MAX7219_DisplayText(const char *text, textPosition_t align, int speed, int pause); +void MAX7219_StartAnimation(); +void MAX7219_StopAnimation(); +void MAX7219_ClearDisplay(); +void MAX7219_SetBrightness(uint8_t brightness); \ No newline at end of file diff --git a/hardware/include/MQ7.hpp b/hardware/include/MQ7.hpp index 8953d66..bc4fba6 100644 --- a/hardware/include/MQ7.hpp +++ b/hardware/include/MQ7.hpp @@ -4,4 +4,4 @@ #define DIGITAL_MQ7 32 void MQ7_Init(); -void MQ7_Read(); \ No newline at end of file +void MQ7_Read(float &sensorVolt, float &RSAir, float &R0, float &sensorValue); \ No newline at end of file diff --git a/hardware/include/main.hpp b/hardware/include/main.hpp index 808178f..71a20b0 100644 --- a/hardware/include/main.hpp +++ b/hardware/include/main.hpp @@ -1,8 +1,7 @@ #include -#define LED 2 -#define SERVER_IP "192.168.1.178" -#define REST_PORT 80 +#define SERVER_IP "https://contaminus.miarma.net/api/v1/" +#define REST_PORT 443 #define MQTT_PORT 1883 #include "JsonTools.hpp" @@ -10,5 +9,12 @@ #include "WifiConnection.hpp" #include "MqttClient.hpp" #include "BME280.hpp" +#include "GPS.hpp" +#include "MAX7219.hpp" +#include "MQ7.hpp" -uint32_t getChipID(); \ No newline at end of file +uint32_t getChipID(); +void prettyReadMQ7(); +void prettyReadBME280(); +void prettyReadGPS(); +void testMatrix(); \ No newline at end of file diff --git a/hardware/platformio.ini b/hardware/platformio.ini index 47a0b97..bfae34c 100644 --- a/hardware/platformio.ini +++ b/hardware/platformio.ini @@ -12,8 +12,11 @@ platform = espressif32 board = esp32dev framework = arduino +upload_port = COM3 lib_deps = knolleary/PubSubClient@^2.8 mikalhart/TinyGPSPlus@^1.0.2 bblanchon/ArduinoJson@^6.17.3 finitespace/BME280@^3.0.0 + majicdesigns/MD_MAX72XX@^3.5.1 + majicdesigns/MD_Parola@^3.7.3 diff --git a/hardware/src/BME280.cpp b/hardware/src/BME280.cpp deleted file mode 100644 index f6f8fb4..0000000 --- a/hardware/src/BME280.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "BME280.hpp" - -BME280I2C bme; - -void BME280_Init() -{ - Wire.setPins(21, 22); - Wire.begin(); - while(!bme.begin()) - { - Serial.println("Could not find BME280 sensor!"); - delay(1000); - } -} - -bool BME280_Read(float &pressure, float &temperature, float &humidity) -{ - BME280::TempUnit tempUnit(BME280::TempUnit_Celsius); - BME280::PresUnit presUnit(BME280::PresUnit_Pa); - bme.read(pressure, temperature, humidity, tempUnit, presUnit); - - return (temperature != 0.0f && pressure != 0.0f); -} - diff --git a/hardware/src/lib/actuator/MAX7219.cpp b/hardware/src/lib/actuator/MAX7219.cpp new file mode 100644 index 0000000..55be534 --- /dev/null +++ b/hardware/src/lib/actuator/MAX7219.cpp @@ -0,0 +1,35 @@ +#include "MAX7219.hpp" + +MD_Parola display = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES); + +void MAX7219_Init() +{ + display.begin(); + display.setIntensity(1); // 0-15 + display.displayClear(); +} + +void MAX7219_DisplayText(const char *text, textPosition_t align, int speed, int pause) +{ + display.displayText(text, align, speed, pause, PA_SCROLL_LEFT, PA_SCROLL_LEFT); +} + +void MAX7219_StartAnimation() +{ + display.displayAnimate(); +} + +void MAX7219_StopAnimation() +{ + display.displayReset(); +} + +void MAX7219_ClearDisplay() +{ + display.displayClear(); +} + +void MAX7219_SetBrightness(uint8_t brightness) +{ + display.setIntensity(brightness); +} \ No newline at end of file diff --git a/hardware/src/JsonTools.cpp b/hardware/src/lib/http/JsonTools.cpp similarity index 96% rename from hardware/src/JsonTools.cpp rename to hardware/src/lib/http/JsonTools.cpp index 02b7989..e992e23 100644 --- a/hardware/src/JsonTools.cpp +++ b/hardware/src/lib/http/JsonTools.cpp @@ -1,179 +1,179 @@ -#include "JsonTools.hpp" - -String serializeSensorValue(int sensorId, int deviceId, String sensorType, String unit, int sensorStatus, float temperature, float humidity, float carbonMonoxide, float lat, float lon, long timestamp) -{ - DynamicJsonDocument doc(2048); - - doc["sensorId"] = sensorId; - doc["deviceId"] = deviceId; - doc["sensorType"] = sensorType; - doc["unit"] = unit; - doc["sesnsorStatuts"] = sensorStatus; - doc["temperature"] = temperature; - doc["humidity"] = humidity; - doc["carbonMonoxide"] = carbonMonoxide; - doc["lat"] = lat; - doc["lon"] = lon; - doc["timestamp"] = timestamp; - - String output; - serializeJson(doc, output); - Serial.println(output); - - return output; -} - -String serializeActuatorStatus (int actuatorId, int deviceId, int status, long timestamp) -{ - DynamicJsonDocument doc(2048); - - doc["actuatorId"] = actuatorId; - doc["deviceId"] = deviceId; - doc["status"] = status; - doc["timestamp"] = timestamp; - - String output; - serializeJson(doc, output); - Serial.println(output); - - return output; -} - -String serializeDevice(int sensorId, int deviceId, String sensorType, int status, long timestamp) -{ - DynamicJsonDocument doc(2048); - - doc["sensorId"] = sensorId; - doc["deviceId"] = deviceId; - doc["sensorType"] = sensorType; - doc["status"] = status; - doc["timestamp"] = timestamp; - - String output; - serializeJson(doc, output); - Serial.println(output); - - return output; -} - -void deserializeSensorValue (HTTPClient &http, int httpResponseCode) -{ - - if (httpResponseCode > 0) - { - Serial.print("HTTP Response code: "); - Serial.println(httpResponseCode); - String responseJson = http.getString(); - DynamicJsonDocument doc(ESP.getMaxAllocHeap()); - DeserializationError error = deserializeJson(doc, responseJson); - - if (error) - { - Serial.print(F("deserializeJson() failed: ")); - Serial.println(error.f_str()); - return; - } - - JsonArray array = doc.as(); - for (JsonObject sensor : array) - { - int sensorId = sensor["sensorId"]; - int deviceId = sensor["deviceId"]; - String sensorType = sensor["sensorType"]; - String unit = sensor["unit"]; - int sesnsorStatuts = sensor["sesnsorStatuts"]; - float temperature = sensor["temperature"]; - float humidity = sensor["humidity"]; - float carbonMonoxide = sensor["carbonMonoxide"]; - float lat = sensor["lat"]; - float lon = sensor["lon"]; - long timestamp = sensor["timestamp"]; - - Serial.println(("Sensor deserialized: [sensorId: " + String(sensorId) + ", deviceId: " + String(deviceId) + ", sensorType: " + sensorType + ", unit: " + unit +", sesnsorStatuts: " + String(sesnsorStatuts) +", temperature: " + String(temperature) +", humidity: " + String(humidity) +", carbonMonoxide: " + String(carbonMonoxide) +", lat: " + String(lat) +", lon: " + String(lon) +", timestamp: " + String(timestamp) + "]").c_str()); - } - } - else - { - Serial.print("Error code: "); - Serial.println(httpResponseCode); - } -} - -void deserializeActuatorStatus (HTTPClient &http, int httpResponseCode) -{ - - if (httpResponseCode > 0) - { - Serial.print("HTTP Response code: "); - Serial.println(httpResponseCode); - String responseJson = http.getString(); - DynamicJsonDocument doc(ESP.getMaxAllocHeap()); - DeserializationError error = deserializeJson(doc, responseJson); - - if (error) - { - Serial.print(F("deserializeJson() failed: ")); - Serial.println(error.f_str()); - return; - } - - JsonArray array = doc.as(); - for (JsonObject actuator : array) - { - int actuadorId = actuator["actuadorId"]; - int deviceId = actuator["deviceId"]; - int statuts = actuator["statuts"]; - long timestamp = actuator["timestamp"]; - - Serial.println(("Actuador deserialized: [actuadorId: " + String(actuadorId) + - ", deviceId: " + String(deviceId) + - ", statuts: " + String(statuts) + - ", timestamp: " + String(timestamp) + "]").c_str()); - } - } - else - { - Serial.print("Error code: "); - Serial.println(httpResponseCode); - } -} - -void deserializeDevice (HTTPClient &http, int httpResponseCode) -{ - - if (httpResponseCode > 0) - { - Serial.print("HTTP Response code: "); - Serial.println(httpResponseCode); - String responseJson = http.getString(); - DynamicJsonDocument doc(ESP.getMaxAllocHeap()); - DeserializationError error = deserializeJson(doc, responseJson); - - if (error) - { - Serial.print(F("deserializeJson() failed: ")); - Serial.println(error.f_str()); - return; - } - - JsonArray array = doc.as(); - for (JsonObject device : array) - { - int sensorId = device["sensorId"]; - int deviceId = device["deviceId"]; - String sensorType = device["sensorType"]; - long timestamp = device["timestamp"]; - - Serial.println(("Sensor deserialized: [sensorId: " + String(sensorId) + - ", deviceId: " + String(deviceId) + - ", sensorType: " + sensorType + - ", timestamp: " + String(timestamp) + "]").c_str()); - - } - } - else - { - Serial.print("Error code: "); - Serial.println(httpResponseCode); - } +#include "JsonTools.hpp" + +String serializeSensorValue(int sensorId, int deviceId, String sensorType, String unit, int sensorStatus, float temperature, float humidity, float carbonMonoxide, float lat, float lon, long timestamp) +{ + DynamicJsonDocument doc(2048); + + doc["sensorId"] = sensorId; + doc["deviceId"] = deviceId; + doc["sensorType"] = sensorType; + doc["unit"] = unit; + doc["sesnsorStatuts"] = sensorStatus; + doc["temperature"] = temperature; + doc["humidity"] = humidity; + doc["carbonMonoxide"] = carbonMonoxide; + doc["lat"] = lat; + doc["lon"] = lon; + doc["timestamp"] = timestamp; + + String output; + serializeJson(doc, output); + Serial.println(output); + + return output; +} + +String serializeActuatorStatus (int actuatorId, int deviceId, int status, long timestamp) +{ + DynamicJsonDocument doc(2048); + + doc["actuatorId"] = actuatorId; + doc["deviceId"] = deviceId; + doc["status"] = status; + doc["timestamp"] = timestamp; + + String output; + serializeJson(doc, output); + Serial.println(output); + + return output; +} + +String serializeDevice(int sensorId, int deviceId, String sensorType, int status, long timestamp) +{ + DynamicJsonDocument doc(2048); + + doc["sensorId"] = sensorId; + doc["deviceId"] = deviceId; + doc["sensorType"] = sensorType; + doc["status"] = status; + doc["timestamp"] = timestamp; + + String output; + serializeJson(doc, output); + Serial.println(output); + + return output; +} + +void deserializeSensorValue (HTTPClient &http, int httpResponseCode) +{ + + if (httpResponseCode > 0) + { + Serial.print("HTTP Response code: "); + Serial.println(httpResponseCode); + String responseJson = http.getString(); + DynamicJsonDocument doc(ESP.getMaxAllocHeap()); + DeserializationError error = deserializeJson(doc, responseJson); + + if (error) + { + Serial.print(F("deserializeJson() failed: ")); + Serial.println(error.f_str()); + return; + } + + JsonArray array = doc.as(); + for (JsonObject sensor : array) + { + int sensorId = sensor["sensorId"]; + int deviceId = sensor["deviceId"]; + String sensorType = sensor["sensorType"]; + String unit = sensor["unit"]; + int sesnsorStatuts = sensor["sesnsorStatuts"]; + float temperature = sensor["temperature"]; + float humidity = sensor["humidity"]; + float carbonMonoxide = sensor["carbonMonoxide"]; + float lat = sensor["lat"]; + float lon = sensor["lon"]; + long timestamp = sensor["timestamp"]; + + Serial.println(("Sensor deserialized: [sensorId: " + String(sensorId) + ", deviceId: " + String(deviceId) + ", sensorType: " + sensorType + ", unit: " + unit +", sesnsorStatuts: " + String(sesnsorStatuts) +", temperature: " + String(temperature) +", humidity: " + String(humidity) +", carbonMonoxide: " + String(carbonMonoxide) +", lat: " + String(lat) +", lon: " + String(lon) +", timestamp: " + String(timestamp) + "]").c_str()); + } + } + else + { + Serial.print("Error code: "); + Serial.println(httpResponseCode); + } +} + +void deserializeActuatorStatus (HTTPClient &http, int httpResponseCode) +{ + + if (httpResponseCode > 0) + { + Serial.print("HTTP Response code: "); + Serial.println(httpResponseCode); + String responseJson = http.getString(); + DynamicJsonDocument doc(ESP.getMaxAllocHeap()); + DeserializationError error = deserializeJson(doc, responseJson); + + if (error) + { + Serial.print(F("deserializeJson() failed: ")); + Serial.println(error.f_str()); + return; + } + + JsonArray array = doc.as(); + for (JsonObject actuator : array) + { + int actuadorId = actuator["actuadorId"]; + int deviceId = actuator["deviceId"]; + int statuts = actuator["statuts"]; + long timestamp = actuator["timestamp"]; + + Serial.println(("Actuador deserialized: [actuadorId: " + String(actuadorId) + + ", deviceId: " + String(deviceId) + + ", statuts: " + String(statuts) + + ", timestamp: " + String(timestamp) + "]").c_str()); + } + } + else + { + Serial.print("Error code: "); + Serial.println(httpResponseCode); + } +} + +void deserializeDevice (HTTPClient &http, int httpResponseCode) +{ + + if (httpResponseCode > 0) + { + Serial.print("HTTP Response code: "); + Serial.println(httpResponseCode); + String responseJson = http.getString(); + DynamicJsonDocument doc(ESP.getMaxAllocHeap()); + DeserializationError error = deserializeJson(doc, responseJson); + + if (error) + { + Serial.print(F("deserializeJson() failed: ")); + Serial.println(error.f_str()); + return; + } + + JsonArray array = doc.as(); + for (JsonObject device : array) + { + int sensorId = device["sensorId"]; + int deviceId = device["deviceId"]; + String sensorType = device["sensorType"]; + long timestamp = device["timestamp"]; + + Serial.println(("Sensor deserialized: [sensorId: " + String(sensorId) + + ", deviceId: " + String(deviceId) + + ", sensorType: " + sensorType + + ", timestamp: " + String(timestamp) + "]").c_str()); + + } + } + else + { + Serial.print("Error code: "); + Serial.println(httpResponseCode); + } } \ No newline at end of file diff --git a/hardware/src/RestClient.cpp b/hardware/src/lib/http/RestClient.cpp similarity index 73% rename from hardware/src/RestClient.cpp rename to hardware/src/lib/http/RestClient.cpp index 171b041..2ef4778 100644 --- a/hardware/src/RestClient.cpp +++ b/hardware/src/lib/http/RestClient.cpp @@ -1,27 +1,28 @@ -#include "RestClient.hpp" - - -void getRequest(HTTPClient &httpClient, const String url, String &response) -{ - httpClient.begin(url); - int httpCode = httpClient.GET(); - if (httpCode > 0) { - response = httpClient.getString(); - } else { - response = "Error: " + String(httpCode); - } - httpClient.end(); -} - -void postRequest(HTTPClient &httpClient, const String url, String &payload, String &response) -{ - httpClient.begin(url); - httpClient.addHeader("Content-Type", "application/json"); - int httpCode = httpClient.POST(payload); - if (httpCode > 0) { - response = httpClient.getString(); - } else { - response = "Error: " + String(httpCode); - } - httpClient.end(); +#include "RestClient.hpp" + +HTTPClient httpClient; // HTTP client object + +void getRequest(const String url, String &response) +{ + httpClient.begin(url); + int httpCode = httpClient.GET(); + if (httpCode > 0) { + response = httpClient.getString(); + } else { + response = "Error: " + String(httpCode); + } + httpClient.end(); +} + +void postRequest(const String url, String &payload, String &response) +{ + httpClient.begin(url); + httpClient.addHeader("Content-Type", "application/json"); + int httpCode = httpClient.POST(payload); + if (httpCode > 0) { + response = httpClient.getString(); + } else { + response = "Error: " + String(httpCode); + } + httpClient.end(); } \ No newline at end of file diff --git a/hardware/src/MqttClient.cpp b/hardware/src/lib/inet/MqttClient.cpp similarity index 100% rename from hardware/src/MqttClient.cpp rename to hardware/src/lib/inet/MqttClient.cpp diff --git a/hardware/src/WifiConnection.cpp b/hardware/src/lib/inet/WifiConnection.cpp similarity index 94% rename from hardware/src/WifiConnection.cpp rename to hardware/src/lib/inet/WifiConnection.cpp index accbbad..4b0cfc1 100644 --- a/hardware/src/WifiConnection.cpp +++ b/hardware/src/lib/inet/WifiConnection.cpp @@ -1,33 +1,33 @@ -#include - -WiFiClient wifiClient; - -int setupWifi() -{ - Serial.println(); - Serial.print("Connecting to "); - Serial.println(SSID); - WiFi.mode(WIFI_STA); - WiFi.begin(SSID, PASSWORD); - - while (WiFi.status() != WL_CONNECTED) - { - delay(500); - Serial.print("."); - } - - Serial.println(""); - Serial.println("WiFi connected"); - Serial.println("IP address: "); - Serial.println(WiFi.localIP()); - Serial.println("Setup!"); - - if(WiFi.status() == WL_CONNECTED) - { - return 0; - } - else - { - return 1; - } -} +#include + +WiFiClient wifiClient; + +int setupWifi() +{ + Serial.println(); + Serial.print("Connecting to "); + Serial.println(SSID); + WiFi.mode(WIFI_STA); + WiFi.begin(SSID, PASSWORD); + + while (WiFi.status() != WL_CONNECTED) + { + delay(500); + Serial.print("."); + } + + Serial.println(""); + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + Serial.println("Setup!"); + + if(WiFi.status() == WL_CONNECTED) + { + return 0; + } + else + { + return 1; + } +} diff --git a/hardware/src/lib/sensor/BME280.cpp b/hardware/src/lib/sensor/BME280.cpp new file mode 100644 index 0000000..05402d3 --- /dev/null +++ b/hardware/src/lib/sensor/BME280.cpp @@ -0,0 +1,34 @@ +#include "BME280.hpp" + +BME280I2C bme; + +void BME280_Init() +{ + Wire.setPins(21, 22); + Wire.begin(); + + BME280I2C::Settings settings( + BME280I2C::OSR::OSR_X1, + BME280I2C::OSR::OSR_X1, + BME280I2C::OSR::OSR_X1, + BME280I2C::Mode::Mode_Forced, // modo forzado + BME280I2C::StandbyTime::StandbyTime_1000ms, + BME280I2C::Filter::Filter_16, + BME280I2C::SpiEnable::SpiEnable_False, + BME280I2C::I2CAddr::I2CAddr_0x76 // dirección I2C del BME280 + ); + + bme.setSettings(settings); + + while (!bme.begin()); +} + +bool BME280_Read(float &pressure, float &temperature, float &humidity) +{ + BME280::TempUnit tempUnit(BME280::TempUnit_Celsius); + BME280::PresUnit presUnit(BME280::PresUnit_Pa); + bme.read(pressure, temperature, humidity, tempUnit, presUnit); + + return (temperature != 0.0f && pressure != 0.0f); +} + diff --git a/hardware/src/lib/sensor/GPS.cpp b/hardware/src/lib/sensor/GPS.cpp new file mode 100644 index 0000000..51bf9c1 --- /dev/null +++ b/hardware/src/lib/sensor/GPS.cpp @@ -0,0 +1,22 @@ +#include "GPS.hpp" + +TinyGPSPlus gps; + +void GPS_Init() +{ + Serial.begin(9600); +} + +void GPS_Read(float &lat, float &lon) +{ + if (gps.location.isValid()) + { + lat = gps.location.lat(); + lon = gps.location.lng(); + } + else + { + lat = 0.0f; + lon = 0.0f; + } +} \ No newline at end of file diff --git a/hardware/src/MQ7.cpp b/hardware/src/lib/sensor/MQ7.cpp similarity index 99% rename from hardware/src/MQ7.cpp rename to hardware/src/lib/sensor/MQ7.cpp index f7fbbe0..8739ab2 100644 --- a/hardware/src/MQ7.cpp +++ b/hardware/src/lib/sensor/MQ7.cpp @@ -1,5 +1,5 @@ #include "MQ7.hpp" - + void MQ7_Init() { pinMode(DIGITAL_MQ7, INPUT); diff --git a/hardware/src/main.cpp b/hardware/src/main.cpp index a05802e..ce3f445 100644 --- a/hardware/src/main.cpp +++ b/hardware/src/main.cpp @@ -2,17 +2,70 @@ const uint32_t deviceId = getChipID(); -// instances -HTTPClient httpClient; +extern HTTPClient httpClient; // HTTP client object +String response; // HTTP Response +float sensorVolt, sensorValue, RSAir, R0; // MQ7 vars +float temperature, pressure, humidity; // BME280 vars +float lon, lat; // GPS vars +extern MD_Parola display; // Display object -// HTTP Request -String response; +void setup() +{ + Serial.begin(9600); -// MQ7 -float sensorVolt, sensorValue, RSAir, R0; + Serial.println("Iniciando..."); + MQ7_Init(); + Serial.println("Sensor MQ7 inicializado"); + BME280_Init(); + Serial.println("Sensor BME280 inicializado"); + GPS_Init(); + Serial.println("GPS inicializado"); + MAX7219_Init(); + Serial.println("Display inicializado"); -// BMP280 -float temperature, pressure, altitude; + prettyReadBME280(); + prettyReadMQ7(); + testMatrix(); +} + +void loop() +{ + +} + +void prettyReadMQ7() +{ + Serial.println("Leyendo sensor MQ7..."); + MQ7_Read(sensorVolt, RSAir, R0, sensorValue); + Serial.print("\t - Voltaje: "); Serial.print(sensorVolt); Serial.print("V\r\n"); + Serial.print("\t - Valor sensor: "); Serial.print(sensorValue); Serial.print("\r\n"); + Serial.print("\t - Resistencia aire: "); Serial.print(RSAir); Serial.print("kOhm\r\n"); + Serial.print("\t - Resistencia aire: "); Serial.print(R0); Serial.print("kOhm\r\n"); + Serial.print("\t - Concentración CO: "); Serial.print(sensorValue); Serial.print("ppm\r\n"); +} + +void prettyReadBME280() +{ + Serial.println("Leyendo sensor BME280..."); + BME280_Read(pressure, temperature, humidity); + Serial.print("\t - Presión: "); Serial.print(pressure/100); Serial.print("hPa\r\n"); + Serial.print("\t - Temperatura: "); Serial.print(temperature); Serial.print("°C\r\n"); + Serial.print("\t - Humedad: "); Serial.print(humidity); Serial.print("%\r\n"); +} + +void prettyReadGPS() +{ + Serial.println("Leyendo GPS..."); + GPS_Read(lat, lon); + Serial.print("\t - Latitud: "); Serial.print(lat); Serial.print("\r\n"); + Serial.print("\t - Longitud: "); Serial.print(lon); Serial.print("\r\n"); +} + +void testMatrix() +{ + Serial.println("Escribiendo en el display..."); + MAX7219_DisplayText("Prueba de texto", PA_LEFT, 100, 500); +} uint32_t getChipID() { @@ -22,28 +75,4 @@ uint32_t getChipID() chipId |= ((ESP.getEfuseMac() >> (40 - i)) & 0xff) << i; } return chipId; -} - -void setup() -{ - Serial.begin(9600); - - /*// WiFi Connection - if(setupWifi() != 0) - { - Serial.print("Error connecting to WiFi"); - } - - // test get - getRequest(httpClient, "http://172.20.10.7:8082/api/v1/sensors/1/values", response); - deserializeSensorValue(httpClient, httpClient.GET()); */ - - BME280_Init(); - -} - -void loop() -{ - Serial.println(temperature); - Serial.println(pressure); -} +} \ No newline at end of file