diff --git a/platformio.ini b/platformio.ini index ece27f0..4a53306 100644 --- a/platformio.ini +++ b/platformio.ini @@ -16,197 +16,184 @@ platform = espressif32 @ 6.7.0 board_build.partitions = min_spiffs.csv framework = arduino monitor_speed = 115200 -board_build.embed_files = +board_build.embed_files = data_embed/index.html.gz data_embed/style.css.gz data_embed/script.js.gz data_embed/bootstrap.css.gz data_embed/bootstrap.js.gz -extra_scripts = +extra_scripts = pre:tools/compress.py debug_tool = esp-prog - [common] -lib_deps = +lib_deps = jgromes/RadioLib @ 6.6.0 mikalhart/TinyGPSPlus @ 1.0.3 - bblanchon/ArduinoJson @ 6.21.3 + bblanchon/ArduinoJson @ 6.21.3 adafruit/Adafruit Unified Sensor @ 1.1.14 adafruit/Adafruit BME280 Library @ 2.2.4 - adafruit/Adafruit BMP280 Library @ 2.6.8 - adafruit/Adafruit BME680 Library @ 2.0.4 + adafruit/Adafruit BMP280 Library @ 2.6.8 + adafruit/Adafruit BME680 Library @ 2.0.4 + adafruit/Adafruit Si7021 Library @ 1.5.3 ayushsharma82/ElegantOTA @ 3.1.1 ottowinter/ESPAsyncWebServer-esphome @ 3.2.2 esphome/AsyncTCP-esphome @ 2.1.1 - [env:ttgo-lora32-v21] board = ttgo-lora32-v21 -build_flags = +build_flags = -Werror -Wall -DTTGO_T_LORA32_V2_1 -DHAS_SX1278 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 - adafruit/Adafruit SSD1306 @ 2.5.10 - + adafruit/Adafruit SSD1306 @ 2.5.10 [env:heltec-lora32-v2] board = ttgo-lora32-v21 -build_flags = +build_flags = -Werror -Wall -DHELTEC_V2 -DHAS_SX1278 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 - [env:heltec_wifi_lora_32_V3] board = heltec_wifi_lora_32_V3 board_build.mcu = esp32s3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_V3 -DHAS_SX1262 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 - [env:heltec_wireless_stick] board = heltec_wifi_lora_32_V3 board_build.mcu = esp32s3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_WS -DHAS_SX1262 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 - [env:heltec_wireless_stick_lite_v3] board = esp32-s3-devkitc-1 board_build.mcu = esp32s3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_WSL_V3 -DHAS_SX1262 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} - [env:heltec_ht-ct62] board = heltec_wireless_stick_lite board_build.mcu = esp32c3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_HTCT62 -DHAS_SX1262 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 - [env:ESP32_DIY_LoRa] board = esp32dev -build_flags = +build_flags = -Werror -Wall -DESP32_DIY_LoRa -DHAS_SX1278 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 - [env:ESP32_DIY_1W_LoRa] board = esp32dev -build_flags = +build_flags = -Werror -Wall -DESP32_DIY_1W_LoRa -DHAS_SX1268 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 - [env:ttgo-t-beam-v1_2] board = ttgo-t-beam -build_flags = +build_flags = -Werror -Wall -DTTGO_T_Beam_V1_2 -DHAS_SX1278 -DHAS_AXP2101 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 lewisxhe/XPowersLib @ 0.2.4 - [env:ttgo-t-beam-v1] board = ttgo-t-beam -build_flags = +build_flags = -Werror -Wall -DTTGO_T_Beam_V1_0 -DHAS_SX1278 -DHAS_AXP192 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 lewisxhe/XPowersLib @ 0.2.4 - [env:ttgo-t-beam-v1_SX1268] board = ttgo-t-beam -build_flags = +build_flags = -Werror -Wall -DTTGO_T_Beam_V1_0_SX1268 -DHAS_SX1268 -DHAS_AXP192 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 lewisxhe/XPowersLib @ 0.2.4 - [env:ttgo-t-beam-v1_2_SX1262] board = ttgo-t-beam -build_flags = +build_flags = -Werror -Wall -DTTGO_T_Beam_V1_2_SX1262 -DHAS_SX1262 -DHAS_AXP2101 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 lewisxhe/XPowersLib @ 0.2.4 - [env:ESP32_DIY_LoRa_A7670] board = esp32dev build_flags = @@ -214,99 +201,94 @@ build_flags = -DESP32_DIY_LoRa_A7670 -DHAS_SX1278 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 vshymanskyy/TinyGSM @ 0.12.0 vshymanskyy/StreamDebugger @ 1.0.1 - [env:heltec_wireless_tracker] board = esp32-s3-devkitc-1 board_build.mcu = esp32s3 -build_flags = +build_flags = -Werror -Wall -DHELTEC_WIRELESS_TRACKER -DHAS_SX1262 -DHAS_TFT - -D USER_SETUP_LOADED + -D USER_SETUP_LOADED -D TFT_WIDTH=80 -D TFT_HEIGHT=160 - -D ST7735_DRIVER - -D ST7735_GREENTAB160x80 - -D TFT_RGB_ORDER=TFT_BGR - -D TFT_MOSI=42 - -D TFT_SCLK=41 - -D TFT_CS=38 - -D TFT_DC=40 - -D TFT_RST=39 + -D ST7735_DRIVER + -D ST7735_GREENTAB160x80 + -D TFT_RGB_ORDER=TFT_BGR + -D TFT_MOSI=42 + -D TFT_SCLK=41 + -D TFT_CS=38 + -D TFT_DC=40 + -D TFT_RST=39 -D TFT_BL=21 -D TFT_BACKLIGHT_ON=1 - -D TOUCH_CS=-1 - -D LOAD_GLCD - -D LOAD_FONT2 - -D LOAD_FONT4 - -D LOAD_FONT6 - -D LOAD_FONT7 - -D LOAD_FONT8 - -D SPI_FREQUENCY=27000000 - -D USE_HSPI_PORT + -D TOUCH_CS=-1 + -D LOAD_GLCD + -D LOAD_FONT2 + -D LOAD_FONT4 + -D LOAD_FONT6 + -D LOAD_FONT7 + -D LOAD_FONT8 + -D SPI_FREQUENCY=27000000 + -D USE_HSPI_PORT -DARDUINO_USB_MODE=1 - -DARDUINO_USB_CDC_ON_BOOT=1 + -DARDUINO_USB_CDC_ON_BOOT=1 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} bodmer/TFT_eSPI @ 2.5.43 - [env:OE5HWN_MeshCom] board = esp32dev -build_flags = +build_flags = -Werror -Wall -DOE5HWN_MeshCom -DHAS_SX1268 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 - [env:WEMOS-LOLIN32-OLED-DIY] board = lolin32 -build_flags = +build_flags = -Werror -Wall -DWEMOS_LOLIN32_OLED_DIY_LoRa -DHAS_SX1278 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 - [env:WEMOS-D1-R32-RA02] board = wemos_d1_uno32 -build_flags = +build_flags = -Werror -Wall - -DWEMOS_D1_R32_RA02 - -DHAS_SX1278 - -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = - ${common.lib_deps} + -DWEMOS_D1_R32_RA02 + -DHAS_SX1278 + -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 +lib_deps = + ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 - [env:ttgo-lora32-v21-915] board = ttgo-lora32-v21 -build_flags = +build_flags = -Werror -Wall -DTTGO_T_LORA32_V2_1_915 -DHAS_SX1276 -DELEGANTOTA_USE_ASYNC_WEBSERVER=1 -lib_deps = +lib_deps = ${common.lib_deps} adafruit/Adafruit GFX Library @ 1.11.9 adafruit/Adafruit SSD1306 @ 2.5.10 \ No newline at end of file diff --git a/src/bme_utils.cpp b/src/bme_utils.cpp index 0c2b4f1..4c0a9e7 100644 --- a/src/bme_utils.cpp +++ b/src/bme_utils.cpp @@ -21,6 +21,7 @@ Adafruit_BMP280 bmp280(&Wire1); #else Adafruit_BMP280 bmp280; Adafruit_BME680 bme680; +Adafruit_Si7021 sensor = Adafruit_Si7021(); #endif @@ -39,7 +40,10 @@ namespace BME_Utils { #endif if (err == 0) { //Serial.println(addr); this shows any connected board to I2C - if (addr == 0x76 || addr == 0x77) { + if (addr == 0x76 || addr == 0x77) { // BME/BMP + wxModuleAddress = addr; + return; + } else if (addr == 0x40) { // Si7011 wxModuleAddress = addr; return; } @@ -52,36 +56,44 @@ namespace BME_Utils { getWxModuleAddres(); if (wxModuleAddress != 0x00) { bool wxModuleFound = false; - #ifdef HELTEC_V3 + if (wxModuleAddress == 0x76 || wxModuleAddress == 0x77) { + #ifdef HELTEC_V3 if (bme280.begin(wxModuleAddress, &Wire1)) { Serial.println("BME280 sensor found"); wxModuleType = 1; wxModuleFound = true; } - #else - if (bme280.begin(wxModuleAddress)) { - Serial.println("BME280 sensor found"); - wxModuleType = 1; - wxModuleFound = true; - } + #else + if (bme280.begin(wxModuleAddress)) { + Serial.println("BME280 sensor found"); + wxModuleType = 1; + wxModuleFound = true; + } + if (!wxModuleFound) { + if (bme680.begin(wxModuleAddress)) { + Serial.println("BME680 sensor found"); + wxModuleType = 3; + wxModuleFound = true; + } + } + #endif if (!wxModuleFound) { - if (bme680.begin(wxModuleAddress)) { - Serial.println("BME680 sensor found"); - wxModuleType = 3; + if (bmp280.begin(wxModuleAddress)) { + Serial.println("BMP280 sensor found"); + wxModuleType = 2; wxModuleFound = true; } } - #endif - if (!wxModuleFound) { - if (bmp280.begin(wxModuleAddress)) { - Serial.println("BMP280 sensor found"); - wxModuleType = 2; + } else if (wxModuleAddress == 0x40) { + if(sensor.begin()) { + Serial.println("Si7021 sensor found"); + wxModuleType = 4; wxModuleFound = true; } - } + } if (!wxModuleFound) { - show_display("ERROR", "", "BME/BMP sensor active", "but no sensor found...", 2000); - Serial.println("BME/BMP sensor Active in config but not found! Check Wiring"); + show_display("ERROR", "", "BME/BMP/Si7021 sensor active", "but no sensor found...", 2000); + Serial.println("BME/BMP/Si7021 sensor Active in config but not found! Check Wiring"); } else { switch (wxModuleType) { case 1: @@ -196,21 +208,32 @@ namespace BME_Utils { } #endif break; + case 4: // Si7021 + newTemp = sensor.readTemperature(); + newPress = 0; + newHum = sensor.readHumidity(); + break; } if (isnan(newTemp) || isnan(newHum) || isnan(newPress)) { - Serial.println("BME/BMP Module data failed"); + Serial.println("BME/BMP/Si7021 Module data failed"); wx = ".../...g...t...r...p...P...h..b....."; fifthLine = ""; return wx; } else { tempStr = generateTempString(((newTemp + Config.bme.temperatureCorrection) * 1.8) + 32); - if (wxModuleType == 1 || wxModuleType == 3) { + + if (wxModuleType == 1 || wxModuleType == 3 || wxModuleType == 4) { humStr = generateHumString(newHum); } else if (wxModuleType == 2) { humStr = ".."; } - presStr = generatePresString(newPress + (Config.bme.heightCorrection/CORRECTION_FACTOR)); + + if (wxModuleAddress == 4) { + presStr = "....."; + } else { + presStr = generatePresString(newPress + (Config.bme.heightCorrection/CORRECTION_FACTOR)); + } fifthLine = "BME-> "; fifthLine += String(int(newTemp + Config.bme.temperatureCorrection)); diff --git a/src/bme_utils.h b/src/bme_utils.h index 2159206..3da97c9 100644 --- a/src/bme_utils.h +++ b/src/bme_utils.h @@ -5,6 +5,7 @@ #include #include #include +#include "Adafruit_Si7021.h" #include