Innholdsfortegnelse:

Bruke Pimoroni Enviro+ FeatherWing With Adafruit Feather NRF52840 Express: 8 trinn
Bruke Pimoroni Enviro+ FeatherWing With Adafruit Feather NRF52840 Express: 8 trinn

Video: Bruke Pimoroni Enviro+ FeatherWing With Adafruit Feather NRF52840 Express: 8 trinn

Video: Bruke Pimoroni Enviro+ FeatherWing With Adafruit Feather NRF52840 Express: 8 trinn
Video: Raspberry Pi с Pi Bakery и Scroll PHat 2024, Juli
Anonim
Bruke Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Bruke Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Bruke Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Bruke Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Bruke Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Bruke Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express

Pimoroni Enviro+ FeatherWing er et brett pakket med sensorer designet for å fungere med Adafruit Feather -serien. Det er et nyttig sted å begynne for alle som er interessert i miljøovervåking, atmosfærisk forurensning og dataundersøkelse. Den har:

  • Bosch BME280 - sensor for temperatur, trykk, fuktighet;
  • Lite-On LTR-559-lys- og nærhetssensor;
  • SensorTech MiCS -6814 - oksiderende gasser, reduserende gasser og ammoniakkføler;
  • Analog mikrofon - måling av støyforurensning;
  • Kontakt for Plantower PMS5003 partikkelsensor (ikke inkludert).

Trioen med metalloksydsensorer på MiCS-6814 inkluderer en mindre vanlig sensor for oksiderende gasser. Dette er nyttig for følsomheten for nitrogendioksid (NO2), et forurensende stoff som er vanlig i byer og i nærheten av større veier.

Pimoroni anbefaler enten Adafruit

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

NRF52840 ble valgt for denne veiledningen ettersom den støtter Bluetooth Low Energy (BLE) som gir kortet potensial til å sende data til en annen enhet.

The Feather og FeatherWing kommer begge med frittstående mannlige overskrifter. Kvinneoverskrifter kreves for å stable brettene. Denne veiledningen viser bruken av "stacking headers" som gjør at fjærbrettet også kan settes inn i et brødbrett som letter eksperimentering med ekstra sensorer. Overskriftene må loddes til brettene, men dette er rimelig greit.

Enviro+ FeatherWing har en subtil forskjell i forhold til sin fetter, Enviro+ Air Quality for Raspberry Pi. FeatherWing-versjonen ser ut til å være designet for å fungere med spenninger under 5V slik at et enkelt litiumpolymer (LiPo) batteri som produserer 3,7V-4,3V kan brukes. Den har en DC-DC-omformer for å gi 5V for PMS5003 (tilleggsutstyr), og den kan drive MiCS-6814 interne varmeovner individuelt for å håndtere disse lavere spenningene.

Hovedbildet viser Enviro+ FeatherWing som viser PM2.5 og PM10 data fra PMS5003. En Swan Vestas -kamp har blitt slått halvveis i tomten for å tenne lyset.

En annen artikkel dekker planlegging av karbondioksidnivåer med Pimoroni Enviro+ FeatherWing og Adafruit SCD-30.

Rekvisita:

  • Pimoroni Enviro+ FeatherWing - Pimoroni | Adafruit - (et annet lignende bord finnes for Raspberry Pi)
  • Adafruit nRF52840 Feather Express - Pimoroni | Adafruit
  • Fjærstabelhoder - Pimoroni | Adafruit - normale hunnhoder eller FeatherWing dobler/tripler kan også brukes
  • Lodding
  • Valgfritt: Plantower PMS5003 partikkelsensor - Pimoroni | Adafruit

Trinn 1: Oppgradering av oppstartslaster

Fjærbrettet kan kontrolleres før det loddes ved å koble det til en datamaskin ved hjelp av USB. Dette er en nyttig tid for å sjekke oppstartslaster - gamle versjoner kan gi forvirrende, men ufarlige feil på Windows.

Hvis du dobbeltklikker på fjærens tilbakestillingsknapp, blir en stasjon kalt FTHR840BOOT presentert for vertsmaskinen. En fil som heter INFO_UF2. TXT kan åpnes for å inspisere versjonen, eksemplet nedenfor viser innholdet som angir versjon 0.2.6:

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

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

Versjoner før 0.2.9 lider av den nevnte feilen. Den litt vanskelige oppgraderingsprosessen er beskrevet i Adafruit Lær: Vi introduserer Adafruit nRF52840 Feather: Update Bootloader og diskuteres i Adafruit Forums: Windows -feil kopierer CircuitPython UF2 til FTHR840BOOT.

