Schnellstart
Verbinden Sie das Breakout mit den I2C-Pins Ihres Controllers, installieren Sie das Soldered-BME690-MicroPython-Modul und führen Sie dessen Forced-Mode-Beispiel aus. Es löst jede Sekunde eine Messung aus und gibt Temperatur, Druck, Luftfeuchtigkeit und Gaswiderstand jeder abgerufenen Messung in der Shell aus.
Sie programmieren den Controller, der mit diesem Breakout verbunden ist. Das Breakout selbst wird nicht geflasht.
- MicroPython
1. Das Breakout-Board verbinden
Die Beispiele des Moduls erzeugen den Sensor mit BME690() und ohne I2C-Objekt. Auf den MicroPython-Ports esp32 und esp8266 (und einer Soldered-Board-Firmware) öffnet das Modul dann I2C(0) mit SDA an Pin 21 und SCL an Pin 22, verdrahten Sie also diese Pins. Bei anderen Pins oder auf einem Port, für den das Modul keine Pins wählt, erstellen Sie ein eigenes machine.I2C auf den von Ihnen verdrahteten Pins und übergeben es als BME690(i2c=...). Die Stiftleiste und beide Qwiic-Connectors führen dieselben Leitungen 3V3, GND, SDA und SCL.
| NULA Mini | Soldered BME690 AI temperature, humidity & gas sensor breakout |
|---|---|
| Qwiic connector | Qwiic connector |
Das Diagramm verwendet ein NULA Mini als Beispiel für einen Controller, der mit einem
Qwiic-Kabel an einen der beiden Qwiic-Connectors des Breakouts angeschlossen ist: beide führen dieselben
vier Leitungen. Der Qwiic-Connector eines Controllers liegt nicht immer an den Pins 21 und 22: Beim NULA
Mini liegt er an IO6 (SDA) und IO7 (SCL). Prüfen Sie, welche Pins der Connector
Ihres Controllers verwendet, und übergeben Sie ein I2C-Objekt auf diesen Pins, wie oben beschrieben.
Versorgen Sie das Board mit 3,3 V. Der Pin 3V3 speist den Sensor direkt, ohne
Regler: Er verträgt 1,71 bis 3,6 V, und 4,25 V sind das absolute
Maximum des Sensors.
2. Das Modul installieren
Verwenden Sie mim oder installieren Sie, nachdem Sie das Paket mpremote installiert haben, die Bibliothek mit dem folgenden Befehl auf Ihrem Board:
mpremote mip install github:SolderedElectronics/Soldered-BME690-MicroPython-Library
Oder, wenn Sie ein Windows-Betriebssystem verwenden:
python -m mpremote mip install github:SolderedElectronics/Soldered-BME690-MicroPython-Library
🔗Soldered BME690 MicroPython-Bibliothek
Geprüftes MicroPython-Modul bei Commit 91a07b5
Tipp: Download von GitHub. Öffnen Sie ohne mpremote die .py-Datei
des Moduls auf GitHub und klicken Sie auf Download raw file. Öffnen Sie sie dann in Thonny und kopieren Sie sie
über File → Save as... → MicroPython device auf das Board.
3. Das erste Beispiel ausführen
Dies ist das Beispiel bme690-forcedMode.py des Moduls. Es legt Oversampling,
einen IIR-Filter und einen Heizschritt mit 300 °C und 100 ms fest, löst dann jede Sekunde
eine Messung aus und gibt sie aus. Wenn Sie den ADDR-Jumper auf 0x77 setzen, erzeugen Sie den
Sensor stattdessen mit BME690(address=BME69X_I2C_ADDR_HIGH) und fügen
BME69X_I2C_ADDR_HIGH zu den Namen hinzu, die das Beispiel aus bme690 importiert. Wenn Sie
in Schritt 1 ein eigenes I2C-Objekt erstellt haben, übergeben Sie es ebenfalls, als i2c=.
# FILE: bme690-forcedMode.py
# AUTHOR: Josip Simun Kuci @ Soldered
# BRIEF: Read temperature, pressure, humidity and gas resistance from the
# BME690 in forced mode, one measurement at a time
# WORKS WITH: BME690 breakout board: solde.red/333411
# LAST UPDATED: 2026-09-16
from bme690 import (
BME690,
BME69X_ERROR,
BME69X_FILTER_SIZE_3,
BME69X_FORCED_MODE,
)
import time
# Start the sensor on the default I2C address (0x76). Use
# BME690(address=BME69X_I2C_ADDR_HIGH) if the address jumper is soldered.
sensor = BME690()
# Oversampling for temperature, pressure and humidity.
sensor.set_tph()
# IIR filter for the temperature and pressure readings.
sensor.set_filter(BME69X_FILTER_SIZE_3)
# Heat the gas sensor plate to 300 degrees Celsius for 100 milliseconds.
sensor.set_heater_prof(300, 100)
if sensor.check_status() == BME69X_ERROR:
raise Exception("BME690 setup failed: " + sensor.status_string())
print(
"Timestamp(ms), Temperature(C), Pressure(Pa), Humidity(%), "
"Gas resistance(Ohm), Status"
)
while True:
# Trigger a single measurement.
sensor.set_op_mode(BME69X_FORCED_MODE)
# Wait for the measurement to finish, the heater duration included.
time.sleep_us(sensor.get_meas_dur())
if sensor.fetch_data():
data, _ = sensor.get_data()
print(
"{}, {:.2f}, {:.2f}, {:.2f}, {:.2f}, 0x{:02x}".format(
time.ticks_ms(),
data.temperature,
data.pressure,
data.humidity,
data.gas_resistance,
data.status,
)
)
time.sleep(1)
🔗Vollständiges Beispiel öffnen
Examples/bme690-forcedMode.py bei Commit 91a07b5
4. Das Ergebnis prüfen
Die Shell gibt zuerst die Spaltenüberschrift aus:
Timestamp(ms), Temperature(C), Pressure(Pa), Humidity(%), Gas resistance(Ohm), Status
Danach gibt jeder Durchlauf der Schleife, in dem fetch_data() eine neue Messung findet, eine
Zeile in derselben Reihenfolge aus: den
Millisekundenzähler des Controllers, dann die Temperatur in °C, den Druck in Pa,
die Luftfeuchtigkeit in % r. F. und den Gaswiderstand in Ω, jeweils mit zwei Nachkommastellen, und das Status-Byte
in Hex. Ein Status von 0xb0 bedeutet neue Daten, eine gültige Gasmessung und eine
stabile Heizung.
Meldet die Heizungskonfiguration, der letzte Aufruf vor der Prüfung, einen Fehler, stoppt das
Skript mit BME690 setup failed: und dem Grund. Antwortet
der Sensor überhaupt nicht, löst der Konstruktor
BME690 not responding on address 0x76 aus.
Read in forced mode erklärt jede Funktion, die das Beispiel verwendet.
5. Wenn es nicht funktioniert
Fahren Sie mit Fehlerbehebung fort und wiederholen Sie dieses kleinste Beispiel nach jeder Änderung.