Indholdsfortegnelse:

Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express: 8 trin
Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express: 8 trin

Video: Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express: 8 trin

Video: Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express: 8 trin
Video: Brug af MS project 2024, Juli
Anonim
Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express

Pimoroni Enviro+ FeatherWing er et bræt fyldt med sensorer designet til at arbejde med Adafruit Feather -serien. Det er et nyttigt sted at starte for alle, der er interesseret i miljøovervågning, atmosfærisk forurening og data -munging. Det har:

  • Bosch BME280 - temperatur-, tryk-, fugtighedsføler;
  • Lite-On LTR-559-lys- og nærhedsføler;
  • SensorTech MiCS -6814 - oxiderende gasser, reducerende gasser og ammoniakføler;
  • Analog mikrofon - måling af støjforurening;
  • Stik til Plantower PMS5003 partikelsensor (medfølger ikke).

Trioen af metaloxidsensorer på MiCS-6814 inkluderer en mindre almindelig sensor til oxiderende gasser. Dette er nyttigt for dets følsomhed over for nitrogendioxid (NO2), et almindeligt forurenende stof i byer og i nærheden af større veje.

Pimoroni anbefaler enten Adafruit

  • Feather M4 Express (120MHz, 192kB ram) eller
  • Feather nRF52840 Express (64MHz, 256kB ram).

NRF52840 blev valgt til denne vejledning, da den understøtter Bluetooth Low Energy (BLE), som giver kortet mulighed for at sende data til en anden enhed.

Feather og FeatherWing leveres begge med uafhængige hanhoveder. Kvindehoveder skal stables brædderne. Denne vejledning viser brugen af "stacking headers", som gør det muligt for Feather board også at blive indsat i et brødbræt, hvilket letter eksperimentering med ekstra sensorer. Overskrifterne skal loddes til brædderne, men dette er rimeligt ligetil.

Enviro+ FeatherWing har en subtil forskel i forhold til sin fætter, Enviro+ Air Quality til Raspberry Pi. FeatherWing-versionen ser ud til at være designet til at fungere med spændinger under 5V, så et enkelt litiumpolymerbatteri (LiPo) producerer 3,7V-4,3V, der kan bruges. Den har en DC-DC-omformer til at levere 5V til PMS5003 (ekstraudstyr), og den kan muligvis drive MiCS-6814 interne varmeapparater individuelt til at håndtere disse lavere spændinger.

Hovedbilledet viser Enviro+ FeatherWing, der viser PM2.5- og PM10 -data fra PMS5003. En Swan Vestas -kamp er blevet ramt halvvejs gennem plottet for at tænde lyset.

En anden artikel dækker planlægning af kuldioxidniveauer med Pimoroni Enviro+ FeatherWing og Adafruit SCD-30.

Tilbehør:

  • Pimoroni Enviro+ FeatherWing - Pimoroni | Adafruit - (et andet lignende bord findes til Raspberry Pi)
  • Adafruit nRF52840 Feather Express - Pimoroni | Adafruit
  • Fjerstabelhoveder - Pimoroni | Adafruit - normale kvindelige headers eller FeatherWing doubler/tripler kan også bruges
  • Lodde
  • Valgfrit: Plantower PMS5003 partikelsensor - Pimoroni | Adafruit

Trin 1: Opgradering af Bootloader

Feather -kortet kan kontrolleres, før det loddes ved at slutte det til en computer ved hjælp af USB. Dette er en nyttig tid til at kontrollere bootloaderen - gamle versioner kan producere forvirrende, men harmløse fejl på Windows.

Dobbeltklik på fjerens nulstillingsknap får et drev kaldet FTHR840BOOT til at blive præsenteret for værtscomputeren. En fil kaldet INFO_UF2. TXT kan åbnes for at inspicere versionen, eksemplet herunder viser indholdet, der angiver version 0.2.6:

F2 Bootloader 0.2.6 lib/nrfx (v1.1.0-1-g096e770) lib/tinyusb (legacy-525-ga1c59649) s140 6.1.1

Model: Adafruit Feather nRF52840 Express Board-ID: NRF52-Bluefruit-v0 Bootloader: s140 6.1.1 Dato: 21. dec 2018

Versioner før 0.2.9 lider af den førnævnte fejl. Den lidt besværlige opgraderingsproces er beskrevet i Adafruit Lær: Introduktion til Adafruit nRF52840 Feather: Update Bootloader og diskuteret i Adafruit Forums: Windows -fejl kopier CircuitPython UF2 til FTHR840BOOT.

Trin 2: Lodning af overskrifterne

Lodning af overskrifter
Lodning af overskrifter
Lodning af overskrifter
Lodning af overskrifter
Lodning af overskrifter
Lodning af overskrifter