Trinn 2: Lodding av topptekstene

Lodding av topptekstene
Lodding av topptekstene
Lodding av topptekstene
Lodding av topptekstene
Lodding av topptekstene
Lodding av topptekstene

Enviro+ FeatherWing trenger sine mannlige overskrifter festet, og fjæren trenger stablet kvinnelige overskrifter.

En vanlig teknikk for å finne pinnene i riktig posisjon mens lodding er å sette dem inn i et brødbrett. Noen forsiktighet er nødvendig med denne FeatherWing, ettersom picoblade -kontakten på undersiden er høyere enn plastavstandsstykkene på toppteksten. Dette kan føre til at brettet blir utilsiktet loddet i en vinkel. Bildet over viser vinkelen. Dette løses enkelt ved å heve topptekstene jevnt med 2-3 mm (0,1 tommer) fra brødbrettet.

Hullene for stabling av hunder må stå vinkelrett på brettet. Dette kan oppnås ved å plassere dem på en flat overflate og sikre at fjærbrettet presses godt mot dem. Bildet ovenfor viser at trykket påføres med en blyant med en hjelpende hånd som legger vekt på blyanten. Noen reservehoder gir ekstra hjelp til å opprettholde avstanden.

Databladet MiCS-6814 sier:

Sensoren må tilbakestrømmes loddet i en nøytral atmosfære uten loddefluksdamp. Sensoren må ikke utsettes for høye konsentrasjoner av organiske løsningsmidler, silikondamp eller sigarettrøyk for å unngå forgiftning av det følsomme laget.

Et lite stykke maskeringstape som dekker gassensoren er en klok forhåndsregel under lodding og rengjøring av fluss. Skjermbeskytteren kan også stå på på dette stadiet for å håndtere de uunngåelige små sprutene av fluss fra lodding med et jern. Mikrofonen vil også dra nytte av beskyttelse med maskeringstape under rengjøring av fluks.

De lange pinnene kan lett bøyes når du fjerner dem fra et brødbrett eller en annen fatning. Vær forsiktig så du ikke får brettet opp i den ene enden.

Adafruit har en veiledning om loddingstabelhoder, Pimoroni har en generell loddeguide som inkluderer overskrifter, og det er en fin video på YouTube som viser hvordan du lodder overskrifter på et lignende stilbrett, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!

Trinn 3: Installere CircuitPython og kombinert plottereksempel

Installere CircuitPython og kombinert plottereksempel
Installere CircuitPython og kombinert plottereksempel

Hvis du ikke er kjent med CircuitPython, er det verdt å lese Welcome to CircuitPython -guiden først.

Installasjonstrinnene nedenfor er basert på pimoroni / EnviroPlus-FeatherWing README og Komme i gang-guiden med et senere bibliotek for CircuitPython 6.x.

  1. Installer den nyeste versjonen av CircuitPython (6.0.0 i desember 2020) fra https://circuitpython.org/ - denne prosessen er beskrevet i CircuitPython for Feather nRF52840.
  2. Bekreft installasjonen ved å koble til seriekonsollen via USB. REPL -ledeteksten viser versjonen. Versjonen kan også kontrolleres ved å inspisere boot_out.txt på CIRCUITPY -stasjonen.
  3. Installer disse bibliotekene fra en bunt fra https://circuitpython.org/libraries i lib -katalogen på CIRCUITPY:

    1. adafruit_bus_enhet
    2. adafruit_bme280 (ikke adafruit_bmp280)
    3. adafruit_st7735r (ikke adafruit_st7735)
    4. adafruit_display_text
  4. Installer disse bibliotekene fra EnviroPlus-FeatherWing-1.0.zip-filen fra GiHub: pimoroni/EnviroPlus-FeatherWing: versjon 1.0 i lib-katalogen på CIRCUITPY:

    1. i2cdevice (ikke å forveksle med Adafruits i2c_device -bibliotek)
    2. pimoroni_envirowing
    3. pimoroni_ltr559
    4. pimoroni_physical_feather_pins
    5. pimoroni_pms5003
    6. Ikke installer pimoroni_circuitpython_adapter herfra
  5. Installer det nyeste Pimoroni CircuitPython -adapterbiblioteket ved å laste ned _init_.py -filen til en nyopprettet lib/pimoroni_circuitpython_adapter -katalog på CIRCUITPY.
  6. Last ned det kombinerte plottereksempelprogrammet til CIRCUITPY ved å klikke Lagre lenke som … på plotters_combined.py
  7. Gi nytt navn til eller slett eksisterende code.py -filer på CIRCUITPY, og gi nytt navn til plotters_combined.py til code.py. Denne filen kjøres når CircuitPython -tolken starter eller lastes inn på nytt.

