Brzi početak
Povežite pločicu preko Qwiic konektora, instalirajte biblioteku i pokrenite primjer
koji svake 2,5 sekunde ispisuje koncentraciju plina u PPM. U 3. koraku je opisano kako ga
postaviti za H2S ćeliju ove pločice. Pločica odmah po isporuci odgovara na I2C adresi 0x30.
Programirate kontroler koji je spojen na ovu pločicu. Sama pločica se ne programira.
- Arduino
- MicroPython
1. Povežite pločicu
Spojite Qwiic kabel na bilo koji Qwiic konektor na pločici i na Qwiic konektor na kontroleru. Oba konektora dijele istu I2C sabirnicu i isto napajanje od 3,3 V.
| NULA DeepSleep | Soldered Electrochemical H2S Gas Sensor Breakout (Qwiic) |
|---|---|
| Qwiic konektor | Qwiic konektor |
Bez Qwiic konektora: spajanje na eksperimentalnoj pločici
Umjesto toga upotrijebite gornji red headera. Pločicu napajajte isključivo s 3,3 V: nema regulator.
| NULA DeepSleep | Soldered Electrochemical H2S Gas Sensor Breakout (Qwiic) |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA1 |
| IO9 | SCL1 |
2. Instalirajte biblioteku
Instalirajte Electrochemical Gas Sensor Soldered iz njezina GitHub repozitorija.
🔗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 je u Arduino IDE-u dodajte putem Sketch → Include Library → Add .ZIP Library....
3. Pokrenite prvi primjer
Ovo je primjer bridgeBoard iz biblioteke, koji komunicira s pločicom na
0x30. Napisan je sa SENSOR_CO, bibliotečnim predloškom za ugljikov monoksid,
pa njegove PPM vrijednosti nisu vrijednosti H2S-a.
Nemojte ga bez izmjena prebaciti na bibliotečni predložak SENSOR_H2S. Taj je predložak
napisan za ćeliju SGX-4H2S-100 osjetljivosti 1200 nA po ppm. Ova pločica ima ćeliju
SGX-4H2S-300, čiji
tehnički list
navodi izlazni signal od 460 ± 140 nA po ppm, pa je s SENSOR_H2S očitanje
oko 2,6 puta preniskо.
Umjesto toga bibliotece zadajte prilagođeni tip senzora: postavke SENSOR_H2S
s osjetljivošću senzora SGX-4H2S-300, 460 nA po ppm. Dodajte ga iznad retka koji
stvara sensor i proslijedite ga umjesto SENSOR_CO:
const sensorType SENSOR_CUSTOM = {
460.0F, // nanoAmperesPerPPM
0, // internalZeroCalibration
ADS_GAIN_4_096V, // adsGain
TIA_GAIN_7_KOHM, // TIA_GAIN_IN_KOHMS
RLOAD_10_OHM, // RLOAD
REF_EXTERNAL, // REF_SOURCE
INTERNAL_ZERO_20_PERCENT, // INTERNAL_ZERO
BIAS_SIGN_POSITIVE, // BIAS_SIGN
BIAS_0_PERCENT, // BIAS
FET_SHORT_DISABLED, // FET_SHORT
OP_MODE_3LEAD_AMP_CELL, // OP_MODE
};
ElectrochemicalGasSensor sensor(SENSOR_CUSTOM, 0x30);
Slijedi neizmijenjeni primjer.
// Include the required library
#include "Electrochemical-Gas-Sensor-SOLDERED.h"
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. Kad pločica odgovori, vidjet ćete:
Sensor initialized successfully!
Sensor reading: 0.00217 PPM
Sensor reading: 0.00213 PPM
Sensor reading: 0.00216 PPM
Sensor reading: 0.00220 PPM
Novi redak Sensor reading: pojavljuje se svake 2,5 sekunde, s koncentracijom
u PPM na pet decimala. Gornje vrijednosti primjer su s jedne pločice na našem
ispitnom stolu; vaše ovise o plinu oko senzora i o tipu senzora koji
vaša skica koristi. Biblioteka nikad ne prijavljuje vrijednost ispod nule: umjesto toga
vraća 0, pa je 0.00000 uobičajeno očitanje.
Ako umjesto toga vidite ERROR: Can't init the sensor! Check connections and jumper address!,
pločica nije odgovorila na 0x30.
5. Ako ne radi
Nastavite s poglavljem Otklanjanje poteškoća i nakon svake promjene ponovno pokrenite ovaj najmanji primjer.
1. Povežite pločicu
Spojite Qwiic kabel na bilo koji Qwiic konektor na pločici i na Qwiic konektor na kontroleru. Oba konektora dijele istu I2C sabirnicu i isto napajanje od 3,3 V.
| NULA DeepSleep | Soldered Electrochemical H2S Gas Sensor Breakout (Qwiic) |
|---|---|
| Qwiic konektor | Qwiic konektor |
Bez Qwiic konektora: spajanje na eksperimentalnoj pločici
Umjesto toga upotrijebite gornji red headera. Pločicu napajajte isključivo s 3,3 V: nema regulator.
| NULA DeepSleep | Soldered Electrochemical H2S Gas Sensor Breakout (Qwiic) |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA1 |
| IO9 | SCL1 |
Primjer u 3. koraku otvara I2C sa sda=Pin(21) i scl=Pin(22), a ne s
IO8 i IO9. Ako header spojite kao u ovoj tablici, promijenite ta dva broja
u retku I2C(...) u primjeru u GPIO pinove koje ste spojili na SDA1 i SCL1, kako bi
kod koristio iste pinove kao vaše žice.
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
🔗Soldered-ElectrochemicalGasSensor-MicroPython-Library
Provjereni MicroPython modul na commitu 623e1e6
Savjet: preuzimanje s GitHuba. Bez mpremote otvorite svaku od .py datoteka
modula (ElectrochemicalGasSensor.py, ads1115.py i lmp91000.py) na
GitHubu i kliknite Download raw file, zatim je otvorite u Thonnyju i odaberite
File → Save as... → MicroPython device da je kopirate na pločicu.
3. Pokrenite prvi primjer
Ovo je primjer modula electrochemical-bridgeBoard.py, koji komunicira s
pločicom na 0x30. Prije pokretanja napravite dvije izmjene:
- Napisan je sa
SENSOR_O3, predloškom modula za ozon, pa njegove PPM vrijednosti nisu vrijednosti H2S-a. Nemojte ga bez izmjena prebaciti na predložak modulaSENSOR_H2S: taj je predložak napisan za ćeliju SGX-4H2S-100 osjetljivosti 1200 nA po ppm, dok ova pločica ima ćeliju SGX-4H2S-300, čiji tehnički list navodi izlazni signal od 460 ± 140 nA po ppm. SaSENSOR_H2Sje očitanje oko 2,6 puta preniskо. Umjesto toga upotrijebite prilagođeniSensorConfigs postavkamaSENSOR_H2Si 460 nA po ppm, kao što je prikazano ispod popisa. - Otvara I2C sabirnicu 0 sa SCL na GPIO 22 i SDA na GPIO 21. Promijenite ih u I2C pinove Qwiic konektora vašeg kontrolera ako se razlikuju.
Zamijenite redak import iz ElectrochemicalGasSensor u primjeru sljedećim:
from ElectrochemicalGasSensor import (
ElectrochemicalGasSensor, SensorConfig,
TIA_GAIN_7_KOHM, RLOAD_10_OHM, REF_EXTERNAL,
INTERNAL_ZERO_20_PERCENT, BIAS_SIGN_POSITIVE, BIAS_0_PERCENT,
FET_SHORT_DISABLED, OP_MODE_3LEAD_AMP_CELL,
)
from ads1115 import ADS_GAIN_4_096V
SENSOR_CUSTOM = SensorConfig(
nano_amperes_per_ppm=460.0,
internal_zero_calibration=0,
ads_gain=ADS_GAIN_4_096V,
tia_gain=TIA_GAIN_7_KOHM,
rload=RLOAD_10_OHM,
ref_source=REF_EXTERNAL,
internal_zero=INTERNAL_ZERO_20_PERCENT,
bias_sign=BIAS_SIGN_POSITIVE,
bias=BIAS_0_PERCENT,
fet_short=FET_SHORT_DISABLED,
op_mode=OP_MODE_3LEAD_AMP_CELL,
)
a redak koji stvara sensor sljedećim:
sensor = ElectrochemicalGasSensor(SENSOR_CUSTOM, i2c, adc_addr=0x30)
Slijedi neizmijenjeni primjer.
# FILE: electrochemical-bridgeBoard.py
from machine import I2C, Pin
import time
from ElectrochemicalGasSensor import ElectrochemicalGasSensor, SENSOR_O3
# Initialize I2C
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
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)
4. Provjerite rezultat
Kad pločica odgovori, konzola prikazuje:
Electrochemical Gas Sensor - ATtiny Bridge Board Example
Sensor initialized successfully!
Sensor reading: 0.00198 PPM
Sensor reading: 0.00201 PPM
Sensor reading: 0.00199 PPM
Sensor reading: 0.00200 PPM
Novi redak Sensor reading: pojavljuje se svake 2,5 sekunde, s koncentracijom
u PPM na pet decimala. Gornje vrijednosti primjer su s jedne pločice na našem
ispitnom stolu; vaše ovise o plinu oko senzora i o tipu senzora koji
vaša skripta koristi. Modul nikad ne prijavljuje vrijednost ispod nule: umjesto toga
vraća 0, pa je 0.00000 uobičajeno očitanje.
Ako umjesto toga vidite ERROR: Can't init the sensor! Check connections and jumper address!,
pločica nije odgovorila na 0x30.
5. Ako ne radi
Nastavite s poglavljem Otklanjanje poteškoća i nakon svake promjene ponovno pokrenite ovaj najmanji primjer.