Enviro+ FeatherWing skal have sine mandlige overskrifter påsat, og fjer skal have stablet hunhoveder tilsluttet.

En almindelig teknik til at lokalisere stifterne i den korrekte position under lodning er at indsætte dem i et brødbræt. En vis forsigtighed er påkrævet med denne FeatherWing, da picoblade -stikket på undersiden er højere end plastafstandsstykkerne på headeren. Dette kan medføre, at brættet utilsigtet loddes i en vinkel. Billedet ovenfor viser vinklen. Dette løses let ved at hæve overskrifterne ensartet med 2-3 mm (0,1 tommer) fra brødbrættet.

De stablede hunhoveder skal stå vinkelret på brættet. Dette kan opnås ved at placere dem på en plan overflade og sikre, at fjerbrættet presses fast mod dem. Billedet ovenfor viser tryk, der påføres med en blyant med en hjælpende hånd uden for skud, der lægger vægt på blyanten. Nogle reservehoveder giver ekstra hjælp til at opretholde afstanden.

I databladet MiCS-6814 står der:

Sensoren skal reflow loddes i en neutral atmosfære uden loddende fluxdampe. Sensoren må ikke udsættes for høje koncentrationer af organiske opløsningsmidler, silikondampe eller cigaretrøg for at undgå forgiftning af det følsomme lag.

Et lille stykke malertape, der dækker gassensoren, er en klog sikkerhedsforanstaltning under lodning og rengøring af flux. Skærmbeskytteren kan også efterlades på dette tidspunkt for at håndtere de uundgåelige små stænk af flux fra lodning med et jern. Mikrofonen vil også drage fordel af beskyttelse med malertape under enhver oprydning af flux.

De lange stifterækker kan let bøjes, når de fjernes fra et brødbræt eller en anden fatning. Sørg for at undgå at levere tavlen op i den ene ende.

Adafruit har en guide til lodning af stablingshoveder, Pimoroni har en generel loddevejledning, der indeholder overskrifter, og der er en dejlig video på YouTube, der viser, hvordan man lodder overskrifter på et lignende bord, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!

Trin 3: Installation af CircuitPython og kombineret plottereksempel

Installation af CircuitPython og kombineret plottereksempel
Installation af CircuitPython og kombineret plottereksempel

Hvis du ikke er bekendt med CircuitPython, er det først værd at læse Welcome to CircuitPython -guiden.

