Schnellstart
Verbinden Sie das Breakout mit einem Qwiic-Kabel mit Ihrem Controller, installieren Sie die Bibliothek und führen Sie das erste Beispiel aus. Das Beispiel wird mit der Voreinstellung für ein anderes Gas ausgeliefert. In Schritt 3 steht, welchen Namen Sie ändern müssen, um Ammoniak in ppm zu messen. Das Board antwortet auf der I2C-Adresse 0x30, bis Sie seinen ADDRESS-Schalter verstellen.
Sie programmieren den Controller, der mit diesem Breakout verbunden ist. Das Breakout selbst wird nicht geflasht.
- Arduino
- MicroPython
1. Breakout-Board verbinden
Mit Qwiic entfällt das Löten: Stecken Sie ein Ende eines Qwiic-Kabels in Ihren Controller und das andere in einen der beiden Qwiic Connectors am Breakout. Das Kabel führt 3,3 V, GND und die I2C-Leitungen.
| NULA DeepSleep | Soldered Electrochemical NH3 Gas Sensor Breakout (Qwiic) |
|---|---|
| Qwiic Connector | Qwiic Connector |
Das Board arbeitet ausschließlich mit 3,3 V und hat keinen Spannungsregler. Die Stiftleiste und beide Qwiic Connectors teilen sich diese eine 3,3-V-Versorgung, speisen Sie sie daher niemals mit 5 V.
Ohne Qwiic: Verdrahtung mit Jumper-Kabeln
Das Board ist nicht Steckbrett-kompatibel, verbinden Sie es daher mit Jumper-Kabeln an den Pins der Stiftleiste. Verbinden Sie das Paar SDA1/SCL1 der Stiftleiste, also denselben Bus, den die Qwiic Connectors führen, mit den I2C-Pins Ihres Controllers. Lassen Sie SDA2/SCL2 unbeschaltet: Dieses Paar ist der interne Bus des Boards zwischen dem ATtiny404, dem Analog-Frontend und dem ADC.
| NULA DeepSleep | Soldered Electrochemical NH3 Gas Sensor Breakout (Qwiic) |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA1 |
| IO9 | SCL1 |
2. Bibliothek installieren
Installieren Sie Electrochemical Gas Sensor Soldered aus dem GitHub-Repository als .ZIP-Bibliothek. Die ZIP-Datei enthält die Bibliothek im aktuellen Stand des main-Branches, nicht eines festen Commits. Diese Seiten wurden gegen den Commit c4df54b geprüft, den der folgende Link öffnet.
🔗Electrochemical Gas Sensor Soldered
Geprüfte Arduino-Bibliothek am Commit c4df54b
Tipp: Download von GitHub. Klicken Sie auf der GitHub-Seite der Bibliothek auf die grüne Schaltfläche Code und wählen Sie ZIP herunterladen. Fügen Sie die Datei dann in der Arduino IDE über Sketch → Bibliothek einbinden → .ZIP-Bibliothek hinzufügen... hinzu.
3. Erstes Beispiel ausführen
Dies ist das Beispiel bridgeBoard der Bibliothek, geschrieben für die ATtiny404-Bridge dieses Boards. Es erstellt den Sensor auf der Adresse 0x30, startet ihn und gibt alle 2,5 Sekunden einen Messwert aus. Wenn Sie den ADDRESS-Schalter verstellt haben, antwortet das Board stattdessen auf dieser Adresse (0x30 bis 0x37).
Das Beispiel erstellt den Sensor mit SENSOR_CO, der Voreinstellung der Bibliothek für Kohlenmonoxid. SENSOR_NH3 ist die Voreinstellung der Bibliothek für die SGX-4NH3-Zelle auf diesem Board, und die ppm-Umrechnung verwendet die Empfindlichkeit der Voreinstellung: 70 nA/ppm für SENSOR_CO, 40 nA/ppm für SENSOR_NH3. So wie es ausgeliefert wird, sind die Messwerte des Beispiels daher keine Ammoniak-ppm. Um Ammoniak zu messen, ändern Sie in der Zeile, die den Sensor erstellt, SENSOR_CO in SENSOR_NH3.
Die Kommentare im Beispiel sagen, die Adresse werde mit Jumpern auf der Rückseite des Boards gesetzt. Bei diesem Board wird die Adresse mit dem ADDRESS-Schalter mit drei Stellungen gesetzt. Die in den Kommentaren genannten 0x49/0x4A/0x4B sind ADS1115-Adressen, keine Adressen, auf denen dieses Board antwortet. Wo die Kommentare sagen, LMPEN sei fest mit GND verbunden: Bei diesem Board zieht ein 10-kΩ-Widerstand es auf GND, lassen Sie es unbeschaltet.
/**
**************************************************
*
* @file bridgeBoard.ino
* @brief See how to init a sensor on the new ATtiny404 bridge board revision,
*
* To successfully run the sketch:
* - Set the desired address using the jumpers on the back of the board
* (address = 0x30 + jumper offset, giving a range of 0x30-0x37)
* - Run the sketch and open serial monitor at 115200 baud!
*
* Note: on this board revision, LMPEN is hardwired to GND, so there's
* no configPin argument to pass - the constructor's third argument
* is ignored whenever the address falls in the bridge range (0x30-0x37).
*
* @authors @ soldered.com
***************************************************/
// Include the required library
#include "Electrochemical-Gas-Sensor-SOLDERED.h"
// Any additional boards on the same bus just need a different jumper setting
// (0x30-0x37), same as twoSensors.ino does for legacy boards with 0x49/0x4A/0x4B.
ElectrochemicalGasSensor sensor(SENSOR_CO, 0x30);
void setup()
{
Serial.begin(115200); // For debugging
// Init the breakout
if (!sensor.begin())
{
// Can't init? Notify the user and go to infinite loop
Serial.println("ERROR: Can't init the sensor! Check connections and jumper address!");
while (true)
delay(100);
}
Serial.println("Sensor initialized successfully!");
}
void loop()
{
// Make the reading
double reading = sensor.getPPM();
// If PPB is more relevant for your sensor, you can use:
// double reading = sensor.getPPB();
// Print the reading with 5 digits of precision
Serial.print("Sensor reading: ");
Serial.print(reading, 5);
Serial.println(" PPM");
// Wait a bit before reading again
delay(2500);
}
4. Ergebnis prüfen
Öffnen Sie den Seriellen Monitor mit 115200 Baud. Wenn das Board antwortet, sehen Sie:
Sensor initialized successfully!
Danach folgt alle 2,5 Sekunden eine Zeile, die mit Sensor reading: beginnt, mit der Konzentration in ppm auf fünf Nachkommastellen. Die Bibliothek meldet nie eine negative Konzentration: Ein Ergebnis unter null wird als 0 ausgegeben.
Wenn stattdessen ERROR: Can't init the sensor! Check connections and jumper address! erscheint, hat das Board nicht auf der Adresse im Sketch geantwortet.
5. Wenn es nicht funktioniert
Fahren Sie mit der Fehlerbehebung fort und wiederholen Sie dieses kleinste Beispiel nach jeder Änderung.
1. Breakout-Board verbinden
Mit Qwiic entfällt das Löten: Stecken Sie ein Ende eines Qwiic-Kabels in Ihren Controller und das andere in einen der beiden Qwiic Connectors am Breakout. Das Kabel führt 3,3 V, GND und die I2C-Leitungen.
| NULA DeepSleep | Soldered Electrochemical NH3 Gas Sensor Breakout (Qwiic) |
|---|---|
| Qwiic Connector | Qwiic Connector |
Das Beispiel setzt SDA auf Pin 21 und SCL auf Pin 22. Ändern Sie sie beim NULA DeepSleep auf 8 (SDA) und 9 (SCL), die im Diagramm gezeigten I2C-Pins des Boards.
Das Board arbeitet ausschließlich mit 3,3 V und hat keinen Spannungsregler. Die Stiftleiste und beide Qwiic Connectors teilen sich diese eine 3,3-V-Versorgung, speisen Sie sie daher niemals mit 5 V.
Ohne Qwiic: Verdrahtung mit Jumper-Kabeln
Das Board ist nicht Steckbrett-kompatibel, verbinden Sie es daher mit Jumper-Kabeln an den Pins der Stiftleiste. Verbinden Sie das Paar SDA1/SCL1 der Stiftleiste, also denselben Bus, den die Qwiic Connectors führen, mit den I2C-Pins Ihres Controllers. Lassen Sie SDA2/SCL2 unbeschaltet: Dieses Paar ist der interne Bus des Boards zwischen dem ATtiny404, dem Analog-Frontend und dem ADC.
| NULA DeepSleep | Soldered Electrochemical NH3 Gas Sensor Breakout (Qwiic) |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA1 |
| IO9 | SCL1 |
Das Beispiel setzt SDA auf Pin 21 und SCL auf Pin 22. Ändern Sie sie beim NULA DeepSleep auf 8 (SDA) und 9 (SCL), die im Diagramm gezeigten I2C-Pins des Boards.
2. Modul installieren
Nachdem Sie das mpremote-Paket installiert haben, installieren Sie die Bibliothek mit dem folgenden Befehl auf Ihrem Board:
mpremote mip install github:SolderedElectronics/Soldered-ElectrochemicalGasSensor-MicroPython-Library
Oder, falls Sie Windows verwenden:
python -m mpremote mip install github:SolderedElectronics/Soldered-ElectrochemicalGasSensor-MicroPython-Library
Der Befehl nennt keinen Commit, daher installiert er das Modul im aktuellen Stand des Repositorys. Diese Seiten wurden gegen den Commit 623e1e6 geprüft, den der folgende Link öffnet.
🔗Soldered ElectrochemicalGasSensor MicroPython Library
Geprüftes MicroPython-Modul am Commit 623e1e6
Tipp: Download von GitHub. Ohne mpremote öffnen Sie jede der drei
Moduldateien auf GitHub, ElectrochemicalGasSensor.py, lmp91000.py und
ads1115.py, und klicken auf Raw-Datei herunterladen. Öffnen Sie dann jede davon in Thonny und
kopieren Sie sie mit Datei → Speichern unter... → MicroPython-Gerät auf das Board.
Die Bibliothek besteht aus diesen drei Dateien: ElectrochemicalGasSensor.py importiert lmp91000.py und ads1115.py, daher müssen alle drei auf dem Board liegen.
3. Erstes Beispiel ausführen
Dies ist das Beispiel electrochemical-bridgeBoard.py des Moduls, geschrieben für die ATtiny404-Bridge dieses Boards. Es öffnet den I2C-Bus 0 an Pin 22 (SCL) und Pin 21 (SDA), erstellt den Sensor auf der Adresse 0x30 und gibt alle 2,5 Sekunden einen Messwert aus. Wenn Sie den ADDRESS-Schalter verstellt haben, antwortet das Board stattdessen auf dieser Adresse (0x30 bis 0x37).
Das Beispiel verwendet die Ozon-Voreinstellung SENSOR_O3. SENSOR_NH3 ist die Voreinstellung des Moduls für die SGX-4NH3-Zelle auf diesem Board, und die ppm-Umrechnung verwendet die Empfindlichkeit der Voreinstellung: -1000 nA/ppm für SENSOR_O3, 40 nA/ppm für SENSOR_NH3. So wie es ausgeliefert wird, sind die Messwerte des Beispiels daher keine Ammoniak-ppm. Um Ammoniak zu messen, ändern Sie SENSOR_O3 in SENSOR_NH3, und zwar in der import-Zeile und in der Zeile, die den Sensor erstellt.
Die Kommentare im Beispiel sagen, die Adresse werde mit Jumpern auf der Rückseite des Boards gesetzt. Bei diesem Board wird die Adresse mit dem ADDRESS-Schalter mit drei Stellungen gesetzt. Die in den Kommentaren genannten 0x49/0x4A/0x4B sind ADS1115-Adressen, keine Adressen, auf denen dieses Board antwortet. Wo die Kommentare sagen, LMPEN sei fest mit GND verbunden: Bei diesem Board zieht ein 10-kΩ-Widerstand es auf GND, lassen Sie es unbeschaltet.
# FILE: electrochemical-bridgeBoard.py
# AUTHOR: Fran Fodor @ Soldered
# BRIEF: Single sensor PPM reading example for the ATtiny404 bridge board revision,
# which allows daisy-chaining multiple boards on one I2C bus.
# LAST UPDATED: 2026-07-23
# Connecting diagram:
#
# Qwiic------------------------>Qwiic
#
# Note: on this board revision, LMPEN is hardwired to GND, so there's no
# config_pin to set - it's ignored whenever adc_addr falls in the bridge
# range (0x30-0x37). Set the desired address using the jumpers on the back
# of the board before powering it on.
from machine import I2C, Pin
import time
from ElectrochemicalGasSensor import ElectrochemicalGasSensor, SENSOR_O3
# Initialize I2C
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
# (address = 0x30 + jumper offset, giving a range of 0x30-0x37).
# Any additional boards on the same bus just need a different jumper
# setting, same as twoSensors.py does for legacy boards with 0x49/0x4A/0x4B.
sensor = ElectrochemicalGasSensor(SENSOR_O3, i2c, adc_addr=0x30)
# -------------------------------------------------------------------------
# Setup
# -------------------------------------------------------------------------
print("Electrochemical Gas Sensor - ATtiny Bridge Board Example")
if not sensor.begin():
print("ERROR: Can't init the sensor! Check connections and jumper address!")
while True:
time.sleep_ms(100)
print("Sensor initialized successfully!")
# -------------------------------------------------------------------------
# Main loop
# -------------------------------------------------------------------------
while True:
reading = sensor.getPPM()
# If PPB is more relevant for your sensor, use:
# reading = sensor.getPPB()
print("Sensor reading: {:.5f} PPM".format(reading))
time.sleep_ms(2500)
🔗Vollständiges Beispiel öffnen
electrochemical-bridgeBoard.py am Commit 623e1e6
4. Ergebnis prüfen
Wenn das Board antwortet, zeigt die Thonny-Shell:
Electrochemical Gas Sensor - ATtiny Bridge Board Example
Sensor initialized successfully!
Danach folgt alle 2,5 Sekunden eine Zeile, die mit Sensor reading: beginnt, mit der Konzentration in ppm auf fünf Nachkommastellen. Das Modul meldet nie eine negative Konzentration: Ein Ergebnis unter null wird als 0 ausgegeben.
5. Wenn es nicht funktioniert
Fahren Sie mit der Fehlerbehebung fort und wiederholen Sie dieses kleinste Beispiel nach jeder Änderung.