Brzi početak
Povežite pločicu s kontrolerom pomoću Qwiic kabela, instalirajte biblioteku i pokrenite njezin prvi primjer. Primjer se isporučuje s postavkom za drugi plin, pa korak 3 navodi koji naziv treba promijeniti da biste očitavali amonijak u ppm. Pločica odgovara na I2C adresi 0x30 dok ne pomaknete njezinu sklopku ADDRESS.
Programirate kontroler spojen na ovu pločicu. Sama pločica se ne programira.
- Arduino
- MicroPython
1. Povežite pločicu
Qwiic znači bez lemljenja: jedan kraj Qwiic kabela utaknite u kontroler, a drugi u bilo koji Qwiic konektor na pločici. Kabel prenosi 3,3 V, GND i I2C linije.
| NULA DeepSleep | Soldered Electrochemical NH3 Gas Sensor Breakout (Qwiic) |
|---|---|
| Qwiic konektor | Qwiic konektor |
Pločica radi isključivo na 3,3 V i nema regulator. Header i oba Qwiic konektora dijele to isto napajanje od 3,3 V, zato ga nikada ne napajajte s 5 V.
Bez Qwiica: ožičenje jumper žicama
Pločica nije kompatibilna s eksperimentalnom pločicom, stoga je jumper žicama spojite na pinove headera. Par SDA1/SCL1 na headeru, istu sabirnicu koju nose Qwiic konektori, spojite na I2C pinove kontrolera. Par SDA2/SCL2 ostavite nespojen: to je vlastita sabirnica pločice između ATtiny404, analognog ulaznog stupnja i ADC-a.
| NULA DeepSleep | Soldered Electrochemical NH3 Gas Sensor Breakout (Qwiic) |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA1 |
| IO9 | SCL1 |
2. Instalirajte biblioteku
Instalirajte Electrochemical Gas Sensor Soldered iz njezina GitHub repozitorija kao .ZIP biblioteku. ZIP sadrži biblioteku onakvu kakva je danas u grani main, a ne fiksni commit. Ove su stranice provjerene prema commitu c4df54b, koji otvara poveznica u nastavku.
🔗Electrochemical Gas Sensor Soldered
Provjerena Arduino biblioteka na commitu c4df54b
Savjet: preuzimanje s GitHuba. Na GitHub stranici biblioteke kliknite zeleni gumb Code i odaberite Download ZIP, zatim ga dodajte u Arduino IDE putem Sketch → Include Library → Add .ZIP Library....
3. Pokrenite prvi primjer
Ovo je primjer bridgeBoard iz biblioteke, napisan za ATtiny404 most na ovoj pločici. Stvara senzor na adresi 0x30, pokreće ga i ispisuje očitanje svakih 2,5 sekunde. Ako ste pomaknuli sklopku ADDRESS, pločica umjesto toga odgovara na toj adresi (od 0x30 do 0x37).
Primjer stvara senzor s postavkom SENSOR_CO, bibliotečnom postavkom za ugljikov monoksid. SENSOR_NH3 je postavka biblioteke za ćeliju SGX-4NH3 na ovoj pločici, a pretvorba u ppm koristi osjetljivost iz postavke: 70 nA/ppm za SENSOR_CO, 40 nA/ppm za SENSOR_NH3. Zato očitanja iz primjera, onakvog kakav se isporučuje, nisu ppm amonijaka. Da biste očitavali amonijak, promijenite SENSOR_CO u SENSOR_NH3 u retku koji stvara senzor.
Komentari u primjeru kažu da se adresa postavlja jumperima na poleđini pločice. Na ovoj se pločici adresa postavlja sklopkom ADDRESS s tri položaja. Adrese 0x49/0x4A/0x4B koje komentari spominju adrese su ADS1115, a ne adrese na kojima ova pločica odgovara. Tamo gdje komentari kažu da je LMPEN čvrsto spojen na GND, na ovoj ga pločici na GND povlači otpornik od 10 kΩ: ostavite ga nespojenim.
/**
**************************************************
*
* @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. Provjerite rezultat
Otvorite Serijski monitor na 115200 baud. Kada pločica odgovori, vidjet ćete:
Sensor initialized successfully!
Nakon toga svakih 2,5 sekunde slijedi redak koji počinje s Sensor reading:, s koncentracijom u ppm na pet decimala. Biblioteka nikada ne javlja negativnu koncentraciju: rezultat ispod nule ispisuje se kao 0.
Ako umjesto toga vidite ERROR: Can't init the sensor! Check connections and jumper address!, pločica nije odgovorila na adresi navedenoj u skici.
5. Ako ne radi
Nastavite s Rješavanjem problema i nakon svake promjene ponovno pokrenite ovaj najmanji primjer.
1. Povežite pločicu
Qwiic znači bez lemljenja: jedan kraj Qwiic kabela utaknite u kontroler, a drugi u bilo koji Qwiic konektor na pločici. Kabel prenosi 3,3 V, GND i I2C linije.
| NULA DeepSleep | Soldered Electrochemical NH3 Gas Sensor Breakout (Qwiic) |
|---|---|
| Qwiic konektor | Qwiic konektor |
Primjer postavlja SDA na pin 21, a SCL na pin 22. Na pločici NULA DeepSleep promijenite ih u 8 (SDA) i 9 (SCL), I2C pinove pločice prikazane na dijagramu.
Pločica radi isključivo na 3,3 V i nema regulator. Header i oba Qwiic konektora dijele to isto napajanje od 3,3 V, zato ga nikada ne napajajte s 5 V.
Bez Qwiica: ožičenje jumper žicama
Pločica nije kompatibilna s eksperimentalnom pločicom, stoga je jumper žicama spojite na pinove headera. Par SDA1/SCL1 na headeru, istu sabirnicu koju nose Qwiic konektori, spojite na I2C pinove kontrolera. Par SDA2/SCL2 ostavite nespojen: to je vlastita sabirnica pločice između ATtiny404, analognog ulaznog stupnja i ADC-a.
| NULA DeepSleep | Soldered Electrochemical NH3 Gas Sensor Breakout (Qwiic) |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA1 |
| IO9 | SCL1 |
Primjer postavlja SDA na pin 21, a SCL na pin 22. Na pločici NULA DeepSleep promijenite ih u 8 (SDA) i 9 (SCL), I2C pinove pločice prikazane na dijagramu.
2. Instalirajte modul
Nakon instalacije paketa mpremote instalirajte biblioteku na pločicu sljedećom naredbom:
mpremote mip install github:SolderedElectronics/Soldered-ElectrochemicalGasSensor-MicroPython-Library
Ili, ako koristite operacijski sustav Windows:
python -m mpremote mip install github:SolderedElectronics/Soldered-ElectrochemicalGasSensor-MicroPython-Library
Naredba ne navodi nijedan commit, pa instalira modul onakav kakav je repozitorij danas. Ove su stranice provjerene prema commitu 623e1e6, koji otvara poveznica u nastavku.
🔗Soldered ElectrochemicalGasSensor MicroPython biblioteka
Provjereni MicroPython modul na commitu 623e1e6
Savjet: preuzimanje s GitHuba. Bez mpremote otvorite na GitHubu svaku od triju
datoteka modula, ElectrochemicalGasSensor.py, lmp91000.py i
ads1115.py, i kliknite Download raw file. Zatim svaku otvorite u Thonnyju i
pomoću File → Save as... → MicroPython device kopirajte je na pločicu.
Biblioteku čine ove tri datoteke: ElectrochemicalGasSensor.py uvozi lmp91000.py i ads1115.py, pa sve tri moraju biti na pločici.
3. Pokrenite prvi primjer
Ovo je primjer modula electrochemical-bridgeBoard.py, napisan za ATtiny404 most na ovoj pločici. Otvara I2C sabirnicu 0 na pinu 22 (SCL) i pinu 21 (SDA), stvara senzor na adresi 0x30 i ispisuje očitanje svakih 2,5 sekunde. Ako ste pomaknuli sklopku ADDRESS, pločica umjesto toga odgovara na toj adresi (od 0x30 do 0x37).
Primjer koristi postavku za ozon, SENSOR_O3. SENSOR_NH3 je postavka modula za ćeliju SGX-4NH3 na ovoj pločici, a pretvorba u ppm koristi osjetljivost iz postavke: -1000 nA/ppm za SENSOR_O3, 40 nA/ppm za SENSOR_NH3. Zato očitanja iz primjera, onakvog kakav se isporučuje, nisu ppm amonijaka. Da biste očitavali amonijak, promijenite SENSOR_O3 u SENSOR_NH3 u retku import i u retku koji stvara senzor.
Komentari u primjeru kažu da se adresa postavlja jumperima na poleđini pločice. Na ovoj se pločici adresa postavlja sklopkom ADDRESS s tri položaja. Adrese 0x49/0x4A/0x4B koje komentari spominju adrese su ADS1115, a ne adrese na kojima ova pločica odgovara. Tamo gdje komentari kažu da je LMPEN čvrsto spojen na GND, na ovoj ga pločici na GND povlači otpornik od 10 kΩ: ostavite ga nespojenim.
# 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)
🔗Otvorite cijeli primjer
electrochemical-bridgeBoard.py na commitu 623e1e6
4. Provjerite rezultat
Kada pločica odgovori, Thonny shell prikazuje:
Electrochemical Gas Sensor - ATtiny Bridge Board Example
Sensor initialized successfully!
Nakon toga svakih 2,5 sekunde slijedi redak koji počinje s Sensor reading:, s koncentracijom u ppm na pet decimala. Modul nikada ne javlja negativnu koncentraciju: rezultat ispod nule ispisuje se kao 0.
5. Ako ne radi
Nastavite s Rješavanjem problema i nakon svake promjene ponovno pokrenite ovaj najmanji primjer.