Installationstrinnene herunder er baseret på pimoroni / EnviroPlus-FeatherWing README og Kom godt i gang-guiden med et senere bibliotek til at tage højde for CircuitPython 6.x.

  1. Installer den nyeste version af CircuitPython (6.0.0 i december 2020) fra https://circuitpython.org/ - denne proces er beskrevet i CircuitPython for Feather nRF52840.
  2. Bekræft installationen ved at oprette forbindelse til den serielle konsol via USB. REPL -prompten viser versionen. Versionen kan også kontrolleres ved at inspicere boot_out.txt på CIRCUITPY -drevet.
  3. Installer disse biblioteker fra et bundt fra https://circuitpython.org/libraries i lib -biblioteket på CIRCUITPY:

    1. adafruit_bus_enhed
    2. adafruit_bme280 (ikke adafruit_bmp280)
    3. adafruit_st7735r (ikke adafruit_st7735)
    4. adafruit_display_text
  4. Installer disse biblioteker fra EnviroPlus-FeatherWing-1.0.zip-filen fra GiHub: pimoroni/EnviroPlus-FeatherWing: Version 1.0 i lib-biblioteket på CIRCUITPY:

    1. i2cdevice (må ikke forveksles med Adafruit's i2c_device bibliotek)
    2. pimoroni_envirowing
    3. pimoroni_ltr559
    4. pimoroni_physical_feather_pins
    5. pimoroni_pms5003
    6. Installer ikke pimoroni_circuitpython_adapter herfra
  5. Installer det nyeste Pimoroni CircuitPython -adapterbibliotek ved at downloade _init_.py -filen til et nyligt oprettet lib/pimoroni_circuitpython_adapter -bibliotek på CIRCUITPY.
  6. Download det kombinerede plottereksempelprogram til CIRCUITPY ved at klikke på Gem link som … på plotters_combined.py
  7. Omdøb eller slet enhver eksisterende code.py -fil på CIRCUITPY, og omdøb derefter plotters_combined.py til code.py. Denne fil køres, når CircuitPython -tolken starter eller genindlæser.

De versioner, der blev brugt til denne vejledning, var:

  • CircuitPython 6.0.0
  • CircuitPython bibliotekspakke adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
  • EnviroPlus-FeatherWing bibliotek Version 1.0
  • pimoroni_circuitpython_adapter bibliotek 9-dec-2020 f062036

Trin 4: Den kombinerede plotter

Den kombinerede plotter
Den kombinerede plotter

Den kombinerede plotter har fire skærme:

  1. Lyd og lys.
  2. PM2.5 og PM10.
  3. Temperatur, tryk og fugtighed.
  4. OX, RØD og NH3.

Partikelskærmbilledet (PM) vises kun, hvis Plantower PMS5003 er tilsluttet. Programmet kontrollerer for dets tilstedeværelse i starten og udskriver denne informationsmeddelelse, hvis den ikke er forbundet:

PMS5003 Læste timeout: Kunne ikke læse start af frame -byte

Du har sandsynligvis ikke en pms5003 tilsluttet, fortsætter uden partikel logning

Plotintervallet er sat til 540 sekunder øverst i programmet. Dette kan justeres for at styre plottet.

Trin 5: Enviro+ FeatherWing Pins

Enviro+ FeatherWing Pins
Enviro+ FeatherWing Pins
Enviro+ FeatherWing Pins
Enviro+ FeatherWing Pins

Enviro+ FeatherWing bruger et stort antal af fjerens nåle. Følgende bruges, navnene i parentes er fra Pimoronis navneskema:

  • A0 (pin5) - MiCS6814 ammoniakgassensor
  • A1 (pin6) - MiCS8614 reducerende gassensor
  • A2 (pin7) - MiCS6814 oxidationsgassensor
  • A3 (pin8) - analog mikrofon
  • A4 (pin9) - MiCS6814 aktiveret
  • D5 (pin19) - kommando til SPI -busskærm
  • D6 (pin20) - SPI bus skærmchip vælger
  • D9 (pin21) - baggrundsbelysning (PWM)
  • D10 (pin22) - PMS5003 aktiver
  • D11 (pin23) - Nulstilling af PMS5003
  • D12 (pin24) - LTR -559 interrupt (understøttes ikke i CircuitPython -biblioteket)
  • SCK (pin11) - SPI -busur
  • MO (pin12) - SPI bus master out slave ind
  • MI (pin13) - SPI bus master i slave ud
  • RX (pin14) - PMS5003 transmitter (modtag af Feather)
  • TX (pin15) - PMS5003 modtage (transmitter fra Feather)
  • SCL (pin18) - I2C ur
  • SDA (pin 17) - I2C -data

Dette efterlader A5, D2/DFU og D13 gratis til brug.

Trin 6: Strømforbrug

Strømforbrug
Strømforbrug

Strømforbruget ligger godt inden for USB -specifikationen, selvom et LiPo -batteri er tilsluttet og genoplades. Brugen er mere relevant til planlægning af et skifte til batteristrøm. Nogle meget omtrentlige målinger af strømmen er:

  • 100mA inaktiv, baggrundsbelysning slukket;
  • 100mA plotter kører, lavt baggrundsbelysning;
  • 120mA plotter kører, baggrundsbelysning høj.

Databladet til Plantower PMS5003 angiver, at strømmen er mindre end 100mA, dette ville være et supplement til ovenstående tal. Brugen af DC-DC-konverter på Enviro+ FeatherWing kan øge dette tal en smule.

Feather nRF52840 Express -kortet har et NeoPixel (RGB LED), men lysstyrkeniveauerne ved standardbrug som en indikator for programtilstand tilføjer kun en lille mængde til forbruget. Selve fjerbrættet er under 10mA alene, FeatherWing er det energisultede bord.

Trin 7: Tilføjelse af Plantower PMS5003 sensor for særlig materie

Tilføjelse af Plantower PMS5003 sensor for særlig materie
Tilføjelse af Plantower PMS5003 sensor for særlig materie
Tilføjelse af Plantower PMS5003 sensor for særlig materie
Tilføjelse af Plantower PMS5003 sensor for særlig materie
Tilføjelse af Plantower PMS5003 sensor for særlig materie
Tilføjelse af Plantower PMS5003 sensor for særlig materie

Met One Instruments BAM 1020 er et almindeligt syn rundt om i verden, der måler partikler i byer. Der findes en række mere overkommelige enheder, og Enviro+ FeatherWing leveres med et stik til Plantower PMS5003 -partikelsensoren.

Pimoroni -bibliotekskoden til denne sensor ser i øjeblikket skrøbelig ud. En enkel og hurtig forbedring er at fange undtagelser i programmet. Programmet plotters_combined.py kan forbedres ved at tilføje dette øverst:

import pimoroni_pms5003

Og udskiftning af denne linje i main while loop

# tag aflæsninger

pms_reading = pms5003.read ()

med:

# tag aflæsninger

prøv: pms_reading = pms5003.read () undtagen pimoroni_pms5003. ChecksumMismatchError: print ("checksum fejl")

Trin 8: Gå videre

Går videre
Går videre

Der er en række områder at udforske, når du har kørt Enviro+ FeatherWing.

  • Tilføjelse af en ekstern temperatursensor. Temperatursensoren i BME280 er udsat for både intern opvarmning og opvarmning fra komponenter i nærheden og er beregnet til at kalibrere de andre BME280 -sensorer. Værdien kan behandles for at give et omtrentligt mål for omgivende lufttemperatur, men der er masser af overkommelige, overlegne eksterne muligheder.
  • Kalibrering af sensorerne. Trykket er let ved hjælp af vejrobservationer eller kortsigtede prognoser (disse vil være ved 0 fod amsl), resten er vanskeligt.
  • Korrigering af PMS5003 output for relativ luftfugtighed. En formel præsenteres på side 8 i PDF om EPA: PurpleAir PM2.5 U. S. Rettelse og ydeevne under røgbegivenheder 4/2020
  • Tilføjelse af kode til udsendelse af sensordata over Bluetooth Low Energy til andre enheder.
  • Undersøger hvordan man kan minimere strømforbruget. Nogle af sensorerne har aktiveringslinjer, disse fjerner muligvis strøm fra sensorerne eller sætter dem i en lav strømtilstand. For sensorer med en opvarmningstid er periodisk prøveudtagning muligvis ikke praktisk.
  • Køb, tilpasning eller fremstilling af etui egnet til montering udenfor med omhyggeligt designet intern luftstrøm og passende forholdsregler for direkte sollys. SensorTech MiCS-6814 gassensoren fungerer bedst med en konstant luftstrøm med lav hastighed hen over den.
  • Undersøg hvordan vejrforholdene påvirker forureningen på jorden. Tip: inversioner er betydelige.
  • Konvertering til batteristrøm eller solceller med batteristrøm. Solenergi er mere udfordrende end blot at tilføje et fotovoltaisk solpanel, se afsnittet Design Notes i Adafruit Learn: USB, DC & Solar Lipoly Charger.
  • Tilføjelse af andre sensorer til måling af almindelige forurenende stoffer som ozon (O3) og svovldioxid (SO2) eller drivhusgasser som kuldioxid (CO2). Nogle få sensorer måler "eCO2" og er ikke egnede til måling af atmosfærisk CO2. Adafruit sælger nu Sensirion SCD-30 NDIR CO2-sensor til stor værdi på et bræt med STEMMA QT i2c-stik.
  • Hvis du vil undersøge afsendelse af data over internettet ved hjælp af Wi-Fi, ser FeatherS2-kortet med ESP32-S2-mikrokontroller ud til at være kompatibelt med Enviro+ FeatherWing. Der er en problematisk begrænsning med ESP32-S2 analog til digitale omformere (ADC), som forhindrer korrekt måling af gassensorerne. Se Adafruit Forums: Feather ADC sammenligning inklusive 2.6V begrænset ESP32-S2 for mere information.

Relaterede projekter:

  • Adafruit Learn: Sammenligning og eksperimentering med brændbare gassensorer
  • Adafruit Learn: TMP36 temperatursensor

Yderligere læsning:

  • Verdenssundhedsorganisationens (WHO) retningslinjer for luftforurening
  • British Lung Foundation - luftkvalitet (PM2.5 og NO2)
  • Breathe London-et netværk, der supplerer London Air Quality Network med "overkommelige, nemme at installere og vedligeholde luftkvalitetssensorer for alle", der i øjeblikket bruger Clarity Node-S.
  • World Air Quality Index - indsamler data fra mange forskellige kilder med kortvisninger og historiske data.
  • Atmosphere Journal: Indendørs luftforurening fra boligovne: Undersøgelse af oversvømmelse af partikler i hjem under brug i virkeligheden - dette bruger Raspberry Pi -versionen af Enviro+ -kortet.
  • Lovgivning: Air Quality Standards Regulations 2010 (UK)
  • Pimoroni Blog: Årets mest forurenede nat (i Storbritannien)
  • The Economist: Midnight sky - Polens kulfyrede boligopvarmning skaber omfattende forurening (januar 2021)
  • BBC News: Trafikstøj forringer sangfugles evner (støjforurening)
  • Softwarebugs i et partikelformingssensorbibliotek - et kig på den omhu, der kræves for robust at analysere PMS5003 seriel protokol.