Initial commit
commit
87c4833a10
|
@ -0,0 +1,3 @@
|
||||||
|
/build/
|
||||||
|
/output/
|
||||||
|
config.h
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"port": "/dev/ttyUSB0",
|
||||||
|
"configuration": "FlashFreq=80,UploadSpeed=921600,DebugLevel=none,PartitionScheme=default",
|
||||||
|
"board": "esp32:esp32:featheresp32",
|
||||||
|
"sketch": "gardensensor.ino",
|
||||||
|
"output": "./output"
|
||||||
|
}
|
|
@ -0,0 +1,573 @@
|
||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Arduino",
|
||||||
|
"compilerPath": "/home/dustin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/xtensa-esp32-elf-g++",
|
||||||
|
"compilerArgs": [
|
||||||
|
"-mlongcalls",
|
||||||
|
"-Wno-frame-address",
|
||||||
|
"-ffunction-sections",
|
||||||
|
"-fdata-sections",
|
||||||
|
"-Wno-error=unused-function",
|
||||||
|
"-Wno-error=unused-variable",
|
||||||
|
"-Wno-error=deprecated-declarations",
|
||||||
|
"-Wno-unused-parameter",
|
||||||
|
"-Wno-sign-compare",
|
||||||
|
"-freorder-blocks",
|
||||||
|
"-Wwrite-strings",
|
||||||
|
"-fstack-protector",
|
||||||
|
"-fstrict-volatile-bitfields",
|
||||||
|
"-Wno-error=unused-but-set-variable",
|
||||||
|
"-fno-jump-tables",
|
||||||
|
"-fno-tree-switch-conversion",
|
||||||
|
"-std=gnu++11",
|
||||||
|
"-fexceptions",
|
||||||
|
"-fno-rtti"
|
||||||
|
],
|
||||||
|
"intelliSenseMode": "gcc-x64",
|
||||||
|
"includePath": [
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/newlib/platform_include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/freertos/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/freertos/include/esp_additions/freertos",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/freertos/port/xtensa/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/freertos/include/esp_additions",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_hw_support/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_hw_support/include/soc",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_hw_support/port/esp32",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/heap/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/log/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/lwip/include/apps",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/lwip/include/apps/sntp",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/lwip/lwip/src/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/lwip/port/esp32/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/lwip/port/esp32/include/arch",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/soc/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/soc/esp32",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/soc/esp32/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/hal/esp32/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/hal/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/hal/platform_port/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_rom/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_rom/include/esp32",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_rom/esp32",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_common/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_system/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_system/port/soc",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_system/port/public_compat",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp32/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/xtensa/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/xtensa/esp32/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/driver/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/driver/esp32/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_pm/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_ringbuf/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/efuse/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/efuse/esp32/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/vfs/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_wifi/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_event/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_netif/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_eth/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/tcpip_adapter/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_phy/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_phy/esp32/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_ipc/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/app_trace/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_timer/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/mbedtls/port/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/mbedtls/mbedtls/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/app_update/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/spi_flash/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/bootloader_support/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/nvs_flash/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/pthread/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_gdbstub/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_gdbstub/xtensa",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_gdbstub/esp32",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/espcoredump/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/espcoredump/include/port/xtensa",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/wpa_supplicant/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/wpa_supplicant/port/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/ieee802154/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/console",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/asio/asio/asio/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/asio/port/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/bt/common/osi/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/bt/include/esp32/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/bt/common/api/include/api",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/bt/common/btc/profile/esp/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/cbor/port/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/unity/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/unity/unity/src",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/cmock/CMock/src",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/coap/port/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/coap/libcoap/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/nghttp/port/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-tls",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-tls/esp-tls-crypto",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_adc_cal/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_hid/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/tcp_transport/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_http_client/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_http_server/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_https_ota/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_lcd/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_lcd/interface",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/protobuf-c/protobuf-c",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/protocomm/include/common",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/protocomm/include/security",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/protocomm/include/transports",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/mdns/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_local_ctrl/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/sdmmc/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_serial_slave_link/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_websocket_client/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/expat/expat/expat/lib",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/expat/port/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/wear_levelling/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/fatfs/diskio",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/fatfs/vfs",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/fatfs/src",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/freemodbus/common/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/idf_test/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/idf_test/include/esp32",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/jsmn/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/json/cJSON",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/libsodium/port_include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/mqtt/esp-mqtt/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/openssl/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/perfmon/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/spiffs/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/ulp/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/wifi_provisioning/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/button/button/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/rmaker_common/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/json_parser/upstream/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/json_parser/upstream",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/json_generator/upstream",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_schedule/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_rainmaker/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/qrcode/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/ws2812_led",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/dotprod/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/support/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/windows/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/windows/hann/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman_harris/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman_nuttall/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/windows/nuttall/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/windows/flat_top/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/iir/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/fir/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/math/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/math/add/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/math/sub/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/math/mul/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/math/addc/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/math/mulc/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/math/sqrt/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/matrix/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/fft/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/dct/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/conv/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/common/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/kalman/ekf/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dsp/modules/kalman/ekf_imu13states/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_littlefs/src",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp_littlefs/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dl/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dl/include/tool",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dl/include/typedef",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dl/include/image",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dl/include/math",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dl/include/nn",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dl/include/layer",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dl/include/detect",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-dl/include/model_zoo",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-sr/esp-tts/esp_tts_chinese/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp-sr/include/esp32",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp32-camera/driver/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/esp32-camera/conversions/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/include/fb_gfx/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/sdk/esp32/qspi_qspi/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/cores/esp32",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/variants/feather_esp32",
|
||||||
|
"/home/dustin/Arduino/libraries/Adafruit_seesaw_Library",
|
||||||
|
"/home/dustin/Arduino/libraries/Adafruit_BusIO",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/libraries/Wire/src",
|
||||||
|
"/home/dustin/Arduino/libraries/ArduinoJson/src",
|
||||||
|
"/home/dustin/Arduino/libraries/PubSubClient/src",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/libraries/WiFiClientSecure/src",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/libraries/WiFi/src",
|
||||||
|
"/home/dustin/Arduino/libraries/incbin/src",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/libraries/SPI/src",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/xtensa-esp32-elf",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/backward",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/lib/gcc/xtensa-esp32-elf/8.4.0/include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/lib/gcc/xtensa-esp32-elf/8.4.0/include-fixed",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/sys-include",
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include"
|
||||||
|
],
|
||||||
|
"forcedInclude": [
|
||||||
|
"/home/dustin/.arduino15/packages/esp32/hardware/esp32/2.0.3/cores/esp32/Arduino.h"
|
||||||
|
],
|
||||||
|
"cStandard": "c11",
|
||||||
|
"cppStandard": "c++11",
|
||||||
|
"defines": [
|
||||||
|
"HAVE_CONFIG_H",
|
||||||
|
"MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"",
|
||||||
|
"UNITY_INCLUDE_CONFIG_H",
|
||||||
|
"WITH_POSIX",
|
||||||
|
"_GNU_SOURCE",
|
||||||
|
"IDF_VER=\"v4.4.1-1-gb8050b365e\"",
|
||||||
|
"ESP_PLATFORM",
|
||||||
|
"_POSIX_READER_WRITER_LOCKS",
|
||||||
|
"F_CPU=240000000L",
|
||||||
|
"ARDUINO=10607",
|
||||||
|
"ARDUINO_FEATHER_ESP32",
|
||||||
|
"ARDUINO_ARCH_ESP32",
|
||||||
|
"ARDUINO_BOARD=\"FEATHER_ESP32\"",
|
||||||
|
"ARDUINO_VARIANT=\"feather_esp32\"",
|
||||||
|
"ARDUINO_PARTITION_default",
|
||||||
|
"ESP32",
|
||||||
|
"CORE_DEBUG_LEVEL=0",
|
||||||
|
"ARDUINO_USB_CDC_ON_BOOT=0",
|
||||||
|
"__DBL_MIN_EXP__=(-1021)",
|
||||||
|
"__FLT32X_MAX_EXP__=1024",
|
||||||
|
"__cpp_attributes=200809",
|
||||||
|
"__UINT_LEAST16_MAX__=0xffff",
|
||||||
|
"__ATOMIC_ACQUIRE=2",
|
||||||
|
"__FLT_MIN__=1.1754943508222875e-38F",
|
||||||
|
"__GCC_IEC_559_COMPLEX=0",
|
||||||
|
"__cpp_aggregate_nsdmi=201304",
|
||||||
|
"__UINT_LEAST8_TYPE__=unsigned char",
|
||||||
|
"__INTMAX_C(c)=c ## LL",
|
||||||
|
"__CHAR_BIT__=8",
|
||||||
|
"__UINT8_MAX__=0xff",
|
||||||
|
"__WINT_MAX__=0xffffffffU",
|
||||||
|
"__FLT32_MIN_EXP__=(-125)",
|
||||||
|
"__cpp_static_assert=200410",
|
||||||
|
"__ORDER_LITTLE_ENDIAN__=1234",
|
||||||
|
"__SIZE_MAX__=0xffffffffU",
|
||||||
|
"__WCHAR_MAX__=0xffff",
|
||||||
|
"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1",
|
||||||
|
"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1",
|
||||||
|
"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1",
|
||||||
|
"__DBL_DENORM_MIN__=double(4.9406564584124654e-324L)",
|
||||||
|
"__GCC_ATOMIC_CHAR_LOCK_FREE=2",
|
||||||
|
"__GCC_IEC_559=0",
|
||||||
|
"__FLT32X_DECIMAL_DIG__=17",
|
||||||
|
"__FLT_EVAL_METHOD__=0",
|
||||||
|
"__cpp_binary_literals=201304",
|
||||||
|
"__FLT64_DECIMAL_DIG__=17",
|
||||||
|
"__GCC_ATOMIC_CHAR32_T_LOCK_FREE=2",
|
||||||
|
"__cpp_variadic_templates=200704",
|
||||||
|
"__UINT_FAST64_MAX__=0xffffffffffffffffULL",
|
||||||
|
"__SIG_ATOMIC_TYPE__=int",
|
||||||
|
"__DBL_MIN_10_EXP__=(-307)",
|
||||||
|
"__FINITE_MATH_ONLY__=0",
|
||||||
|
"__cpp_variable_templates=201304",
|
||||||
|
"__GNUC_PATCHLEVEL__=0",
|
||||||
|
"__FLT32_HAS_DENORM__=1",
|
||||||
|
"__UINT_FAST8_MAX__=0xffffffffU",
|
||||||
|
"__has_include(STR)=__has_include__(STR)",
|
||||||
|
"__DEC64_MAX_EXP__=385",
|
||||||
|
"__INT8_C(c)=c",
|
||||||
|
"__INT_LEAST8_WIDTH__=8",
|
||||||
|
"__UINT_LEAST64_MAX__=0xffffffffffffffffULL",
|
||||||
|
"__SHRT_MAX__=0x7fff",
|
||||||
|
"__LDBL_MAX__=1.7976931348623157e+308L",
|
||||||
|
"__UINT_LEAST8_MAX__=0xff",
|
||||||
|
"__GCC_ATOMIC_BOOL_LOCK_FREE=2",
|
||||||
|
"__UINTMAX_TYPE__=long long unsigned int",
|
||||||
|
"__DEC32_EPSILON__=1E-6DF",
|
||||||
|
"__FLT_EVAL_METHOD_TS_18661_3__=0",
|
||||||
|
"__CHAR_UNSIGNED__=1",
|
||||||
|
"__UINT32_MAX__=0xffffffffU",
|
||||||
|
"__GXX_EXPERIMENTAL_CXX0X__=1",
|
||||||
|
"__LDBL_MAX_EXP__=1024",
|
||||||
|
"__WINT_MIN__=0U",
|
||||||
|
"__INT_LEAST16_WIDTH__=16",
|
||||||
|
"__SCHAR_MAX__=0x7f",
|
||||||
|
"__WCHAR_MIN__=0",
|
||||||
|
"__INT64_C(c)=c ## LL",
|
||||||
|
"__DBL_DIG__=15",
|
||||||
|
"__GCC_ATOMIC_POINTER_LOCK_FREE=2",
|
||||||
|
"__SIZEOF_INT__=4",
|
||||||
|
"__SIZEOF_POINTER__=4",
|
||||||
|
"__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2",
|
||||||
|
"__USER_LABEL_PREFIX__",
|
||||||
|
"__STDC_HOSTED__=1",
|
||||||
|
"__LDBL_HAS_INFINITY__=1",
|
||||||
|
"__XTENSA_EL__=1",
|
||||||
|
"__FLT32_DIG__=6",
|
||||||
|
"__FLT_EPSILON__=1.1920928955078125e-7F",
|
||||||
|
"__GXX_WEAK__=1",
|
||||||
|
"__SHRT_WIDTH__=16",
|
||||||
|
"__LDBL_MIN__=2.2250738585072014e-308L",
|
||||||
|
"__DEC32_MAX__=9.999999E96DF",
|
||||||
|
"__cpp_threadsafe_static_init=200806",
|
||||||
|
"__FLT32X_HAS_INFINITY__=1",
|
||||||
|
"__INT32_MAX__=0x7fffffff",
|
||||||
|
"__INT_WIDTH__=32",
|
||||||
|
"__SIZEOF_LONG__=4",
|
||||||
|
"__UINT16_C(c)=c",
|
||||||
|
"__PTRDIFF_WIDTH__=32",
|
||||||
|
"__DECIMAL_DIG__=17",
|
||||||
|
"__FLT64_EPSILON__=2.2204460492503131e-16F64",
|
||||||
|
"__INTMAX_WIDTH__=64",
|
||||||
|
"__FLT64_MIN_EXP__=(-1021)",
|
||||||
|
"__has_include_next(STR)=__has_include_next__(STR)",
|
||||||
|
"__LDBL_HAS_QUIET_NAN__=1",
|
||||||
|
"__FLT64_MANT_DIG__=53",
|
||||||
|
"__GNUC__=8",
|
||||||
|
"__GXX_RTTI=1",
|
||||||
|
"__cpp_delegating_constructors=200604",
|
||||||
|
"__FLT_HAS_DENORM__=1",
|
||||||
|
"__SIZEOF_LONG_DOUBLE__=8",
|
||||||
|
"__BIGGEST_ALIGNMENT__=16",
|
||||||
|
"__STDC_UTF_16__=1",
|
||||||
|
"__FLT64_MAX_10_EXP__=308",
|
||||||
|
"__FLT32_HAS_INFINITY__=1",
|
||||||
|
"__DBL_MAX__=double(1.7976931348623157e+308L)",
|
||||||
|
"__cpp_raw_strings=200710",
|
||||||
|
"__INT_FAST32_MAX__=0x7fffffff",
|
||||||
|
"__DBL_HAS_INFINITY__=1",
|
||||||
|
"__DEC32_MIN_EXP__=(-94)",
|
||||||
|
"__INTPTR_WIDTH__=32",
|
||||||
|
"__FLT32X_HAS_DENORM__=1",
|
||||||
|
"__INT_FAST16_TYPE__=int",
|
||||||
|
"__LDBL_HAS_DENORM__=1",
|
||||||
|
"__cplusplus=201402L",
|
||||||
|
"__cpp_ref_qualifiers=200710",
|
||||||
|
"__DEC128_MAX__=9.999999999999999999999999999999999E6144DL",
|
||||||
|
"__INT_LEAST32_MAX__=0x7fffffff",
|
||||||
|
"__DEC32_MIN__=1E-95DF",
|
||||||
|
"__DEPRECATED=1",
|
||||||
|
"__cpp_rvalue_references=200610",
|
||||||
|
"__DBL_MAX_EXP__=1024",
|
||||||
|
"__WCHAR_WIDTH__=16",
|
||||||
|
"__FLT32_MAX__=3.4028234663852886e+38F32",
|
||||||
|
"__DEC128_EPSILON__=1E-33DL",
|
||||||
|
"__PTRDIFF_MAX__=0x7fffffff",
|
||||||
|
"__FLT32_HAS_QUIET_NAN__=1",
|
||||||
|
"__GNUG__=8",
|
||||||
|
"__LONG_LONG_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__SIZEOF_SIZE_T__=4",
|
||||||
|
"__cpp_rvalue_reference=200610",
|
||||||
|
"__cpp_nsdmi=200809",
|
||||||
|
"__SIZEOF_WINT_T__=4",
|
||||||
|
"__LONG_LONG_WIDTH__=64",
|
||||||
|
"__cpp_initializer_lists=200806",
|
||||||
|
"__FLT32_MAX_EXP__=128",
|
||||||
|
"__cpp_hex_float=201603",
|
||||||
|
"__GXX_ABI_VERSION=1013",
|
||||||
|
"__FLT_MIN_EXP__=(-125)",
|
||||||
|
"__cpp_lambdas=200907",
|
||||||
|
"__INT_FAST64_TYPE__=long long int",
|
||||||
|
"__FP_FAST_FMAF=1",
|
||||||
|
"__FLT64_DENORM_MIN__=4.9406564584124654e-324F64",
|
||||||
|
"__DBL_MIN__=double(2.2250738585072014e-308L)",
|
||||||
|
"__FLT32X_EPSILON__=2.2204460492503131e-16F32x",
|
||||||
|
"__FLT64_MIN_10_EXP__=(-307)",
|
||||||
|
"__DEC128_MIN__=1E-6143DL",
|
||||||
|
"__REGISTER_PREFIX__",
|
||||||
|
"__UINT16_MAX__=0xffff",
|
||||||
|
"__DBL_HAS_DENORM__=1",
|
||||||
|
"__FLT32_MIN__=1.1754943508222875e-38F32",
|
||||||
|
"__UINT8_TYPE__=unsigned char",
|
||||||
|
"__NO_INLINE__=1",
|
||||||
|
"__FLT_MANT_DIG__=24",
|
||||||
|
"__LDBL_DECIMAL_DIG__=17",
|
||||||
|
"__VERSION__=\"8.4.0\"",
|
||||||
|
"__UINT64_C(c)=c ## ULL",
|
||||||
|
"__cpp_unicode_characters=200704",
|
||||||
|
"__cpp_decltype_auto=201304",
|
||||||
|
"__GCC_ATOMIC_INT_LOCK_FREE=2",
|
||||||
|
"__FLT32_MANT_DIG__=24",
|
||||||
|
"__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__",
|
||||||
|
"__SCHAR_WIDTH__=8",
|
||||||
|
"__INT32_C(c)=c",
|
||||||
|
"__DEC64_EPSILON__=1E-15DD",
|
||||||
|
"__ORDER_PDP_ENDIAN__=3412",
|
||||||
|
"__DEC128_MIN_EXP__=(-6142)",
|
||||||
|
"__FLT32_MAX_10_EXP__=38",
|
||||||
|
"__INT_FAST32_TYPE__=int",
|
||||||
|
"__UINT_LEAST16_TYPE__=short unsigned int",
|
||||||
|
"__INT16_MAX__=0x7fff",
|
||||||
|
"__cpp_rtti=199711",
|
||||||
|
"__SIZE_TYPE__=unsigned int",
|
||||||
|
"__UINT64_MAX__=0xffffffffffffffffULL",
|
||||||
|
"__INT8_TYPE__=signed char",
|
||||||
|
"__cpp_digit_separators=201309",
|
||||||
|
"__ELF__=1",
|
||||||
|
"__xtensa__=1",
|
||||||
|
"__FLT_RADIX__=2",
|
||||||
|
"__INT_LEAST16_TYPE__=short int",
|
||||||
|
"__LDBL_EPSILON__=2.2204460492503131e-16L",
|
||||||
|
"__UINTMAX_C(c)=c ## ULL",
|
||||||
|
"__SIG_ATOMIC_MAX__=0x7fffffff",
|
||||||
|
"__GCC_ATOMIC_WCHAR_T_LOCK_FREE=2",
|
||||||
|
"__SIZEOF_PTRDIFF_T__=4",
|
||||||
|
"__FLT32X_MANT_DIG__=53",
|
||||||
|
"__FLT32X_MIN_EXP__=(-1021)",
|
||||||
|
"__DEC32_SUBNORMAL_MIN__=0.000001E-95DF",
|
||||||
|
"__INT_FAST16_MAX__=0x7fffffff",
|
||||||
|
"__FLT64_DIG__=15",
|
||||||
|
"__UINT_FAST32_MAX__=0xffffffffU",
|
||||||
|
"__UINT_LEAST64_TYPE__=long long unsigned int",
|
||||||
|
"__FLT_HAS_QUIET_NAN__=1",
|
||||||
|
"__FLT_MAX_10_EXP__=38",
|
||||||
|
"__LONG_MAX__=0x7fffffffL",
|
||||||
|
"__DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL",
|
||||||
|
"__FLT_HAS_INFINITY__=1",
|
||||||
|
"__cpp_unicode_literals=200710",
|
||||||
|
"__UINT_FAST16_TYPE__=unsigned int",
|
||||||
|
"__DEC64_MAX__=9.999999999999999E384DD",
|
||||||
|
"__INT_FAST32_WIDTH__=32",
|
||||||
|
"__CHAR16_TYPE__=short unsigned int",
|
||||||
|
"__PRAGMA_REDEFINE_EXTNAME=1",
|
||||||
|
"__SIZE_WIDTH__=32",
|
||||||
|
"__INT_LEAST16_MAX__=0x7fff",
|
||||||
|
"__DEC64_MANT_DIG__=16",
|
||||||
|
"__INT64_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__UINT_LEAST32_MAX__=0xffffffffU",
|
||||||
|
"__FLT32_DENORM_MIN__=1.4012984643248171e-45F32",
|
||||||
|
"__GCC_ATOMIC_LONG_LOCK_FREE=2",
|
||||||
|
"__SIG_ATOMIC_WIDTH__=32",
|
||||||
|
"__INT_LEAST64_TYPE__=long long int",
|
||||||
|
"__INT16_TYPE__=short int",
|
||||||
|
"__INT_LEAST8_TYPE__=signed char",
|
||||||
|
"__DEC32_MAX_EXP__=97",
|
||||||
|
"__INT_FAST8_MAX__=0x7fffffff",
|
||||||
|
"__INTPTR_MAX__=0x7fffffff",
|
||||||
|
"__cpp_sized_deallocation=201309",
|
||||||
|
"__cpp_range_based_for=200907",
|
||||||
|
"__FLT64_HAS_QUIET_NAN__=1",
|
||||||
|
"__FLT32_MIN_10_EXP__=(-37)",
|
||||||
|
"__EXCEPTIONS=1",
|
||||||
|
"__LDBL_MANT_DIG__=53",
|
||||||
|
"__DBL_HAS_QUIET_NAN__=1",
|
||||||
|
"__FLT64_HAS_INFINITY__=1",
|
||||||
|
"__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)",
|
||||||
|
"__cpp_return_type_deduction=201304",
|
||||||
|
"__INTPTR_TYPE__=int",
|
||||||
|
"__UINT16_TYPE__=short unsigned int",
|
||||||
|
"__WCHAR_TYPE__=short unsigned int",
|
||||||
|
"__SIZEOF_FLOAT__=4",
|
||||||
|
"__UINTPTR_MAX__=0xffffffffU",
|
||||||
|
"__INT_FAST64_WIDTH__=64",
|
||||||
|
"__DEC64_MIN_EXP__=(-382)",
|
||||||
|
"__cpp_decltype=200707",
|
||||||
|
"__FLT32_DECIMAL_DIG__=9",
|
||||||
|
"__INT_FAST64_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1",
|
||||||
|
"__FLT_DIG__=6",
|
||||||
|
"__UINT_FAST64_TYPE__=long long unsigned int",
|
||||||
|
"__INT_MAX__=0x7fffffff",
|
||||||
|
"__INT64_TYPE__=long long int",
|
||||||
|
"__FLT_MAX_EXP__=128",
|
||||||
|
"__DBL_MANT_DIG__=53",
|
||||||
|
"__cpp_inheriting_constructors=201511",
|
||||||
|
"__INT_LEAST64_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__FP_FAST_FMAF32=1",
|
||||||
|
"__DEC64_MIN__=1E-383DD",
|
||||||
|
"__WINT_TYPE__=unsigned int",
|
||||||
|
"__UINT_LEAST32_TYPE__=unsigned int",
|
||||||
|
"__SIZEOF_SHORT__=2",
|
||||||
|
"__LDBL_MIN_EXP__=(-1021)",
|
||||||
|
"__FLT64_MAX__=1.7976931348623157e+308F64",
|
||||||
|
"__WINT_WIDTH__=32",
|
||||||
|
"__INT_LEAST8_MAX__=0x7f",
|
||||||
|
"__FLT32X_MAX_10_EXP__=308",
|
||||||
|
"__WCHAR_UNSIGNED__=1",
|
||||||
|
"__LDBL_MAX_10_EXP__=308",
|
||||||
|
"__ATOMIC_RELAXED=0",
|
||||||
|
"__DBL_EPSILON__=double(2.2204460492503131e-16L)",
|
||||||
|
"__XTENSA_WINDOWED_ABI__=1",
|
||||||
|
"__UINT8_C(c)=c",
|
||||||
|
"__FLT64_MAX_EXP__=1024",
|
||||||
|
"__INT_LEAST32_TYPE__=int",
|
||||||
|
"__SIZEOF_WCHAR_T__=2",
|
||||||
|
"__INT_FAST8_TYPE__=int",
|
||||||
|
"__GNUC_STDC_INLINE__=1",
|
||||||
|
"__FLT64_HAS_DENORM__=1",
|
||||||
|
"__FLT32_EPSILON__=1.1920928955078125e-7F32",
|
||||||
|
"__DBL_DECIMAL_DIG__=17",
|
||||||
|
"__STDC_UTF_32__=1",
|
||||||
|
"__INT_FAST8_WIDTH__=32",
|
||||||
|
"__DEC_EVAL_METHOD__=2",
|
||||||
|
"__FLT32X_MAX__=1.7976931348623157e+308F32x",
|
||||||
|
"__XTENSA__=1",
|
||||||
|
"__ORDER_BIG_ENDIAN__=4321",
|
||||||
|
"__cpp_runtime_arrays=198712",
|
||||||
|
"__UINT64_TYPE__=long long unsigned int",
|
||||||
|
"__UINT32_C(c)=c ## U",
|
||||||
|
"__INTMAX_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__cpp_alias_templates=200704",
|
||||||
|
"__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__",
|
||||||
|
"__FLT_DENORM_MIN__=1.4012984643248171e-45F",
|
||||||
|
"__INT8_MAX__=0x7f",
|
||||||
|
"__LONG_WIDTH__=32",
|
||||||
|
"__UINT_FAST32_TYPE__=unsigned int",
|
||||||
|
"__CHAR32_TYPE__=unsigned int",
|
||||||
|
"__FLT_MAX__=3.4028234663852886e+38F",
|
||||||
|
"__cpp_constexpr=201304",
|
||||||
|
"__INT32_TYPE__=int",
|
||||||
|
"__SIZEOF_DOUBLE__=8",
|
||||||
|
"__cpp_exceptions=199711",
|
||||||
|
"__FLT_MIN_10_EXP__=(-37)",
|
||||||
|
"__FLT64_MIN__=2.2250738585072014e-308F64",
|
||||||
|
"__INT_LEAST32_WIDTH__=32",
|
||||||
|
"__INTMAX_TYPE__=long long int",
|
||||||
|
"__DEC128_MAX_EXP__=6145",
|
||||||
|
"__FLT32X_HAS_QUIET_NAN__=1",
|
||||||
|
"__ATOMIC_CONSUME=1",
|
||||||
|
"__GNUC_MINOR__=4",
|
||||||
|
"__INT_FAST16_WIDTH__=32",
|
||||||
|
"__UINTMAX_MAX__=0xffffffffffffffffULL",
|
||||||
|
"__DEC32_MANT_DIG__=7",
|
||||||
|
"__FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x",
|
||||||
|
"__DBL_MAX_10_EXP__=308",
|
||||||
|
"__LDBL_DENORM_MIN__=4.9406564584124654e-324L",
|
||||||
|
"__INT16_C(c)=c",
|
||||||
|
"__cpp_generic_lambdas=201304",
|
||||||
|
"__STDC__=1",
|
||||||
|
"__FLT32X_DIG__=15",
|
||||||
|
"__PTRDIFF_TYPE__=int",
|
||||||
|
"__ATOMIC_SEQ_CST=5",
|
||||||
|
"__UINT32_TYPE__=unsigned int",
|
||||||
|
"__FLT32X_MIN_10_EXP__=(-307)",
|
||||||
|
"__UINTPTR_TYPE__=unsigned int",
|
||||||
|
"__DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD",
|
||||||
|
"__DEC128_MANT_DIG__=34",
|
||||||
|
"__LDBL_MIN_10_EXP__=(-307)",
|
||||||
|
"__SIZEOF_LONG_LONG__=8",
|
||||||
|
"__cpp_user_defined_literals=200809",
|
||||||
|
"__GCC_ATOMIC_LLONG_LOCK_FREE=1",
|
||||||
|
"__FLT32X_MIN__=2.2250738585072014e-308F32x",
|
||||||
|
"__LDBL_DIG__=15",
|
||||||
|
"__FLT_DECIMAL_DIG__=9",
|
||||||
|
"__UINT_FAST16_MAX__=0xffffffffU",
|
||||||
|
"__GCC_ATOMIC_SHORT_LOCK_FREE=2",
|
||||||
|
"__INT_LEAST64_WIDTH__=64",
|
||||||
|
"__UINT_FAST8_TYPE__=unsigned int",
|
||||||
|
"__cpp_init_captures=201304",
|
||||||
|
"__ATOMIC_ACQ_REL=4",
|
||||||
|
"__ATOMIC_RELEASE=3",
|
||||||
|
"USBCON"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 79 }",
|
||||||
|
"files.associations": {
|
||||||
|
"array": "cpp",
|
||||||
|
"atomic": "cpp",
|
||||||
|
"*.tcc": "cpp",
|
||||||
|
"cctype": "cpp",
|
||||||
|
"clocale": "cpp",
|
||||||
|
"cmath": "cpp",
|
||||||
|
"cstdarg": "cpp",
|
||||||
|
"cstddef": "cpp",
|
||||||
|
"cstdint": "cpp",
|
||||||
|
"cstdio": "cpp",
|
||||||
|
"cstdlib": "cpp",
|
||||||
|
"cstring": "cpp",
|
||||||
|
"cwchar": "cpp",
|
||||||
|
"cwctype": "cpp",
|
||||||
|
"deque": "cpp",
|
||||||
|
"unordered_map": "cpp",
|
||||||
|
"vector": "cpp",
|
||||||
|
"exception": "cpp",
|
||||||
|
"algorithm": "cpp",
|
||||||
|
"functional": "cpp",
|
||||||
|
"iterator": "cpp",
|
||||||
|
"memory": "cpp",
|
||||||
|
"memory_resource": "cpp",
|
||||||
|
"numeric": "cpp",
|
||||||
|
"optional": "cpp",
|
||||||
|
"random": "cpp",
|
||||||
|
"string": "cpp",
|
||||||
|
"string_view": "cpp",
|
||||||
|
"system_error": "cpp",
|
||||||
|
"tuple": "cpp",
|
||||||
|
"type_traits": "cpp",
|
||||||
|
"utility": "cpp",
|
||||||
|
"fstream": "cpp",
|
||||||
|
"initializer_list": "cpp",
|
||||||
|
"iosfwd": "cpp",
|
||||||
|
"istream": "cpp",
|
||||||
|
"limits": "cpp",
|
||||||
|
"new": "cpp",
|
||||||
|
"ostream": "cpp",
|
||||||
|
"sstream": "cpp",
|
||||||
|
"stdexcept": "cpp",
|
||||||
|
"streambuf": "cpp",
|
||||||
|
"cinttypes": "cpp",
|
||||||
|
"typeinfo": "cpp"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
#define DEVICE_MANUFACTURER "Dustin C. Hatch"
|
||||||
|
#define DEVICE_NAME "Garden Sensor"
|
||||||
|
#define DEVICE_MODEL "Garden Sensor"
|
||||||
|
|
||||||
|
#define TOPIC_CFG_MOISTURE "homeassistant/sensor/garden_moisture/config"
|
||||||
|
#define TOPIC_CFG_TEMPERATURE "homeassistant/sensor/garden_temperature/config"
|
||||||
|
#define TOPIC_CFG_BATTERY "homeassistant/sensor/garden_battery/config"
|
||||||
|
#define TOPIC_CFG_RSSI "homeassistant/sensor/garden_rssi/config"
|
||||||
|
#define TOPIC_ERRORS "garden/errors"
|
||||||
|
#define TOPIC_STATE "garden/state"
|
||||||
|
|
||||||
|
#define SLEEP_MILLIS (1000 * 60)
|
|
@ -0,0 +1,159 @@
|
||||||
|
#include <Adafruit_seesaw.h>
|
||||||
|
#include <ArduinoJson.h>
|
||||||
|
#include <PubSubClient.h>
|
||||||
|
#include <WiFiClientSecure.h>
|
||||||
|
#include <incbin.h>
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "constants.h"
|
||||||
|
#include "mqtt_discovery.hpp"
|
||||||
|
#include "values.hpp"
|
||||||
|
|
||||||
|
INCTXT(RootCA, "isrgrootx1.pem");
|
||||||
|
|
||||||
|
WiFiClientSecure sock;
|
||||||
|
PubSubClient mqtt(sock);
|
||||||
|
|
||||||
|
Values values;
|
||||||
|
Adafruit_seesaw ss;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
delay(1000); // VSCode is slow to open the serial console after upload
|
||||||
|
|
||||||
|
Serial.begin(115200);
|
||||||
|
pinMode(13, OUTPUT);
|
||||||
|
digitalWrite(13, 1);
|
||||||
|
|
||||||
|
if (!wifi_connect()) {
|
||||||
|
Serial.printf("Failed to connect to WiFi, status %s\n", WiFi.status());
|
||||||
|
reboot();
|
||||||
|
}
|
||||||
|
if (!mqtt_connect()) {
|
||||||
|
Serial.println("Could not connect to MQTT");
|
||||||
|
reboot();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!publish_all_config(&mqtt, WiFi.macAddress().c_str())) {
|
||||||
|
Serial.println("Failed to publish device configuration!");
|
||||||
|
Serial.println(mqtt.state());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ss.begin(0x36)) {
|
||||||
|
auto msg = "Seesaw not found";
|
||||||
|
Serial.println(msg);
|
||||||
|
mqtt_send_error(msg);
|
||||||
|
reboot();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!values.read(&ss)) {
|
||||||
|
auto msg = "Failed to get sensor values";
|
||||||
|
Serial.println(msg);
|
||||||
|
mqtt_send_error(msg);
|
||||||
|
reboot();
|
||||||
|
} else {
|
||||||
|
Serial.println("Got Values:");
|
||||||
|
Serial.printf(" Moisture: %d\n", values.moisture);
|
||||||
|
Serial.printf(" Temperature: %.02f\n", values.temperature);
|
||||||
|
Serial.printf(" Battery: %.02f\n", values.battery);
|
||||||
|
Serial.printf(" RSSI: %d\n", values.rssi);
|
||||||
|
if (!values.send(&mqtt, TOPIC_STATE)) {
|
||||||
|
Serial.println("Failed to send sensor values");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.println("Disconnecting from MQTT broker ...");
|
||||||
|
mqtt.disconnect();
|
||||||
|
delay(1000);
|
||||||
|
|
||||||
|
Serial.println("Entering deep sleep ...");
|
||||||
|
Serial.flush();
|
||||||
|
esp_sleep_enable_timer_wakeup((SLEEP_MILLIS - millis()) * 1000);
|
||||||
|
esp_deep_sleep_start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
digitalWrite(13, 0);
|
||||||
|
while (1) delay(1471228928);
|
||||||
|
}
|
||||||
|
|
||||||
|
void error_led_blink() {
|
||||||
|
while (1) {
|
||||||
|
digitalWrite(13, 1);
|
||||||
|
delay(500);
|
||||||
|
digitalWrite(13, 0);
|
||||||
|
delay(500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean wifi_connect() {
|
||||||
|
Serial.printf("Connecting to WiFi (%s) ", CFG_WIFI_SSID);
|
||||||
|
WiFi.begin(CFG_WIFI_SSID, CFG_WIFI_PSK);
|
||||||
|
while (WiFi.status() != WL_CONNECTED) {
|
||||||
|
delay(500);
|
||||||
|
if (millis() >= 5000) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Serial.print(".");
|
||||||
|
Serial.flush();
|
||||||
|
}
|
||||||
|
Serial.println();
|
||||||
|
if (WiFi.status() != WL_CONNECTED) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.println("WiFi connected");
|
||||||
|
Serial.printf(" IP address: %s\n", WiFi.localIP().toString());
|
||||||
|
Serial.printf(" DNS server: %s\n", WiFi.dnsIP().toString());
|
||||||
|
Serial.printf(" Default gateway: %s\n", WiFi.gatewayIP().toString());
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean mqtt_connect() {
|
||||||
|
sock.setCACert(gRootCAData);
|
||||||
|
int retries = 3;
|
||||||
|
mqtt.setServer(CFG_MQTT_SERVER, CFG_MQTT_PORT);
|
||||||
|
for (;;) {
|
||||||
|
Serial.print("Connecting to MQTT ... ");
|
||||||
|
Serial.flush();
|
||||||
|
if (!mqtt.connect(CFG_MQTT_CLIENTID, CFG_MQTT_USERNAME,
|
||||||
|
CFG_MQTT_PASSWORD)) {
|
||||||
|
Serial.println(mqtt.state());
|
||||||
|
mqtt.disconnect();
|
||||||
|
delay(1000);
|
||||||
|
retries--;
|
||||||
|
if (retries < 1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Serial.println("OK");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!mqtt.setBufferSize(512)) {
|
||||||
|
Serial.println("Failed to set MQTT client buffer size!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void mqtt_send_error(const __FlashStringHelper* msg) {
|
||||||
|
mqtt_send_error((const char*)msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mqtt_send_error(const char* msg) {
|
||||||
|
if (!mqtt.connected()) {
|
||||||
|
Serial.println("MQTT client not connected, cannot send error message");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mqtt.publish(TOPIC_ERRORS, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void reboot() {
|
||||||
|
if (mqtt.connected()) {
|
||||||
|
mqtt.disconnect();
|
||||||
|
}
|
||||||
|
Serial.println("Rebooting in 2 seconds");
|
||||||
|
delay(2000);
|
||||||
|
ESP.restart();
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,54 @@
|
||||||
|
#include "mqtt_discovery.hpp"
|
||||||
|
|
||||||
|
#include <ArduinoJson.h>
|
||||||
|
|
||||||
|
#include "constants.h"
|
||||||
|
|
||||||
|
static bool publish_config(PubSubClient* mqtt, const char* topic,
|
||||||
|
const char* name, const char* unique_id,
|
||||||
|
const char* value_template, const char* identifier,
|
||||||
|
const char* device_class, const char* unit) {
|
||||||
|
StaticJsonDocument<256> doc;
|
||||||
|
doc["unique_id"] = unique_id;
|
||||||
|
doc["name"] = name;
|
||||||
|
doc["state_topic"] = TOPIC_STATE;
|
||||||
|
doc["value_template"] = value_template;
|
||||||
|
if (device_class != NULL) {
|
||||||
|
doc["device_class"] = device_class;
|
||||||
|
}
|
||||||
|
if (unit != NULL) {
|
||||||
|
doc["unit_of_measurement"] = unit;
|
||||||
|
}
|
||||||
|
auto device = doc.createNestedObject("device");
|
||||||
|
device["manufacturer"] = DEVICE_MANUFACTURER;
|
||||||
|
device["name"] = DEVICE_NAME;
|
||||||
|
device["model"] = DEVICE_MODEL;
|
||||||
|
auto ident = device.createNestedArray("identifiers");
|
||||||
|
ident.add(identifier);
|
||||||
|
String msg;
|
||||||
|
serializeJson(doc, msg);
|
||||||
|
auto payload = msg.c_str();
|
||||||
|
Serial.printf("Publishing configuration for %s (%zd bytes) to %s ... ",
|
||||||
|
unique_id, strlen(payload), topic);
|
||||||
|
auto r = mqtt->publish(topic, payload, true);
|
||||||
|
Serial.println(r ? "OK" : "FAILED");
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool publish_all_config(PubSubClient* mqtt, const char* ident) {
|
||||||
|
bool ret = true;
|
||||||
|
publish_config(mqtt, TOPIC_CFG_MOISTURE, "Garden Sensor Moisture",
|
||||||
|
"sensor.garden_sensor_moisture",
|
||||||
|
"{{ value_json.moisture }}", ident, NULL, NULL);
|
||||||
|
publish_config(mqtt, TOPIC_CFG_TEMPERATURE, "Garden Sensor Temperature",
|
||||||
|
"sensor.garden_sensor_temperature",
|
||||||
|
"{{ value_json.temperature }}", ident, "temperature", "°C");
|
||||||
|
publish_config(mqtt, TOPIC_CFG_BATTERY, "Garden Sensor Battery Level",
|
||||||
|
"sensor.garden_sensor_battery_level",
|
||||||
|
"{{ value_json.battery_level }}", ident, "voltage", "V");
|
||||||
|
publish_config(mqtt, TOPIC_CFG_RSSI, "Garden Sensor Signal Strength",
|
||||||
|
"sensor.garden_sensor_rssi", "{{ value_json.rssi }}", ident,
|
||||||
|
"signal_strength", "dBm");
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
#include <PubSubClient.h>
|
||||||
|
|
||||||
|
|
||||||
|
bool publish_all_config(PubSubClient* mqtt, const char* ident);
|
|
@ -0,0 +1,32 @@
|
||||||
|
#include "values.hpp"
|
||||||
|
|
||||||
|
#include <ArduinoJson.h>
|
||||||
|
#include <WiFi.h>
|
||||||
|
|
||||||
|
static inline double round2(double value) {
|
||||||
|
return (int)(value * 100 + 0.5) / 100.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Values::read(Adafruit_seesaw* ss) {
|
||||||
|
moisture = ss->touchRead(0);
|
||||||
|
temperature = ss->getTemp();
|
||||||
|
battery = analogRead(A13) * 3.3 / 4095.0 * 2;
|
||||||
|
rssi = WiFi.RSSI();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Values::send(PubSubClient* mqtt, const char* topic) {
|
||||||
|
StaticJsonDocument<64> doc;
|
||||||
|
doc["moisture"] = moisture;
|
||||||
|
doc["temperature"] = round2(temperature);
|
||||||
|
doc["battery_level"] = round2(battery);
|
||||||
|
doc["rssi"] = rssi;
|
||||||
|
|
||||||
|
String msg;
|
||||||
|
serializeJson(doc, msg);
|
||||||
|
|
||||||
|
auto payload = msg.c_str();
|
||||||
|
Serial.printf("Publishing sensor values (%d bytes) to %s\n",
|
||||||
|
strlen(payload), topic);
|
||||||
|
return mqtt->publish(topic, payload);
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
#include <Adafruit_seesaw.h>
|
||||||
|
#include <PubSubClient.h>
|
||||||
|
|
||||||
|
class Values {
|
||||||
|
public:
|
||||||
|
uint16_t moisture;
|
||||||
|
float temperature;
|
||||||
|
float battery;
|
||||||
|
int8_t rssi;
|
||||||
|
|
||||||
|
Values() {};
|
||||||
|
~Values() {};
|
||||||
|
|
||||||
|
bool read(Adafruit_seesaw* ss);
|
||||||
|
bool send(PubSubClient* mqtt, const char* topic);
|
||||||
|
};
|
Loading…
Reference in New Issue