diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 1ccb73a..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore index 2d19f4c..80b809c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ .pio/ .vscode/ -.gitignore -**/DS.store +*/.DS_store +.DS_Store +.vscode/c_cpp_properties.json +.vscode/launch.json diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index df2386a..69c9e5e 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -8,219 +8,227 @@ { "name": "PlatformIO", "includePath": [ - "/Users/willem/Documents/PROJECTS/AQS-FW/include", - "/Users/willem/Documents/PROJECTS/AQS-FW", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SGP30 Sensor", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SCD30", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit BusIO", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/TJpg_Decoder/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/RunningMedian", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/PubSubClient/src", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit Unified Sensor", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/TFT_eSPI", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/efuse", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_server", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_websocket_client", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/espcoredump", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/unity", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/cores/esp32", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/variants/esp32", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit GFX Library", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SSD1306", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src", - "/Users/willem/.platformio/packages/tool-unity", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/include", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/lib/JC_Button/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/lib/IP5306", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/SparkFun SGP30 Arduino Library/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/SparkFun SCD30 Arduino Library/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/JC_Button/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit SGP30 Sensor", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit SCD30", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit BusIO", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/TJpg_Decoder/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/RunningMedian", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/PubSubClient/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit Unified Sensor", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/TFT_eSPI", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/efuse", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_server", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_websocket_client", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/espcoredump", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/unity", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/cores/esp32", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/variants/esp32", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit GFX Library", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src", + "/Users/willemoldemans/.platformio/packages/tool-unity", "" ], "browse": { "limitSymbolsToIncludedHeaders": true, "path": [ - "/Users/willem/Documents/PROJECTS/AQS-FW/include", - "/Users/willem/Documents/PROJECTS/AQS-FW", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SGP30 Sensor", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SCD30", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit BusIO", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/TJpg_Decoder/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/RunningMedian", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/PubSubClient/src", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit Unified Sensor", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/TFT_eSPI", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/efuse", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_server", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_websocket_client", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/espcoredump", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/unity", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/cores/esp32", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/variants/esp32", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit GFX Library", - "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SSD1306", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", - "/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src", - "/Users/willem/.platformio/packages/tool-unity", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/include", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/lib/JC_Button/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/lib/IP5306", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/SparkFun SGP30 Arduino Library/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/SparkFun SCD30 Arduino Library/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/JC_Button/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit SGP30 Sensor", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit SCD30", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit BusIO", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/TJpg_Decoder/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/RunningMedian", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/PubSubClient/src", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit Unified Sensor", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/TFT_eSPI", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/efuse", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_server", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_websocket_client", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/espcoredump", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/unity", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/cores/esp32", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/variants/esp32", + "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit GFX Library", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", + "/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src", + "/Users/willemoldemans/.platformio/packages/tool-unity", "" ] }, @@ -240,7 +248,7 @@ ], "cStandard": "c99", "cppStandard": "c++11", - "compilerPath": "/Users/willem/.platformio/packages/toolchain-xtensa32/bin/xtensa-esp32-elf-gcc", + "compilerPath": "/Users/willemoldemans/.platformio/packages/toolchain-xtensa32/bin/xtensa-esp32-elf-gcc", "compilerArgs": [ "-mlongcalls", "" @@ -248,4 +256,4 @@ } ], "version": 4 -} \ No newline at end of file +} diff --git a/.vscode/launch.json b/.vscode/launch.json index 559d695..e8d8d6d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,22 +12,22 @@ "type": "platformio-debug", "request": "launch", "name": "PIO Debug", - "executable": "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/build/esp32/firmware.elf", + "executable": "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/build/esp32/firmware.elf", "projectEnvName": "esp32", - "toolchainBinDir": "/Users/willem/.platformio/packages/toolchain-xtensa32/bin", + "toolchainBinDir": "/Users/willemoldemans/.platformio/packages/toolchain-xtensa32/bin", "internalConsoleOptions": "openOnSessionStart", "preLaunchTask": { "type": "PlatformIO", - "task": "Pre-Debug" + "task": "Pre-Debug (esp32)" } }, { "type": "platformio-debug", "request": "launch", "name": "PIO Debug (skip Pre-Debug)", - "executable": "/Users/willem/Documents/PROJECTS/AQS-FW/.pio/build/esp32/firmware.elf", + "executable": "/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/build/esp32/firmware.elf", "projectEnvName": "esp32", - "toolchainBinDir": "/Users/willem/.platformio/packages/toolchain-xtensa32/bin", + "toolchainBinDir": "/Users/willemoldemans/.platformio/packages/toolchain-xtensa32/bin", "internalConsoleOptions": "openOnSessionStart" } ] diff --git a/CO2_sensor.cpp b/CO2_sensor.cpp index 2427666..c6be82d 100644 --- a/CO2_sensor.cpp +++ b/CO2_sensor.cpp @@ -1,6 +1,7 @@ #include "CO2_sensor.h" -Adafruit_SCD30 scd30; +//Adafruit_SCD30 scd30; +SCD30 scd30; #define CO2_INTERVAL 120000 //ms #define SCD30TEMPMAX 50 @@ -19,6 +20,7 @@ uint32_t CO2_lastUpdate = 0; void initCO2sensor(void) { Serial.println("SCD30: init"); + Wire.begin(); if (!scd30.begin()) { Serial.println("SCD30: Failed to find sensor"); @@ -33,8 +35,8 @@ void initCO2sensor(void) addSensorToList(&SCD30_CO2); //check callibration Mode - scd30.selfCalibrationEnabled(false); - scd30.read(); + //scd30.selfCalibrationEnabled(false); + //scd30.read(); Serial.println("SCD30: init OK"); } } @@ -42,32 +44,21 @@ void initCO2sensor(void) void handleCO2sensor(void) { uint32_t currentmillis = millis(); - if ((currentmillis - CO2_lastUpdate > (g_pms_report_period * 1000)) || (!CO2_lastUpdate) ) + if ((currentmillis - CO2_lastUpdate > (g_pms_report_period * 1000)) || (!CO2_lastUpdate)) { - - if (!scd30.read()) - { - Serial.println("SCD30: read error!"); - return; - } - if(!scd30.dataReady()) + if (!scd30.dataAvailable()) { return; } - else - { - SCD30_temperature.set(uint32_t(scd30.temperature)); - SCD30_Humidity.set(uint32_t(scd30.relative_humidity)); - SCD30_CO2.set(uint32_t(scd30.CO2)); - SCD30_temperature.publish(); - SCD30_Humidity.publish(); - SCD30_CO2.publish(); - CO2_lastUpdate = currentmillis; - } - + SCD30_temperature.set(uint32_t(scd30.getTemperature())); + SCD30_Humidity.set(uint32_t(scd30.getHumidity())); + SCD30_CO2.set(uint32_t(scd30.getCO2())); - + SCD30_temperature.publish(); + SCD30_Humidity.publish(); + SCD30_CO2.publish(); + CO2_lastUpdate = currentmillis; } } \ No newline at end of file diff --git a/CO2_sensor.h b/CO2_sensor.h index 86bddf0..da46440 100644 --- a/CO2_sensor.h +++ b/CO2_sensor.h @@ -2,9 +2,11 @@ #include "Arduino.h" #include "config.h" +#include +//#include +//#include +#include "SparkFun_SCD30_Arduino_Library.h" //Click here to get the library: http://librarymanager/All#SparkFun_SCD30 -#include -#include #include "sensor.h" diff --git a/VOC_sensor.cpp b/VOC_sensor.cpp index a83223f..c50ce43 100644 --- a/VOC_sensor.cpp +++ b/VOC_sensor.cpp @@ -1,6 +1,11 @@ #include "VOC_sensor.h" +#define DEBUG_SERIAL -Adafruit_SGP30 sgp; + +//Adafruit_SGP30 sgp; +SGP30 sgp; + +//TwoWire wire1(1); uint8_t VOC_samples = 3600 / g_pms_report_period; #define VOC_MIN 0 #define VOC_MAX 10000 @@ -17,21 +22,25 @@ AQSSensor SGP30_rawethanol("Raw_Ethanol", SGP30_rawEthanol, "#", device_name, VO void initVOCsensor(void) { Serial.println("VOCSensor: Init SGP30: "); - + //wire1.setPins(I2C_2_SDA, I2C_2_SCL); + //if (!sgp.begin(&wire1)) + Wire.begin(); if (!sgp.begin()) { Serial.println("VOCSensor: Init Failed (SGP30 not found)"); } else { - Serial.printf("VOCSensor: serial =0x%X%X%X\n", sgp.serialnumber[0], sgp.serialnumber[1], sgp.serialnumber[2]); + sgp.getSerialID(); + //Get version number + sgp.getFeatureSetVersion(); + Serial.print("VOCSensor: serial =0x"); + Serial.println((unsigned long)sgp.serialID, HEX); addSensorToList(&SGP30_tvoc); addSensorToList(&SGP30_eco2); - addSensorToList(&SGP30_rawh2); - addSensorToList(&SGP30_rawethanol); - sgp.IAQmeasure(); - sgp.IAQmeasureRaw(); + sgp.initAirQuality(); + sgp.measureAirQuality(); Serial.println("VOCSensor: Init OK"); } @@ -42,29 +51,14 @@ void handleVOCsensor(void) uint32_t timenow = millis(); if ((timenow - lastVOCtime > VOC_INTERVAL) || !lastVOCtime) { - if (!sgp.IAQmeasure()) - { - Serial.println("VOCSensor: Measurement failed"); - return; - } + sgp.measureAirQuality(); + SGP30_tvoc.set(sgp.TVOC); - SGP30_eco2.set(sgp.eCO2); + SGP30_eco2.set(sgp.CO2); SGP30_tvoc.publish(); SGP30_eco2.publish(); - if (!sgp.IAQmeasureRaw()) - { - Serial.println("VOCSensor: Raw Measurement failed"); - return; - } - - SGP30_rawethanol.set(sgp.rawEthanol); - SGP30_rawh2.set(sgp.rawH2); - - SGP30_rawethanol.publish(); - SGP30_rawh2.publish(); - lastVOCtime = timenow; } } \ No newline at end of file diff --git a/VOC_sensor.h b/VOC_sensor.h index bbd9ff0..1801f40 100644 --- a/VOC_sensor.h +++ b/VOC_sensor.h @@ -3,8 +3,11 @@ #include "Arduino.h" #include "config.h" #include "sensor.h" +#include -#include "Adafruit_SGP30.h" +//#include "Adafruit_SGP30.h" +#include "SparkFun_SGP30_Arduino_Library.h" // Click here to get the library: http://librarymanager/All#SparkFun_SGP30 +#include void initVOCsensor(void); diff --git a/battery.cpp b/battery.cpp new file mode 100644 index 0000000..3cef4b1 --- /dev/null +++ b/battery.cpp @@ -0,0 +1,10 @@ +#include "battery.h" + +void initBattery(void) +{ + +} +void handleBattery(void) +{ + +} \ No newline at end of file diff --git a/battery.h b/battery.h new file mode 100644 index 0000000..be18b6c --- /dev/null +++ b/battery.h @@ -0,0 +1,7 @@ +#pragma once + +#include "Arduino.h" +#include "IP5306.h" + +void initBattery(void); +void handleBattery(void); \ No newline at end of file diff --git a/button.h b/button.h index de32615..f18deff 100644 --- a/button.h +++ b/button.h @@ -3,6 +3,7 @@ #include "Arduino.h" #include "config.h" #include "lcd.h" +#include "JC_Button.h" void initButtons( void ); void handleButtons( void ); \ No newline at end of file diff --git a/buttons.cpp b/buttons.cpp index 1b6dd9a..24a9c52 100644 --- a/buttons.cpp +++ b/buttons.cpp @@ -6,16 +6,45 @@ uint8_t g_previous_mode_button_state = 1; uint32_t g_last_debounce_time = 0; uint32_t g_debounce_delay = 50; +Button buttonCenter(BUTTON_CENTER); +Button buttonLeft(BUTTON_LEFT); +Button buttonRight(BUTTON_RIGHT); + void initButtons(void) { Serial.print("initButtons:"); + buttonCenter.begin(); + buttonLeft.begin(); + buttonRight.begin(); + pinMode(MODE_BUTTON_PIN, INPUT_PULLUP); // Pin for switching screens button Serial.println(" OK"); } void handleButtons(void) { - g_previous_mode_button_state = g_current_mode_button_state; + //handle buttons + buttonCenter.read(); + buttonLeft.read(); + buttonRight.read(); + + if (buttonCenter.wasPressed()) + { + backlightRefresh(); + } + + if (buttonLeft.wasPressed()) + { + previousSensor(); + backlightRefresh(); + } + + if (buttonRight.wasPressed()) + { + nextSensor(); + backlightRefresh(); + } + g_current_mode_button_state = digitalRead(MODE_BUTTON_PIN); // Check if button is now pressed and it was previously unpressed diff --git a/config.h b/config.h index e555cf0..474f0e9 100644 --- a/config.h +++ b/config.h @@ -16,9 +16,6 @@ #define g_pms_warmup_period 30 // Seconds to warm up PMS before reading #define g_pms_report_period 120 // Seconds between reports -/* Use WiFi. If this is off, MQTT won't run */ -#define ENABLE_WIFI true - /* Serial */ #define SERIAL_BAUD_RATE 115200 // Speed for USB serial console @@ -27,19 +24,25 @@ /* ----------------- Hardware-specific Config ---------------------- */ /* Mode button connection (momentary between this pin and GND) */ -#define MODE_BUTTON_PIN 0 -#define TFT_BL 4 // LED back-light control pin -#define TFT_BACKLIGHT_ON HIGH // Level to turn ON back-light (HIGH or LOW) -#define TFT_BL_PWMCHANNEL 1 -#define TFT_BL_FREQ 5000 -#define TFT_BL_BITS 8 +#define MODE_BUTTON_PIN 0 +#define BUTTON_CENTER 37 +#define BUTTON_RIGHT 39 +#define BUTTON_LEFT 38 +#define I2C_SDA_PIN 21 +#define I2C_SCL_PIN 22 +#define I2C_2_SCL 13 +#define I2C_2_SDA 14 +#define PMS_RX_PIN 19 // Tx to the PMS SHOULD BE 16 +#define PMS_TX_PIN 26 // Rx from the PMS SHOULD BE 17 +#define TFT_BL 4 // LED back-light control pin -/* I2C */ -#define I2C_SDA_PIN 21 -#define I2C_SCL_PIN 22 -//#define BME680_I2C_ADDR 0x76 + +//backlight defines +#define TFT_BACKLIGHT_ON HIGH // Level to turn ON back-light (HIGH or LOW) +#define TFT_BL_PWMCHANNEL 1 +#define TFT_BL_FREQ 5000 +#define TFT_BL_BITS 8 /* Particulate Matter Sensor */ #define PMS_BAUD_RATE 9600 -#define PMS_RX_PIN 19 // Tx to the PMS SHOULD BE 16 -#define PMS_TX_PIN 26 // Rx from the PMS SHOULD BE 17 + diff --git a/lcd.cpp b/lcd.cpp index de3a054..010b468 100644 --- a/lcd.cpp +++ b/lcd.cpp @@ -1,25 +1,5 @@ #include "lcd.h" -// This example draws an animated dial with a rotating needle. - -// The dial is a jpeg image, the needle is created using a rotated -// Sprite. The example operates by reading blocks of pixels from the -// TFT, thus the TFT setup must support reading from the TFT CGRAM. - -// The sketch operates by creating a copy of the screen block where -// the needle will be drawn, the needle is then drawn on the screen. -// When the needle moves, the original copy of the sreen area is -// pushed to the screen to over-write the needle graphic. A copy -// of the screen where the new position will be drawn is then made -// before drawing the needle in the new postion. This technique -// allows the needle to move over other screen graphics. - -// The sketch calculates the size of the buffer memory required and -// reserves the memory for the TFT block copy. - -// Created by Bodmer 17/3/20 as an example to the TFT_eSPI library: -// https://github.com/Bodmer/TFT_eSPI - #define NEEDLE_LENGTH 35 // Visible length #define NEEDLE_WIDTH 5 // Width of needle - make it an odd number #define NEEDLE_RADIUS 90 // Radius at tip @@ -28,11 +8,28 @@ #define DIAL_CENTRE_X 120 #define DIAL_CENTRE_Y 120 -// Font attached to this sketch -#include "NotoSansBold36.h" +#define MAXGUAGE 240 +#define MINGUAGE 0 +#define DISPLAY_ROTATE 15 //sec + +#define BACKLIGHTTIMEOUT 60000 +#define BACKLIGHTONBRGT 84 +#define BACKLIGHTSTEP 1 + #define AA_FONT_LARGE NotoSansBold36 -#include +enum DISPLAY_STATE +{ + DISPLAY_PM1P0, + DISPLAY_PM2P5, + DISPLAY_PM10P0, + DISPLAY_TEMP, + DISPLAY_HUM, + DISPLAY_CO2, + DISPLAY_LAST +}; + +// sprite elements TFT_eSPI tft = TFT_eSPI(); TFT_eSprite needle = TFT_eSprite(&tft); // Sprite object for needle TFT_eSprite spr = TFT_eSprite(&tft); // Sprite for meter reading @@ -40,23 +37,29 @@ TFT_eSprite nameSpr = TFT_eSprite(&tft); TFT_eSprite unitSpr = TFT_eSprite(&tft); TFT_eSprite ProgressBar = TFT_eSprite(&tft); -// Jpeg image array attached to this sketch -#include "dial.h" - -// Include the jpeg decoder library -#include - uint16_t *tft_buffer; bool buffer_loaded = false; uint16_t spr_width = 0; uint16_t name_spr_width = 0; bool progessbarActive = false; -void createNeedle(void); -void plotNeedle(int16_t angle, uint16_t ms_delay); +DISPLAY_STATE displaystate = DISPLAY_PM1P0; +uint32_t display_last_update = 0; + +uint32_t backlightTimeout = 0; +uint8_t backlightBrightness = BACKLIGHTONBRGT; // ======================================================================================= -// This function will be called during decoding of the jpeg file +// Declarations +// ======================================================================================= +void createNeedle(void); +void plotNeedle(int16_t angle, uint16_t ms_delay); +void setBacklight(uint8_t value); +bool tft_output(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap); +void backlightRefresh(void); + +// ======================================================================================= +// implementation // ======================================================================================= bool tft_output(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap) { @@ -76,14 +79,6 @@ void setBacklight(uint8_t value) ledcWrite(TFT_BL_PWMCHANNEL, value); } -void createProgressBar(void) -{ - ProgressBar.createSprite(220, 30); - ProgressBar.fillSprite(TFT_BLACK); - ProgressBar.drawRoundRect(0, 2, 220, 22, 5, TFT_BLUE); - ProgressBar.pushSprite(10, 270); -} - void ProgressbarVisible(bool visible) { progessbarActive = visible; @@ -105,259 +100,11 @@ void setOTAProgress(uint8_t value) } } -void createNameSprite(void) -{ - nameSpr.setTextFont(2); - name_spr_width = nameSpr.textWidth("---Sensor Name---"); - nameSpr.createSprite(name_spr_width, nameSpr.fontHeight() * 2 + 2); - uint16_t bg_color = tft.readPixel(120, 120); // Get colour from dial centre - - nameSpr.fillSprite(bg_color); - nameSpr.setTextColor(TFT_WHITE, bg_color); - nameSpr.setTextDatum(MC_DATUM); - nameSpr.setTextPadding(name_spr_width); - nameSpr.drawString("Sensor Name", name_spr_width / 2, nameSpr.fontHeight() / 2); - nameSpr.drawString("Unit", name_spr_width / 2, nameSpr.fontHeight() / 2 * 3 + 2); - nameSpr.pushSprite(DIAL_CENTRE_X - name_spr_width / 2, DIAL_CENTRE_Y + 40, 2); -} - -void createValueSprinte(void) -{ - spr.loadFont(AA_FONT_LARGE); - spr_width = spr.textWidth("277"); - spr.createSprite(spr_width, spr.fontHeight()); - uint16_t bg_color = tft.readPixel(120, 120); // Get colour from dial centre - spr.fillSprite(bg_color); - spr.setTextColor(TFT_WHITE, bg_color); - spr.setTextDatum(MC_DATUM); - spr.setTextPadding(spr_width); - spr.drawNumber(0, spr_width / 2, spr.fontHeight() / 2); - spr.pushSprite(DIAL_CENTRE_X - spr_width / 2, DIAL_CENTRE_Y - spr.fontHeight() / 2); -} - -void createDail(void) -{ - TJpgDec.setSwapBytes(true); - - // The jpeg decoder must be given the exact name of the rendering function above - TJpgDec.setCallback(tft_output); - // Draw the dial - TJpgDec.drawJpg(0, 0, dial, sizeof(dial)); - tft.drawCircle(DIAL_CENTRE_X, DIAL_CENTRE_Y, NEEDLE_RADIUS - NEEDLE_LENGTH, TFT_DARKGREY); - - // Define where the needle pivot point is on the TFT before - // creating the needle so boundary calculation is correct - tft.setPivot(DIAL_CENTRE_X, DIAL_CENTRE_Y); -} - -// ======================================================================================= -// Setup -// ======================================================================================= -void initLCD() -{ - Serial.print("InitLCD:"); - // The byte order can be swapped (set true for TFT_eSPI) - - tft.begin(); - tft.setRotation(0); - tft.fillScreen(TFT_BLACK); - - // Create the Sprites - createProgressBar(); - createDail(); - createValueSprinte(); - createNeedle(); - createNameSprite(); - - ledcSetup(TFT_BL_PWMCHANNEL, TFT_BL_FREQ, TFT_BL_BITS); - ledcAttachPin(TFT_BL, TFT_BL_PWMCHANNEL); - ledcWrite(TFT_BL_PWMCHANNEL, 64); - - // Reset needle position to 0 - plotNeedle(0, 0, 0); - - delay(2000); - Serial.println("OK"); -} - -// ======================================================================================= -// Loop -// ======================================================================================= -enum DISPLAY_STATE -{ - DISPLAY_PM1P0, - DISPLAY_PM2P5, - DISPLAY_PM10P0, - DISPLAY_TEMP, - DISPLAY_HUM, - DISPLAY_CO2, - DISPLAY_LAST -}; - -DISPLAY_STATE displaystate = DISPLAY_PM1P0; -uint32_t display_last_update = 0; - -#define MAXGUAGE 240 -#define MINGUAGE 0 -#define DISPLAY_ROTATE 15 //sec - -uint32_t backlightTimeout = 0; -#define BACKLIGHTTIMEOUT 60000 -#define BACKLIGHTONBRGT 129 -#define BACKLIGHTSTEP 5 -uint8_t backloghtBrightness = BACKLIGHTONBRGT; - void backlightRefresh(void) { backlightTimeout = millis(); } -void handleBacklight(void) -{ - uint32_t timeNow = millis(); - if (!backlightTimeout) - { - backlightRefresh(); - } - if (timeNow - backlightTimeout > BACKLIGHTTIMEOUT) - { - if (backloghtBrightness > BACKLIGHTSTEP) - { - backloghtBrightness -= BACKLIGHTSTEP; - Serial.printf("LCD: backlight %d\n", backloghtBrightness); - } - else - { - backloghtBrightness = 0; - } - } - else - { - if (backloghtBrightness < BACKLIGHTONBRGT) - { - backloghtBrightness += BACKLIGHTSTEP; - Serial.printf("LCD: backlight %d", backloghtBrightness); - } - } - ledcWrite(TFT_BL_PWMCHANNEL, backloghtBrightness); -} - -void handleLCD() -{ - static uint16_t angle; - DISPLAY_STATE displaystate_next = DISPLAY_PM1P0; - sensor_e nextSensor = AE_1P0; - - switch (displaystate) - { - case DISPLAY_PM1P0: - { - nextSensor = AE_1P0; - displaystate_next = DISPLAY_PM2P5; - } - break; - case DISPLAY_PM2P5: - { - nextSensor = AE_2P5; - displaystate_next = DISPLAY_PM10P0; - } - break; - case DISPLAY_PM10P0: - { - nextSensor = AE_10P0; - displaystate_next = DISPLAY_TEMP; - } - break; - case DISPLAY_TEMP: - { - nextSensor = SCD30_temp; - displaystate_next = DISPLAY_HUM; - } - break; - case DISPLAY_HUM: - { - nextSensor = SCD30_hum; - displaystate_next = DISPLAY_CO2; - } - break; - case DISPLAY_CO2: - { - nextSensor = SCD30_hum; - displaystate_next = DISPLAY_PM1P0; - } - break; - - case DISPLAY_LAST: - default: - { - displaystate_next = DISPLAY_PM1P0; - } - break; - } - //rotate display - uint32_t timenow = millis(); - if (timenow - display_last_update > (DISPLAY_ROTATE * 1000)) - { - displaystate = displaystate_next; - display_last_update = timenow; - Serial.println("LCD next State"); - } - //calculate value to angle - - AQSSensor *sensor = getSensor(nextSensor); - if (sensor == NULL) - { - Serial.println("LCD: getSensor=NULL!"); - return; - } - - angle = map(sensor->value(), sensor->getMin(), sensor->getMax(), MINGUAGE, MAXGUAGE); - - plotNeedle(angle, 15, sensor->value()); - - nameSpr.drawString(sensor->getName().c_str(), name_spr_width / 2, nameSpr.fontHeight() / 2); - nameSpr.drawString(sensor->getUnit().c_str(), name_spr_width / 2, nameSpr.fontHeight() / 2 * 3 + 2); - nameSpr.pushSprite(DIAL_CENTRE_X - name_spr_width / 2, DIAL_CENTRE_Y + 40, 2); - - handleBacklight(); -} - -// ======================================================================================= -// Create the needle Sprite -// ======================================================================================= -void createNeedle(void) -{ - needle.setColorDepth(16); - needle.createSprite(NEEDLE_WIDTH, NEEDLE_LENGTH); // create the needle Sprite - - needle.fillSprite(TFT_BLACK); // Fill with black - - // Define needle pivot point relative to top left corner of Sprite - uint16_t piv_x = NEEDLE_WIDTH / 2; // pivot x in Sprite (middle) - uint16_t piv_y = NEEDLE_RADIUS; // pivot y in Sprite - needle.setPivot(piv_x, piv_y); // Set pivot point in this Sprite - - // Draw the red needle in the Sprite - needle.fillRect(0, 0, NEEDLE_WIDTH, NEEDLE_LENGTH, TFT_MAROON); - needle.fillRect(1, 1, NEEDLE_WIDTH - 2, NEEDLE_LENGTH - 2, TFT_RED); - - // Bounding box parameters to be populated - int16_t min_x; - int16_t min_y; - int16_t max_x; - int16_t max_y; - - // Work out the worst case area that must be grabbed from the TFT, - // this is at a 45 degree rotation - needle.getRotatedBounds(45, &min_x, &min_y, &max_x, &max_y); - - // Calculate the size and allocate the buffer for the grabbed TFT area - tft_buffer = (uint16_t *)malloc(((max_x - min_x) + 2) * ((max_y - min_y) + 2) * 2); -} - -// ======================================================================================= -// Move the needle to a new position -// ======================================================================================= void plotNeedle(int16_t angle, uint16_t ms_delay, uint32_t value) { static int16_t old_angle = -120; // Starts at -120 degrees @@ -378,7 +125,6 @@ void plotNeedle(int16_t angle, uint16_t ms_delay, uint32_t value) // Move the needle until new angle reached while (angle != old_angle || !buffer_loaded) { - if (old_angle < angle) old_angle++; else @@ -418,3 +164,236 @@ void plotNeedle(int16_t angle, uint16_t ms_delay, uint32_t value) } // ======================================================================================= +// Setup +// ======================================================================================= +void createProgressBar(void) +{ + ProgressBar.createSprite(220, 30); + ProgressBar.fillSprite(TFT_BLACK); + ProgressBar.drawRoundRect(0, 2, 220, 22, 5, TFT_BLUE); + ProgressBar.pushSprite(10, 270); +} + +void createNameSprite(void) +{ + nameSpr.setTextFont(2); + name_spr_width = nameSpr.textWidth("---Sensor Name---"); + nameSpr.createSprite(name_spr_width, nameSpr.fontHeight() * 2 + 2); + uint16_t bg_color = tft.readPixel(120, 120); // Get colour from dial centre + + nameSpr.fillSprite(bg_color); + nameSpr.setTextColor(TFT_WHITE, bg_color); + nameSpr.setTextDatum(MC_DATUM); + nameSpr.setTextPadding(name_spr_width); + nameSpr.drawString("Sensor Name", name_spr_width / 2, nameSpr.fontHeight() / 2); + nameSpr.drawString("Unit", name_spr_width / 2, nameSpr.fontHeight() / 2 * 3 + 2); + nameSpr.pushSprite(DIAL_CENTRE_X - name_spr_width / 2, DIAL_CENTRE_Y + 40, 2); +} + +void createValueSprinte(void) +{ + spr.loadFont(AA_FONT_LARGE); + spr_width = spr.textWidth("277"); + spr.createSprite(spr_width, spr.fontHeight()); + uint16_t bg_color = tft.readPixel(120, 120); // Get colour from dial centre + spr.fillSprite(bg_color); + spr.setTextColor(TFT_WHITE, bg_color); + spr.setTextDatum(MC_DATUM); + spr.setTextPadding(spr_width); + spr.drawNumber(0, spr_width / 2, spr.fontHeight() / 2); + spr.pushSprite(DIAL_CENTRE_X - spr_width / 2, DIAL_CENTRE_Y - spr.fontHeight() / 2); +} + +void createNeedle(void) +{ + needle.setColorDepth(16); + needle.createSprite(NEEDLE_WIDTH, NEEDLE_LENGTH); // create the needle Sprite + + needle.fillSprite(TFT_BLACK); // Fill with black + + // Define needle pivot point relative to top left corner of Sprite + uint16_t piv_x = NEEDLE_WIDTH / 2; // pivot x in Sprite (middle) + uint16_t piv_y = NEEDLE_RADIUS; // pivot y in Sprite + needle.setPivot(piv_x, piv_y); // Set pivot point in this Sprite + + // Draw the red needle in the Sprite + needle.fillRect(0, 0, NEEDLE_WIDTH, NEEDLE_LENGTH, TFT_MAROON); + needle.fillRect(1, 1, NEEDLE_WIDTH - 2, NEEDLE_LENGTH - 2, TFT_RED); + + // Bounding box parameters to be populated + int16_t min_x; + int16_t min_y; + int16_t max_x; + int16_t max_y; + + // Work out the worst case area that must be grabbed from the TFT, + // this is at a 45 degree rotation + needle.getRotatedBounds(45, &min_x, &min_y, &max_x, &max_y); + + // Calculate the size and allocate the buffer for the grabbed TFT area + tft_buffer = (uint16_t *)malloc(((max_x - min_x) + 2) * ((max_y - min_y) + 2) * 2); +} + +void createDail(void) +{ + TJpgDec.setSwapBytes(true); + + // The jpeg decoder must be given the exact name of the rendering function above + TJpgDec.setCallback(tft_output); + // Draw the dial + TJpgDec.drawJpg(0, 0, dial, sizeof(dial)); + tft.drawCircle(DIAL_CENTRE_X, DIAL_CENTRE_Y, NEEDLE_RADIUS - NEEDLE_LENGTH, TFT_DARKGREY); + + // Define where the needle pivot point is on the TFT before + // creating the needle so boundary calculation is correct + tft.setPivot(DIAL_CENTRE_X, DIAL_CENTRE_Y); +} + +void initLCD() +{ + Serial.print("InitLCD:"); + // The byte order can be swapped (set true for TFT_eSPI) + + tft.begin(); + tft.setRotation(0); + tft.fillScreen(TFT_BLACK); + + // Create the Sprites + createProgressBar(); + createDail(); + createValueSprinte(); + createNeedle(); + createNameSprite(); + + ledcSetup(TFT_BL_PWMCHANNEL, TFT_BL_FREQ, TFT_BL_BITS); + ledcAttachPin(TFT_BL, TFT_BL_PWMCHANNEL); + ledcWrite(TFT_BL_PWMCHANNEL, BACKLIGHTONBRGT); + + // Reset needle position to 0 + plotNeedle(0, 0, 0); + + Serial.println("OK"); +} + +// ======================================================================================= +// Loop +// ======================================================================================= +void handleBacklight(void) +{ + uint32_t timeNow = millis(); + if (!backlightTimeout) + { + backlightRefresh(); + } + if (timeNow - backlightTimeout > BACKLIGHTTIMEOUT) + { + if (backlightBrightness > BACKLIGHTSTEP) + { + backlightBrightness -= BACKLIGHTSTEP; + } + else + { + backlightBrightness = 0; + } + } + else + { + if (backlightBrightness < BACKLIGHTONBRGT) + { + backlightBrightness += BACKLIGHTSTEP; + } + } + ledcWrite(TFT_BL_PWMCHANNEL, backlightBrightness); +} + +sensor_e displaySensor[] = + { + AE_1P0, + AE_2P5, + AE_10P0, + SCD30_temp, + SCD30_hum, + SCD30_co2, + SGP30_TVOC, +}; + +uint8_t displaySensorSize = 7; + +uint8_t displaySensorIndex = 0; + +void nextSensor(void) +{ + if (displaySensorIndex < displaySensorSize - 1) + { + displaySensorIndex++; + } + else + { + displaySensorIndex = 0; + } + display_last_update = millis(); +} + +void previousSensor(void) +{ + if (displaySensorIndex > 0) + { + displaySensorIndex--; + } + else + { + displaySensorIndex = displaySensorSize - 1; + } + display_last_update = millis(); +} + +void handleplotSensor(void) +{ + if(!backlightBrightness) + { + return; + } + + AQSSensor *sensor = getSensor(displaySensor[displaySensorIndex]); + if (sensor == NULL) + { + Serial.println("LCD: getSensor=NULL!"); + nextSensor(); + return; + } + + uint16_t angle = map(sensor->value(), sensor->getMin(), sensor->getMax(), MINGUAGE, MAXGUAGE); + + plotNeedle(angle, 15, sensor->value()); + + nameSpr.drawString(sensor->getName().c_str(), name_spr_width / 2, nameSpr.fontHeight() / 2); + nameSpr.drawString(sensor->getUnit().c_str(), name_spr_width / 2, nameSpr.fontHeight() / 2 * 3 + 2); + nameSpr.pushSprite(DIAL_CENTRE_X - name_spr_width / 2, DIAL_CENTRE_Y + 40, 2); +} + +void handleDisplayRotate(void) +{ + //rotate display + if(!backlightBrightness) + { + return; + } + + uint32_t timenow = millis(); + if (timenow - display_last_update > (DISPLAY_ROTATE * 1000)) + { + Serial.println("LCD next State"); + nextSensor(); + } +} + +void handleLCD() +{ + handleDisplayRotate(); + + handleplotSensor(); + + handleBacklight(); +} + +// ======================================================================================= diff --git a/lcd.h b/lcd.h index 671094f..d9a20c4 100644 --- a/lcd.h +++ b/lcd.h @@ -3,6 +3,11 @@ #include "Arduino.h" #include "sensor.h" +#include "NotoSansBold36.h" +#include +#include "dial.h" +#include + void initLCD(); void handleLCD(); @@ -10,4 +15,6 @@ void plotNeedle(int16_t angle, uint16_t ms_delay, uint32_t value); void setOTAProgress(uint8_t value); void ProgressbarVisible(bool visible); -void backlightRefresh(void); \ No newline at end of file +void backlightRefresh(void); +void nextSensor(void); +void previousSensor(void); \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 007b65f..ae39a99 100644 --- a/platformio.ini +++ b/platformio.ini @@ -21,8 +21,12 @@ lib_deps = knolleary/PubSubClient robtillaart/RunningMedian bodmer/Tjpg_decoder - adafruit/Adafruit SCD30 - adafruit/Adafruit BusIO + ; adafruit/Adafruit SCD30 + ; adafruit/Adafruit BusIO + ; adafruit/Adafruit SGP30 Sensor + http://192.168.2.3/Bonobo.Git.Server/JCButton.git + sparkfun/SparkFun SCD30 Arduino Library@^1.0.13 + sparkfun/SparkFun SGP30 Arduino Library@^1.0.5 [env:esp32] platform = espressif32 @@ -32,6 +36,15 @@ monitor_speed = 115200 lib_deps = ${common.lib_deps_builtin} ${common.lib_deps} - adafruit/Adafruit SGP30 Sensor@^2.0.0 + + +[env:esp32_ota] +platform = espressif32 +board = esp-wrover-kit +framework = arduino +monitor_speed = 115200 +lib_deps = + ${common.lib_deps_builtin} + ${common.lib_deps} upload_protocol = espota upload_port = 192.168.2.236