Hier zeige ich euch wie du einen BME280 mit Arduino ausliest und die gemessenen Werte auf einem e-Ink Display darstellst. Als Controller verwenden wir einen ESP32 / Lolin32 den wir mit Arduino programmieren.
Da diese eInk Displays einen sehr niedrigen Stromverbrauch haben könnte man das Programm optimieren das der ESP32 in den Deep-Sleep Modus versetz wird, somit könnte das Display über einen Akku mehrere Jahre betrieben werden. Ich werde zu einem späteren Zeitpunkt sicherlich noch einen Blog Eintrag über ein solches Projekt machen.
Probleme und Stolpersteine in diesem Projekt
Ich habe lange nach einer vernünftigen Arduino Library zum ansteuern der e-Ink Displays gesucht. Zuerst wollte ich meine lieblings Library für Displays nutzen die U8g2. Leider wird von der U8g2 Library nur aktuell ein e-Ink Display von Waveshare unterstützt, deshalb habe ich weitergesucht und die GxEPD Library von ZinggJM gefunden die ich empfehlen kann. Die Library nutzt die Adafruit GFX Library die zum zeichnen und schreiben von Text genutzt wird.
Die Standard schriften von Adafruit haben leider kein Grad Zeichen und somit konnte ich zuerst die Temperatur nicht sauber darstellen. Damit ein ° Zeichen genutzt werden kann muss man selber ein Zeichen anlegen oder eine eigene Schrift erstellen. Der Aufwand war mir dazu zu gross deshalb habe ich als schnell Lösung das Grad Zeichen mit der Zeichnen Funktion erstellt. Dies hat super funktioniert und es sieht auch schön aus.
Hier noch die Links von den erwähnten Libraries:
U8g2: https://github.com/olikraus/u8g2
GxEPD: https://github.com/ZinggJM/GxEPD
Adafruit GFX: https://github.com/adafruit/Adafruit-GFX-Library
Arduino Beispiel Programm zum auslesen vom BME280 und anzeigen auf dem e-Ink Display
/******************************************************************************************* ******************************************************************************************* ** www.bastelgarage.ch ** ** Der Onlineshop mit Videoanleitungen und kompletten Bausätzen für Anfänger und Profis! ** ******************************************************************************************* ******************************************************************************************* ** Hier zeige ich euch wie du einen BME280 ausliest und die gemessenen Werte auf einem ** ** e-Ink Display darstellst. ** ** ** ** ** ** Verwendete Library: ** ** E-Ink Display Waveshare 200x200 1.54" GxEPD: https://github.com/ZinggJM/GxEPD ** ** BME280: https://github.com/e-radionicacom/BME280-Arduino-Library ** ** ** ** Autor: Philippe Keller ** ** Datum: Oktober 2017 ** ** Version: 1.0 ** ******************************************************************************************* Pinbelegung: Display: ESP32 Lolin32: BUSY 4 RST 16 DC 17 CS 5 (SS) CLK 18 (SCK) DIN 23 (MOSI) GND GND 3.3V 3V BME280: ESP32 Lolin32: VCC 3V GND GND SCL 22 SDA 21 */ /************************( Importieren der genutzten Bibliotheken )************************/ #include <GxEPD.h> #include <BME280.h> // Genutztes Display 200x200 1.54inch Schwarz / Weiss E-Ink Display // https://www.bastelgarage.ch/index.php?route=product/product&path=67_84&product_id=428 #include <GxGDEP015OC1/GxGDEP015OC1.cpp> #include <GxIO/GxIO_SPI/GxIO_SPI.cpp> #include <GxIO/GxIO.cpp> //Bastelgarage Logo oder anderes Bild muss im selben Ordner sein #include "IMG_0001.h" // Genutzte Schrift importieren // https://learn.adafruit.com/adafruit-gfx-graphics-library/using-fonts #include <Fonts/FreeMonoBold18pt7b.h> /**************************(Definieren der genutzten Variabeln)****************************/ // Interval zum aktualisieren vom Display int interval = 5000; long lastTime = 5000; float temperature = 0; float humidity = 0; float pressure = 0; BME280 bme; GxIO_Class io(SPI, SS, 17, 16); //SPI,SS,DC,RST GxEPD_Class display(io, 16, 4); //io,RST,BUSY /*****************************************( Setup )****************************************/ void setup(void) { Serial.begin(115200); //BME280 Einstellungen Details unter: //www.github.com/e-radionicacom/BME280-Arduino-Library/blob/master/examples/advancedSettings bme.settings(0, 3, 5, 4, 3, 3, 3); while (bme.begin()) { Serial.println("Es konnte kein BME289 gefunden werden, bitte Verdrahtung prüfen."); delay(1000); } display.init(); // e-Ink Display initialisieren display.fillScreen(GxEPD_WHITE); // Display Weiss füllen display.setRotation(1); // Display um 90° drehen // Logo Bastelgarage auf Display darstellen // Bild,X-Position,Y-Position,Breite Bild, Höhe Bild, Farbe display.drawBitmap(gImage_IMG_0001, 0, (200 - 72), 200 , 72, GxEPD_BLACK); display.update(); // Display aktualisieren } /*************************************(Hauptprogramm)**************************************/ void loop() { if (millis() - lastTime > interval) { // Prüfen ob Display aktualisiert werden muss lastTime = millis(); // Lesen der Messwerte vom BME280 temperature = bme.readTemp(); pressure = (bme.readPressure() / 100.0F); humidity = bme.readHumidity(); display.setRotation(1); // Display um 90° drehen display.setTextColor(GxEPD_BLACK); // Schriftfarbe Schwarz display.setFont(&FreeMonoBold18pt7b); // Schrift definieren // Rechteck mit weissem Hintergrund erstellen //X-Position, Y-Position, Breite, Höhe, Farbe display.fillRect(0, 0, 200, 128, GxEPD_WHITE); //Xpos,Ypos,box-w,box-h // Temperatur schreiben display.setCursor(0, 35); if (temperature >= 20) display.print("+"); if (temperature < 0 & temperature> -10) display.print("-"); if (temperature >= 0 & temperature < 20) display.print(" +"); display.print(temperature, 1); display.setCursor(120, 35); display.print(" C"); // Da bei der Schrift kein Grad Zeichen vorhanden ist selber eins mit Kreisen erstellen display.fillCircle(130, 15, 5, GxEPD_BLACK); //Xpos,Ypos,r,Farbe display.fillCircle(130, 15, 2, GxEPD_WHITE); //Xpos,Ypos,r,Farbe // Luftfeuchtigkeit schreiben display.setCursor(0, 70); if (humidity >= 20) display.print(" "); if (humidity >= 0 & humidity < 20) display.print(" "); display.print(humidity, 1); display.print(" %"); // Luftdruck schreiben display.setCursor(0, 105); display.print(pressure, 1); if (pressure < 1000) display.print(" "); display.print("hPa"); // Teil refresh vom Display display.updateWindow(0, 0, GxEPD_WIDTH, GxEPD_HEIGHT, false); } }
Bastelgarage Logo IMG_0001.h
Dieser Code muss im selben Ordner wie das Arduino Hauptprogramm sein und unter folgendem Namen gespeichert sein: IMG_0001.h
#if defined(__AVR) #include <avr/pgmspace.h> #else #define PROGMEM #endif // Bastelgarage Logo 200x72 Pixel const unsigned char gImage_IMG_0001[1800] PROGMEM = { /* 0X00,0X01,0XC8,0X00,0X48,0X00, */ 0X80,0X00,0X00,0X00,0X00,0X07,0XF8,0X00,0X00,0X00,0X00,0X00,0XFF,0X00,0X00,0X00, 0X00,0X00,0X1F,0XE0,0X00,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X00,0X00,0X07,0XE0, 0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X07,0XE0,0X00,0X00,0X00, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00, 0X00,0X00,0X00,0X00,0X07,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X07,0XC0,0X00, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE0,0X00,0X00,0X00,0X00,0X00, 0X7E,0X00,0X00,0X00,0X00,0X00,0X07,0XC0,0X00,0X00,0X00,0X00,0X00,0X0F,0X3F,0XC1, 0XC1,0X06,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X07, 0XC0,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XE1,0XC3,0X06,0X03,0XE0,0X00,0X00,0X00, 0X00,0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X07,0XC0,0X00,0X00,0X00,0X00,0X00,0X0F, 0XFF,0XF1,0XC7,0X07,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0XC0,0X00, 0X00,0X07,0XC0,0X00,0X00,0X00,0X00,0X00,0X0F,0XFE,0X79,0XC7,0X07,0X03,0XE0,0X00, 0X00,0X00,0X00,0X00,0X7E,0X00,0X03,0XE0,0X70,0X00,0X07,0XC0,0X00,0X00,0X00,0X00, 0X00,0X0F,0XFE,0X1D,0XC7,0X07,0X83,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X0F, 0XF0,0XFC,0X00,0X07,0XC0,0X00,0X00,0X00,0X3F,0X80,0X0E,0X1E,0X0D,0XC7,0X8F,0X83, 0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X01,0XFF,0XFF,0XFF,0X80,0X07,0XC0,0X00,0X00, 0X00,0X3F,0X80,0X00,0X1E,0X00,0XC7,0XFF,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E, 0X0F,0XFF,0XFF,0XFF,0XE0,0X07,0XC0,0X00,0X00,0X00,0X3F,0X80,0X00,0X1E,0X00,0XC3, 0XFE,0X03,0XE0,0X00,0XFF,0XFF,0XF0,0X00,0X7E,0X07,0XFF,0XE0,0XFF,0XFC,0X07,0XC0, 0X7F,0XFF,0XFF,0XF8,0X00,0X00,0X1E,0X00,0XC3,0XFE,0X03,0XE0,0X01,0XFF,0XFF,0XF8, 0X00,0X7E,0X07,0XFF,0XC0,0X7F,0XFE,0X07,0XC0,0X7F,0XFF,0XFF,0XF8,0X00,0X00,0X1E, 0X00,0XC1,0XFC,0X03,0XE0,0X07,0XFF,0XFF,0XFE,0X00,0X7E,0X01,0XFC,0X00,0X0F,0XFE, 0X07,0XC0,0X7F,0XFF,0XFF,0XF8,0X00,0X00,0X1E,0X00,0XC0,0XF8,0X03,0XE0,0X07,0XFF, 0XFF,0XFE,0X00,0X7E,0X00,0XF0,0X00,0X03,0XFC,0X07,0XC0,0X7F,0XFF,0XFF,0XF8,0X00, 0X00,0X1E,0X00,0XC0,0XF8,0X03,0XE0,0X07,0XFF,0XFF,0XFF,0X00,0X7E,0X00,0XF0,0X00, 0X00,0X70,0X07,0XC0,0X78,0X18,0X30,0XF8,0X00,0X00,0X1E,0X00,0XC0,0XF8,0X03,0XE0, 0X0F,0XFF,0XFF,0XFF,0X00,0X7E,0X01,0XFC,0X00,0X00,0XE0,0X07,0XC0,0X7C,0X18,0X30, 0XF8,0X00,0X00,0X1E,0X00,0XC0,0XF8,0X03,0XE0,0X0F,0XFF,0XF3,0XFF,0X00,0X7E,0X01, 0XFF,0X00,0X0F,0XF0,0X07,0XC0,0X3F,0XFF,0XFF,0XF0,0X00,0X00,0X1E,0X00,0XC0,0XF8, 0X03,0XE0,0X0F,0XFF,0XE3,0XFF,0X00,0X7E,0X03,0XFF,0XC0,0X1F,0XF8,0X07,0XC0,0X3F, 0XFF,0XFF,0XF0,0X00,0X00,0X1C,0X01,0XC0,0XF8,0X03,0XE0,0X0F,0XFF,0X83,0XFF,0X00, 0X7E,0X07,0XFF,0XF8,0XFF,0XF8,0X07,0XC0,0X3C,0X18,0X30,0XF0,0X00,0X00,0X1E,0X03, 0XE0,0XF8,0X03,0XE0,0X0F,0XFF,0X03,0XFF,0X00,0X7E,0X07,0XFF,0XFF,0XFF,0XFC,0X07, 0XC0,0X3C,0X18,0X30,0XF0,0X00,0X00,0X3F,0X07,0XF0,0XF8,0X03,0XE0,0X0F,0XFC,0X03, 0XFF,0X00,0X7E,0X03,0XFF,0XFF,0XFF,0XFE,0X07,0XC0,0X3C,0X18,0X30,0XE0,0X00,0X00, 0X3F,0X06,0XB0,0XF8,0X03,0XE0,0X0F,0XFF,0X03,0XFF,0X00,0X7E,0X00,0XFF,0XFF,0XFF, 0XFE,0X07,0XC0,0X3F,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0X06,0XB0,0XF8,0X03,0XE0,0X0F, 0XFF,0XC3,0XFF,0X00,0X7E,0X00,0X3F,0XF9,0XFF,0XF8,0X07,0XC0,0X1F,0XFF,0XFF,0XE0, 0X00,0X00,0X3F,0X06,0XB0,0XF8,0X03,0XE0,0X0F,0XFF,0XE3,0XFF,0X00,0X7E,0X00,0X0F, 0XF8,0XFF,0XF0,0X07,0XC0,0X1F,0XFF,0XFF,0XE0,0X00,0X00,0X3F,0X06,0XB0,0XF8,0X03, 0XE0,0X0F,0XFF,0XFB,0XFF,0X00,0X7E,0X00,0XE3,0XF0,0XFF,0X80,0X07,0XC0,0X0F,0XFF, 0XFF,0XE0,0X00,0X00,0X3F,0X06,0XB0,0XF8,0X03,0XE0,0X0F,0XFF,0XFF,0XFF,0X00,0X7E, 0X00,0XF0,0XF6,0XFE,0X00,0X07,0XC0,0X00,0X00,0X01,0XC0,0X00,0X00,0X3F,0X06,0XB0, 0XF8,0X03,0XE0,0X0F,0XFF,0XFF,0XFF,0X00,0X7E,0X00,0XFC,0X76,0XF8,0X40,0X07,0XC0, 0X00,0X00,0X01,0XC0,0X00,0X00,0X3F,0X06,0XB0,0XF8,0X03,0XE0,0X07,0XFF,0XFF,0XFF, 0X00,0X7E,0X00,0XFF,0X0F,0X43,0XC0,0X07,0XC0,0X0F,0XFF,0XFF,0XC0,0X00,0X00,0X3F, 0X06,0XB0,0XF8,0X03,0XE0,0X07,0XFF,0XFF,0XFF,0X00,0X7E,0X00,0XFF,0XCF,0X07,0XC0, 0X07,0XC0,0X0F,0XFF,0XFF,0XC0,0X00,0X00,0X3F,0X06,0XB0,0XF8,0X03,0XE0,0X07,0XFF, 0XFF,0XFC,0X00,0X7E,0X00,0XFF,0XFF,0X3F,0XC0,0X07,0XC0,0X07,0XFF,0XFF,0XC0,0X00, 0X00,0X3F,0X06,0XB0,0XF8,0X03,0XE0,0X01,0XFF,0XFF,0XFC,0X00,0X7E,0X00,0X3F,0XFF, 0XFF,0XC0,0X07,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0X06,0XB0,0XFC,0X03,0XE0, 0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X0F,0XFF,0XFF,0X00,0X07,0XC0,0X03,0X00,0X04, 0X00,0X00,0X00,0X3F,0X06,0XB1,0XFC,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00, 0X03,0XFF,0XFC,0X00,0X07,0XC0,0X07,0X80,0X0F,0X00,0X00,0X00,0X3F,0X06,0XB3,0XDE, 0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0XFF,0XF0,0X00,0X07,0XC0,0X0F, 0XC0,0X1F,0X00,0X00,0X00,0X3F,0X06,0XB3,0X8E,0X03,0XE0,0X00,0X00,0X00,0X00,0X00, 0X7E,0X00,0X00,0X3F,0XE0,0X00,0X07,0XC0,0X0F,0XC0,0X1F,0X00,0X00,0X00,0X3F,0X07, 0XF3,0XDE,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0X0F,0X00,0X00,0X07, 0XC0,0X07,0X80,0X0F,0X00,0X00,0X00,0X3F,0X03,0XE1,0XFC,0X03,0XE0,0X00,0X00,0X00, 0X00,0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X07,0XC0,0X03,0X00,0X04,0X00,0X00,0X00, 0X1E,0X03,0XC0,0XF8,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0X00,0X00, 0X00,0X07,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X1C,0X00,0X80,0X30,0X03,0XE0,0X00, 0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X07,0XC0,0X00,0X00,0X00,0X00, 0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00, 0X00,0X00,0X00,0X07,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03, 0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X07,0XC0,0X00,0X00, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E, 0X00,0X00,0X00,0X00,0X00,0X07,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0X00,0X07,0XE0,0X00,0X00,0X00,0X00,0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X0F,0XE0, 0X00,0X00,0X00,0X00,0X00,0X80,0X00,0X00,0X00,0X00,0X07,0XF0,0X00,0X00,0X00,0X00, 0X00,0X7E,0X00,0X00,0X00,0X00,0X00,0X0F,0XE0,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XFF,0XFF,0XFC,0X7F,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF, 0XC7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XFF, 0XFF,0XFC,0X7F,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XC7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XFF,0XFF,0XFC,0X7F,0XFF,0XFF,0XFF,0XFF, 0XF1,0XE0,0X07,0X00,0X7F,0XFF,0X01,0XF8,0X01,0XFE,0X00,0XF0,0X7F,0X00,0X78,0X01, 0XF8,0XF8,0X07,0XE0,0X78,0X01,0XFC,0X01,0XF8,0X01,0X80,0X07,0X00,0X1F,0XFC,0X00, 0X78,0X00,0X78,0X00,0XF0,0X1C,0X00,0X78,0X00,0X78,0XF0,0X01,0XE0,0X78,0X00,0XF0, 0X01,0XE0,0X01,0X8F,0XC7,0XFF,0X1F,0XFC,0X7E,0X38,0X7C,0X38,0XFF,0XFF,0X1C,0X7F, 0XF8,0X7C,0X78,0XF3,0XF9,0XFC,0X7F,0XFC,0XF3,0XFF,0XE3,0XF1,0X8F,0XC7,0XFF,0X1F, 0XFC,0X7E,0X38,0X7C,0X38,0XFF,0XFF,0X1C,0X7F,0XF8,0X7C,0X38,0XF3,0XF9,0XFC,0X7F, 0XFC,0XF3,0XFF,0XE3,0XF1,0X8F,0XC7,0XFF,0X1F,0XFC,0X00,0X38,0X7C,0X38,0X01,0XFF, 0X1C,0X00,0XF8,0X7C,0X38,0XF0,0X01,0XFC,0X7C,0X00,0XF0,0X03,0XE3,0XF1,0X8F,0XC7, 0XFF,0X1F,0XFC,0X00,0X38,0X7C,0X38,0X00,0XFF,0X1C,0X00,0X38,0X7C,0X38,0XF0,0X01, 0XFC,0X78,0X03,0XF0,0X01,0XE3,0XF1,0X8F,0XC7,0XFF,0X1F,0XFF,0XFE,0X38,0X7C,0X38, 0XFC,0X7F,0X1C,0X7E,0X38,0X7C,0X38,0XFF,0XF9,0XFC,0X79,0XFF,0XF3,0XF8,0XE3,0XF1, 0X8F,0XC7,0XFF,0X1F,0XFF,0XFE,0X38,0X7C,0X38,0XFC,0X7F,0X1C,0X7E,0X38,0X7C,0X38, 0XFF,0XF9,0XFC,0X79,0XFF,0XF3,0XF8,0XE3,0XF1,0X8F,0XC7,0XFF,0X1E,0X3F,0XFE,0X38, 0X7C,0X38,0XFC,0X7F,0X1C,0X7E,0X38,0X7C,0X38,0XFF,0XF9,0XFC,0X79,0XFF,0XF3,0XF8, 0XE3,0XF1,0X8F,0XC7,0X00,0X1E,0X3E,0X00,0X78,0X00,0X78,0X00,0XFF,0X1C,0X00,0X38, 0X00,0X78,0XF0,0X01,0XE0,0X78,0X00,0XF0,0X01,0XE0,0X01,0X8F,0XC7,0XFF,0XFE,0X3F, 0XFF,0XF8,0X7F,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X7F,0XF8,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,0XFF,0XFF,0XFF, 0XFF,0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,0XFF, 0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X7F,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,};

