Giter Club home page Giter Club logo

esp32_thermostat's Introduction

ESP32 thermostat witch touch LCD

WiFi thermostat based on the ESP32 (Espressif WROOM-32 Developer Kit), using several SHT3X(SHT31-D) temperature/humidity sensor and ILI 9341 TFT LCD Touch display. Data are sent to the Blynk server. Thermostat can be controlled by the Blynk application from iPhone or directly by touch on the LCD. Project is free to use, coded in C++, created in Visual Code with PlatfomIO IDE.

To build a project, you need to download all the necessary libraries and create the settings.cpp file in the src folder with specific settings:

// address 1 - enable/disable heating
#define EEPROM_ENABLED_DISABLED_HEATING_ADDRESS 1
// address 2 - target temperature
#define EEPROM_TARGET_HEATING_TEMPERATURE_ADDRESS 2
// address 3 - target temperature was set from display
#define EEPROM_TARGET_HEATING_TEMPERATURE_DISPLAY_SET_ADDRESS 3
// address 4 - heating enabled/disabled was set from display
#define EEPROM_ENABLED_DISABLED_HEATING_DISPLAY_SET_ADDRESS 4

#define MAX_TEMPERATURE_FROM_DISPLAY 25
#define MIN_TEMPERATURE_FROM_DISPLAY 10

// Thermostat project settings
struct Settings
{
    const char *ssid = "WIFI ssid";
    const char *password = "WIFI password";
    const char *blynkAuth = "blynkAuthDevice1";
    const char *blynkAuthOutdoor = "blynkAuthDevice2";
    const char *blynkAuthBedroom = "blynkAuthDevice3";
    const char *blynkAuthPantry = "blynkAuthDevice4";
    const char *hostNameOTA = "OTA host name";
    const char *passwordOTA = "OTA password";
    const char *version = "0.1.0";
};

LCD Touch panel library & wiring:

I'm using awasome TFT_eSPI library from Bodmer. You must update User_Setup.h file to set display type and pins. There is ESP32 section, my setup for this section is following:

// ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP32 SETUP   ######

// For ESP32 Dev board (only tested with ILI9341 display)
// The hardware SPI can be mapped to any pins
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS   15  // Chip select control pin
#define TFT_DC    2  // Data Command control pin
#define TFT_RST  -1  // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST
#define TOUCH_CS  4  // Chip select pin (T_CS) of touch screen

For wires connection between the display and the ESP32 look to the schema..

5V relay vs 3.3V ESP32 pins

When you have 5V relay, there is a need to think about 3.3V ESP32 pins. You can't just connect ESP32 pin to source pin of the relay, it would not work. One way is insert MOSFET between ESP32 pin and source pin of the relay. Other solution is just use the 3.3V relay, or solid state relay. More information is here.

Currents list:

Schema:

Schema

Finished project:

How the finished project works is shown in this YouTube video.

YouTube video here

esp32_thermostat's People

Contributors

vitzaoral avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

esp32_thermostat's Issues

error: redefinition of 'struct Settings'

I get the above error when trying to build the project. I'm not quite sure how to solve the problem.

I've pasted the terminal output below:

