This commit is contained in:
2026-06-20 17:36:48 -04:00
parent 3bd9cf9626
commit 3fabd74d5d
4 changed files with 869 additions and 41 deletions
@@ -0,0 +1,538 @@
//
// !!! WARNING !!! AUTO-GENERATED FILE!
// PLEASE DO NOT MODIFY IT AND USE "platformio.ini":
// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags
//
{
"configurations": [
{
"name": "PlatformIO",
"includePath": [
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/include",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/src",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit INA219",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit BusIO",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/hd44780",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/newlib/platform_include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/include/esp_additions/freertos",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/port/xtensa/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/include/esp_additions",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/include/soc",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/include/soc/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/port/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/port/esp32s3/private_include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/heap/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/log/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/include/apps",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/include/apps/sntp",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/lwip/src/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/port/esp32/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/port/esp32/include/arch",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/soc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/soc/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/soc/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/hal/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/hal/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/hal/platform_port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_rom/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_rom/include/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_rom/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_system/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_system/port/soc",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_system/port/public_compat",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/xtensa/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/xtensa/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_pm/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_ringbuf/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/efuse/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/efuse/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/vfs/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_wifi/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_event/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_netif/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_eth/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/tcpip_adapter/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_phy/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_phy/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_ipc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/app_trace/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_timer/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mbedtls/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mbedtls/mbedtls/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mbedtls/esp_crt_bundle/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/app_update/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/spi_flash/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bootloader_support/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/nvs_flash/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/pthread/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_gdbstub/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_gdbstub/xtensa",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_gdbstub/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espcoredump/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espcoredump/include/port/xtensa",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wpa_supplicant/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wpa_supplicant/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wpa_supplicant/esp_supplicant/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/ieee802154/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/console",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/asio/asio/asio/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/asio/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/common/osi/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/include/esp32c3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/common/api/include/api",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/common/btc/profile/esp/blufi/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/common/btc/profile/esp/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/host/bluedroid/api/include/api",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core/storage",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/btc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/client/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/server/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api/core/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api/models/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/cbor/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/unity/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/unity/unity/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/cmock/CMock/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/coap/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/coap/libcoap/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/nghttp/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/nghttp/nghttp2/lib/includes",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-tls",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-tls/esp-tls-crypto",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_adc_cal/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hid/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/tcp_transport/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_http_client/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_http_server/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_https_ota/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_https_server/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_lcd/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_lcd/interface",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/protobuf-c/protobuf-c",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/protocomm/include/common",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/protocomm/include/security",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/protocomm/include/transports",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mdns/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_local_ctrl/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/sdmmc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_serial_slave_link/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_websocket_client/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/expat/expat/expat/lib",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/expat/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wear_levelling/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/fatfs/diskio",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/fatfs/vfs",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/fatfs/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freemodbus/freemodbus/common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/idf_test/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/idf_test/include/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/jsmn/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/json/cJSON",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/libsodium/libsodium/src/libsodium/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/libsodium/port_include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mqtt/esp-mqtt/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/openssl/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/perfmon/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/spiffs/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/usb/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/ulp/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wifi_provisioning/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/rmaker_common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_diagnostics/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/rtc_store/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_insights/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/json_parser/upstream/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/json_parser/upstream",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/json_generator/upstream",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_schedule/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp_secure_cert_mgr/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_rainmaker/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/gpio_button/button/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/qrcode/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/ws2812_led",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/include/freertos",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/arduino_tinyusb/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_littlefs/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/tool",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/typedef",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/image",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/math",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/nn",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/layer",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/detect",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/model_zoo",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp32-camera/driver/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp32-camera/conversions/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/dotprod/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/support/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/support/mem/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/hann/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman_harris/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/nuttall/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/flat_top/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/iir/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/fir/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/add/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/sub/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/mul/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/addc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/mulc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/sqrt/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/mul/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/add/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/addc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/mulc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/sub/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/fft/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/dct/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/conv/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/mul/test/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/kalman/ekf/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/fb_gfx/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/qio_opi/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/variants/esp32s3",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit GFX Library",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit NeoPixel",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit SSD1306",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
""
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"path": [
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/include",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/src",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit INA219",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit BusIO",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/hd44780",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/newlib/platform_include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/include/esp_additions/freertos",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/port/xtensa/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/include/esp_additions",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/include/soc",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/include/soc/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/port/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hw_support/port/esp32s3/private_include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/heap/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/log/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/include/apps",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/include/apps/sntp",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/lwip/src/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/port/esp32/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/lwip/port/esp32/include/arch",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/soc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/soc/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/soc/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/hal/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/hal/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/hal/platform_port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_rom/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_rom/include/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_rom/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_system/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_system/port/soc",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_system/port/public_compat",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/xtensa/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/xtensa/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/driver/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_pm/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_ringbuf/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/efuse/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/efuse/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/vfs/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_wifi/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_event/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_netif/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_eth/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/tcpip_adapter/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_phy/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_phy/esp32s3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_ipc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/app_trace/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_timer/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mbedtls/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mbedtls/mbedtls/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mbedtls/esp_crt_bundle/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/app_update/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/spi_flash/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bootloader_support/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/nvs_flash/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/pthread/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_gdbstub/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_gdbstub/xtensa",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_gdbstub/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espcoredump/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espcoredump/include/port/xtensa",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wpa_supplicant/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wpa_supplicant/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wpa_supplicant/esp_supplicant/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/ieee802154/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/console",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/asio/asio/asio/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/asio/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/common/osi/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/include/esp32c3/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/common/api/include/api",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/common/btc/profile/esp/blufi/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/common/btc/profile/esp/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/host/bluedroid/api/include/api",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core/storage",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/btc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/client/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/server/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api/core/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api/models/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/cbor/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/unity/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/unity/unity/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/cmock/CMock/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/coap/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/coap/libcoap/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/nghttp/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/nghttp/nghttp2/lib/includes",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-tls",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-tls/esp-tls-crypto",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_adc_cal/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_hid/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/tcp_transport/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_http_client/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_http_server/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_https_ota/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_https_server/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_lcd/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_lcd/interface",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/protobuf-c/protobuf-c",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/protocomm/include/common",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/protocomm/include/security",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/protocomm/include/transports",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mdns/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_local_ctrl/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/sdmmc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_serial_slave_link/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_websocket_client/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/expat/expat/expat/lib",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/expat/port/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wear_levelling/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/fatfs/diskio",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/fatfs/vfs",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/fatfs/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freemodbus/freemodbus/common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/idf_test/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/idf_test/include/esp32s3",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/jsmn/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/json/cJSON",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/libsodium/libsodium/src/libsodium/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/libsodium/port_include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/mqtt/esp-mqtt/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/openssl/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/perfmon/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/spiffs/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/usb/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/ulp/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/wifi_provisioning/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/rmaker_common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_diagnostics/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/rtc_store/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_insights/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/json_parser/upstream/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/json_parser/upstream",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/json_generator/upstream",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_schedule/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp_secure_cert_mgr/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_rainmaker/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/gpio_button/button/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/qrcode/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/ws2812_led",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/freertos/include/freertos",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/arduino_tinyusb/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp_littlefs/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/tool",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/typedef",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/image",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/math",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/nn",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/layer",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/detect",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp-dl/include/model_zoo",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp32-camera/driver/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/esp32-camera/conversions/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/dotprod/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/support/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/support/mem/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/hann/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman_harris/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/nuttall/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/flat_top/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/iir/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/fir/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/add/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/sub/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/mul/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/addc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/mulc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/sqrt/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/mul/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/add/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/addc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/mulc/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/sub/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/fft/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/dct/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/conv/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/common/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/mul/test/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/kalman/ekf/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/include/fb_gfx/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3/qio_opi/include",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/variants/esp32s3",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit GFX Library",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit NeoPixel",
"/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/libdeps/freenove_esp32_s3_wroom/Adafruit SSD1306",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
"/home/thebears/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
""
]
},
"defines": [
"PLATFORMIO=60119",
"ARDUINO_ESP32S3_DEV",
"ARDUINO_RUNNING_CORE=1",
"ARDUINO_EVENT_RUNNING_CORE=1",
"BOARD_HAS_PSRAM",
"ARDUINO_USB_MODE=0",
"ARDUINO_USB_CDC_ON_BOOT=0",
"BOARD_HAS_PSRAM",
"CORE_DEBUG_LEVEL=5",
"ARDUINO_USB_MODE=1",
"ARDUINO_USB_CDC_ON_BOOT=1",
"HAVE_CONFIG_H",
"MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"",
"UNITY_INCLUDE_CONFIG_H",
"WITH_POSIX",
"_GNU_SOURCE",
"IDF_VER=\"v4.4.7-dirty\"",
"ESP_PLATFORM",
"_POSIX_READER_WRITER_LOCKS",
"ARDUINO_ARCH_ESP32",
"ESP32",
"F_CPU=240000000L",
"ARDUINO=10812",
"ARDUINO_VARIANT=\"esp32s3\"",
"ARDUINO_BOARD=\"Freenove ESP32-S3 WROOM N8R8 (8MB Flash / 8MB PSRAM)\"",
"ARDUINO_PARTITION_default_16MB",
""
],
"cStandard": "gnu99",
"cppStandard": "gnu++11",
"compilerPath": "/home/thebears/.platformio/packages/toolchain-xtensa-esp32s3/bin/xtensa-esp32s3-elf-gcc",
"compilerArgs": [
"-mlongcalls",
""
]
}
],
"version": 4
}
@@ -0,0 +1,10 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide"
],
"unwantedRecommendations": [
"ms-vscode.cpptools-extension-pack"
]
}
@@ -0,0 +1,44 @@
// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY
//
// PlatformIO Debugging Solution
//
// Documentation: https://docs.platformio.org/en/latest/plus/debugging.html
// Configuration: https://docs.platformio.org/en/latest/projectconf/sections/env/options/debug/index.html
{
"version": "0.2.0",
"configurations": [
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug",
"executable": "/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/build/freenove_esp32_s3_wroom/firmware.elf",
"projectEnvName": "freenove_esp32_s3_wroom",
"toolchainBinDir": "/home/thebears/.platformio/packages/toolchain-xtensa-esp32s3/bin",
"internalConsoleOptions": "openOnSessionStart",
"preLaunchTask": {
"type": "PlatformIO",
"task": "Pre-Debug"
}
},
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (skip Pre-Debug)",
"executable": "/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/build/freenove_esp32_s3_wroom/firmware.elf",
"projectEnvName": "freenove_esp32_s3_wroom",
"toolchainBinDir": "/home/thebears/.platformio/packages/toolchain-xtensa-esp32s3/bin",
"internalConsoleOptions": "openOnSessionStart"
},
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (without uploading)",
"executable": "/home/thebears/Seafile/Designs/ESP/rain_barrel/code/.pio/build/freenove_esp32_s3_wroom/firmware.elf",
"projectEnvName": "freenove_esp32_s3_wroom",
"toolchainBinDir": "/home/thebears/.platformio/packages/toolchain-xtensa-esp32s3/bin",
"internalConsoleOptions": "openOnSessionStart",
"loadMode": "manual"
}
]
}
+277 -41
View File
@@ -1,15 +1,17 @@
#define RXD_PIN 5
#define TXD_PIN 6
#define CONTROL_PIN 4
#define RELAY_LEVEL_CONVERTER_PIN 17
#define INTERRUPT_PIN 16
#define I2C_SCL_PIN 7
#define I2C_SDA_PIN 15
#define RXD_PIN 4 // 4, black, RXD
#define TXD_PIN 5 // 5, white, TXD
#define INTERRUPT_PIN 46
#define I2C_SCL_PIN 17
#define I2C_SDA_PIN 18
#define SERIAL_BAUD 115200
#define MODBUS_BAUD 9600
#define RELAY_CONTROL_ADDRESS 0x26
#define BUTTONS_CONTROL_ADDRESS 0x20
#define BUTTON_LED_CONTROL_ADDRESS 0x21
#include <cstring>
#include <cctype>
#include <cmath>
#include <Arduino.h>
#include <Wire.h>
#include <hd44780.h>
@@ -22,8 +24,6 @@ constexpr uint8_t WATER_ROW = LCD_ROWS - 1;
hd44780_I2Cexp lcd(LCD_I2C_ADDRESS, LCD_COLS, LCD_ROWS);
constexpr uint8_t RELAY_CONTROL_ADDRESS = 0x21;
constexpr uint8_t BUTTONS_CONTROL_ADDRESS = 0x20;
constexpr unsigned long COMMAND_INTERVAL_MS = 1000;
constexpr uint16_t MODBUS_RESPONSE_TIMEOUT_MS = 200;
@@ -32,6 +32,8 @@ uint8_t modbusReadCmd[] = {0x01, 0x03, 0x00, 0x04, 0x00, 0x01};
volatile bool g_buttonInterruptFired = false;
int g_waterLevelCm = -1;
float g_busVoltageV = NAN;
float g_currentA = NAN;
struct Action
{
@@ -47,21 +49,47 @@ enum class ActionId : size_t
BarrelToHose,
BackLeftToBarrel,
BarrelToBackLeft,
NotAssigned,
Count
};
inline Action g_actions[] = {
{"City -> Hose", 0b00001100, 0b00001100, false},
{"Barrel -> Hose", 0b01000000, 0b01101100, false},
{"Back Left -> Barrel", 0b00010000, 0b00110000, false},
{"Barrel -> Back Left", 0b01101000, 0b01111000, false},
{"NotAssigned", 0b00000000, 0b00000000, false},
{"Back Left -> Barrel", 0b00010000, 0b00010001, false},
{"Barrel -> Back Left", 0b01001001, 0b01011001, false},
};
uint8_t current_stat = 0b00000000;
uint8_t current_mask = 0b00000000;
// I2C device found at 0x20 - control buttons
// I2C device found at 0x21 - control leds
// I2C device found at 0x26 - controls relays
// I2C device found at 0x27 - measures current
// I2C device found at 0x40 - lcd
// INA226
constexpr uint8_t INA226_I2C_ADDRESS = 0x40;
constexpr float INA226_SHUNT_OHMS = 0.005f; // R005
constexpr float INA226_CURRENT_LSB_A = 0.001f; // 1 mA/bit
constexpr uint16_t INA226_CALIBRATION = 1024; // 0.00512 / (0.001 * 0.005)
constexpr unsigned long INA226_POLL_INTERVAL_MS = 1000;
enum : uint8_t
{
INA226_REG_CONFIG = 0x00,
INA226_REG_SHUNT_VOLT = 0x01,
INA226_REG_BUS_VOLT = 0x02,
INA226_REG_POWER = 0x03,
INA226_REG_CURRENT = 0x04,
INA226_REG_CALIBRATION = 0x05,
INA226_REG_MASK_ENABLE = 0x06,
INA226_REG_ALERT_LIMIT = 0x07,
INA226_REG_MANUFACTURER = 0xFE,
INA226_REG_DIE_ID = 0xFF
};
// Forward declarations
void updateLCDDisplay();
void addWaterLevel();
@@ -75,7 +103,13 @@ void sendCommand(const uint8_t *cmd, size_t len);
void sendModbusCommand();
void scanI2CDevices();
void buildTrimmedWaterLevelText(char *outBuffer, size_t outBufferSize);
void buildElectricalText(char *outBuffer, size_t outBufferSize);
void buildRightJustifiedWaterRow(char *rowBuffer, size_t rowBufferSize);
// INA226 forward declarations
bool ina226WriteReg16(uint8_t reg, uint16_t value);
bool ina226ReadReg16(uint8_t reg, uint16_t &value);
void initINA226();
void pollINA226();
inline Action &getAction(ActionId id)
{
@@ -146,10 +180,64 @@ void buildRightJustifiedWaterRow(char *rowBuffer, size_t rowBufferSize)
memcpy(rowBuffer + startCol, text, len);
}
void buildElectricalText(char *outBuffer, size_t outBufferSize)
{
if (outBuffer == nullptr || outBufferSize == 0)
{
return;
}
if (std::isnan(g_busVoltageV) || std::isnan(g_currentA))
{
snprintf(outBuffer, outBufferSize, "--.-V --mA");
return;
}
const float roundedV = std::round(g_busVoltageV * 10.0f) / 10.0f;
char currentText[12];
if (std::fabs(g_currentA) >= 1.0f)
{
// Example: "1.23A"
snprintf(currentText, sizeof(currentText), "%.2fA", g_currentA);
}
else
{
// Example: "123.4mA"
snprintf(currentText, sizeof(currentText), "%.1fmA", g_currentA * 1000.0f);
}
snprintf(outBuffer, outBufferSize, "%.1fV %s", roundedV, currentText);
}
void addWaterLevel()
{
char row[LCD_COLS + 1];
buildRightJustifiedWaterRow(row, sizeof(row));
memset(row, ' ', LCD_COLS);
row[LCD_COLS] = '\0';
char waterText[24];
buildTrimmedWaterLevelText(waterText, sizeof(waterText));
size_t waterLen = strlen(waterText);
if (waterLen > LCD_COLS)
{
waterLen = LCD_COLS;
}
const size_t waterStartCol = LCD_COLS - waterLen;
memcpy(row + waterStartCol, waterText, waterLen);
char electricalText[24];
buildElectricalText(electricalText, sizeof(electricalText));
size_t electricalLen = strlen(electricalText);
if (electricalLen > waterStartCol)
{
electricalLen = waterStartCol;
}
memcpy(row, electricalText, electricalLen);
lcd.setCursor(0, WATER_ROW);
lcd.print(row);
}
@@ -192,6 +280,35 @@ void generateMasksByActive()
}
}
void updateLEDButtons()
{
uint8_t mask_send = 0x00;
for (size_t i = 0; i < static_cast<size_t>(ActionId::Count); ++i)
{
if (g_actions[i].active)
{
mask_send |= (1 << i);
}
}
Wire.beginTransmission(static_cast<uint8_t>(BUTTON_LED_CONTROL_ADDRESS));
Wire.write(static_cast<uint8_t>(0x00));
uint8_t error = Wire.endTransmission();
Wire.beginTransmission(static_cast<uint8_t>(BUTTON_LED_CONTROL_ADDRESS));
Wire.write(static_cast<uint8_t>(mask_send));
error = Wire.endTransmission();
Serial.print("LED Mask: ");
printBin(mask_send);
}
void doFullRefresh()
{
applyRelayStateIfChanged();
updateLCDDisplay();
updateLEDButtons();
}
void updateStateByLastAction(ActionId lastAction)
{
Action &c_action = getAction(lastAction);
@@ -200,8 +317,7 @@ void updateStateByLastAction(ActionId lastAction)
{
c_action.active = false;
generateMasksByActive();
applyRelayStateIfChanged();
updateLCDDisplay();
doFullRefresh();
return;
}
@@ -242,9 +358,7 @@ void updateStateByLastAction(ActionId lastAction)
printBin(current_stat);
Serial.print("Mask: ");
printBin(current_mask);
applyRelayStateIfChanged();
updateLCDDisplay();
doFullRefresh();
}
void applyRelayStateIfChanged()
@@ -257,8 +371,8 @@ void applyRelayStateIfChanged()
return;
}
Wire.beginTransmission(RELAY_CONTROL_ADDRESS);
Wire.write(relayValue);
Wire.beginTransmission(static_cast<uint8_t>(RELAY_CONTROL_ADDRESS));
Wire.write(static_cast<uint8_t>(relayValue));
uint8_t error = Wire.endTransmission();
if (error == 0)
@@ -332,49 +446,44 @@ void scanI2CDevices()
void readAndPrintButtons()
{
Wire.beginTransmission(BUTTONS_CONTROL_ADDRESS);
Wire.write(0b11111110); // P0 LOW, others HIGH
Wire.beginTransmission(static_cast<uint8_t>(BUTTONS_CONTROL_ADDRESS));
Wire.write(static_cast<uint8_t>(0b11111111)); // P0 LOW, others HIGH
Wire.endTransmission();
Wire.requestFrom(BUTTONS_CONTROL_ADDRESS, static_cast<uint8_t>(1));
Wire.requestFrom(static_cast<uint8_t>(BUTTONS_CONTROL_ADDRESS), static_cast<size_t>(1), static_cast<bool>(true));
if (!Wire.available())
{
return;
}
uint8_t portValue = Wire.read();
bool buttonP0Pressed = (portValue & (1 << 0)) == 0;
bool buttonP1Pressed = (portValue & (1 << 1)) == 0;
bool buttonP2Pressed = (portValue & (1 << 2)) == 0;
bool buttonP3Pressed = (portValue & (1 << 3)) == 0;
bool buttonP4Pressed = (portValue & (1 << 4)) == 0;
bool buttonP5Pressed = (portValue & (1 << 5)) == 0;
bool buttonP6Pressed = (portValue & (1 << 6)) == 0;
bool buttonP7Pressed = (portValue & (1 << 7)) == 0;
ActionId lastAction = ActionId::Count;
if (buttonP3Pressed)
if (buttonP0Pressed)
{
lastAction = ActionId::CityWaterToHose;
}
else if (buttonP4Pressed)
else if (buttonP1Pressed)
{
lastAction = ActionId::BarrelToHose;
}
else if (buttonP5Pressed)
else if (buttonP2Pressed)
{
lastAction = ActionId::BackLeftToBarrel;
}
else if (buttonP6Pressed)
else if (buttonP3Pressed)
{
lastAction = ActionId::BarrelToBackLeft;
}
else if (buttonP7Pressed)
{
// reserved
}
Serial.printf(
"INT Buttons P3=%d P4=%d P5=%d P6=%d P7=%d (raw=0x%02X)\n",
buttonP3Pressed, buttonP4Pressed, buttonP5Pressed, buttonP6Pressed, buttonP7Pressed, portValue);
"INT Buttons P0=%d P1=%d P2=%d P3=%d (raw=0x%02X)\n",
buttonP0Pressed, buttonP1Pressed, buttonP2Pressed, buttonP3Pressed, portValue);
if (lastAction != ActionId::Count)
{
@@ -382,6 +491,20 @@ void readAndPrintButtons()
}
}
void handleSerialCommands()
{
while (Serial.available() > 0)
{
char c = static_cast<char>(Serial.read());
if (c == 'r' || c == 'R')
{
Serial.println("Reset command received. Restarting...");
delay(50);
ESP.restart();
}
}
}
void pollSerial2WaterLevel()
{
static uint8_t responseBuffer[7];
@@ -452,6 +575,110 @@ void pollSerial2WaterLevel()
}
}
bool ina226WriteReg16(uint8_t reg, uint16_t value)
{
Wire.beginTransmission(static_cast<uint8_t>(INA226_I2C_ADDRESS));
Wire.write(static_cast<uint8_t>(reg));
Wire.write(static_cast<uint8_t>((value >> 8) & 0xFF));
Wire.write(static_cast<uint8_t>(value & 0xFF));
return Wire.endTransmission() == 0;
}
bool ina226ReadReg16(uint8_t reg, uint16_t &value)
{
Wire.beginTransmission(static_cast<uint8_t>(INA226_I2C_ADDRESS));
Wire.write(static_cast<uint8_t>(reg));
if (Wire.endTransmission(false) != 0) // repeated start
{
return false;
}
if (Wire.requestFrom(static_cast<uint8_t>(INA226_I2C_ADDRESS), static_cast<size_t>(2), static_cast<bool>(true)) != 2)
{
return false;
}
uint16_t msb = Wire.read();
uint16_t lsb = Wire.read();
value = static_cast<uint16_t>((msb << 8) | lsb);
return true;
}
void initINA226()
{
// Keep default config; just set calibration for R005 and selected Current_LSB
if (!ina226WriteReg16(INA226_REG_CALIBRATION, INA226_CALIBRATION))
{
Serial.println("INA226: failed to write calibration.");
return;
}
uint16_t cfg = 0, cal = 0, man = 0, die = 0;
ina226ReadReg16(INA226_REG_CONFIG, cfg);
ina226ReadReg16(INA226_REG_CALIBRATION, cal);
ina226ReadReg16(INA226_REG_MANUFACTURER, man);
ina226ReadReg16(INA226_REG_DIE_ID, die);
Serial.printf(
"INA226 init ok addr=0x%02X Rshunt=%.4f ohm cal=0x%04X cfg=0x%04X man=0x%04X die=0x%04X\n",
INA226_I2C_ADDRESS, INA226_SHUNT_OHMS, cal, cfg, man, die);
}
void pollINA226()
{
static unsigned long lastPollMs = 0;
const unsigned long now = millis();
if ((now - lastPollMs) < INA226_POLL_INTERVAL_MS)
{
return;
}
lastPollMs = now;
uint16_t regConfig = 0, regShunt = 0, regBus = 0, regPower = 0, regCurrent = 0;
uint16_t regCal = 0, regMask = 0, regAlert = 0, regMan = 0, regDie = 0;
bool ok =
ina226ReadReg16(INA226_REG_CONFIG, regConfig) &&
ina226ReadReg16(INA226_REG_SHUNT_VOLT, regShunt) &&
ina226ReadReg16(INA226_REG_BUS_VOLT, regBus) &&
ina226ReadReg16(INA226_REG_POWER, regPower) &&
ina226ReadReg16(INA226_REG_CURRENT, regCurrent) &&
ina226ReadReg16(INA226_REG_CALIBRATION, regCal) &&
ina226ReadReg16(INA226_REG_MASK_ENABLE, regMask) &&
ina226ReadReg16(INA226_REG_ALERT_LIMIT, regAlert) &&
ina226ReadReg16(INA226_REG_MANUFACTURER, regMan) &&
ina226ReadReg16(INA226_REG_DIE_ID, regDie);
if (!ok)
{
Serial.println("INA226 read failed.");
return;
}
const int16_t shuntRaw = static_cast<int16_t>(regShunt);
const int16_t currentRaw = static_cast<int16_t>(regCurrent);
const float shuntVoltage_mV = static_cast<float>(shuntRaw) * 0.0025f; // 2.5uV/bit
const float busVoltage_V = static_cast<float>(regBus) * 0.00125f; // 1.25mV/bit
const float current_A = static_cast<float>(currentRaw) * INA226_CURRENT_LSB_A; // A
const float power_W = static_cast<float>(regPower) * (25.0f * INA226_CURRENT_LSB_A); // W
const float shuntCurrent_A = (shuntVoltage_mV / 1000.0f) / INA226_SHUNT_OHMS; // Ohm's law
Serial.printf(
"INA226 raw cfg=0x%04X shunt=0x%04X bus=0x%04X pwr=0x%04X cur=0x%04X cal=0x%04X mask=0x%04X alert=0x%04X man=0x%04X die=0x%04X\n",
regConfig, regShunt, regBus, regPower, regCurrent, regCal, regMask, regAlert, regMan, regDie);
Serial.printf(
"INA226 conv Vbus=%.4f V Vshunt=%.4f mV I=%.4f A Ishunt=%.4f A P=%.4f W\n",
busVoltage_V, shuntVoltage_mV, current_A, shuntCurrent_A, power_W);
g_busVoltageV = busVoltage_V;
g_currentA = current_A;
addWaterLevel();
}
void setup()
{
Serial.begin(SERIAL_BAUD);
@@ -467,30 +694,39 @@ void setup()
attachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN), onButtonInterrupt, FALLING);
Wire.begin(I2C_SDA_PIN, I2C_SCL_PIN);
delay(125);
scanI2CDevices();
initINA226();
lcd.begin(LCD_COLS, LCD_ROWS);
updateLCDDisplay();
updateLEDButtons();
Serial2.begin(MODBUS_BAUD, SERIAL_8N1, RXD_PIN, TXD_PIN);
start = millis();
while (!Serial2 && (millis() - start < 3000))
{
delay(10);
}
applyRelayStateIfChanged();
Serial.print("moving onto loop");
Wire.beginTransmission(static_cast<uint8_t>(BUTTON_LED_CONTROL_ADDRESS));
Wire.write(static_cast<uint8_t>(0x00));
uint8_t error = Wire.endTransmission();
}
void loop()
{
handleSerialCommands();
if (g_buttonInterruptFired)
{
g_buttonInterruptFired = false;
readAndPrintButtons();
}
pollSerial2WaterLevel();
pollINA226();
delay(10);
}