BME280
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
#include "RTClib.h" #include "U8g2lib.h" #include "Adafruit_BME280.h" RTC_DS3231 rtc; // Name des BME280 Adafruit_BME280 bme; String Temperatur, Luftfeuchtigkeit; // 0,96 Zoll SSD1306 Page Buffer Mode // U8G2_SSD1306_128X64_NONAME_1_HW_I2C oled(U8G2_R0); // 0,96 Zoll SSD1306 Full Buffer Mode // U8G2_SSD1306_128X64_NONAME_F_HW_I2C oled(U8G2_R0); // 1,3 Zoll SH1106 Page Buffer Mode // U8G2_SH1106_128X64_NONAME_1_HW_I2C oled(U8G2_R0); // 1,3 Zoll SH1106 Full Buffer Mode // U8G2_SH1106_128X64_NONAME_F_HW_I2C oled(U8G2_R0); // 1,5 Zoll SH1107 Page Buffer Mode // U8G2_SH1107_SEEED_128X128_1_HW_I2C oled(U8G2_R0); void setup() { Serial.begin(9600); while (!Serial); delay(1000); if (!rtc.begin()) { Serial.println("RTC nicht verbunden"); Serial.println("Programm wird beendet!"); while (1); } else Serial.println("RTC verbunden!"); // Zeitpunkt der Kompilierung String Zeitpunkt = (F(__DATE__), F(__TIME__)); Serial.println("Zeitpunkt des Kompilierens: " + Zeitpunkt); // Zeit aus dem Zeitpunkt des Kompilierens setzen rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); if (!oled.begin()) { Serial.println("OLED nicht verbunden"); Serial.println("Programm wird beendet!"); while (1); } else Serial.println("OLED verbunden!"); // BME280 starten, bei Misserfolg Meldung anzeigen if (!bme.begin(0x77)) { Serial.println("BME280 nicht verbunden"); Serial.println("Verkabelung und/oder HEX-Adresse prüfen!"); Serial.println("Start mit möglichen HEX-Adressen:"); Serial.println("bme.begin(0x76);"); Serial.println("bme.begin(0x77);"); Serial.println("Programm wird beendet!"); while (1); } else Serial.println("BME280 erfolgreich gestartet!"); // Schriftfarbe oled.setDrawColor(1); // Bildschirm löschen oled.clearDisplay(); oled.setFont(u8g2_font_helvB14_tf); oled.enableUTF8Print(); } void loop() { DatenAnzeigen(); delay(1000); } void DatenAnzeigen() { // aktuelle Zeit holen DateTime aktuell = rtc.now(); // formatiertes char-Array für die Zeit char Zeit[] = "hh:mm"; Temperatur = String(bme.readTemperature(), 1); Temperatur.replace(".", ","); Luftfeuchtigkeit = String(int(bme.readHumidity())); // Page buffer oled.firstPage(); do { oled.setCursor(2, 20); oled.print(aktuell.toString(Zeit)); oled.setCursor(2, 40); oled.print(Temperatur + "°C"); oled.setCursor(2, 60); oled.print(Luftfeuchtigkeit + "%"); } while (oled.nextPage()); // Full buffer /* oled.setCursor(2, 20); oled.print(aktuell.toString(Zeit)); oled.setCursor(2, 40); oled.print(Temperatur + "°C"); oled.setCursor(2, 60); oled.print(Luftfeuchtigkeit + "%"); // Inhalt des Puffers senden, anschließend löschen oled.sendBuffer(); oled.clearBuffer(); */ Serial.println("Temperatur: " + Temperatur + "°C"); Serial.println("Luftfeuchtigkeit: " + Luftfeuchtigkeit + "%"); } |
BMP280
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
#include "RTClib.h" #include "U8g2lib.h" #include "Adafruit_BMP280.h" RTC_DS3231 rtc; // Name des BME280 Adafruit_BMP280 bmp; String Temperatur, Luftdruck; // 0,96 Zoll SSD1306 Page Buffer Mode // U8G2_SSD1306_128X64_NONAME_1_HW_I2C oled(U8G2_R0); // 0,96 Zoll SSD1306 Full Buffer Mode // U8G2_SSD1306_128X64_NONAME_F_HW_I2C oled(U8G2_R0); // 1,3 Zoll SH1106 Page Buffer Mode // U8G2_SH1106_128X64_NONAME_1_HW_I2C oled(U8G2_R0); // 1,3 Zoll SH1106 Full Buffer Mode // U8G2_SH1106_128X64_NONAME_F_HW_I2C oled(U8G2_R0); // 1,5 Zoll SH1107 Page Buffer Mode // U8G2_SH1107_SEEED_128X128_1_HW_I2C oled(U8G2_R0); // 1,5 Zoll SH1107 Full Buffer Mode // U8G2_SH1107_128X128_1_HW_I2C oled(U8G2_R0); // 1,54 Zoll SSD1309 Page Buffer // U8G2_SSD1309_128X64_NONAME0_1_HW_I2C oled(U8G2_R0); // 1,54 Zoll SSD1309 Full Buffer // U8G2_SSD1309_128X64_NONAME0_F_HW_I2C oled(U8G2_R0); void setup() { Serial.begin(9600); while (!Serial); delay(1000); if (!rtc.begin()) { Serial.println("RTC nicht verbunden"); Serial.println("Programm wird beendet!"); while (1); } else Serial.println("RTC verbunden!"); // Zeitpunkt der Kompilierung String Zeitpunkt = (F(__DATE__), F(__TIME__)); Serial.println("Zeitpunkt des Kompilierens: " + Zeitpunkt); // Zeit aus dem Zeitpunkt des Kompilierens setzen rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); if (!oled.begin()) { Serial.println("OLED nicht verbunden"); Serial.println("Programm wird beendet!"); while (1); } else Serial.println("OLED verbunden!"); // BME280 starten, bei Misserfolg Meldung anzeigen if (!bmp.begin(0x76)) { Serial.println("BMP280 nicht verbunden"); Serial.println("Verkabelung und/oder HEX-Adresse prüfen!"); Serial.println("Start mit möglichen HEX-Adressen:"); Serial.println("bmp.begin(0x76);"); Serial.println("bmp.begin(0x77);"); Serial.println("Programm wird beendet!"); while (1); } else Serial.println("BMP280 erfolgreich gestartet!"); // Schriftfarbe oled.setDrawColor(1); // Bildschirm löschen oled.clearDisplay(); oled.setFont(u8g2_font_helvB14_tf); // Sonderzeichen/Umlaute aktivieren oled.enableUTF8Print(); } void loop() { DatenAnzeigen(); delay(1000); } void DatenAnzeigen() { // aktuelle Zeit holen DateTime aktuell = rtc.now(); // formatiertes char-Array für die Zeit char Zeit[] = "hh:mm"; // in String umwandeln, eine Nachkommastelle Temperatur = String(bmp.readTemperature(), 1); Temperatur.replace(".", ","); // in String umwandeln, keine Nachkommastellen Luftdruck = String(bmp.readPressure() / 100, 0); Luftdruck.replace(".", ","); // Page Buffer Mode oled.firstPage(); do { oled.setCursor(2, 20); oled.print(aktuell.toString(Zeit)); oled.setCursor(2, 40); oled.print(Temperatur + " °C"); oled.setCursor(2, 60); oled.print(Luftdruck + " hPa"); } while (oled.nextPage()); // Full buffer /* oled.setCursor(2, 20); oled.print(aktuell.toString(Zeit)); oled.setCursor(2, 40); oled.print(Temperatur + "°C"); oled.setCursor(2, 60); oled.print(Luftdruck + " hPa"); // Inhalt des Puffers senden, anschließend löschen oled.sendBuffer(); oled.clearBuffer(); */ Serial.println("Temperatur: " + Temperatur + "°C"); Serial.println("Luftdruck: " + Luftdruck + " hPa"); } |
Letzte Aktualisierung: