Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

Lektion 20: Temperatur-, Feuchtigkeits- und Drucksensor (BMP280)

In dieser Lektion lernen Sie, wie Sie einen BMP280-Sensor anschließen und Daten von diesem auslesen, um Temperatur, Luftfeuchtigkeit und Druck mit einem Raspberry Pi zu messen. Sie richten den Sensor ein und schreiben ein Python-Skript, um Umweltdaten wie Temperatur, Luftdruck und Höhe zu messen.

Erforderliche Komponenten

In diesem Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ITEMS IN THIS KIT

LINK

Universal Maker Sensor Kit

94

Universal Maker Sensor Kit

Sie können sie auch einzeln über die untenstehenden Links kaufen.

Component Introduction

Purchase Link

Raspberry Pi 5

KAUFEN

Temperatur-, Feuchtigkeits- und Drucksensor (BMP280)

KAUFEN

Steckbrett

KAUFEN

Verkabelung

../_images/Lesson_20_bmp280_pi_bb.png

Bibliothek installieren

Bemerkung

Die adafruit-circuitpython-bmp280-Bibliothek hängt von Blinka ab, stellen Sie also sicher, dass Blinka installiert ist. Um Bibliotheken zu installieren, siehe Installation von Adafruit_Blinka (CircuitPython) - Optional.

Bevor Sie die Bibliothek installieren, stellen Sie bitte sicher, dass die virtuelle Python-Umgebung aktiviert ist:

source ~/env/bin/activate

Installieren Sie die adafruit-circuitpython-bmp280-Bibliothek:

pip install adafruit-circuitpython-bmp280

Code ausführen

Bemerkung

  • Stellen Sie sicher, dass die Python-Bibliothek gemäß den Schritten in „Bibliothek installieren“ installiert ist.

  • Bevor Sie den Code ausführen, aktivieren Sie bitte die virtuelle Python-Umgebung mit installiertem Blinka. Sie können die virtuelle Umgebung mit folgendem Befehl aktivieren:

    source ~/env/bin/activate
    
  • Sie finden den Code für diese Lektion im Verzeichnis universal-maker-sensor-kit-main/pi/ oder kopieren Sie den untenstehenden Code direkt. Führen Sie den Code im Terminal mit folgenden Befehlen aus:

    python 22_touch_sensor_module.py
    
import time
import board

import adafruit_bmp280

# Create sensor object, communicating over the board's default I2C bus
i2c = board.I2C()  # uses board.SCL and board.SDA
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c,address=0x76)

# change this to match the location's pressure (hPa) at sea level
bmp280.sea_level_pressure = 1013.25

try:
   while True:
      print("\nTemperature: %0.1f C" % bmp280.temperature)
      print("Pressure: %0.1f hPa" % bmp280.pressure)
      print("Altitude = %0.2f meters" % bmp280.altitude)
      time.sleep(2)
except KeyboardInterrupt:
    print("Exit")  # Exit on CTRL+C

Code-Analyse

  1. Einrichten des Sensors

    Importieren Sie die erforderlichen Bibliotheken und erstellen Sie ein Objekt zur Interaktion mit dem BMP280-Sensor. board.I2C() richtet die I2C-Kommunikation ein. adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address=0x76) initialisiert den BMP280-Sensor mit seiner I2C-Adresse.

    Weitere Informationen zur adafruit_bmp280-Bibliothek finden Sie unter adafruit/Adafruit_CircuitPython_BMP280.

    import time
    import board
    import adafruit_bmp280
    i2c = board.I2C()
    bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address=0x76)
    
  2. Konfigurieren des Luftdrucks auf Meereshöhe

    Setzen Sie die Eigenschaft sea_level_pressure des BMP280-Objekts. Dieser Wert ist erforderlich, um die Höhe zu berechnen.

    bmp280.sea_level_pressure = 1013.25
    
  3. Daten in einer Schleife auslesen

    Verwenden Sie eine while True-Schleife, um kontinuierlich Daten vom Sensor auszulesen. bmp280.temperature, bmp280.pressure und bmp280.altitude lesen die Temperatur, den Druck und die Höhe. time.sleep(2) pausiert die Schleife für 2 Sekunden.

    try:
       while True:
          print("\nTemperature: %0.1f C" % bmp280.temperature)
          print("Pressure: %0.1f hPa" % bmp280.pressure)
          print("Altitude = %0.2f meters" % bmp280.altitude)
          time.sleep(2)
    except KeyboardInterrupt:
       print("Exit")
    
  4. Umgang mit Unterbrechungen

    Der try- und except KeyboardInterrupt:-Block ermöglicht es dem Programm, bei Druck auf STRG+C sauber zu beenden.

    try:
       # while loop code here
    except KeyboardInterrupt:
       print("Exit")