diff --git a/TP3/.vscode/c_cpp_properties.json b/TP3/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..909f28a --- /dev/null +++ b/TP3/.vscode/c_cpp_properties.json @@ -0,0 +1,58 @@ +// +// !!! WARNING !!! AUTO-GENERATED FILE! +// PLEASE DO NOT MODIFY IT AND USE "platformio.ini": +// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags +// +{ + "configurations": [ + { + "name": "PlatformIO", + "includePath": [ + "D:/UniverStudy/ML/AIoT-2025/TP3/src", + "D:/UniverStudy/ML/AIoT-2025/TP3/.pio/libdeps/uno/DHT sensor library", + "D:/UniverStudy/ML/AIoT-2025/TP3/.pio/libdeps/uno/Adafruit Unified Sensor", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/cores/arduino", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/variants/standard", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/HID/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/SPI/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/Wire/src", + "" + ], + "browse": { + "limitSymbolsToIncludedHeaders": true, + "path": [ + "D:/UniverStudy/ML/AIoT-2025/TP3/src", + "D:/UniverStudy/ML/AIoT-2025/TP3/.pio/libdeps/uno/DHT sensor library", + "D:/UniverStudy/ML/AIoT-2025/TP3/.pio/libdeps/uno/Adafruit Unified Sensor", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/cores/arduino", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/variants/standard", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/HID/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/SPI/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduino-avr/libraries/Wire/src", + "" + ] + }, + "defines": [ + "PLATFORMIO=60118", + "ARDUINO_AVR_UNO", + "F_CPU=16000000L", + "ARDUINO_ARCH_AVR", + "ARDUINO=10808", + "__AVR_ATmega328P__", + "" + ], + "cStandard": "gnu11", + "cppStandard": "gnu++11", + "compilerPath": "C:/Users/GHE.INFO/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe", + "compilerArgs": [ + "-mmcu=atmega328p", + "" + ] + } + ], + "version": 4 +} diff --git a/TP3/.vscode/extensions.json b/TP3/.vscode/extensions.json new file mode 100644 index 0000000..080e70d --- /dev/null +++ b/TP3/.vscode/extensions.json @@ -0,0 +1,10 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ], + "unwantedRecommendations": [ + "ms-vscode.cpptools-extension-pack" + ] +} diff --git a/TP3/.vscode/launch.json b/TP3/.vscode/launch.json new file mode 100644 index 0000000..e8a7f8e --- /dev/null +++ b/TP3/.vscode/launch.json @@ -0,0 +1,44 @@ +// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY +// +// PlatformIO Debugging Solution +// +// Documentation: https://docs.platformio.org/en/latest/plus/debugging.html +// Configuration: https://docs.platformio.org/en/latest/projectconf/sections/env/options/debug/index.html + +{ + "version": "0.2.0", + "configurations": [ + { + "type": "platformio-debug", + "request": "launch", + "name": "PIO Debug", + "executable": "D:/UniverStudy/ML/AIoT-2025/TP3/.pio/build/uno/firmware.elf", + "projectEnvName": "uno", + "toolchainBinDir": "C:/Users/GHE.INFO/.platformio/packages/toolchain-atmelavr/bin", + "internalConsoleOptions": "openOnSessionStart", + "preLaunchTask": { + "type": "PlatformIO", + "task": "Pre-Debug" + } + }, + { + "type": "platformio-debug", + "request": "launch", + "name": "PIO Debug (skip Pre-Debug)", + "executable": "D:/UniverStudy/ML/AIoT-2025/TP3/.pio/build/uno/firmware.elf", + "projectEnvName": "uno", + "toolchainBinDir": "C:/Users/GHE.INFO/.platformio/packages/toolchain-atmelavr/bin", + "internalConsoleOptions": "openOnSessionStart" + }, + { + "type": "platformio-debug", + "request": "launch", + "name": "PIO Debug (without uploading)", + "executable": "D:/UniverStudy/ML/AIoT-2025/TP3/.pio/build/uno/firmware.elf", + "projectEnvName": "uno", + "toolchainBinDir": "C:/Users/GHE.INFO/.platformio/packages/toolchain-atmelavr/bin", + "internalConsoleOptions": "openOnSessionStart", + "loadMode": "manual" + } + ] +} diff --git a/TP3/diagram.json b/TP3/diagram.json index bd1a0c4..44a50cb 100644 --- a/TP3/diagram.json +++ b/TP3/diagram.json @@ -1,50 +1,23 @@ { - "version": 1, - "author": "AIoT2025-TP3", - "editor": "wokwi", - "parts": [ - { - "type": "wokwi-arduino-uno", - "id": "uno", - "top": 0, - "left": 0, - "attrs": {} - }, - { - "type": "wokwi-dht22", - "id": "dht1", - "top": -201.3, - "left": 23.4, - "attrs": {} - } - ], - "connections": [ - [ - "dht1:VCC", - "uno:5V", - "red", - [ - "v316.8", - "h124.8" - ] - ], - [ - "dht1:SDA", - "uno:2", - "green", - [ - "v57.6", - "h192.1" - ] - ], - [ - "dht1:GND", - "uno:GND.1", - "black", - [ - "v0" - ] - ] - ], - "dependencies": {} + "version": 1, + "author": "AIoT2025-TP3", + "editor": "wokwi", + "parts": [ + { "type": "wokwi-arduino-uno", "id": "uno", "top": 0.6, "left": -0.6, "attrs": {} }, + { "type": "wokwi-dht22", "id": "dht1", "top": -162.9, "left": -82.2, "attrs": {} }, + { "type": "wokwi-gas-sensor", "id": "mq2", "top": -150.9, "left": 83.8, "attrs": {} }, + { "type": "wokwi-flame-sensor", "id": "flame1", "top": -149, "left": 405.8, "attrs": {} } + ], + "connections": [ + [ "dht1:VCC", "uno:5V", "red", [ "v316.8", "h220.8", "v-76.7" ] ], + [ "dht1:SDA", "uno:2", "green", [ "v38.4", "h294.2" ] ], + [ "dht1:GND", "uno:GND.1", "black", [ "v19.2", "h153.9" ] ], + [ "mq2:VCC", "uno:5V", "red", [ "h96", "v315.9", "h-157.4" ] ], + [ "mq2:AOUT", "uno:A0", "blue", [ "h115.2", "v383.5" ] ], + [ "flame1:VCC", "uno:5V", "red", [ "h9.6", "v403.2", "h-455" ] ], + [ "flame1:GND", "uno:GND.3", "black", [ "h38.4", "v355.1", "h-349" ] ], + [ "flame1:DOUT", "uno:3", "orange", [ "v86.2", "h-377.8" ] ], + [ "mq2:GND", "uno:GND.1", "black", [ "h28.8", "v47.2", "h-134.4", "v9.6" ] ] + ], + "dependencies": {} } \ No newline at end of file diff --git a/TP3/src/main.cpp b/TP3/src/main.cpp index 18fdf31..871fcd3 100644 --- a/TP3/src/main.cpp +++ b/TP3/src/main.cpp @@ -1,69 +1,109 @@ - #include "DHT.h" -#define DHTPIN 2 // Digital pin connected to the DHT sensor -#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 +#include + +#define DHTPIN 2 +#define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); +#define MQ2_PIN A0 +#define FLAME_PIN 3 + const int N_FEATURES = 12; -const float MEAN[N_FEATURES] = {/* μ_Temperature, μ_Humidity */}; -const float STD[N_FEATURES] = {/* σ_Temperature, σ_Humidity */}; -const float WEIGHTS[N_FEATURES] = {/* W_Temperature, W_Humidity */}; -const float BIAS = 0; /* b */ -float X[N_FEATURES] = {20.0, 57.36, 0, 400, 12306, 18520, 939.735, 0.0, 0.0, 0.0, 0.0, 0.0}; // Input features +const float MEAN[N_FEATURES] = { + 31297.363165, 1654791844.021415, 15.953115, 48.574302, + 1922.884341, 667.743913, 12942.300974, 19754.250459, + 938.631948, 100.887285, 186.073921, 490.209271 +}; + +const float STD[N_FEATURES] = { + 18071.764509, 109669.276420, 14.358038, 8.821188, + 7755.895054, 1903.782213, 271.168609, 606.975952, + 1.324514, 925.303530, 1991.527889, 4259.415670 +}; + +const float WEIGHTS[N_FEATURES] = { + -1.373408, -0.342746, -0.212932, 1.180184, + -22.874995, 0.849484, -0.068718, -3.561514, + -2.865623, 1.926110, 0.944893, 2.861934 +}; + +const float BIAS = 17.515389; + +float X[N_FEATURES] = { + 20.0, 57.36, 0, 400, + 12306, 18520, 939.735, 0.0, + 0.0, 0.0, 0.0, 0.0 +}; + +float standardize(float x, int idx) { + return (x - MEAN[idx]) / STD[idx]; +} + +float sigmoid(float z) { + if (z > 10) z = 10; + if (z < -10) z = -10; + return 1.0 / (1.0 + exp(-z)); +} + +float predict(float features[]) { + float z = 0.0; + for (int i = 0; i < N_FEATURES; i++) { + float x_std = standardize(features[i], i); + z += WEIGHTS[i] * x_std; + } + z += BIAS; + return sigmoid(z); +} -void setup() -{ +void setup() { Serial.begin(9600); - Serial.println(F("DHTxx test!")); + Serial.println(F("🔥 Fire Detection System — Based on Professor's Model")); dht.begin(); + pinMode(MQ2_PIN, INPUT); + pinMode(FLAME_PIN, INPUT); } -void loop() -{ +void loop() { delay(2000); - // Reading temperature or humidity takes about 250 milliseconds! - // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); - // Read temperature as Celsius (the default) float t = dht.readTemperature(); - // Read temperature as Fahrenheit (isFahrenheit = true) - float f = dht.readTemperature(true); - - // add data to input array - X[0] = t; - X[1] = h; - - // Check if any reads failed and exit early (to try again). - if (isnan(h) || isnan(t) || isnan(f)) - { - Serial.println(F("Failed to read from DHT sensor!")); - return; + + if (isnan(h) || isnan(t)) { + Serial.println(F("⚠️ Failed to read from DHT sensor, using previous values.")); + } else { + X[0] = t; + X[1] = h; } - // TODO: Add code to standardize the inputs + int mq2_value = analogRead(MQ2_PIN); + int flame_value = digitalRead(FLAME_PIN); + + X[2] = mq2_value; + X[3] = flame_value * 500; + - // TODO: Add code to compute the output of wx + b + float prob = predict(X); - // TODO: Add code to apply the sigmoid function + bool alarm = false; + if (prob >= 0.6) { + if (mq2_value > 400 || flame_value == 1 || t > 45.0) { + alarm = true; + } + } - // TODO: Add code to print the result to the serial monitor + Serial.println("🌡️ Reading Sensors:"); + Serial.print("Temperature: "); Serial.print(t); Serial.print(" °C | "); + Serial.print("Humidity: "); Serial.print(h); Serial.println(" %"); + Serial.print("MQ2: "); Serial.print(mq2_value); + Serial.print(" | Flame: "); Serial.println(flame_value); + Serial.print("Predicted probability: "); Serial.println(prob, 6); - // Compute heat index in Fahrenheit (the default) - // float hif = dht.computeHeatIndex(f, h); - // Compute heat index in Celsius (isFahreheit = false) - // float hic = dht.computeHeatIndex(t, h, false); + if (alarm) + Serial.println("🔥 FIRE ALARM: ON"); + else + Serial.println("✅ FIRE ALARM: OFF"); - Serial.print("Humidity: "); - Serial.print(h); - Serial.print("% Tempeature: "); - Serial.print(t); - Serial.print("°C "); - Serial.println(f); - // Serial.print(F("°F Heat index: ")); - // Serial.print(hic); - // Serial.print(F("°C ")); - // Serial.print(hif); - // Serial.println(F("°F")); -} \ No newline at end of file + Serial.println("--------------------------------------------"); +} diff --git a/TP3/wokwi.toml b/TP3/wokwi.toml index a452ddf..b4dc314 100644 --- a/TP3/wokwi.toml +++ b/TP3/wokwi.toml @@ -7,4 +7,4 @@ firmware = ".pio/build/uno/firmware.hex" [connections.phantomio] # Enable PhantomIO for serial and telemetry enabled = true -port = "serial" +port = "serial" \ No newline at end of file diff --git a/TP4/.vscode/c_cpp_properties.json b/TP4/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..ef56134 --- /dev/null +++ b/TP4/.vscode/c_cpp_properties.json @@ -0,0 +1,519 @@ +// +// !!! WARNING !!! AUTO-GENERATED FILE! +// PLEASE DO NOT MODIFY IT AND USE "platformio.ini": +// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags +// +{ + "configurations": [ + { + "name": "PlatformIO", + "includePath": [ + "D:/UniverStudy/ML/AIoT-2025/TP4/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/ArduinoJson/src", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/LiquidCrystal_I2C", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/PubSubClient/src", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/DHT sensor library", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/Adafruit Unified Sensor", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions/freertos", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/port/xtensa/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/heap/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/log/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps/sntp", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/lwip/src/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include/arch", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/platform_port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/soc", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/public_compat", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_pm/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ringbuf/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/vfs/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_event/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_netif/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_eth/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcpip_adapter/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ipc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_trace/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_timer/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/mbedtls/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_update/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spi_flash/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bootloader_support/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nvs_flash/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/pthread/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/xtensa", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include/port/xtensa", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ieee802154/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/console", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/asio/asio/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/osi/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/include/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/api/include/api", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/storage", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/btc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/client/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/server/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/core/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/models/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cbor/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/unity/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cmock/CMock/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/libcoap/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls/esp-tls-crypto", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_adc_cal/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hid/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcp_transport/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_client/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_server/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_ota/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_server/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/interface", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protobuf-c/protobuf-c", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/common", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/security", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/transports", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mdns/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_local_ctrl/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/sdmmc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_serial_slave_link/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_websocket_client/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/expat/expat/lib", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wear_levelling/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/diskio", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/vfs", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freemodbus/freemodbus/common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/jsmn/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json/cJSON", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/port_include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mqtt/esp-mqtt/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/openssl/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/perfmon/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spiffs/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ulp/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wifi_provisioning/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rmaker_common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_diagnostics/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rtc_store/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_insights/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_generator/upstream", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_schedule/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp_secure_cert_mgr/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rainmaker/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/gpio_button/button/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/qrcode/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ws2812_led", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/tool", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/typedef", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/image", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/math", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/nn", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/layer", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/detect", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/model_zoo", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/driver/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/conversions/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dotprod/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/mem/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/hann/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_harris/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/nuttall/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/flat_top/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/iir/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fir/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/add/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sub/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mul/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/addc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mulc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sqrt/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mul/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/add/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/addc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mulc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/sub/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fft/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dct/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/conv/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mul/test/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/dio_qspi/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/cores/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/variants/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/USB/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src", + "" + ], + "browse": { + "limitSymbolsToIncludedHeaders": true, + "path": [ + "D:/UniverStudy/ML/AIoT-2025/TP4/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/ArduinoJson/src", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/LiquidCrystal_I2C", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/PubSubClient/src", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/DHT sensor library", + "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/libdeps/esp32dev/Adafruit Unified Sensor", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions/freertos", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/port/xtensa/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/heap/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/log/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps/sntp", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/lwip/src/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include/arch", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/platform_port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/soc", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/public_compat", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_pm/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ringbuf/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/vfs/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_event/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_netif/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_eth/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcpip_adapter/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ipc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_trace/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_timer/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/mbedtls/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_update/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spi_flash/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bootloader_support/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nvs_flash/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/pthread/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/xtensa", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include/port/xtensa", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ieee802154/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/console", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/asio/asio/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/osi/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/include/esp32/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/api/include/api", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/storage", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/btc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/client/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/server/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/core/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/models/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cbor/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/unity/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cmock/CMock/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/libcoap/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls/esp-tls-crypto", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_adc_cal/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hid/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcp_transport/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_client/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_server/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_ota/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_server/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/interface", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protobuf-c/protobuf-c", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/common", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/security", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/transports", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mdns/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_local_ctrl/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/sdmmc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_serial_slave_link/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_websocket_client/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/expat/expat/lib", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/port/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wear_levelling/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/diskio", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/vfs", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freemodbus/freemodbus/common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/jsmn/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json/cJSON", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/port_include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mqtt/esp-mqtt/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/openssl/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/perfmon/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spiffs/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ulp/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wifi_provisioning/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rmaker_common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_diagnostics/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rtc_store/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_insights/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_generator/upstream", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_schedule/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp_secure_cert_mgr/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rainmaker/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/gpio_button/button/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/qrcode/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ws2812_led", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/tool", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/typedef", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/image", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/math", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/nn", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/layer", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/detect", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/model_zoo", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/driver/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/conversions/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dotprod/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/mem/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/hann/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_harris/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/nuttall/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/flat_top/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/iir/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fir/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/add/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sub/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mul/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/addc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mulc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sqrt/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mul/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/add/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/addc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mulc/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/sub/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fft/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dct/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/conv/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/common/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/mul/test/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/dio_qspi/include", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/cores/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/variants/esp32", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/USB/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", + "C:/Users/GHE.INFO/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src", + "" + ] + }, + "defines": [ + "PLATFORMIO=60118", + "ARDUINO_ESP32_DEV", + "HAVE_CONFIG_H", + "MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"", + "UNITY_INCLUDE_CONFIG_H", + "WITH_POSIX", + "_GNU_SOURCE", + "IDF_VER=\"v4.4.7-dirty\"", + "ESP_PLATFORM", + "_POSIX_READER_WRITER_LOCKS", + "ARDUINO_ARCH_ESP32", + "ESP32", + "F_CPU=240000000L", + "ARDUINO=10812", + "ARDUINO_VARIANT=\"esp32\"", + "ARDUINO_BOARD=\"Espressif ESP32 Dev Module\"", + "ARDUINO_PARTITION_default", + "" + ], + "cStandard": "gnu99", + "cppStandard": "gnu++11", + "compilerPath": "C:/Users/GHE.INFO/.platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-gcc.exe", + "compilerArgs": [ + "-mlongcalls", + "" + ] + } + ], + "version": 4 +} diff --git a/TP4/.vscode/extensions.json b/TP4/.vscode/extensions.json new file mode 100644 index 0000000..080e70d --- /dev/null +++ b/TP4/.vscode/extensions.json @@ -0,0 +1,10 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ], + "unwantedRecommendations": [ + "ms-vscode.cpptools-extension-pack" + ] +} diff --git a/TP4/.vscode/launch.json b/TP4/.vscode/launch.json new file mode 100644 index 0000000..1f044ec --- /dev/null +++ b/TP4/.vscode/launch.json @@ -0,0 +1,44 @@ +// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY +// +// PlatformIO Debugging Solution +// +// Documentation: https://docs.platformio.org/en/latest/plus/debugging.html +// Configuration: https://docs.platformio.org/en/latest/projectconf/sections/env/options/debug/index.html + +{ + "version": "0.2.0", + "configurations": [ + { + "type": "platformio-debug", + "request": "launch", + "name": "PIO Debug", + "executable": "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/build/esp32dev/firmware.elf", + "projectEnvName": "esp32dev", + "toolchainBinDir": "C:/Users/GHE.INFO/.platformio/packages/toolchain-xtensa-esp32/bin", + "internalConsoleOptions": "openOnSessionStart", + "preLaunchTask": { + "type": "PlatformIO", + "task": "Pre-Debug" + } + }, + { + "type": "platformio-debug", + "request": "launch", + "name": "PIO Debug (skip Pre-Debug)", + "executable": "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/build/esp32dev/firmware.elf", + "projectEnvName": "esp32dev", + "toolchainBinDir": "C:/Users/GHE.INFO/.platformio/packages/toolchain-xtensa-esp32/bin", + "internalConsoleOptions": "openOnSessionStart" + }, + { + "type": "platformio-debug", + "request": "launch", + "name": "PIO Debug (without uploading)", + "executable": "D:/UniverStudy/ML/AIoT-2025/TP4/.pio/build/esp32dev/firmware.elf", + "projectEnvName": "esp32dev", + "toolchainBinDir": "C:/Users/GHE.INFO/.platformio/packages/toolchain-xtensa-esp32/bin", + "internalConsoleOptions": "openOnSessionStart", + "loadMode": "manual" + } + ] +} diff --git a/TP4/platformio.ini b/TP4/platformio.ini index 3551fb0..8db0def 100644 --- a/TP4/platformio.ini +++ b/TP4/platformio.ini @@ -1,9 +1,20 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino monitor_speed = 115200 -lib_deps = - adafruit/DHT sensor library - knolleary/PubSubClient - marcoschwartz/LiquidCrystal_I2C \ No newline at end of file +lib_deps = + adafruit/DHT sensor library + knolleary/PubSubClient + marcoschwartz/LiquidCrystal_I2C + bblanchon/ArduinoJson@^7.4.2 diff --git a/TP4/src/main.cpp b/TP4/src/main.cpp index 02be143..99700db 100644 --- a/TP4/src/main.cpp +++ b/TP4/src/main.cpp @@ -1,91 +1,139 @@ - - #include #include #include #include +#include +// ---------------------- إعداد الحساسات ----------------------- #define DHTPIN 15 #define DHTTYPE DHT22 #define LED_PIN 2 -// WiFi credentials +// ---------------------- إعداد Wi-Fi --------------------------- const char *ssid = "Wokwi-GUEST"; const char *password = ""; -// MQTT broker (local machine IP) -const char *mqtt_server = "broker.mqtt.cool"; // or your LAN IP, e.g. "192.168.1.100" +// ---------------------- إعداد MQTT ---------------------------- +const char *mqtt_server = "broker.mqtt.cool"; // يمكن تغييره إلى IP محلي مثل "192.168.1.100" const int mqtt_port = 1883; +const char *mqtt_client_id = "ESP32Client"; +const char *topic_pub = "esp32/data"; +const char *topic_sub = "esp32/control"; +// ---------------------- تعريف الكائنات ------------------------ WiFiClient espClient; PubSubClient client(espClient); DHT dht(DHTPIN, DHTTYPE); -LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD address 0x27 or 0x3F -String currentCommand = "---"; // default command +LiquidCrystal_I2C lcd(0x27, 16, 2); -const int N_FEATURES = 12; -float X[N_FEATURES] = {20.0, 57.36, 0, 400, 12306, 18520, 939.735, 0.0, 0.0, 0.0, 0.0, 0.0}; // Input features +String currentCommand = "---"; // الأمر الحالي +float lastProbability = 0.0; // لحفظ آخر احتمال استلامه من الـAI +// ---------------------- الاتصال بالواي فاي -------------------- void setup_wifi() { - Serial.println("Connecting to WiFi..."); + Serial.print("Connecting to WiFi: "); + Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } - Serial.println("\nWiFi connected!"); + Serial.println("\n✅ WiFi connected!"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); } +// ---------------------- استقبال الرسائل من MQTT -------------- void callback(char *topic, byte *message, unsigned int length) { + Serial.print("\n📩 Message arrived on topic: "); + Serial.println(topic); + String msg; for (int i = 0; i < length; i++) + { msg += (char)message[i]; + } msg.trim(); + Serial.println("Raw message: " + msg); + + // نحاول تحليلها كـ JSON + DynamicJsonDocument doc(256); + DeserializationError error = deserializeJson(doc, msg); + if (error) + { + Serial.println("⚠️ JSON parse failed, message not JSON format."); + // fallback بسيط: ربما الرسالة هي "ON"/"OFF" + if (msg.equalsIgnoreCase("ON")) + { + digitalWrite(LED_PIN, HIGH); + currentCommand = "ON"; + } + else if (msg.equalsIgnoreCase("OFF")) + { + digitalWrite(LED_PIN, LOW); + currentCommand = "OFF"; + } + return; + } + + // قراءة القيم من الرسالة JSON + const char *prediction = doc["prediction"] | "OFF"; + float probability = doc["probability"] | 0.0; - Serial.print("Received command: "); - Serial.println(msg); + // حفظ القيم وعرضها + currentCommand = String(prediction); + lastProbability = probability; - if (msg.equalsIgnoreCase("ON")) + // تشغيل أو إيقاف LED + if (currentCommand.equalsIgnoreCase("ON")) { digitalWrite(LED_PIN, HIGH); - currentCommand = "ON"; } - else if (msg.equalsIgnoreCase("OFF")) + else { digitalWrite(LED_PIN, LOW); - currentCommand = "OFF"; } - // Update the LCD immediately when a command arrives + // تحديث الشاشة LCD lcd.setCursor(0, 1); lcd.print("CMD:"); lcd.print(currentCommand); - lcd.print(" "); // clear any leftover characters + lcd.print(" P:"); + lcd.print(probability, 2); + lcd.print(" "); // لمسح الباقي + + // طباعة في السيريال + Serial.print("✅ Command: "); + Serial.print(currentCommand); + Serial.print(" | Probability: "); + Serial.println(probability, 4); } +// ---------------------- إعادة الاتصال بالـMQTT ----------------- void reconnect() { while (!client.connected()) { Serial.print("Attempting MQTT connection..."); - if (client.connect("ESP32Client")) + if (client.connect(mqtt_client_id)) { - Serial.println("connected"); - client.subscribe("esp32/control"); + Serial.println("connected ✅"); + client.subscribe(topic_sub); } else { Serial.print("failed, rc="); Serial.print(client.state()); - Serial.println(" retrying in 5s"); + Serial.println(" -> retrying in 5 seconds"); delay(5000); } } } +// ---------------------- الإعداد الأولي ------------------------- void setup() { Serial.begin(115200); @@ -94,15 +142,16 @@ void setup() lcd.backlight(); lcd.clear(); lcd.print("Starting..."); - dht.begin(); + dht.begin(); setup_wifi(); client.setServer(mqtt_server, mqtt_port); client.setCallback(callback); } +// ---------------------- الحلقة الرئيسية ------------------------ unsigned long lastMsg = 0; -const long interval = 3000; // update every 3 seconds +const long interval = 3000; // 3 ثوانٍ بين الإرسال void loop() { @@ -115,17 +164,24 @@ void loop() { lastMsg = now; + // قراءة البيانات من DHT float h = dht.readHumidity(); float t = dht.readTemperature(); + if (isnan(h) || isnan(t)) + { + Serial.println("⚠️ Failed to read from DHT sensor!"); return; + } - // add data to input array - - X[0] = t; - X[1] = h; + // طباعة القيم في السيريال + Serial.print("🌡️ Temp: "); + Serial.print(t); + Serial.print(" °C | 💧 Humidity: "); + Serial.print(h); + Serial.println(" %"); - // Update LCD with temperature and humidity + // تحديث القيم على LCD lcd.setCursor(0, 0); lcd.print("T:"); lcd.print(t, 1); @@ -133,14 +189,19 @@ void loop() lcd.print(h, 0); lcd.print("% "); - // Update the command line lcd.setCursor(0, 1); lcd.print("CMD:"); lcd.print(currentCommand); + lcd.print(" P:"); + lcd.print(lastProbability, 2); lcd.print(" "); - // TODO: Publish all features to MQTT - String payload = "{\"temperature\": " + String(t) + ", \"humidity\": " + String(h) + "}"; - client.publish("esp32/data", payload.c_str()); + // إعداد الحمولة JSON للإرسال + String payload = "{\"temperature\": " + String(t, 2) + + ", \"humidity\": " + String(h, 2) + + ", \"device_id\": \"esp32-01\"}"; + client.publish(topic_pub, payload.c_str()); + + Serial.println("📤 Published: " + payload); } }