Versjonene som ble brukt for denne guiden var:

  • CircuitPython 6.0.0
  • CircuitPython bibliotekpakke adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
  • EnviroPlus-FeatherWing bibliotek versjon 1.0
  • pimoroni_circuitpython_adapter library 9-des-2020 f062036

Trinn 4: Den kombinerte plotteren

Den kombinerte plotteren
Den kombinerte plotteren

Den kombinerte plotteren har fire skjermer:

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

Skjermbildet for partikler (PM) vises bare hvis Plantower PMS5003 er festet. Programmet ser etter tilstedeværelsen ved starten og skriver ut denne informasjonsmeldingen hvis den ikke er koblet til:

PMS5003 Lesetidsavbrudd: Kunne ikke lese starten på rammebyte

Du har sannsynligvis ikke en pms5003 tilkoblet, og fortsetter uten partikkel logging

Plottintervallet er satt til 540 sekunder øverst i programmet. Dette kan justeres for å kontrollere tomtehastigheten.

Trinn 5: Enviro+ FeatherWing Pins

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

Enviro+ FeatherWing bruker et stort antall av fjærpinnene. Følgende brukes, navnene i parentes er fra Pimoronis navneopplegg:

  • A0 (pin5) - MiCS6814 ammoniakkgassensor
  • A1 (pin6) - MiCS8614 reduserende gassføler
  • A2 (pin7) - MiCS6814 oksidasjonsgassensor
  • A3 (pin8) - analog mikrofon
  • A4 (pin9) - MiCS6814 aktivere
  • D5 (pin19) - SPI -bussskjermkommando
  • D6 (pin20) - Velg SPI -bussskjermbrikke
  • D9 (pin21) - bakgrunnsbelysning (PWM)
  • D10 (pin22) - PMS5003 aktivere
  • D11 (pin23) - PMS5003 tilbakestilt
  • D12 (pin24) - LTR -559 interrupt (støttes ikke i CircuitPython -biblioteket)
  • SCK (pin11) - SPI -bussur
  • MO (pin12) - SPI buss master ut slave inn
  • MI (pin13) - SPI -bussmester i slaveutgang
  • RX (pin14) - PMS5003 -sending (motta av Feather)
  • TX (pin15) - PMS5003 mottak (overføring fra Feather)
  • SCL (pin18) - I2C -klokke
  • SDA (pin 17) - I2C -data

Dette gjør at A5, D2/DFU og D13 er fri for bruk.

Trinn 6: Strømforbruk

Strømforbruk
Strømforbruk

Strømforbruket ligger godt innenfor USB -spesifikasjonen, selv om et LiPo -batteri er festet og lades. Bruken er mer relevant for å planlegge et skifte til batteristrøm. Noen svært omtrentlige målinger av strømmen er:

  • 100mA inaktiv, bakgrunnsbelysning av;
  • 100mA plotter kjører, lav belysning;
  • 120mA plotter kjører, høy bakgrunnsbelysning.

Databladet for Plantower PMS5003 sier at strømmen er mindre enn 100mA, dette kommer i tillegg til tallene ovenfor. Bruken av DC-DC-omformer på Enviro+ FeatherWing kan øke dette tallet noe.

Feather nRF52840 Express -kortet har en NeoPixel (RGB LED), men lysstyrkenivået for standardbruk som en indikator på programtilstand gir bare en liten mengde til forbruket. Selve fjærbrettet er under 10mA alene, FeatherWing er det kraftsultne brettet.

Trinn 7: Legge til Plantower PMS5003 sensor for spesiell materie

Legger til Plantower PMS5003 sensor for spesiell materie
Legger til Plantower PMS5003 sensor for spesiell materie
Legger til Plantower PMS5003 sensor for spesiell materie
Legger til Plantower PMS5003 sensor for spesiell materie
Legger til Plantower PMS5003 sensor for spesiell materie
Legger til Plantower PMS5003 sensor for spesiell materie

Met One Instruments BAM 1020 er et vanlig syn rundt om i verden som måler partikler i byer. Det finnes en rekke rimeligere enheter, og Enviro+ FeatherWing leveres med en kontakt for Plantower PMS5003 partikkelsensor.

Pimoroni -bibliotekskoden for denne sensoren ser for øyeblikket skjør ut. En enkel og rask forbedring er å fange unntak i programmet. Programmet plotters_combined.py kan forbedres ved å legge dette til øverst:

