diff options
-rw-r--r-- | .gitmodules | 9 | ||||
m--------- | Adafruit-GFX-Library | 0 | ||||
m--------- | Adafruit_BusIO | 0 | ||||
m--------- | GxEPD | 0 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | main.ino | 49 |
6 files changed, 49 insertions, 13 deletions
diff --git a/.gitmodules b/.gitmodules index ad61b56..3b4bde0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,12 @@ [submodule "arduino-core"] path = arduino-core url = https://github.com/Sensirion/arduino-core +[submodule "Adafruit-GFX-Library"] + path = Adafruit-GFX-Library + url = https://github.com/adafruit/Adafruit-GFX-Library +[submodule "GxEPD"] + path = GxEPD + url = https://github.com/lewisxhe/GxEPD +[submodule "Adafruit_BusIO"] + path = Adafruit_BusIO + url = https://github.com/adafruit/Adafruit_BusIO diff --git a/Adafruit-GFX-Library b/Adafruit-GFX-Library new file mode 160000 +Subproject 4a33fcd467e373d1eedd3aef6f5f9be36f5c276 diff --git a/Adafruit_BusIO b/Adafruit_BusIO new file mode 160000 +Subproject afbd408d17cf3ec6f2da5902b99cf5f169703de diff --git a/GxEPD b/GxEPD new file mode 160000 +Subproject fe0bd756a47e7cb482311b367a15d86f3d65d45 @@ -1,11 +1,11 @@ SKETCH = main.ino -CUSTOM_LIBS = arduino-core arduino-i2c-scd4x arduino-sps +LIBS = $(abspath arduino-core arduino-i2c-scd4x arduino-sps GxEPD Adafruit-GFX-Library Adafruit_BusIO) UPLOAD_PORT = /dev/ttyUSB0 # maybe board with eink? BOARD = ttgo-t1 -ESP_ROOT = $(HOME)/Arduino/hardware/espressif/esp32/ +ESP_ROOT = $(HOME)/HW/arduino-esp32 CHIP = esp32 include $(HOME)/src/makeEspArduino/makeEspArduino.mk @@ -2,6 +2,20 @@ #include <SensirionI2CScd4x.h> #include <Wire.h> +#define LILYGO_T5_V213 // needed for the display libraries + +#include <boards.h> +#include <GxEPD.h> +#include <GxGDEH0213B73/GxGDEH0213B73.h> // screen model, probably correct +#include <Fonts/FreeMonoBold12pt7b.h> +#include <GxIO/GxIO_SPI/GxIO_SPI.h> +#include <GxIO/GxIO.h> + +GxIO_Class io(SPI, EPD_CS, EPD_DC, EPD_RSET); +GxEPD_Class display(io, EPD_RSET, EPD_BUSY); +SPIClass SDSPI(VSPI); // for sdcard? maybe? + + SensirionI2CScd4x scd4x; void printUint16Hex(uint16_t value) { @@ -28,6 +42,15 @@ void setup() { Wire.begin(21,22); + SPI.begin(EPD_SCLK, EPD_MISO, EPD_MOSI); + + display.init(); + display.setTextColor(GxEPD_BLACK); + display.setRotation(3); + display.setFont(&FreeMonoBold12pt7b); + display.fillScreen(GxEPD_WHITE); + display.update(); + uint16_t error; char errorMessage[256]; @@ -75,20 +98,24 @@ void loop() { float temperature = 0.0f; float humidity = 0.0f; error = scd4x.readMeasurement(co2, temperature, humidity); + + display.fillScreen(GxEPD_WHITE); + display.setCursor(0,20); + if (error) { - Serial.print("Error trying to execute readMeasurement(): "); + display.print("read error: "); errorToString(error, errorMessage, 256); - Serial.println(errorMessage); + display.println(errorMessage); } else if (co2 == 0) { - Serial.println("Invalid sample detected, skipping."); + display.println("Invalid sample detected, skipping."); } else { - Serial.print("Co2:"); - Serial.print(co2); - Serial.print("\t"); - Serial.print("Temperature:"); - Serial.print(temperature); - Serial.print("\t"); - Serial.print("Humidity:"); - Serial.println(humidity); + display.print("Co2:"); + display.println(co2); + display.print("Temperature:"); + display.println(temperature); + display.print("Humidity:"); + display.println(humidity); } + + display.update(); } |