Schnellstart
Verbinden Sie das Breakout über Qwiic, installieren Sie die Bibliothek und geben Sie die Chlorkonzentration in ppm aus.
Sie programmieren den Controller, der mit diesem Breakout verbunden ist. Das Breakout selbst wird nicht geflasht: Sein ATtiny404 wird mit Werksfirmware geliefert.
Das Board läuft ausschließlich mit 3,3 V. Es hat keinen Regler, daher teilen sich die 3V3-Pins der Stiftleiste
und beide Qwiic-Connectoren eine 3,3-V-Versorgung, die jeden Chip
direkt speist. Schließen Sie keine 5 V daran an.
- Arduino
- MicroPython
1. Das Breakout-Board verbinden
Stecken Sie ein Qwiic-Kabel in einen der beiden Qwiic-Connectoren am Board und in den Qwiic-
Connector Ihres Controllers. Jeder Qwiic-Connector führt 3V3, GND und den
Haupt-I2C-Bus des Boards, sodass das eine Kabel das Board mit Strom versorgt und es anbindet.
| NULA DeepSleep | Soldered Electrochemical Cl2 Gas Sensor Breakout (Qwiic) |
|---|---|
| Qwiic-Connector | Qwiic-Connector |
Ohne Qwiic: Verdrahtung auf dem Steckbrett
Das Board ist nicht steckbrettkompatibel und lässt sich daher nicht in ein Steckbrett einstecken.
Löten Sie die mitgelieferten Stiftleisten an und verbinden Sie die vier Pins der linken Hälfte der oberen Stiftleiste
mit Jumperkabeln mit Ihrem Controller. SDA1 und SCL1 sind derselbe Bus
wie an den Qwiic-Connectoren.
| NULA DeepSleep | Soldered Electrochemical Cl2 Gas Sensor Breakout (Qwiic) |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA1 |
| IO9 | SCL1 |
SDA2 und SCL2 an derselben Stiftleiste sind der interne Bus des Boards zwischen dem
ATtiny404, dem LMP91000 und dem ADS1115. Verbinden Sie Ihren Controller mit SDA1 und
SCL1 (oder über Qwiic), niemals mit SDA2 und SCL2.
2. Die Bibliothek installieren
Installieren Sie Electrochemical Gas Sensor Soldered aus dem zugehörigen GitHub-Repository.
🔗Arduino-Bibliothek Electrochemical Gas Sensor
Verifizierte 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 Download ZIP. Fügen Sie die Datei dann in der Arduino IDE über Sketch → Bibliothek einbinden → .ZIP-Bibliothek hinzufügen... hinzu.
3. Das erste Beispiel ausführen
Öffnen Sie bridgeBoard aus den Beispielen der Bibliothek. Es erstellt den Sensor an der
Adresse 0x30, der Standardadresse des Boards, gibt Sensor initialized successfully! aus,
sobald das Board antwortet, und gibt danach alle 2,5 s einen Messwert aus.
Das Beispiel erstellt den Sensor mit SENSOR_CO, der Voreinstellung der Bibliothek für die
Kohlenmonoxid-Zelle. Die Bibliothek rechnet den Zellenstrom mit den Empfindlichkeits- und Verstärkungseinstellungen
der Voreinstellung in ppm um. Ändern Sie daher vor dem Hochladen diese Zeile
auf die Chlor-Voreinstellung dieses Boards:
ElectrochemicalGasSensor sensor(SENSOR_CL2, 0x30);
Der Kommentar am Anfang der Datei sagt, dass die Adresse mit den Jumpern auf der Rückseite des Boards eingestellt wird. Bei diesem Board stellt der ADDRESS-Schalter auf der Oberseite die Adresse ein, und sie ist standardmäßig 0x30, die Adresse, die das Beispiel verwendet (siehe Hardware-Details).
Der Kommentar am Anfang sagt außerdem, dass LMPEN fest mit GND verbunden ist. Bei diesem Board hält ein 10-kΩ-
Widerstand LMPEN auf Low und es ist mit dem ATtiny404 verbunden, sodass Sie es
unbeschaltet lassen (siehe Hardware-Details).
/**
**************************************************
*
* @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);
}
Das vollständige Beispiel öffnen
4. Das Ergebnis prüfen
Öffnen Sie den Seriellen Monitor mit 115200 Baud. Wenn das Board antwortet, gibt es
Sensor initialized successfully! aus, danach alle 2,5 s eine Zeile: Sensor reading: ,
die Chlorkonzentration in ppm mit fünf Nachkommastellen und PPM. Die Bibliothek
meldet jedes Ergebnis unter null als 0. Ein Durchlauf mit diesem Board in sauberer Luft gab Folgendes aus:
Sensor initialized successfully!
Sensor reading: 0.00124 PPM
Sensor reading: 0.00122 PPM
Sensor reading: 0.00132 PPM
Sensor reading: 0.00137 PPM
Wenn stattdessen ERROR: Can't init the sensor! Check connections and jumper address!
erscheint, hat das Board an 0x30 nicht geantwortet.
5. Wenn es nicht funktioniert
Fahren Sie mit der Fehlerbehebung fort und wiederholen Sie dieses kleinste Beispiel nach jeder Änderung.
1. Das Breakout-Board verbinden
Stecken Sie ein Qwiic-Kabel in einen der beiden Qwiic-Connectoren am Board und in den Qwiic-
Connector Ihres Controllers. Jeder Qwiic-Connector führt 3V3, GND und den
Haupt-I2C-Bus des Boards, sodass das eine Kabel das Board mit Strom versorgt und es anbindet.
| NULA DeepSleep | Soldered Electrochemical Cl2 Gas Sensor Breakout (Qwiic) |
|---|---|
| Qwiic-Connector | Qwiic-Connector |
Das Beispiel des Moduls öffnet I2C-Bus 0 mit SCL an Pin 22 und SDA an Pin 21.
Ändern Sie diese Pinnummern im Beispiel, wenn der Qwiic-Connector Ihres Controllers oder
die Pins, die Sie verdrahten, woanders liegen.
Ohne Qwiic: Verdrahtung auf dem Steckbrett
Das Board ist nicht steckbrettkompatibel und lässt sich daher nicht in ein Steckbrett einstecken.
Löten Sie die mitgelieferten Stiftleisten an und verbinden Sie die vier Pins der linken Hälfte der oberen Stiftleiste
mit Jumperkabeln mit Ihrem Controller: SDA1 mit dem Pin, den Sie als sda verwenden,
SCL1 mit dem Pin, den Sie als scl verwenden.
| NULA DeepSleep | Soldered Electrochemical Cl2 Gas Sensor Breakout (Qwiic) |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA1 |
| IO9 | SCL1 |
SDA2 und SCL2 an derselben Stiftleiste sind der interne Bus des Boards zwischen dem
ATtiny404, dem LMP91000 und dem ADS1115. Verbinden Sie Ihren Controller mit SDA1 und
SCL1 (oder über Qwiic), niemals mit SDA2 und SCL2.
2. Das 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, wenn Sie Windows verwenden:
python -m mpremote mip install github:SolderedElectronics/Soldered-ElectrochemicalGasSensor-MicroPython-Library
Die Bibliothek ist auch auf mim aufgeführt.
Diese Seiten beschreiben das Modul am Commit 623e1e6. Der obige Befehl nennt keinen Commit, daher installiert er das Repository in dem Stand, den es am Tag der Ausführung hat.
🔗MicroPython-Bibliothek Electrochemical Gas Sensor
Modulquelle am Commit 623e1e6, der Version, die diese Seiten beschreiben
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
Datei → Speichern unter... → MicroPython-Gerät auf das Board. Diese
Bibliothek benötigt alle drei Dateien: ElectrochemicalGasSensor.py, ads1115.py und
lmp91000.py.
3. Das erste Beispiel ausführen
Dies ist das Beispiel electrochemical-bridgeBoard.py des Moduls. Es erstellt den
Sensor an der Adresse 0x30, der Standardadresse des Boards, und gibt alle 2,5 s einen Messwert aus.
Das Beispiel verwendet SENSOR_O3, die Voreinstellung des Moduls für die Ozon-Zelle. Das Modul
rechnet den Zellenstrom mit den Empfindlichkeits- und Verstärkungseinstellungen der Voreinstellung in ppm um.
Ersetzen Sie daher vor dem Ausführen SENSOR_O3 an beiden Stellen durch SENSOR_CL2: in der
import-Zeile und in der Zeile, die den Sensor erstellt.
from ElectrochemicalGasSensor import ElectrochemicalGasSensor, SENSOR_CL2
sensor = ElectrochemicalGasSensor(SENSOR_CL2, i2c, adc_addr=0x30)
Der Kommentar des Beispiels sagt, dass die Adresse mit den Jumpern auf der Rückseite des Boards eingestellt wird. Bei diesem Board stellt der ADDRESS-Schalter auf der Oberseite die Adresse ein, und sie ist standardmäßig 0x30, die Adresse, die das Beispiel verwendet (siehe Hardware-Details).
Derselbe Kommentar sagt, dass LMPEN fest mit GND verbunden ist. Bei diesem Board hält ein 10-kΩ-
Widerstand LMPEN auf Low und es ist mit dem ATtiny404 verbunden, sodass Sie es
unbeschaltet lassen (siehe Hardware-Details).
# 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)
🔗Das vollständige Beispiel öffnen
Examples/electrochemical-bridgeBoard.py am Commit 623e1e6
4. Das Ergebnis prüfen
Wenn das Board antwortet, zeigt die Shell die Titelzeile des Beispiels und
Sensor initialized successfully!, danach alle 2,5 s eine Zeile: Sensor reading: ,
die Chlorkonzentration in ppm mit fünf Nachkommastellen und PPM. Das Modul
meldet jedes Ergebnis unter null als 0. Ein Durchlauf mit diesem Board in sauberer Luft gab Folgendes aus:
Electrochemical Gas Sensor - ATtiny Bridge Board Example
Sensor initialized successfully!
Sensor reading: 0.00125 PPM
Sensor reading: 0.00124 PPM
Sensor reading: 0.00125 PPM
Sensor reading: 0.00133 PPM
Wenn stattdessen ERROR: Can't init the sensor! Check connections and jumper address!
erscheint, hat das Board an 0x30 nicht geantwortet.
5. Wenn es nicht funktioniert
Fahren Sie mit der Fehlerbehebung fort und wiederholen Sie dieses kleinste Beispiel nach jeder Änderung.