ESP-01S Publishing partikelsensor
Användarhandbok
ESP-01S Publishing partikelsensor
Publicering av partikelsensordata till Adafruit IO med Maker Pi Pico och ESP-01S
av kevinjwalters
Den här artikeln visar hur man publicerar data från tre billiga partikelsensorer till Adafruit IO IoT-tjänsten med hjälp av Cytron Maker Pi Pico som kör ett CircuitPython-program som överför sensorernas utsignaler över Wi-Fi med en ESP-01S-modul som kör AT rmware.
WHO identifierar PM2.5-partiklar som en av de största miljöriskerna för hälsan med 99 % av världens befolkning som bor på platser där WHO:s luftkvalitetsriktlinjer inte uppfylldes 2019. Man uppskattar att 4.2 miljoner förtida dödsfall orsakades av detta under 2016.
De tre partikelsensorerna som visas i den här artikeln är:
- Plantower PMS5003 med en seriell anslutning;
- Sensirion SPS30 använder i2c;
- Omron B5W LD0101 med pulsutgångar.
Dessa optiska sensorer liknar de som finns i en typ av brandvarnare i hemmet, men de dör i sitt försök att räkna partiklar av olika storlekar snarare än att bara larma vid en tröskelkoncentration.
Den röda laserbaserade PMS5003 är en vanlig hobbysensor och finns i PurpleAir PA-II luftkvalitetssensor. SPS30 är en nyare sensor som använder samma princip och kan hittas i Clarity Node-S luftkvalitetssensor. Den infraröda LED-baserade B5W LD0101-sensorn har ett mer primitivt gränssnitt men är användbar för sin förmåga att detektera partiklar större än 2.5 mikron – de andra två sensorerna kan inte mäta dessa på ett tillförlitligt sätt.
Adafruit IO erbjuder en gratis nivå med ett begränsat antal flöden och instrumentpaneler – dessa är tillräckliga för detta projekt. Den kostnadsfria nivådatan sparas i 30 dagar men data kan enkelt laddas ner.
Maker Pi Pico-brädet i den här artikeln är somample Cytron skickade vänligen till mig för att utvärdera. Den enda skillnaden för produktionsversionen är tillägget av passiva komponenter för att destudera de tre knapparna.
ESP-01S-modulen kommer sannolikt att behöva en AT rmware-uppgradering. Detta är en relativt komplicerad, svår process och kan vara tidskrävande. Cytron säljer modulen med lämplig AT rmware på den.
Omron B5W LD0101-sensorn upphör tyvärr av tillverkaren med senaste beställningar i mars 2022.
Tillbehör:
- Cytron Maker Pi Pico – Digi-key | PiHut
- ESP-01S – Cytrons kort levereras med lämplig ATrmware.
- ESP-01 USB-adapter/programmerare med återställningsknapp – Cytron.
- Bakbord.
- Hona till hane bygeltrådar, kanske 20 cm (8 tum) minsta längd.
- Plantower PMS5003 med kabel och breadboard-adapter – Adafruit
- eller Plantower PMS5003 + Pimoroni breadboard-adapter – Pimoroni + Pimoroni
- Sensirion SPS30 – Digi-key
- Sparkfun SPS30 JST-ZHR kabel till 5 hanstift – Digi-key
- 2x 2.2k motstånd.
- Omron B5W LD0101 – Mouser
- Omron-kabel beskrivs som en sele (2JCIE-HARNESS-05) – Mouser
- 5-stifts hanhuvud (för anpassning av kabel till bryggbräda).
- löd - krokodilklämmor (alligator) kan fungera som ett alternativ till lödning.
- 2x 4.7k motstånd.
- 3x 10k motstånd.
- 0.1uF kondensator.
- Batterikraft för Omron B5W LD0101:
- 4AA batterihållare för uppladdningsbara NiMH-batterier (bättre val).
- eller 3AA-smethållare för alkaliska batterier.
- Ett USB-nätaggregat kan vara användbart om du vill springa utanför en USB-strömkälla.
Steg 1: USB-programmerare för uppdatering av Flash på ESP-01S
Det är osannolikt att ESP-01S-modulen kommer med lämplig AT-rmware om den inte kommer från Cytron. Det enklaste sättet att uppdatera den är att använda en Windows-dator eller bärbar dator med en USB-adapter som skrivaktiverar askan och har en återställningsknapp.
Tyvärr har en mycket vanlig adapter utan märke som ofta beskrivs som något i stil med en "ESP-01 Programmer Adapter UART" inga knappar eller omkopplare för att styra dessa. Videon ovan visar hur detta snabbt kan återställas
med några improviserade omkopplare gjorda av två man-till-hona bygeltrådar skurna i två och lödda på stiften på undersidan av programmeringskortet. Ett alternativt tillvägagångssätt till detta med hjälp av en breadboard kan ses i Hackaday:
ESPHome på ESP-01 Windows Workflow.
https://www.youtube.com/watch?v=wXXXgaePZX8
Steg 2: Uppdatera firmware på ESP-01S med Windows
Ett terminalprogram som PuTTY kan användas med ESP-01-programmeraren för att kontrollera rmware-versionen. Rmwaren gör att ESP8266 fungerar lite som ett modem med kommandon inspirerade av Hayes kommandouppsättning. Kommandot AT+GMR AT+GMR visar rmware-versionen.
AT+GMR
AT-version:1.1.0.0(11 maj 2016 18:09:56)
SDK-version:1.5.4(baaeaebb)
kompileringstid: 20 maj 2016 15:08:19
Cytron har en guide som beskriver hur man tillämpar rmware-uppdateringen med hjälp av Espressif Flash Download Tool (endast Windows) på GitHub: CytronTechnologies/esp-at-binaries. Cytron tillhandahåller också en kopia av rmware-binären, Cytron_ESP-01S_AT_Firmware_V2.2.0.bin.
Efter en lyckad uppgradering kommer den nya rmware att rapporteras som version 2.2.0.0
AT+GMR
AT version:2.2.0.0(b097cdf – ESP8266 – 17 juni 2021 12:57:45)
SDK-version: v3.4-22-g967752e2
kompileringstid(6800286):4 augusti 2021 17:20:05
Bin version:2.2.0(Cytron_ESP-01S)
Ett kommandoradsprogram som heter esptool är tillgängligt som ett alternativ för programmering av den ESP8266-baserade ESP-01S och kan användas på Linux eller macOS.
Rmware på ESP-01S kan testas på Maker Pi Pico med Cytrons simpletest.py. Detta skickar en ICMP-ping till en välkänd tjänst på Internet var 10:e sekund och visar tur och retur-tiden (rtt) i millisekunder. Detta behöver en secrets.py file med Wi-Fi SSID (namn) och lösenord – detta beskrivs längre fram i den här artikeln.
DET GODADET DÅLIGA
Steg 3: Ansluta sensorerna
En halvstor breadboard användes för att koppla ihop de tre sensorerna och för att övervaka volymentage från de fyra uppladdningsbara NiMH-batterierna. En högupplöst bild medföljer av hela konfigurationen ovan och nästa steg beskriver hur varje sensor kan anslutas.
Elskenor på brödbrädan drivs från Pi Pico med
- VBUS (5V) och GND till strömskenorna på vänster sida och
- 3V3 och GND till höger sida.
Elskenor är markerade med en närliggande röd linje för positiv skena och blå för negativ (eller jord) skena. På en breadboard i full storlek (830 hål) kan dessa ha en övre uppsättning skenor som inte är anslutna till den nedre uppsättningen av skenor.
Batterierna används endast för att driva Omron B5W LD0101 som behöver en konstant volymtage. USB-strömmen från en dator är ofta bullrig vilket gör den olämplig.
Steg 4: Anslut Plantower PMS5003
Plantower PMS5003 kräver 5V ström men dess seriella "TTL style" gränssnitt är 3.3V säkert. Anslutningarna från
PMS5003 via breakout board till Pi Pico är:
- VCC till 5V (röd) via rad 6 till 5V skena;
- GND till GND (svart) via rad 5 till GND;
- SET till EN (blå) via rad 1 till GP2;
- RX till RX (vit) via rad 3 till GP5;
- TX till TX (grå) via rad 4 till GP4;
- RESET till RESET (lila) via rad 2 till GP3;
- NC (ej ansluten);
- NC.
Databladet innehåller en varning om metallhöljet.
Metallskal är anslutet till GND så var försiktig så att det inte kortsluts med de andra delarna av kretsen förutom GND.
Komponenten tenderar att skickas med blå plastfllm på höljet för att skydda ytan från repor, men detta bör inte litas på för elektrisk isolering.
Steg 5: Ansluta Sensirion SPS30
Sensirion SPS30 kräver 5V ström men dess i2c-gränssnitt är 3.3V säkert. De enda extra komponenterna är två 2.2k-motstånd som fungerar som pull-ups för i2c-bussen. Anslutningarna från SPS30 till Pi Pico är:
- VDD (röd) till 5V5V skena;
- SDA (vit) till GP0 (grå) via rad 11 med 2.2k resistor till 3.3V skena;
- SCL (lila) till GP1 (lila) via rad 10 med 2.2k resistor till 3.3V skena;
- SEL (grön) till GND;
- GND (svart) till GND.
Kontakten på ledningen kan kräva ett hårt tryck för att sätta in den ordentligt i SPS30.
SPS30 stöder också ett seriellt gränssnitt som Sensirion rekommenderar i databladet.
Vissa överväganden bör göras om användningen av I2C-gränssnittet. I2C designades ursprungligen för att ansluta två chips på en PCB. När sensorn är ansluten till huvudkretskortet via en kabel, måste särskild uppmärksamhet ägnas åt elektromagnetisk störning och överhörning. Använd så korta som möjligt (< 10 cm) och/eller väl skärmade anslutningskablar.
Vi rekommenderar att du istället använder UART-gränssnittet när det är möjligt: det är mer robust mot elektromagnetiska störningar, speciellt med långa anslutningskablar.
Det finns också en varning om metalldelarna i fodralet.
Observera att det finns en intern elektrisk anslutning mellan GND-stift (5) och metallskärmning. Håll denna metallskärm elektriskt svedd för att undvika oavsiktliga strömmar genom denna interna anslutning. Om detta inte är ett alternativ är korrekt extern potentialutjämning mellan GND-stift och eventuell potential ansluten till skärmningen obligatorisk. All ström genom anslutningen mellan GND och metallskärmning kan skada produkten och utgöra en säkerhetsrisk genom överhettning.
Steg 6: Ansluta Omron B5W LD0101
Omron-kabeln är inte avsedd att användas med en brödbräda. Ett snabbt sätt att konvertera det till breaboard-användning är att skära av sockeln, skala av ledningarna och löda dem till en femstiftslängd av hanstift. Krokodilklämmor (alligator) kan användas som ett alternativt tillvägagångssätt för att undvika lödning.
Omron B5W LD0101 kräver en 5V konstant strömförsörjning. Dess två utgångar är också på en 5V-nivå som är inkompatibel med Pi Picos 3.3V-ingångar. Närvaron av motstånd på sensorkortet gör det enkelt att sänka detta till ett säkert värde genom att lägga till ett 4.7k motstånd till jord per utgång. De inbyggda motstånden är dokumenterade i databladet vilket gör detta till ett rimligt tillvägagångssätt.
Anslutningarna från B5W LD0101 till Pi Pico är:
- Vcc (röd) till 5V (röd) skena via rad 25;
- OUT1 (gul) till GP10GP10 (gul) via rad 24 med 4.7k resistor mot GND;
- GND (svart) till GND (svart) via rad 23;
- Femte (grön) till GP26GP26 (grön) via rad 22 med 0.1uF kondensator till GND;
- OUT2 (orange) till GP11 (orange) via rad 21 med 4.7k motstånd mot GND.
De GP12 (grön) från Pi Pico ansluts till rad 17 och ett 10k motstånd ansluter rad 17 till rad 22.
Databladet beskriver strömförsörjningskravet som:
Minst 4.5V, typiskt 5.0V, max 5.5V, rippelvoltagintervallet 30mV eller mindre rekommenderas. Se till att det inte finns något brus under 300Hz. Lura
rm den tillåtna rippel voltage värde med en verklig maskin.
Tre alkaliska eller fyra uppladdningsbara (NiMH) batterier är det enklaste sättet att ge en stadig, stabil volymtage på cirka 5V till sensorn. Ett USB-nätaggregat är sannolikt ett dåligt val eftersom voltage är vanligtvis från ett litiumbatteri som använder en buck-boost-omvandlare som gör det bullrigt.
B5W LD0101 använder konvektion för sitt luftflöde och måste placeras upprätt för att fungera korrekt. En förändring av leverans voltage kommer sannolikt att påverka värmarens temperatur och tillhörande luftflöde. Omgivningstemperaturen måste också ha en effekt.
Steg 7: Batteriövervakning med potentiell avdelare
Batteriet voltage överstiger 3.3V-nivån för Pi Picos RP2040-processors ingångar. En enkel potentialdelare kan minska denna voltage att vara inom det intervallet. Detta gör att RP2040 kan mäta batterinivån på en analog (GP26 till GP28) ingång.
Ett par 10k motstånd användes ovan för att halvera volymentage. Det är vanligt att se högre värden användas som 100k för att minimera slöseri med ström. Anslutningarna är:
- B5W LD0101 Vcc (röd) bygelkabel till rad 29 vänster sida;
- 10k motstånd på rad 29 mellan vänster och höger sida på rad 29;
- Brun bygeltråd till Pi Pico GP27;
- 10k motstånd från höger sida av rad 29 till närliggande GND-skena.
GP28 på Maker Pi Pico kan användas som en analog ingång men eftersom den också är ansluten till RGB-pixeln som kan ha en liten effekt på värdet och kan till och med lysa upp eller ändras om ingången ser ut som WS2812-protokollet!
Steg 8: Installera CircuitPython och Sensor Data Publishing Program
Om du inte är bekant med CircuitPython så är det värt att läsa guiden Välkommen till CircuitPython först.
- Installera följande sju bibliotek från version 7.x-paketet från https://circuitpython.org/libraries till lib-katalogen på CIRCUITPY-enheten:
- adafruit_bus_device
- adafruit_minimqtt
- adafruit_io
- adafruit_espatcontrol
- adafruit_pm25
- adafruit_requests.mpy
- neopixel.mpy
- Ladda ner dessa två extra bibliotek till lib-katalogen genom att klicka på Spara länk som... på files inne i katalogen eller på file:
- adafruit_sps30 från https://github.com/kevinjwalters/Adafruit_CircuitPython_SPS30
- b5wld0101.py från https://github.com/kevinjwalters/CircuitPython_B5WLD0101
- Skapa secrets.py file (se example nedan) och fyll i värdena.
- Ladda ner programmet till CIRCUITPY genom att klicka på Spara länk som... på pmsensors_adafruitio.py
- Byt namn på eller ta bort befintlig code.py file på CIRCUITPY byt sedan namn på pmsensors_adafruitio.py till code.py This file körs när CircuitPython-tolken startar eller laddas om.
# Den här filen är där du förvarar hemliga inställningar, lösenord och tokens!
# Om du lägger in dem i koden riskerar du att begå den informationen eller dela den
hemligheter = {
“ssid” : “INSERT-WIFI-NAME-HERE”,
"lösenord" : "INSERT-WIFI-PASSWORD-HERE",
“aio_username” : “INSERT-ADAFRUIT-IO-USERNAME-HÄR”,
“aio_key” : “INSERT-ADAFRUIT-IO-APPLICATION-KEY-HERE”
# http://worldtimeapi.org/timezones
"timezone" : "America/New_York",
}
De versioner som användes för detta projekt var:
CircuitPython 7.0.0
CircuitPython-biblioteksbunt adafruit-circuitpython-bundle-7.x-mpy-20211029.zip- tidigare versioner från september/oktober får inte användas som adafruit_espatcontrol
biblioteket var buggigt och hälften fungerar på ett förvirrande sätt.
Steg 9: Adafruit IO-installation
Adafruit har många guider om deras Adafruit IO-tjänst, de mest relevanta är:
Välkommen till Adafruit IO
Adafruit IO Grunderna: Flöden
Adafruit IO Grunderna: Dashboards
När du är bekant med flöden och instrumentpaneler följer du dessa steg.
- Skapa ett Adafruit-konto om du inte redan har ett.
- Skapa en ny grupp som heter mpp-pm under Feeds
- Skapa nio flöden i den här nya gruppen genom att klicka på knappen + Ny flöde, namnen är:
- b5wld0101-raw-out1
- b5wld0101-raw-out2
- b5wld0101-vcc
- b5wld0101-vth
- cpu-temperatur
- pms5003-pm10-standard
- pms5003-pm25-standard
- sps30-pm10-standard
- sps30-pm25-standard
- Gör en instrumentpanel för dessa värden, föreslagna block är:
- Tre linjediagramblock, ett för varje sensor med två linjer per diagram.
- Tre mätblock för de två voltages och temperatur.
Steg 10: Verifiera datapubliceringen
Övervakningssidan under Pro file är användbart för att verifiera att data anländer i realtid genom att titta på livedata file sektion. Programmet gör RGB-pixeln blå i 2-3 sekunder när den skickar data till Adafruit IO och återgår sedan till grönt.
Temperaturen från RP2040 verkar variera kraftigt mellan olika processorer och kommer sannolikt inte att matcha omgivningstemperaturen.
Om detta inte fungerar så här är några saker att kontrollera.
- Om RGB-pixeln stannar under eller om data inte tas emot av Adafruit IO, kontrollera USB-seriekonsolen för utdata/fel. Den numeriska utgången för Mu på den seriella konsolen kommer att visa om sensorerna arbetar med nya rader som skrivs ut var 2-3:e sekund – se nedan för ex.ample utgång.
- Avsnittet Live Errors på Monitor-sidan är värt att kontrollera om data skickas men inte dyker upp.
- Felsökningsvariabeln i programmet kan ställas in från 0 till 5 för att styra volymen av felsökningsinformation. Högre nivåer inaktiverar tupelutskrift för Mu.
- Programmet simpletest.py är ett användbart sätt att bevisa att Wi-Fi-anslutningen är gjord och anslutning till Internet fungerar för ICMP-trafik.
- Se till att du använder en ny version av adafruit_espatcontrol-biblioteket.
- Maker Pi Picos blå lysdioder på varje GPIO är mycket användbara för att få en omedelbar bild överview av GPIO-tillståndet. Alla anslutna GPIO kommer att vara på med undantag av:
- GP26 kommer att vara avstängd eftersom den utjämnade voltage (cirka 500mV) är för lågt;
- GP12 kommer att vara svag eftersom det är en PWM-signal på ~ 15 %;
- GP5 kommer att vara på men kommer att flimra när data skickas från PMS5003;
- GP10 kommer att vara avstängd men kommer att flimra när små partiklar detekteras av B5W LD0101;
- GP11 kommer att vara avstängd men flimrar mycket då och då om du inte befinner dig på en exceptionellt rökig plats.
Utgången avsedd för plottern i Mu kommer att se ut ungefär så här i ett rum:
(5,8,4.59262,4.87098,3.85349,0.0)
(6,8,4.94409,5.24264,1.86861,0.0)
(6,9,5.1649,5.47553,1.74829,0.0)
(5,9,5.26246,5.57675,3.05601,0.0)
(6,9,5.29442,5.60881,0.940312,0.0)
(6,11,5.37061,5.68804,1.0508,0.0)
Eller ett rum med renare luft:
(0,1,1.00923,1.06722,0.0,0.0)
(1,2,0.968609,1.02427,0.726928,0.0)
(1,2,0.965873,1.02137,1.17203,0.0)
(0,1,0.943569,0.997789,1.47817,0.0)
(0,1,0.929474,0.982884,0.0,0.0)
(0,1,0.939308,0.993282,0.0,0.0)
De sex värdena per rad i ordning är:
- PMS5003 PM1.0 och PM2.5 (heltalsvärden);
- SPS30 PM1.0 och PM2.5;
- B5W LD0101 rå OUT1 och OUT2 räknas.
Steg 11: Testa sensorerna inuti med Mu och Adafruit IO
Videon ovan visar sensorerna som reagerar på att en tändsticka slås för att tända rökelsepinnen. PM2.5-toppvärdena från PMS5003 och SPS30 är 51 respektive 21.5605. B5W LD0101 har avslöjat optik och påverkas tyvärr av volframhalogenbelysningen som används för den här videon. Det finns en förhöjd nivå av partiklar i luften från en tidigare testkörning.
Kom ihåg att koppla bort batteripaketet när det inte används, annars kommer B5W LD0101:s värmare att tömma batterierna.
https://www.youtube.com/watch?v=lg5e6KOiMnA
Steg 12: Partiklar utanför på Guy Fawkes Night
Guy Fawkes Night förknippas med brasor och fyrverkerier som kan bidra till en ökning av luftföroreningarna för en kväll eller två. Diagrammen ovan visar att de tre sensorerna placeras utanför strax efter 7 fredagen den 5 november 2021. Det fanns inga fyrverkerier i omedelbar närhet men de kunde höras på avstånd. Notera: flugskalan varierar mellan de tre sjökorten.
Matningsdata som lagras i Adafruit IO visar att sensorerna som detekterar luften redan hade en något förhöjd nivå på PM2.5 baserat på SPS30-siffrorna:
2021/11/05 7:08:24PM 13.0941
2021/11/05 7:07:56PM 13.5417
2021/11/05 7:07:28PM 3.28779
2021/11/05 7:06:40PM 1.85779
Toppen var runt 46 ug per kubikmeter strax före 11:XNUMX:
2021/11/05 10:55:49PM 46.1837
2021/11/05 10:55:21PM 45.8853
2021/11/05 10:54:53PM 46.0842
2021/11/05 10:54:26PM 44.8476
Det finns korta toppar på andra ställen i data när sensorerna var utanför. Dessa kan bero på svullnader från:
- avgaser från gascentralvärme,
- personer som röker i närheten och/eller
- luktar/ångor från matlagning.
Kontrollera vädret innan du ställer exponerad elektronik utomhus!
Steg 13: Partiklar inuti med matlagning
Diagrammen ovan visar hur sensorerna reagerar på att bacon och svamp steks i ett närliggande kök med medelmåttig extraktion. Sensorerna var cirka 5 m (16 fot) från hällen. Notera: y-skalan varierar mellan de tre diagrammen.
Foderdata som lagras i Adafruit IO visar sensorerna med en kort topp PM2.5-nivå på cirka 93 ug per kubikmeter baserat på SPS30-siffrorna:
2021/11/07 8:33:52PM 79.6601
2021/11/07 8:33:24PM 87.386
2021/11/07 8:32:58PM 93.3676
2021/11/07 8:32:31PM 86.294
Föroreningarna kommer att vara mycket annorlunda än de från omarbetningar. Det här är ett intressant exampde olika källorna till partiklar i luften vi andas.
Steg 14: Sensorer för offentliga partiklar
Datan som visas ovan är från närliggande offentliga sensorer.
- Andas London
- Clarity Movement Node-S
- tbps
- oss
- rl
- Clarity Movement Node-S
- OpenAQ
- PurpleAir PA-II
- sr
- PurpleAir PA-II
- London Air Quality Network
- Referenskvalitet (Met One BAM 1020 och andra)
- FS
- AS
- TBR
- Referenskvalitet (Met One BAM 1020 och andra)
tbps- och TBR-sensorerna är nästan samlokaliserade och är grafiska tillsammans för att visa korrelationen mellan den SPS30-baserade enheten och referensen i närheten. SPS30 verkar underläsa rejält på kvällarna den 5:e och 6:e november när det är rimligt att anta att kvällsökningen beror på omarbetningar. Detta kan bero på skillnaden i massan av partiklarna eftersom sensorerna som används för denna artikel bara kan detektera volym och behöver gissa partiklarnas densitet för att producera värden i mikrogram per kubikmeter.
PMS5003 i PurpleAir PA-II verkar överläsa avsevärt för alla förhöjda PM2.5-nivåer baserat på denna korta period. Detta kan matcha resultaten som visas på föregående sidor eller så kan det finnas andra faktorer i närheten som orsakar detta.
SPS30 och PMS5003 producerar data för partiklar större än 2.5 mikron men följande sidor visar varför detta bör behandlas med försiktighet.
Steg 15: Jämförelse av sensorer – Partikelstorlek
Graferna ovan är från Laboratorieutvärderingen av partikelstorleksselektiviteten hos optiska lågkostnadssensorer för partiklar av Meteorologiska institutet. Tre sensorer av varje slag testades med olika partikelstorlekar visade på den logaritmiska x-axeln. De färgade linjerna indikerar de beräknade värdena för specifika partikelstorleksband baserat på sensorutgångarna, bandningen visar fördelningen. De tre SPS30-värdena över 1 mikron överlappar kraftigt vilket gör dem mycket svåra att urskilja.
De vanliga måtten för partiklar är PM2.5 och PM10. Medan siffran i namnet hänvisar till partikelns maximala storlek är enheterna i mikrogram per kubikmeter. De billiga sensorerna kan bara mäta partikeldiameter (volym) och måste göra några gissningar om densitet för att beräkna de sannolika PM2.5- och PM10-värdena.
PMS5003 använder ett konstant densitetsvärde, Sensirion beskriver deras densitetsmetod för SPS30 som:
De flesta billiga PM-sensorer på marknaden antar en konstant masstäthet vid kalibrering och beräknar masskoncentrationen genom att multiplicera det detekterade partikelantalet med denna massdensitet. Detta antagande fungerar bara om sensorn mäter en enskild partikeltyp (till exempel tobaksrök), men i verkligheten hittar vi många olika partikeltyper med många olika optiska egenskaper i vardagen, från "tungt" husdamm till "lätta" förbränningspartiklar . Sensirions egenutvecklade algoritmer använder ett avancerat tillvägagångssätt som möjliggör en korrekt uppskattning av masskoncentrationen, oavsett vilken partikeltyp som mäts. Dessutom möjliggör ett sådant tillvägagångssätt en korrekt uppskattning av storlekskärlen.
PM-måtten omfattar alla partiklar under storleksparametern, dvs
PM1 + massan av alla partiklar mellan 1.0 och 2.5 mikron = PM2.5,
PM2.5 + massan av alla partiklar mellan 2.5 och 10 mikron = PM10.
PMS5003 och SPS30 kan inte detektera partiklarna i detta laboratorietest över 2-3 mikron. Det är möjligt att de kan upptäcka andra typer av partiklar över denna storlek.
B5W LD0101 ser trovärdig ut från detta laboratorietest för att mäta PM10.
Steg 16: Jämförelse av sensorer – Design
Omron-värmaren (ett 100 ohm +/- 2% motstånd!) kan ses om sensorn vänds upp och ner. Designen diskuteras i detalj i Omron: Development of air quality sensor for air purifier . Användningen av konvektion verkar grov men det kan vara en lösning med högre tillförlitlighet jämfört med en mekanisk komponent som en fläkt som har en lång livslängd och en livstid som kan minskas genom att arbeta i en dammig miljö. SPS30-fläkten verkar vara designad för att vara lätt utbytbar utan att öppna höljet. Andra Plantower-modeller har samma designfunktion.
Alla tre sensorerna kommer att vara utsatta för effekterna av hög relativ luftfuktighet som tyvärr felaktigt ökar PM-värdena.
De certifierade sensorerna av referenskvalitet (UK:s DEFRA-lista) som övervakar partiklar använder inte en optisk metod för mätning. Met One BAM 1020 fungerar
- separera och kasta bort partiklar som är större än storleksgränsen från luftenample,
- värma luften för att kontrollera/minska den relativa luftfuktigheten,
- avsättning av partiklarna på en ny sektion av en kontinuerlig brous tejp och
- sedan mäta dämpningen av en beta-strålningskälla av de ackumulerade partiklarna på bandet för att beräkna en bra uppskattning av den totala massan av partiklarna.
En annan vanlig teknik är Tapered Element Oscillering Microbalance (TEOM) som avsätter partiklar på ett utbytbart lter på den fria änden av ett avsmalnande rör som är fäst i andra änden. Den exakta mätningen av svängningsfrekvensen hos det naturligt resonanta röret gör att den extra lilla massan av partiklarna kan beräknas från den minimala variationen i frekvens. Detta tillvägagångssätt är lämpligt för att skapa högre PM-värden.
Steg 17: Gå vidare
När du har ställt in dina sensorer och publicerar data till Adafruit IO, här är några andra idéer att utforska:
- Testa varje rum i ditt hem över tiden och notera aktiviteten och ventilationen. Testa ditt hem när du lagar mat. Testa en grill.
- Använd de tre knapparna på Maker Pi Pico. Dessa är anslutna till GP20, GP21 och GP22 som avsiktligt lämnades oanvända för att möjliggöra knappanvändning.
- Om du bor nära en offentlig övervakningsstation för luftkvalitet, jämför dina data med den.
- Lägg till en display för bevakad användning som visar sensorvärden. SSD1306 är liten, en beställningsbar och enkel att lägga till/använda i CircuitPython. Se Instruktioner: Jordfuktighetsavkänning
- Med Maker Pi Pico för ett exampom dess användning.
- Undersök MQTT-biblioteket för att se om all sensordata kan skickas i en batch. Detta borde vara mer effektivt.
- Integrera på något sätt med den fristående luftkvalitetssensorn IKEA Vindriktning.
- Soren Beyes MQTT-anslutning för Ikea VINDRIKTNING visar hur man lägger till en ESP8266 till sensorn och identifierar partikelsensorn (damm) som "Cubic PM1006-like".
- Ett avancerat projekt skulle vara att ersätta huvudkretskortet med ett ESP32-S2-baserat kort med extra digitala miljösensorer för att skapa en Wi-Fi-aktiverad, CircuitPython-baserad enhet.
- Denna enhet diskuteras på Home Assistant Forum: IKEA Vindriktning Air Quality Sensor.
- LaskaKit producerar ett ESP32-baserat ersättningskretskort för sensorn så att det enkelt kan användas med ESPHome.
- Studera effekterna av att variera utbudet voltage inom de tillåtna intervallen för sensorerna. Detta kan ändra fläkthastigheten eller värmarens temperatur och påverka resultatet.
- Bygg ett väder- och djursäkert hölje med noggrann design för luftintag, utlopp och luftflöde förbi sensorer. Ett paraply tejpat till ett räcke användes för att skydda den öppna, exponerade elektroniken för insamling av data under helgen för den här artikeln.
Relaterade Projekt:
- Costas Vav: Bärbar luftkvalitetssensor
- Pimoroni: En utomhusluftkvalitetsstation med Enviro+ och Luftdaten
- Instruktioner: Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express – den
- Enviro+ FeatherWing inkluderar en kontakt för PMS5003. SPS30 kan användas med i2c-stift och det finns nästan tillräckligt med stift för att använda B5W LD0101 också.
- nRF52840 stöder inte Wi-Fi så detta kan inte användas på egen hand för att publicera data över Internet.
- Adafruit Learn: Luftkvalitetssensor 3D-tryckt hölje . – använder Adafruit Feather M4 med ESP32-baserad Airlift FeatherWing och PMS5003.
- Adafruit Learn: Quickstart IoT – Raspberry Pi Pico RP2040 med WiFi – använder en ESP32-baserad Adafruit AirLift breakout board.
- GitHub: CytronTechnologies/MAKER-PI-PICO Example Code/CircuitPython/IoT – exampkoden för Adafruit IO, Blynk och Thinkspeak.
- Cytron: Air Monitoring Using Mobile Phone – använder en ESP8266-baserad Arduino-sköld för att skicka data från en
- Honeywell HPM32322550 partikelsensor till Blynk, ingen (smart)telefon krävs.
Mellansensorer, dyrare men med bättre förmåga att upptäcka större partikelstorlekar:
- Piera Systems IPS-7100
- Alphasense OPC-N3 och OPC-R2
Ytterligare läsning:
- Sensorer
- Meteorologiska institutet: Laboratorieutvärdering av partikelstorleksselektivitet hos optiska lågkostnadssensorer för partiklar (maj 2020)
- Gough Lui: Review, Teardown: Plantower PMS5003 laserpartikelmonitorsensor inkluderar en jämförelse med Sensirion SPS30.
- Karl Koerner: Hur man öppnar och rengör en PMS 5003 luftsensor
- Met One Instruments, Inc., BAM-1020 EPA TSA Training Video (YouTube) – visar vad som finns inuti och hur det fungerar.
- CITRIS Research Exchange: Sean Wihera (Clarity Movement) talk (YouTube) – föredrag inklusive detaljer om Node-S-sensorn som använder Sensirion SPS30.
- Lagstiftning och organisationer som arbetar med luftkvalitet
- The Air Quality Standards Regulations 2010 (UK)
- Världshälsoorganisationens (WHO) riktlinjer för luftföroreningar
- British Lung Foundation – Luftkvalitet (PM2.5 och NO2)
- Forskning
- Imperial College London: The Indoor-Outdoor Air-Pollution Continuum (YouTube)
- Grundskolebarn samlar in luftkvalitetsdata med ryggsäckar i London 2019:
- Dyson: Spåra föroreningar på skolan. Andas London (YouTube)
- King's College London: Environmental Research Group: The Breathe London Wearables Study
- Atmosphere Journal: Luftföroreningar inomhus från bostadskaminer: Undersöker översvämningen av partiklar i hem under verklig användning
- Nyheter och bloggar
- The Economist: Midnattshimmel – Polens kolröda uppvärmning av hem skapar omfattande föroreningar (januari 2021)
- US NPR: Skydd inuti kanske inte skyddar dig från farorna med vild rök?
- Reuters: Festen är över: Diwali lämnar Delhi väsande i farligt ohälsosam luft
- Pimoroni Blog: The Most Polluted Night of the Year (i Storbritannien)
- Tydlighetsrörelse: Vild brandrök, folkhälsa och miljörättvisa: Bättre
- Beslutsfattande med luftövervakning (YouTube) – presentation och diskussion om luftkvaliteten i västra USA, särskilt runt 2020 vild brandrök.
- Guardian: Smutsig luft påverkar 97 % av hemmen i Storbritannien, visar data
- Partikelövervakning och datalagring
- Nederländerna Rijksinstituut voor Volksgezondheid en Milieu (Nationellt institut för folkhälsa och miljö): Vuurwerkexperiment (Fyrverkeriexperiment) 2018-2019
- Google: Gata för gata: Hur vi kartlägger luftkvaliteten i Europa – gata view bilar samlar in data om partiklar och förorenande gaser.London Air Quality Network
- Breathe London – ett nätverk för att komplettera London Air Quality Network med "en beställningsbar, enkel att installera och underhålla luftkvalitetssensorer för alla", som för närvarande använder Clarity Movement Node-S.
- USA:s ambassad i Peking övervakning av partiklar (Twitter)
- World Air Quality Index – samlar in data från många olika källor med kartor views och historiska data.
- Sensor.Community (tidigare känt som Luftdaten) – "gör världen till en bättre plats genom gemenskapsdriven, öppen miljödata".
- Programvarubibliotek
- Programvarubuggar i ett partikelsensorbibliotek – adafruit_pm25 lider av minst ett av de beskrivna problemen som kräver undantagshantering kring read() för seriell (UART).
- Kurser
- HarvardX: Particulate matter air pollution (YouTube) – fem minuters video från kortkursen EdX: Energy Within Environmental Constraints
Säkerhetskritisk detektering och larm överlåts bäst till kommersiella apparater från välrenommerade leverantörer.
https://www.youtube.com/watch?v=A5R8osNXGyo
Publicering av partikelsensordata till Adafruit IO med Maker Pi Pico och ESP-01S:
Dokument/resurser
![]() |
instructables ESP-01S Publishing Particulate Matter Sensor [pdf] Användarhandbok ESP-01S Publishing Partikelsensor, ESP-01S, Publishing Partikelsensor, Partikelsensor, Matter Sensor |