importer pimoroni_pms5003

Og erstatte denne linjen i hoved mens loop

# ta avlesninger

pms_reading = pms5003.read ()

med:

# ta avlesninger

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

Trinn 8: Gå videre

Gå videre
Gå videre

Det er en rekke områder å utforske når du har kjørt Enviro+ FeatherWing.

  • Legger til en ekstern temperatursensor. Temperatursensoren i BME280 er utsatt for både intern oppvarming og oppvarming fra komponenter i nærheten og er ment å kalibrere de andre BME280 -sensorene. Verdien kan behandles for å gi et omtrentlig mål på omgivelsestemperaturen, men det er mange rimelige, overlegne eksterne alternativer.
  • Kalibrering av sensorene. Trykket er enkelt ved hjelp av værobservasjoner eller kortsiktige prognoser (disse vil være 0 ft amsl), resten er vanskelig.
  • Korrigere PMS5003 -utgangen for relativ fuktighet. En formel presenteres på side 8 i PDF om EPA: PurpleAir PM2.5 US Correction and Performance during Smoke Events 4/2020
  • Legger til kode for å kringkaste sensordata over Bluetooth Low Energy til andre enheter.
  • Undersøker hvordan du kan minimere strømforbruket. Noen av sensorene har aktiveringslinjer, disse kan fjerne strøm fra sensorene eller sette dem i en lav effektmodus. For sensorer med oppvarmingstid er periodisk prøvetaking kanskje ikke praktisk.
  • Kjøpe, tilpasse eller lage etui egnet for montering ute med nøye designet intern luftstrøm og passende forholdsregler for direkte sollys. SensorTech MiCS-6814 gassensoren fungerer best med en konstant luftstrøm med lav hastighet over den.
  • Undersøk hvordan værforhold påvirker forurensning på bakkenivå. Hint: inversjoner er betydelige.
  • Konvertering til batteristrøm eller solenergi med batteristrøm. Solkraft er mer utfordrende enn å bare legge til et solcellepanel, se Design Notes -delen i Adafruit Learn: USB, DC og Solar Lipoly Charger.
  • Legge til andre sensorer for å måle vanlige forurensninger som ozon (O3) og svoveldioksid (SO2) eller klimagasser som karbondioksid (CO2). Noen få sensorer måler "eCO2" og er ikke egnet for måling av atmosfærisk CO2. Adafruit selger nå den rimelige Sensirion SCD-30 NDIR CO2-sensoren på et brett med STEMMA QT i2c-kontakter.
  • Hvis du vil undersøke sending av data over Internett ved hjelp av Wi-Fi, ser det ut til at FeatherS2-kortet med ESP32-S2 mikrokontroller er kompatibelt med Enviro+ FeatherWing. Det er en problematisk begrensning med ESP32-S2 analog til digital omformere (ADC) som forhindrer riktig måling av gassensorene. Se Adafruit Forums: Feather ADC-sammenligning inkludert 2.6V begrenset ESP32-S2 for mer informasjon.

Relaterte prosjekter:

  • Adafruit Learn: Sammenligning og eksperimentering med brannfarlige gassensorer
  • Adafruit Learn: TMP36 temperatursensor

Videre lesning:

  • Verdens helseorganisasjon (WHO) Retningslinjer for luftforurensning
  • British Lung Foundation - luftkvalitet (PM2.5 og NO2)
  • Breathe London-et nettverk for å supplere London Air Quality Network med "rimelige, enkle å installere og vedlikeholde luftkvalitetssensorer for alle", som for tiden bruker Clarity Node-S.
  • World Air Quality Index - samler inn data fra mange forskjellige kilder med kartvisninger og historiske data.
  • Atmosphere Journal: Innendørs luftforurensning fra boligovner: Undersøkelse av oversvømmelse av partikler i hjem under bruk i virkeligheten - dette bruker Raspberry Pi -versjonen av Enviro+ -kortet.
  • Lovgivning: Air Quality Standards Regulations 2010 (Storbritannia)
  • Pimoroni Blog: Årets mest forurensede natt (i Storbritannia)
  • The Economist: Midnight sky - Polens kullfyrte boligoppvarming skaper utbredt forurensning (januar 2021)
  • BBC News: Trafikkstøy svekker sangfuglenes evner (støyforurensning)
  • Software Bugs in a Particulate Matter Sensor Library - en titt på forsiktigheten som kreves for å analysere PMS5003 seriell protokoll på en robust måte.