aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2022-01-28 16:42:14 +0000
committerdakkar <dakkar@thenautilus.net>2022-01-28 16:42:14 +0000
commit99be6b6d2a0f5a31b1d9ade85e2988ee357e4294 (patch)
treeff5789a86445ab497e0c7fe6c41b7ecadd1042ed
parentsensirion example, works (diff)
downloadenv-sensor-99be6b6d2a0f5a31b1d9ade85e2988ee357e4294.tar.gz
env-sensor-99be6b6d2a0f5a31b1d9ade85e2988ee357e4294.tar.bz2
env-sensor-99be6b6d2a0f5a31b1d9ade85e2988ee357e4294.zip
show values on eink display
-rw-r--r--.gitmodules9
m---------Adafruit-GFX-Library0
m---------Adafruit_BusIO0
m---------GxEPD0
-rw-r--r--Makefile4
-rw-r--r--main.ino49
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
diff --git a/Makefile b/Makefile
index 72d8f7e..297087f 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/main.ino b/main.ino
index bc27deb..604bdef 100644
--- a/main.ino
+++ b/main.ino
@@ -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();
}