Executing task: platformio run <

Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 1.11.1 > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: toolchain-xtensa32 2.50200.80 (5.2.0), framework-arduinoespressif32 2.10004.191002 (1.0.4), tool-esptoolpy 1.20600.0 (2.6.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 35 compatible libraries
Scanning dependencies...
Dependency Graph
|-- 3.1.5
|--
| |-- 1.1.6
| | |-- 1.0.1
|--
| |-- 1.0
| | |-- 1.0
| | | |-- 1.0
| | |-- 1.0
| | |-- 1.0
| |--
| | |-- 1.1.6
| | | |-- 1.0.1
| |-- 1.0
| |--
| | |-- 1.0
| | |--
| | | |-- 1.1.6
| | | | |-- 1.0.1
| | |-- 1.0
| | |-- <TFT_eSPI> 1.4.21
| | | |-- 1.0
| | | |-- 1.0
| | | |-- 1.0
| | | | |-- 1.0
| | |-- 1.0.3
| | |-- 1.0
| | |-- 1.8.0
| | | |-- <SD(esp32)> 1.0.5
| | | | |-- 1.0
| | | | |-- 1.0
| | | |-- 1.0
| | | |-- 1.0
| | | | |-- 1.0
| |-- 0.6.1
| | |-- 1.0
| | |-- <SD(esp32)> 1.0.5
| | | |-- 1.0
| | | |-- 1.0
| | |-- 1.0
| | | |-- 1.0
| |-- 1.0.3
| |--
| | |--
| | | |-- 1.0
| | | |--
| | | | |-- 1.1.6
| | | | | |-- 1.0.1
| | | |-- 1.0
| | | |-- <TFT_eSPI> 1.4.21
| | | | |-- 1.0
| | | | |-- 1.0
| | | | |-- 1.0
| | | | | |-- 1.0
| | | |-- 1.0.3
| | | |-- 1.0
| | | |-- 1.8.0
| | | | |-- <SD(esp32)> 1.0.5
| | | | | |-- 1.0
| | | | | |-- 1.0
| | | | |-- 1.0
| | | | |-- 1.0
| | | | | |-- 1.0
| | |--
| | | |-- 1.1.6
| | | | |-- 1.0.1
| | |-- 1.0.3
| |-- 1.2
| | |-- 1.0
| | |-- 1.0
| | | |-- 1.0
|-- 1.0.3
|--
| |--
| | |-- 1.0
| | |--
| | | |-- 1.1.6
| | | | |-- 1.0.1
| | |-- 1.0
| | |-- <TFT_eSPI> 1.4.21
| | | |-- 1.0
| | | |-- 1.0
| | | |-- 1.0
| | | | |-- 1.0
| | |-- 1.0.3
| | |-- 1.0
| | |-- 1.8.0
| | | |-- <SD(esp32)> 1.0.5
| | | | |-- 1.0
| | | | |-- 1.0
| | | |-- 1.0
| | | |-- 1.0
| | | | |-- 1.0
| |--
| | |-- 1.1.6
| | | |-- 1.0.1
| |-- 1.0.3
|--
| |-- 1.0
| |--
| | |-- 1.1.6
| | | |-- 1.0.1
| |-- 1.0
| |-- <TFT_eSPI> 1.4.21
| | |-- 1.0
| | |-- 1.0
| | |-- 1.0
| | | |-- 1.0
| |-- 1.0.3
| |-- 1.0
| |-- 1.8.0
| | |-- <SD(esp32)> 1.0.5
| | | |-- 1.0
| | | |-- 1.0
| | |-- 1.0
| | |-- 1.0
| | | |-- 1.0
Building in release mode
Compiling .pio/build/esp32dev/src/main.cpp.o
Compiling .pio/build/esp32dev/src/settings.cpp.o
In file included from lib/Display/Display.h:4:0,
from lib/InternetConnection/InternetConnection.h:10,
from src/main.cpp:2:
lib/Display/../../src/settings.cpp:14:8: error: redefinition of 'struct Settings'
struct Settings
^
In file included from lib/InternetConnection/InternetConnection.h:4:0,
from src/main.cpp:2:
lib/InternetConnection/../../src/settings.cpp:14:8: error: previous definition of 'struct Settings'
struct Settings
^
In file included from lib/Thermostat/Thermostat.h:4:0,
from lib/InternetConnection/InternetConnection.h:11,
from src/main.cpp:2:
lib/Thermostat/../../src/settings.cpp:14:8: error: redefinition of 'struct Settings'
struct Settings
^
In file included from lib/InternetConnection/InternetConnection.h:4:0,
from src/main.cpp:2:
lib/InternetConnection/../../src/settings.cpp:14:8: error: previous definition of 'struct Settings'
struct Settings
^
Compiling .pio/build/esp32dev/libaf0/Display/Display.cpp.o
Compiling .pio/build/esp32dev/lib7eb/Thermostat/Thermostat.cpp.o
Compiling .pio/build/esp32dev/libece/InternetConnection/InternetConnection.cpp.o
In file included from lib/Display/Display.h:4:0,
from lib/Thermostat/Thermostat.h:8,
from lib/Thermostat/Thermostat.cpp:1:
lib/Display/../../src/settings.cpp:14:8: error: redefinition of 'struct Settings'
struct Settings
^
In file included from lib/Thermostat/Thermostat.h:4:0,
from lib/Thermostat/Thermostat.cpp:1:
lib/Thermostat/../../src/settings.cpp:14:8: error: previous definition of 'struct Settings'
struct Settings
^
In file included from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip/lwip/ip_addr.h:41:0,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter/tcpip_adapter.h:45,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_event_legacy.h:23,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event/esp_event.h:26,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_event_loop.h:22,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:27,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiSTA.h:28,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFi.h:32,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkSimpleEsp32.h:23,
from lib/InternetConnection/InternetConnection.cpp:1:
/Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip/lwip/def.h:108:0: warning: "htons" redefined
#define htons(x) lwip_htons(x)
^
In file included from /Users/chris/.platformio/lib/Blynk_ID415/src/Blynk/BlynkApi.h:19:0,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkApiArduino.h:14,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkSimpleEsp32.h:20,
from lib/InternetConnection/InternetConnection.cpp:1:
/Users/chris/.platformio/lib/Blynk_ID415/src/Blynk/BlynkProtocolDefs.h:78:0: note: this is the location of the previous definition
#define htons(x) ( ((x)<<8) | (((x)>>8)&0xFF) )
^
In file included from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip/lwip/ip_addr.h:41:0,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter/tcpip_adapter.h:45,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_event_legacy.h:23,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event/esp_event.h:26,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_event_loop.h:22,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:27,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiSTA.h:28,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFi.h:32,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkSimpleEsp32.h:23,
from lib/InternetConnection/InternetConnection.cpp:1:
/Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip/lwip/def.h:109:0: warning: "ntohs" redefined
#define ntohs(x) lwip_ntohs(x)
^
In file included from /Users/chris/.platformio/lib/Blynk_ID415/src/Blynk/BlynkApi.h:19:0,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkApiArduino.h:14,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkSimpleEsp32.h:20,
from lib/InternetConnection/InternetConnection.cpp:1:
/Users/chris/.platformio/lib/Blynk_ID415/src/Blynk/BlynkProtocolDefs.h:83:0: note: this is the location of the previous definition
#define ntohs(x) htons(x)
^
In file included from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip/lwip/ip_addr.h:41:0,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter/tcpip_adapter.h:45,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_event_legacy.h:23,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event/esp_event.h:26,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_event_loop.h:22,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:27,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiSTA.h:28,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFi.h:32,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkSimpleEsp32.h:23,
from lib/InternetConnection/InternetConnection.cpp:1:
/Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip/lwip/def.h:110:0: warning: "htonl" redefined
#define htonl(x) lwip_htonl(x)
^
In file included from /Users/chris/.platformio/lib/Blynk_ID415/src/Blynk/BlynkApi.h:19:0,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkApiArduino.h:14,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkSimpleEsp32.h:20,
from lib/InternetConnection/InternetConnection.cpp:1:
/Users/chris/.platformio/lib/Blynk_ID415/src/Blynk/BlynkProtocolDefs.h:79:0: note: this is the location of the previous definition
#define htonl(x) ( ((x)<<24 & 0xFF000000UL) |
^
In file included from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip/lwip/ip_addr.h:41:0,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter/tcpip_adapter.h:45,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_event_legacy.h:23,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event/esp_event.h:26,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32/esp_event_loop.h:22,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:27,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiSTA.h:28,
from /Users/chris/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFi.h:32,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkSimpleEsp32.h:23,
from lib/InternetConnection/InternetConnection.cpp:1:
/Users/chris/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip/lwip/def.h:111:0: warning: "ntohl" redefined
#define ntohl(x) lwip_ntohl(x)
^
In file included from /Users/chris/.platformio/lib/Blynk_ID415/src/Blynk/BlynkApi.h:19:0,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkApiArduino.h:14,
from /Users/chris/.platformio/lib/Blynk_ID415/src/BlynkSimpleEsp32.h:20,
from lib/InternetConnection/InternetConnection.cpp:1:
/Users/chris/.platformio/lib/Blynk_ID415/src/Blynk/BlynkProtocolDefs.h:84:0: note: this is the location of the previous definition
#define ntohl(x) htonl(x)
^
In file included from lib/Display/Display.h:4:0,
from lib/InternetConnection/InternetConnection.h:10,
from lib/InternetConnection/InternetConnection.cpp:2:
lib/Display/../../src/settings.cpp:14:8: error: redefinition of 'struct Settings'
struct Settings
^
In file included from lib/InternetConnection/InternetConnection.h:4:0,
from lib/InternetConnection/InternetConnection.cpp:2:
lib/InternetConnection/../../src/settings.cpp:14:8: error: previous definition of 'struct Settings'
struct Settings
^
*** [.pio/build/esp32dev/src/main.cpp.o] Error 1
*** [.pio/build/esp32dev/lib7eb/Thermostat/Thermostat.cpp.o] Error 1
In file included from lib/Thermostat/Thermostat.h:4:0,
from lib/InternetConnection/InternetConnection.h:11,
from lib/InternetConnection/InternetConnection.cpp:2:
lib/Thermostat/../../src/settings.cpp:14:8: error: redefinition of 'struct Settings'
struct Settings
^
In file included from lib/InternetConnection/InternetConnection.h:4:0,
from lib/InternetConnection/InternetConnection.cpp:2:
lib/InternetConnection/../../src/settings.cpp:14:8: error: previous definition of 'struct Settings'
struct Settings
^
*** [.pio/build/esp32dev/libece/InternetConnection/InternetConnection.cpp.o] Error 1
================================================================================ [FAILED] Took 5.14 seconds ================================================================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

Question: Powering the Wifi Thermostat

Hi, sorry for the silly question but how is the wifi thermostat powered?

Does the thermostat siphon off power from the 220v (old thermostat) or is it externally powered?

error: undefined reference to `TFT_eSPI::getTouch(unsigned short*, unsigned short*, unsigned short)'

I can not compile the firmware

Executing task in folder esp32_thermostat-master: C:\Users\le_x_.platformio\penv\Scripts\pio.exe run <

Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (2.0.0) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 3.10004.201016 (1.0.4)
  • tool-esptoolpy 1.20600.0 (2.6.0)
  • toolchain-xtensa32 2.50200.80 (5.2.0)
    LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 41 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- 2.0.0
    | |-- 1.7.1
    | | |-- 1.0.1
    | | |-- 1.0
    | |-- 1.0.1
    |-- 1.8.1
    | |-- 1.0
    | |-- 1.0
    | | |-- 1.0
    | |-- <SD(esp32)> 1.0.5
    | | |-- 1.0
    | | |-- 1.0
    |-- 3.2.0
    |-- 0.6.7
    | |-- 1.0
    | |-- 1.0
    | | |-- 1.0
    | |-- <SD(esp32)> 1.0.5
    | | |-- 1.0
    | | |-- 1.0
    |-- <TFT_eSPI> 2.3.52
    | |-- 1.0
    | | |-- 1.0
    | |-- 1.0
    | |-- 1.0
    |-- 6.17.2
    |-- 1.10.4
    | |-- 1.7.1
    | | |-- 1.0.1
    | | |-- 1.0
    | |-- 1.0.1
    | |-- 1.0
    |-- 1.5.6
    | |-- 1.10.4
    | | |-- 1.7.1
    | | | |-- 1.0.1
    | | | |-- 1.0
    | | |-- 1.0.1
    | | |-- 1.0
    | |-- 1.0
    |--
    | |-- 1.0.3
    | |-- 1.0
    | |-- <TFT_eSPI> 2.3.52
    | | |-- 1.0
    | | | |-- 1.0
    | | |-- 1.0
    | | |-- 1.0
    | |-- 1.8.1
    | | |-- 1.0
    | | |-- 1.0
    | | | |-- 1.0
    | | |-- <SD(esp32)> 1.0.5
    | | | |-- 1.0
    | | | |-- 1.0
    | |--
    | | |-- 2.0.0
    | | | |-- 1.7.1
    | | | | |-- 1.0.1
    | | | | |-- 1.0
    | | | |-- 1.0.1
    | |-- 1.0
    | |-- 1.0
    |-- 1.0.3
    |--
    | |-- 1.0
    | | |-- 1.0
    | | |-- 1.0
    | | |-- 1.0
    | | | |-- 1.0
    | |--
    | | |-- 1.0.3
    | | |-- 1.0
    | | |-- <TFT_eSPI> 2.3.52
    | | | |-- 1.0
    | | | | |-- 1.0
    | | | |-- 1.0
    | | | |-- 1.0
    | | |-- 1.8.1
    | | | |-- 1.0
    | | | |-- 1.0
    | | | | |-- 1.0
    | | | |-- <SD(esp32)> 1.0.5
    | | | | |-- 1.0
    | | | | |-- 1.0
    | | |--
    | | | |-- 2.0.0
    | | | | |-- 1.7.1
    | | | | | |-- 1.0.1
    | | | | | |-- 1.0
    | | | | |-- 1.0.1
    | | |-- 1.0
    | | |-- 1.0
    | |-- 1.0.3
    | |-- 1.2
    | | |-- 1.0
    | | |-- 1.0
    | | | |-- 1.0
    | |--
    | | |-- 2.0.0
    | | | |-- 1.7.1
    | | | | |-- 1.0.1
    | | | | |-- 1.0
    | | | |-- 1.0.1
    | |--
    | | |--
    | | | |-- 1.0.3
    | | | |-- 1.0
    | | | |-- <TFT_eSPI> 2.3.52
    | | | | |-- 1.0
    | | | | | |-- 1.0
    | | | | |-- 1.0
    | | | | |-- 1.0
    | | | |-- 1.8.1
    | | | | |-- 1.0
    | | | | |-- 1.0
    | | | | | |-- 1.0
    | | | | |-- <SD(esp32)> 1.0.5
    | | | | | |-- 1.0
    | | | | | |-- 1.0
    | | | |--
    | | | | |-- 2.0.0
    | | | | | |-- 1.7.1
    | | | | | | |-- 1.0.1
    | | | | | | |-- 1.0
    | | | | | |-- 1.0.1
    | | | |-- 1.0
    | | | |-- 1.0
    | | |-- 1.0.3
    | | |--
    | | | |-- 2.0.0
    | | | | |-- 1.7.1
    | | | | | |-- 1.0.1
    | | | | | |-- 1.0
    | | | | |-- 1.0.1
    | |-- 1.0
    | |-- 0.6.7
    | | |-- 1.0
    | | |-- 1.0
    | | | |-- 1.0
    | | |-- <SD(esp32)> 1.0.5
    | | | |-- 1.0
    | | | |-- 1.0
    |--
    | |-- 2.0.0
    | | |-- 1.7.1
    | | | |-- 1.0.1
    | | | |-- 1.0
    | | |-- 1.0.1
    |--
    | |--
    | | |-- 1.0.3
    | | |-- 1.0
    | | |-- <TFT_eSPI> 2.3.52
    | | | |-- 1.0
    | | | | |-- 1.0
    | | | |-- 1.0
    | | | |-- 1.0
    | | |-- 1.8.1
    | | | |-- 1.0
    | | | |-- 1.0
    | | | | |-- 1.0
    | | | |-- <SD(esp32)> 1.0.5
    | | | | |-- 1.0
    | | | | |-- 1.0
    | | |--
    | | | |-- 2.0.0
    | | | | |-- 1.7.1
    | | | | | |-- 1.0.1
    | | | | | |-- 1.0
    | | | | |-- 1.0.1
    | | |-- 1.0
    | | |-- 1.0
    | |-- 1.0.3
    | |--
    | | |-- 2.0.0
    | | | |-- 1.7.1
    | | | | |-- 1.0.1
    | | | | |-- 1.0
    | | | |-- 1.0.1
    Building in release mode
    Compiling .pio\build\esp32dev\src\main.cpp.o
    Compiling .pio\build\esp32dev\liba0a\Display\Display.cpp.o
    Compiling .pio\build\esp32dev\liba0a\Display\GfxUi.cpp.o
    Compiling .pio\build\esp32dev\liba0a\Display\JpegUtils.cpp.o
    Compiling .pio\build\esp32dev\lib5b4\Thermostat\Thermostat.cpp.o
    Compiling .pio\build\esp32dev\libf34\InternetConnection\InternetConnection.cpp.o
    Archiving .pio\build\esp32dev\liba0a\libDisplay.a
    Archiving .pio\build\esp32dev\lib5b4\libThermostat.a
    Archiving .pio\build\esp32dev\libf34\libInternetConnection.a
    Linking .pio\build\esp32dev\firmware.elf
    .pio\build\esp32dev\liba0a\libDisplay.a(Display.cpp.o):(.literal._ZN7Display19checkDisplayClickedEv+0xc): undefined reference to TFT_eSPI::getTouch(unsigned short*, unsigned short*, unsigned short)' .pio\build\esp32dev\liba0a\libDisplay.a(Display.cpp.o): In function Display::checkDisplayClicked()':
    E:\firmware_vscode\esp32_thermostat-master/lib\Display/Display.cpp:287: undefined reference to `TFT_eSPI::getTouch(unsigned short*, unsigned short*, unsigned short)'
    collect2.exe: error: ld returned 1 exit status
    *** [.pio\build\esp32dev\firmware.elf] Error 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.