Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Werte eines BME280 Sensors auf einem Display anzeigen

Posted on 21. April 20204. März 2025 by Stefan Draeger

In diesem kurzen Beitrag zeige ich dir, wie du die 3 Werte des Sensors BME280 auf einem 0,91-Zoll-Display anzeigen kannst. Den Sensor BME280 habe ich bereits im Beitrag Arduino Lektion 44: BME280 Temperatur, Luftfeuchtigkeit und Luftdruck Sensor

BME280 – Temperatur, Luftfeuchtigkeit und Luftdruck Sensor

  • benötigte Bauteile für dieses kleine Projekt
  • Besonderheiten bei Arduino Nano Varianten
  • Aufbau
  • Quellcode

benötigte Bauteile für dieses kleine Projekt

Du benötigst für dieses Projekt:

  • 1x Microcontroller, zbsp. Arduino Nano 328P*,
  • 1x OLED Display 0,91 Zoll*,
  • 1x BME280 Sensor*,
  • 1x Breadboard, 400 Pin*,
  • 8x Breadboardkabel, 20 cm, männlich – männlich*

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Besonderheiten bei Arduino Nano Varianten

Wenn du den Arduino Nano verwendest, dann solltest du auf den verwendeten Chip (CPU) achten. Es gibt diesen Mikrocontroller mit einem ATMEL Mega 328P sowie einem ATMEL Mega 168 Chip.

Chip "ATMEL MEGA 168"
Chip „ATMEL MEGA 168“
Chip "ATMEL MEGA 328P"
Chip „ATMEL MEGA 328P“

Ein wesentlicher Unterschied dieser beiden Chips sind unter anderem der verfügbare Speicherplatz.  Der ATMEL MEGA 328P hat 32 KB Speicher (wovon 2 KB für den Bootloader reserviert sind) und der ATMEL MEGA 168 hat nur 16 KB Speicher (wovon 2 KB für den Bootloader reserviert sind).

Solltest du also versuchen den Quellcode auf einem ATMEL MEGA 168 hoch zuladen so erscheint die Fehlermeldung, dass der verfügbare Speicherplatz nicht ausreicht.

Der Sketch verwendet 20964 Bytes (146%) des Programmspeicherplatzes. Das Maximum sind 14336 Bytes.text section exceeds available space in board

Globale Variablen verwenden 693 Bytes (67%) des dynamischen Speichers, 331 Bytes für lokale Variablen verbleiben. Das Maximum sind 1024 Bytes.
Der Sketch ist zu groß; unter http://www.arduino.cc/en/Guide/Troubleshooting#size finden sich Hinweise, um die Größe zu verringern.
Fehler beim Kompilieren für das Board Arduino Nano.

Jedoch bei einem ATMEL MEGA 328P reicht dieser Speicher locker aus.

Der Sketch verwendet 20964 Bytes (68%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 693 Bytes (33%) des dynamischen Speichers, 1355 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

Aufbau

Der Sensor BME280 sowie das 0,91-Zoll-Display kommunizieren über SPI, durch die unterschiedlichen Adressen können diese sich die Pins A4 & A5 „teilen“.

Sensor / AktorArduino Nano
BME280 
VIN  3,3V
GND  GND
SCL  analoger Pin A5
SDA  analoger Pin A4
0,91-Zoll-Display 
GND  GND
VCC  3,3V
SCL  analoger Pin A5
SDA  analoger Pin A4
Sensor BME280 am Arduino Nano mit 0,91 Zoll Display
Sensor BME280 am Arduino Nano mit 0,91 Zoll Display

Quellcode

Für den nachfolgenden Quellcode benötigst du zusätzlich die Bibliothek http://static.cactus.io/downloads/library/bme280/cactus_io_BME280_I2C.zip. Wie du eine Bibliothek in die Arduino IDE installierst, habe ich im gleichnamigen Beitrag Arduino IDE, Einbinden einer Bibliothek erklärt.

#include <Wire.h>
#include "cactus_io_BME280_I2C.h"

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

BME280_I2C bme(0x76);  // I2C using address 0x76

void setup() {
  Serial.begin(9600);

  //Setup für den BME280 Sensor
  if (!bme.begin()) {
    Serial.println("Es konnte kein BME280 Sensor gefunden werden!");
    Serial.println("Bitte überprüfen Sie die Verkabelung!");
    while (1);
  }
  bme.setTempCal(-1);

  //Setup für das Display
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.display();
  delay(1000);
  display.clearDisplay();

}

void loop() {
  bme.readSensor();
  String tempC = "Temp.:" + String(bme.getTemperature_C()) + "C";
  String humidity = "Humidity:" + String(bme.getHumidity()) + "%";
  String pressure = "Press.:" + String(bme.getPressure_MB()) + " mPa";

  displayText(tempC, humidity, pressure);
}

void displayText(String row1, String row2, String row3) {
  delay(1000);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.println(row1);
  display.setCursor(0, 10);
  display.println(row2);
  display.setCursor(0, 20);
  display.println(row3);
  display.display();
  display.clearDisplay();
}

1 thought on “Werte eines BME280 Sensors auf einem Display anzeigen”

  1. Klaus Krockenberger sagt:
    13. November 2020 um 14:25 Uhr

    Hallo Stephan,

    wie kann ich die I²C Adresse ändern?
    Ich möchte Pin D1 und D2 vom ESP8266 verwenden.

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}