use sparkfun lib for sensors adafruit has issues
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@@ -1,4 +1,6 @@
|
|||||||
.pio/
|
.pio/
|
||||||
.vscode/
|
.vscode/
|
||||||
.gitignore
|
*/.DS_store
|
||||||
**/DS.store
|
.DS_Store
|
||||||
|
.vscode/c_cpp_properties.json
|
||||||
|
.vscode/launch.json
|
||||||
|
|||||||
428
.vscode/c_cpp_properties.json
vendored
428
.vscode/c_cpp_properties.json
vendored
@@ -8,219 +8,227 @@
|
|||||||
{
|
{
|
||||||
"name": "PlatformIO",
|
"name": "PlatformIO",
|
||||||
"includePath": [
|
"includePath": [
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/include",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/include",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SGP30 Sensor",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/lib/JC_Button/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SCD30",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit BusIO",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/TJpg_Decoder/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/lib/IP5306",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/SparkFun SGP30 Arduino Library/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/RunningMedian",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/SparkFun SCD30 Arduino Library/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/PubSubClient/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/JC_Button/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit Unified Sensor",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit SGP30 Sensor",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/TFT_eSPI",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit SCD30",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit BusIO",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/TJpg_Decoder/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/RunningMedian",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/PubSubClient/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit Unified Sensor",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/TFT_eSPI",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/efuse",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_server",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/efuse",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_websocket_client",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/espcoredump",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_server",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_websocket_client",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/espcoredump",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/unity",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/unity",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/cores/esp32",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/variants/esp32",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit GFX Library",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SSD1306",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/cores/esp32",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/variants/esp32",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit GFX Library",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
|
||||||
"/Users/willem/.platformio/packages/tool-unity",
|
"/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": {
|
"browse": {
|
||||||
"limitSymbolsToIncludedHeaders": true,
|
"limitSymbolsToIncludedHeaders": true,
|
||||||
"path": [
|
"path": [
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/include",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/include",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SGP30 Sensor",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/lib/JC_Button/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SCD30",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit BusIO",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/TJpg_Decoder/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/lib/IP5306",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/SparkFun SGP30 Arduino Library/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/RunningMedian",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/SparkFun SCD30 Arduino Library/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/PubSubClient/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/JC_Button/src",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit Unified Sensor",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit SGP30 Sensor",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/TFT_eSPI",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit SCD30",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit BusIO",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/TJpg_Decoder/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/RunningMedian",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/PubSubClient/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit Unified Sensor",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/TFT_eSPI",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/efuse",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_server",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/efuse",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_websocket_client",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/espcoredump",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_server",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_websocket_client",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/espcoredump",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/unity",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/unity",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/cores/esp32",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/variants/esp32",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit GFX Library",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning",
|
||||||
"/Users/willem/Documents/PROJECTS/AQS-FW/.pio/libdeps/esp32/Adafruit SSD1306",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/cores/esp32",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/variants/esp32",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
|
"/Users/willemoldemans/Documents/PROJECTEN/AQS-main/Firmware/PM25SensorESP32/.pio/libdeps/esp32/Adafruit GFX Library",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
|
||||||
"/Users/willem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
|
"/Users/willemoldemans/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
|
||||||
"/Users/willem/.platformio/packages/tool-unity",
|
"/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",
|
"cStandard": "c99",
|
||||||
"cppStandard": "c++11",
|
"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": [
|
"compilerArgs": [
|
||||||
"-mlongcalls",
|
"-mlongcalls",
|
||||||
""
|
""
|
||||||
@@ -248,4 +256,4 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"version": 4
|
"version": 4
|
||||||
}
|
}
|
||||||
|
|||||||
10
.vscode/launch.json
vendored
10
.vscode/launch.json
vendored
@@ -12,22 +12,22 @@
|
|||||||
"type": "platformio-debug",
|
"type": "platformio-debug",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"name": "PIO Debug",
|
"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",
|
"projectEnvName": "esp32",
|
||||||
"toolchainBinDir": "/Users/willem/.platformio/packages/toolchain-xtensa32/bin",
|
"toolchainBinDir": "/Users/willemoldemans/.platformio/packages/toolchain-xtensa32/bin",
|
||||||
"internalConsoleOptions": "openOnSessionStart",
|
"internalConsoleOptions": "openOnSessionStart",
|
||||||
"preLaunchTask": {
|
"preLaunchTask": {
|
||||||
"type": "PlatformIO",
|
"type": "PlatformIO",
|
||||||
"task": "Pre-Debug"
|
"task": "Pre-Debug (esp32)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "platformio-debug",
|
"type": "platformio-debug",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"name": "PIO Debug (skip Pre-Debug)",
|
"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",
|
"projectEnvName": "esp32",
|
||||||
"toolchainBinDir": "/Users/willem/.platformio/packages/toolchain-xtensa32/bin",
|
"toolchainBinDir": "/Users/willemoldemans/.platformio/packages/toolchain-xtensa32/bin",
|
||||||
"internalConsoleOptions": "openOnSessionStart"
|
"internalConsoleOptions": "openOnSessionStart"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#include "CO2_sensor.h"
|
#include "CO2_sensor.h"
|
||||||
|
|
||||||
Adafruit_SCD30 scd30;
|
//Adafruit_SCD30 scd30;
|
||||||
|
SCD30 scd30;
|
||||||
|
|
||||||
#define CO2_INTERVAL 120000 //ms
|
#define CO2_INTERVAL 120000 //ms
|
||||||
#define SCD30TEMPMAX 50
|
#define SCD30TEMPMAX 50
|
||||||
@@ -19,6 +20,7 @@ uint32_t CO2_lastUpdate = 0;
|
|||||||
void initCO2sensor(void)
|
void initCO2sensor(void)
|
||||||
{
|
{
|
||||||
Serial.println("SCD30: init");
|
Serial.println("SCD30: init");
|
||||||
|
Wire.begin();
|
||||||
if (!scd30.begin())
|
if (!scd30.begin())
|
||||||
{
|
{
|
||||||
Serial.println("SCD30: Failed to find sensor");
|
Serial.println("SCD30: Failed to find sensor");
|
||||||
@@ -33,8 +35,8 @@ void initCO2sensor(void)
|
|||||||
addSensorToList(&SCD30_CO2);
|
addSensorToList(&SCD30_CO2);
|
||||||
|
|
||||||
//check callibration Mode
|
//check callibration Mode
|
||||||
scd30.selfCalibrationEnabled(false);
|
//scd30.selfCalibrationEnabled(false);
|
||||||
scd30.read();
|
//scd30.read();
|
||||||
Serial.println("SCD30: init OK");
|
Serial.println("SCD30: init OK");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -42,32 +44,21 @@ void initCO2sensor(void)
|
|||||||
void handleCO2sensor(void)
|
void handleCO2sensor(void)
|
||||||
{
|
{
|
||||||
uint32_t currentmillis = millis();
|
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;
|
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_temperature.set(uint32_t(scd30.getTemperature()));
|
||||||
SCD30_Humidity.publish();
|
SCD30_Humidity.set(uint32_t(scd30.getHumidity()));
|
||||||
SCD30_CO2.publish();
|
SCD30_CO2.set(uint32_t(scd30.getCO2()));
|
||||||
CO2_lastUpdate = currentmillis;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
SCD30_temperature.publish();
|
||||||
|
SCD30_Humidity.publish();
|
||||||
|
SCD30_CO2.publish();
|
||||||
|
CO2_lastUpdate = currentmillis;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,9 +2,11 @@
|
|||||||
|
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <wire.h>
|
||||||
|
//#include <Adafruit_SCD30.h>
|
||||||
|
//#include <Adafruit_Sensor.h>
|
||||||
|
#include "SparkFun_SCD30_Arduino_Library.h" //Click here to get the library: http://librarymanager/All#SparkFun_SCD30
|
||||||
|
|
||||||
#include <Adafruit_SCD30.h>
|
|
||||||
#include <Adafruit_Sensor.h>
|
|
||||||
|
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
#include "VOC_sensor.h"
|
#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;
|
uint8_t VOC_samples = 3600 / g_pms_report_period;
|
||||||
#define VOC_MIN 0
|
#define VOC_MIN 0
|
||||||
#define VOC_MAX 10000
|
#define VOC_MAX 10000
|
||||||
@@ -17,21 +22,25 @@ AQSSensor SGP30_rawethanol("Raw_Ethanol", SGP30_rawEthanol, "#", device_name, VO
|
|||||||
void initVOCsensor(void)
|
void initVOCsensor(void)
|
||||||
{
|
{
|
||||||
Serial.println("VOCSensor: Init SGP30: ");
|
Serial.println("VOCSensor: Init SGP30: ");
|
||||||
|
//wire1.setPins(I2C_2_SDA, I2C_2_SCL);
|
||||||
|
//if (!sgp.begin(&wire1))
|
||||||
|
Wire.begin();
|
||||||
if (!sgp.begin())
|
if (!sgp.begin())
|
||||||
{
|
{
|
||||||
Serial.println("VOCSensor: Init Failed (SGP30 not found)");
|
Serial.println("VOCSensor: Init Failed (SGP30 not found)");
|
||||||
}
|
}
|
||||||
else
|
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_tvoc);
|
||||||
addSensorToList(&SGP30_eco2);
|
addSensorToList(&SGP30_eco2);
|
||||||
addSensorToList(&SGP30_rawh2);
|
|
||||||
addSensorToList(&SGP30_rawethanol);
|
|
||||||
|
|
||||||
sgp.IAQmeasure();
|
sgp.initAirQuality();
|
||||||
sgp.IAQmeasureRaw();
|
sgp.measureAirQuality();
|
||||||
|
|
||||||
Serial.println("VOCSensor: Init OK");
|
Serial.println("VOCSensor: Init OK");
|
||||||
}
|
}
|
||||||
@@ -42,29 +51,14 @@ void handleVOCsensor(void)
|
|||||||
uint32_t timenow = millis();
|
uint32_t timenow = millis();
|
||||||
if ((timenow - lastVOCtime > VOC_INTERVAL) || !lastVOCtime)
|
if ((timenow - lastVOCtime > VOC_INTERVAL) || !lastVOCtime)
|
||||||
{
|
{
|
||||||
if (!sgp.IAQmeasure())
|
sgp.measureAirQuality();
|
||||||
{
|
|
||||||
Serial.println("VOCSensor: Measurement failed");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
SGP30_tvoc.set(sgp.TVOC);
|
SGP30_tvoc.set(sgp.TVOC);
|
||||||
SGP30_eco2.set(sgp.eCO2);
|
SGP30_eco2.set(sgp.CO2);
|
||||||
|
|
||||||
SGP30_tvoc.publish();
|
SGP30_tvoc.publish();
|
||||||
SGP30_eco2.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;
|
lastVOCtime = timenow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,8 +3,11 @@
|
|||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
|
#include <Wire.h>
|
||||||
|
|
||||||
#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 <Wire.h>
|
||||||
|
|
||||||
|
|
||||||
void initVOCsensor(void);
|
void initVOCsensor(void);
|
||||||
|
|||||||
10
battery.cpp
Normal file
10
battery.cpp
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#include "battery.h"
|
||||||
|
|
||||||
|
void initBattery(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
void handleBattery(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
7
battery.h
Normal file
7
battery.h
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "Arduino.h"
|
||||||
|
#include "IP5306.h"
|
||||||
|
|
||||||
|
void initBattery(void);
|
||||||
|
void handleBattery(void);
|
||||||
1
button.h
1
button.h
@@ -3,6 +3,7 @@
|
|||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
|
#include "JC_Button.h"
|
||||||
|
|
||||||
void initButtons( void );
|
void initButtons( void );
|
||||||
void handleButtons( void );
|
void handleButtons( void );
|
||||||
31
buttons.cpp
31
buttons.cpp
@@ -6,16 +6,45 @@ uint8_t g_previous_mode_button_state = 1;
|
|||||||
uint32_t g_last_debounce_time = 0;
|
uint32_t g_last_debounce_time = 0;
|
||||||
uint32_t g_debounce_delay = 50;
|
uint32_t g_debounce_delay = 50;
|
||||||
|
|
||||||
|
Button buttonCenter(BUTTON_CENTER);
|
||||||
|
Button buttonLeft(BUTTON_LEFT);
|
||||||
|
Button buttonRight(BUTTON_RIGHT);
|
||||||
|
|
||||||
void initButtons(void)
|
void initButtons(void)
|
||||||
{
|
{
|
||||||
Serial.print("initButtons:");
|
Serial.print("initButtons:");
|
||||||
|
buttonCenter.begin();
|
||||||
|
buttonLeft.begin();
|
||||||
|
buttonRight.begin();
|
||||||
|
|
||||||
pinMode(MODE_BUTTON_PIN, INPUT_PULLUP); // Pin for switching screens button
|
pinMode(MODE_BUTTON_PIN, INPUT_PULLUP); // Pin for switching screens button
|
||||||
Serial.println(" OK");
|
Serial.println(" OK");
|
||||||
}
|
}
|
||||||
|
|
||||||
void handleButtons(void)
|
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);
|
g_current_mode_button_state = digitalRead(MODE_BUTTON_PIN);
|
||||||
|
|
||||||
// Check if button is now pressed and it was previously unpressed
|
// Check if button is now pressed and it was previously unpressed
|
||||||
|
|||||||
33
config.h
33
config.h
@@ -16,9 +16,6 @@
|
|||||||
#define g_pms_warmup_period 30 // Seconds to warm up PMS before reading
|
#define g_pms_warmup_period 30 // Seconds to warm up PMS before reading
|
||||||
#define g_pms_report_period 120 // Seconds between reports
|
#define g_pms_report_period 120 // Seconds between reports
|
||||||
|
|
||||||
/* Use WiFi. If this is off, MQTT won't run */
|
|
||||||
#define ENABLE_WIFI true
|
|
||||||
|
|
||||||
/* Serial */
|
/* Serial */
|
||||||
#define SERIAL_BAUD_RATE 115200 // Speed for USB serial console
|
#define SERIAL_BAUD_RATE 115200 // Speed for USB serial console
|
||||||
|
|
||||||
@@ -27,19 +24,25 @@
|
|||||||
|
|
||||||
/* ----------------- Hardware-specific Config ---------------------- */
|
/* ----------------- Hardware-specific Config ---------------------- */
|
||||||
/* Mode button connection (momentary between this pin and GND) */
|
/* Mode button connection (momentary between this pin and GND) */
|
||||||
#define MODE_BUTTON_PIN 0
|
#define MODE_BUTTON_PIN 0
|
||||||
#define TFT_BL 4 // LED back-light control pin
|
#define BUTTON_CENTER 37
|
||||||
#define TFT_BACKLIGHT_ON HIGH // Level to turn ON back-light (HIGH or LOW)
|
#define BUTTON_RIGHT 39
|
||||||
#define TFT_BL_PWMCHANNEL 1
|
#define BUTTON_LEFT 38
|
||||||
#define TFT_BL_FREQ 5000
|
#define I2C_SDA_PIN 21
|
||||||
#define TFT_BL_BITS 8
|
#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
|
//backlight defines
|
||||||
#define I2C_SCL_PIN 22
|
#define TFT_BACKLIGHT_ON HIGH // Level to turn ON back-light (HIGH or LOW)
|
||||||
//#define BME680_I2C_ADDR 0x76
|
#define TFT_BL_PWMCHANNEL 1
|
||||||
|
#define TFT_BL_FREQ 5000
|
||||||
|
#define TFT_BL_BITS 8
|
||||||
|
|
||||||
/* Particulate Matter Sensor */
|
/* Particulate Matter Sensor */
|
||||||
#define PMS_BAUD_RATE 9600
|
#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
|
|
||||||
|
|||||||
557
lcd.cpp
557
lcd.cpp
@@ -1,25 +1,5 @@
|
|||||||
#include "lcd.h"
|
#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_LENGTH 35 // Visible length
|
||||||
#define NEEDLE_WIDTH 5 // Width of needle - make it an odd number
|
#define NEEDLE_WIDTH 5 // Width of needle - make it an odd number
|
||||||
#define NEEDLE_RADIUS 90 // Radius at tip
|
#define NEEDLE_RADIUS 90 // Radius at tip
|
||||||
@@ -28,11 +8,28 @@
|
|||||||
#define DIAL_CENTRE_X 120
|
#define DIAL_CENTRE_X 120
|
||||||
#define DIAL_CENTRE_Y 120
|
#define DIAL_CENTRE_Y 120
|
||||||
|
|
||||||
// Font attached to this sketch
|
#define MAXGUAGE 240
|
||||||
#include "NotoSansBold36.h"
|
#define MINGUAGE 0
|
||||||
|
#define DISPLAY_ROTATE 15 //sec
|
||||||
|
|
||||||
|
#define BACKLIGHTTIMEOUT 60000
|
||||||
|
#define BACKLIGHTONBRGT 84
|
||||||
|
#define BACKLIGHTSTEP 1
|
||||||
|
|
||||||
#define AA_FONT_LARGE NotoSansBold36
|
#define AA_FONT_LARGE NotoSansBold36
|
||||||
|
|
||||||
#include <TFT_eSPI.h>
|
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_eSPI tft = TFT_eSPI();
|
||||||
TFT_eSprite needle = TFT_eSprite(&tft); // Sprite object for needle
|
TFT_eSprite needle = TFT_eSprite(&tft); // Sprite object for needle
|
||||||
TFT_eSprite spr = TFT_eSprite(&tft); // Sprite for meter reading
|
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 unitSpr = TFT_eSprite(&tft);
|
||||||
TFT_eSprite ProgressBar = 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 <TJpg_Decoder.h>
|
|
||||||
|
|
||||||
uint16_t *tft_buffer;
|
uint16_t *tft_buffer;
|
||||||
bool buffer_loaded = false;
|
bool buffer_loaded = false;
|
||||||
uint16_t spr_width = 0;
|
uint16_t spr_width = 0;
|
||||||
uint16_t name_spr_width = 0;
|
uint16_t name_spr_width = 0;
|
||||||
bool progessbarActive = false;
|
bool progessbarActive = false;
|
||||||
|
|
||||||
void createNeedle(void);
|
DISPLAY_STATE displaystate = DISPLAY_PM1P0;
|
||||||
void plotNeedle(int16_t angle, uint16_t ms_delay);
|
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)
|
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);
|
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)
|
void ProgressbarVisible(bool visible)
|
||||||
{
|
{
|
||||||
progessbarActive = 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)
|
void backlightRefresh(void)
|
||||||
{
|
{
|
||||||
backlightTimeout = millis();
|
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)
|
void plotNeedle(int16_t angle, uint16_t ms_delay, uint32_t value)
|
||||||
{
|
{
|
||||||
static int16_t old_angle = -120; // Starts at -120 degrees
|
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
|
// Move the needle until new angle reached
|
||||||
while (angle != old_angle || !buffer_loaded)
|
while (angle != old_angle || !buffer_loaded)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (old_angle < angle)
|
if (old_angle < angle)
|
||||||
old_angle++;
|
old_angle++;
|
||||||
else
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
// =======================================================================================
|
||||||
|
|||||||
9
lcd.h
9
lcd.h
@@ -3,6 +3,11 @@
|
|||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
|
|
||||||
|
#include "NotoSansBold36.h"
|
||||||
|
#include <TFT_eSPI.h>
|
||||||
|
#include "dial.h"
|
||||||
|
#include <TJpg_Decoder.h>
|
||||||
|
|
||||||
void initLCD();
|
void initLCD();
|
||||||
void handleLCD();
|
void handleLCD();
|
||||||
|
|
||||||
@@ -10,4 +15,6 @@ void plotNeedle(int16_t angle, uint16_t ms_delay, uint32_t value);
|
|||||||
void setOTAProgress(uint8_t value);
|
void setOTAProgress(uint8_t value);
|
||||||
void ProgressbarVisible(bool visible);
|
void ProgressbarVisible(bool visible);
|
||||||
|
|
||||||
void backlightRefresh(void);
|
void backlightRefresh(void);
|
||||||
|
void nextSensor(void);
|
||||||
|
void previousSensor(void);
|
||||||
@@ -21,8 +21,12 @@ lib_deps =
|
|||||||
knolleary/PubSubClient
|
knolleary/PubSubClient
|
||||||
robtillaart/RunningMedian
|
robtillaart/RunningMedian
|
||||||
bodmer/Tjpg_decoder
|
bodmer/Tjpg_decoder
|
||||||
adafruit/Adafruit SCD30
|
; adafruit/Adafruit SCD30
|
||||||
adafruit/Adafruit BusIO
|
; 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]
|
[env:esp32]
|
||||||
platform = espressif32
|
platform = espressif32
|
||||||
@@ -32,6 +36,15 @@ monitor_speed = 115200
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${common.lib_deps_builtin}
|
${common.lib_deps_builtin}
|
||||||
${common.lib_deps}
|
${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_protocol = espota
|
||||||
upload_port = 192.168.2.236
|
upload_port = 192.168.2.236
|
||||||
|
|||||||
Reference in New Issue
Block a user