Einstieg in Qwiic und Raspberry Pi: Eine nahtlose Integration
Wenn du bereits mit dem Raspberry Pi vertraut bist und eine einfachere, sauberere Möglichkeit suchst, Sensoren und Module anzuschließen, ist das Qwiic-Ökosystem das Upgrade, nach dem du gesucht hast.
Qwiic eliminiert Breadboards, wirres Kabelgewirr und falsches Pin-Mapping. Mit nur einem einzigen 4-poligen Kabel kannst du Sensoren, Displays, Eingänge und mehr verbinden – perfekt für Anfänger, Schüler und Hobbybastler, die ihre ersten Raspberry-Pi-I2C-Projekte bauen.
Was ist das Qwiic Connect System?
|
|
Das Qwiic Connect System ist ein standardisierter 4-poliger Steckverbinder für die I2C-Kommunikation. Es wurde entwickelt, um Elektronik zugänglicher zu machen, indem Löten und Verdrahten überflüssig werden.
Ein Qwiic-Stecker umfasst:
- GND
- 3,3-V-Versorgung
- SCL
- SDA
Da der Stecker verpolungssicher ist, kann man ihn nicht falsch herum einstecken – ideal für Einsteiger.
Warum Qwiic mit Raspberry Pi verwenden?
Gründe, warum Qwiic auf dem Raspberry Pi überzeugt:
- Keine Verdrahtungsfehler – perfekt für Klassenzimmer und schnelles Prototyping
- Mehrere I2C-Geräte hintereinander schalten
- Standardmäßig 3,3-V-sicher
- Kompakte Steckverbinder sparen Platz in Gehäusen
- Funktioniert mit vielen Plug-and-Play-Modulen
Wenn du willst, dass deine Raspberry-Pi-Projekte sauber, schnell und zuverlässig sind, ist Qwiic der richtige Weg.
Was du für dieses Tutorial brauchst
Um diesem Tutorial zu folgen, benötigst du:
- 1x Raspberry Pi mit Raspberry Pi OS
- 2x Qwiic-Kabel
- 1x Soldered BME680 Umweltsensor
- 1x Soldered SSD1306 OLED-Display
- 1x Soldered Raspberry Pi Qwiic-Adapter
- Raspberry Pi 5 (4GB)
- Qwiic / easyC Kabel
- BME680 Umweltsensor
- SSD1306 OLED-Display (0,96")
- Raspberry Pi Qwiic / easyC Adapter
Schritt 1: I2C auf deinem Raspberry Pi aktivieren
- Öffne ein Terminal auf deinem Raspberry Pi
sudo raspi-config
- Navigiere zu: Interface Options → I2C → Enable
- Starte den Raspberry Pi neu
Um zu bestätigen, dass I2C funktioniert:
sudo apt install i2c-tools
i2cdetect -y 1
Schritt 2: Deine Qwiic-Geräte verbinden
Verbinde deinen BME680-Sensor und das OLED-Display mit dem Raspberry Pi über Qwiic-Kabel. Beide Geräte nutzen I2C, daher kannst du sie in Reihe schalten oder sie getrennt am Qwiic-Raspberry-Pi-Adapter anschließen.

Schritt 3: Die benötigten Bibliotheken installieren
Installiere zuerst den pigpio-Daemon, der in diesem Projekt für die Kommunikation mit dem BME680 benötigt wird:
sudo apt update
sudo apt install pigpio python3-pigpio python3-smbus
Aktiviere und starte den pigpio-Daemon:
sudo systemctl enable pigpiod
sudo systemctl start pigpiod
Installiere unterstützende Python-Pakete für das SSD1306 OLED-Display:
pip3 install adafruit-circuitpython-ssd1306
pip3 install Pillow
Bestätige, dass die I2C-Geräte sichtbar sind:
i2cdetect -y 1
Du solltest den BME680 unter 0x76 und das OLED-Display unter 0x3C sehen.
Schritt 4: Ein einfaches Projekt: Auslesen eines Qwiic-Sensors
Eine der einfachsten Möglichkeiten, das Potenzial des Qwiic-Systems zu sehen, ist es, einen BME680-Umweltsensor anzuschließen und Live-Daten auf einem kleinen OLED-Display anzuzeigen. Dieses Projekt zeigt zwei gängige Arten der Kommunikation mit den Modulen: High-Level mit Adafruits SSD1306-Displaybibliothek sowie Low-Level-Kommunikation mit dem BME680 über den pigpio-Daemon.
import os
import pigpio
import time
import board
import busio
from PIL import Image, ImageDraw, ImageFont
import adafruit_ssd1306
# Check if pigpiod is running, start if it's not
os.system("pgrep pigpiod >/dev/null || sudo pigpiod")
# I2C parameters for the BME680 sensor
I2C_ADDR = 0x76 # Default I2C address of the BME680
I2C_BUS = 1 # Use I2C bus 1 (standard on most Raspberry Pi models)
# Helper: wait until measurement is done
def wait_measurement_done(pi, handle, timeout_s=0.5):
start = time.time()
while True:
count, status = pi.i2c_read_i2c_block_data(handle, 0x1D, 1)
if count == 1:
# Bit 5 clears when measurement is done
if (status[0] & 0x20) == 0:
return True
if time.time() - start > timeout_s:
return False
time.sleep(0.005)
def BME680Temperature():
pi = pigpio.pi()
if not pi.connected:
print("Cannot connect to pigpio daemon")
raise SystemExit(1)
h = pi.i2c_open(I2C_BUS, I2C_ADDR)
# Trigger a forced temperature measurement
pi.i2c_write_byte_data(h, 0x74, 0xA1)
wait_measurement_done(pi, h, timeout_s=0.5)
# Read raw ADC temperature data (3 bytes starting from register 0x22)
count, tbytes = pi.i2c_read_i2c_block_data(h, 0x22, 3)
temp_msb, temp_lsb, temp_xlsb = tbytes
temp_adc = (temp_msb << 12) | (temp_lsb << 4) | (temp_xlsb >> 4)
# Read calibration parameters
count, data = pi.i2c_read_i2c_block_data(h, 0xE9, 2)
par_t1 = data[0] | (data[1] << 8)
count, data = pi.i2c_read_i2c_block_data(h, 0x8A, 2)
par_t2 = data[0] | (data[1] << 8)
if par_t2 & 0x8000:
par_t2 -= 1 << 16
count, data = pi.i2c_read_i2c_block_data(h, 0x8C, 1)
par_t3 = data[0]
if par_t3 & 0x80:
par_t3 -= 1 << 8
# Compensation formula (Bosch datasheet)
var1 = ((temp_adc / 16384.0) - (par_t1 / 1024.0)) * par_t2
var2 = (((temp_adc / 131072.0) - (par_t1 / 8192.0)) ** 2) * (par_t3 * 16.0)
t_fine = var1 + var2
temp_comp = t_fine / 5120.0
pi.i2c_close(h)
pi.stop()
return temp_comp
# Initialize I2C communication for OLED (128x64)
i2c = busio.I2C(board.SCL, board.SDA)
oled = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c)
oled.fill(0)
oled.show()
image = Image.new("1", (oled.width, oled.height))
draw = ImageDraw.Draw(image)
font = ImageFont.load_default()
while True:
oled.fill(0)
temp_comp = BME680Temperature()
draw.rectangle((0, 0, oled.width - 1, oled.height - 1), outline=255, fill=0)
draw.text((10, 25), f"{temp_comp:.2f} C", font=font, fill=255)
oled.image(image)
oled.show()
time.sleep(5)
Fehlerbehebung häufiger Probleme
1. i2cdetect zeigt den BME680 oder das OLED nicht an
Das bedeutet meistens:
- Das Qwiic-Kabel ist nicht vollständig eingesteckt
- Das Kabel steckt im falschen Port
- Du hast I2C auf dem Raspberry Pi nicht aktiviert
- Der BME680 könnte eine andere Adresse haben (0x76 oder 0x77)
2. Pigpio-Fehler: "Cannot connecct to the pigpio daemon"
Der pigpio-Daemon muss laufen, bevor das Skript startet. Öffne ein Terminal und führe aus:
sudo systemctl start pigpiod
Wenn er bei jedem Boot starten soll:
sudo systemctl enable pigpiod
3. OLED-Bildschirm bleibt schwarz oder zeigt nichts an
Das bedeutet meist:
- Das OLED wurde vor dem Schreiben nicht gelöscht
- Falsche Displayauflösung
- Die I2C-Adresse ist anders
- Das Skript zeichnet noch in einen alten Image-Buffer
Eine einfache Lösung ist, vor dem Zeichnen Folgendes aufzurufen:
oled.fill(0)
oled.show()
Bring deine Projekte mit weiteren Qwiic-Geräten auf das nächste Level
Sobald du gesehen hast, wie einfach es ist, ein Qwiic-Gerät mit deinem Raspberry Pi zu verbinden und alles gemeinsam zum Laufen zu bringen, geht der Spaß erst richtig los. Schau dir unsere stetig wachsende Sammlung an Qwiic Sensor-/Aktor-Modulen an: https://soldered.com/categories/easyc-2/.