sketch_oct28a:107:20: error: 'class BME280' has no member named 'readHumidity'
humidity = bme.readHumidity();
^
exit status 1
no matching function for call to 'BME280::BME280()'
....etc

Hello Philippe,
Did you find a way to put the Driver Board into deep sleep?
Kind regards

Ich möchte das E-Paper Display EDM100 mit einem ATMEGA8 Microcontroller ansteuern. Die Programmsprache soll AVR-Bascom sein Es sollen sowohl Zahlenwerte als auch Buchstaben angezeigt werden.
Wer hat eine solche Schaltung und das entsprechende Programm dazu
Dank im Vorraus

Hallo Philippe,
ein tolles Arduino-Projekt und ich habe es mit viel Interesse gelesen.
Frage: Ist es möglich den Luftdruck hPa ohne Nachkommastellen darzustellen?
Ein ganzzahliger hPa- Wert ist m.E. doch ausreichend genau, oder?
Bei einem Wert über 1000 wird der Platz für die Anzeige zu eng...
Herzlichen Dank für eine hilfreiche Antwort vorab,
Michael

Wo display.print(pressure, 1); steht, statt der 1 einfach eine 0 einsetzten.
So display.print(pressure, 0); sollte es Funktionieren.

Tolles Projekt! Ich habe das Projekt in einem MKR1010 mit BME280 und E-Ink Display ohne Probleme. Die Programierung von der E-Ink ist mühsam aber macht viel Spass! Vielen Dank für die Erklärung und Code.

Hallo
Ich versuche anstelle des ESP32, ein Heltec ESP32 Lora zu verwenden.....hmm ich bekoms irgendwie nicht hin!
Eice Idee?

Hallo Patrick,
Wie hast du den das Display angeschlossen? Oder geht es um den BME280?
Gruess Philippe