Innehållsförteckning:

Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express: 8 steg
Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express: 8 steg

Video: Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express: 8 steg

Video: Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express: 8 steg
Video: Bouw en programmeer een ventilator met je Microbit 2024, Juli
Anonim
Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express
Använda Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express

Pimoroni Enviro+ FeatherWing är en bräda full av sensorer utformade för att fungera med Adafruit Feather -serien. Det är ett användbart ställe att börja för alla som är intresserade av miljöövervakning, atmosfäriska föroreningar och data -munging. Den har:

  • Bosch BME280 - sensor för temperatur, tryck, fuktighet;
  • Lite-On LTR-559-ljus- och närhetssensor;
  • SensorTech MiCS -6814 - oxiderande gaser, reducerande gaser och ammoniaksensor;
  • Analog mikrofon - mätning av bullerföroreningar;
  • Anslutning för Plantower PMS5003 partikelsensor (ingår ej).

Trion av metalloxidsensorer på MiCS-6814 inkluderar en mindre vanlig sensor för oxiderande gaser. Detta är användbart för dess känslighet för kvävedioxid (NO2), en förorening som är vanlig i städer och nära större vägar.

Pimoroni rekommenderar antingen Adafruit

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

NRF52840 valdes för den här guiden eftersom den stöder Bluetooth Low Energy (BLE) vilket ger kortet möjlighet att skicka data till en annan enhet.

Feather och FeatherWing kommer båda med fästade manliga rubriker. Kvinnliga rubriker krävs för att stapla brädorna. Den här guiden visar användningen av "staplingshuvuden" som gör att fjäderbrädan också kan sättas in i en brödbräda för att underlätta experiment med extra sensorer. Rubrikerna måste lödas till brädorna men detta är ganska enkelt.

Enviro+ FeatherWing har en subtil skillnad jämfört med sin kusin, Enviro+ Air Quality för Raspberry Pi. FeatherWing-versionen verkar vara konstruerad för att fungera med spänningar under 5V så att ett enda litiumpolymer (LiPo) batteri som producerar 3,7V-4,3V kan användas. Den har en DC-DC-omvandlare som ger 5V för PMS5003 (tillval) och den kan driva MiCS-6814 interna värmare individuellt för att hantera dessa lägre spänningar.

Huvudbilden visar Enviro+ FeatherWing som visar PM2.5- och PM10 -data från PMS5003. En Swan Vestas -match har träffats halvvägs genom tomten för att tända ljuset.

En andra artikel behandlar planering av koldioxidnivåer med Pimoroni Enviro+ FeatherWing och Adafruit SCD-30.

Tillbehör:

  • Pimoroni Enviro+ FeatherWing - Pimoroni | Adafruit - (en annan liknande tavla finns för Raspberry Pi)
  • Adafruit nRF52840 Feather Express - Pimoroni | Adafruit
  • Fjäderstaplingshuvuden - Pimoroni | Adafruit - normala kvinnliga headers eller FeatherWing -dubblare/tripler kan också användas
  • Löda
  • Valfritt: Plantower PMS5003 partikelsensor - Pimoroni | Adafruit

Steg 1: Uppgradera startladdaren

Feather -kortet kan kontrolleras innan det löds genom att ansluta det till en dator med USB. Detta är en användbar tid för att kontrollera startladdaren - gamla versioner kan ge förvirrande men ofarliga fel på Windows.

Dubbelklicka på fjäderns återställningsknapp gör att en enhet som heter FTHR840BOOT presenteras för värddatorn. En fil som heter INFO_UF2. TXT kan öppnas för att inspektera versionen, exemplet nedan visar innehållet som anger 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

Modell: Adafruit Feather nRF52840 Express Board-ID: NRF52-Bluefruit-v0 Bootloader: s140 6.1.1 Datum: 21 dec 2018

Versioner före 0.2.9 lider av ovannämnda bugg. Den lite jobbiga uppgraderingsprocessen beskrivs i Adafruit Learn: Presentation av Adafruit nRF52840 Feather: Update Bootloader och diskuteras i Adafruit Forums: Windows -fel kopierar CircuitPython UF2 till FTHR840BOOT.

Steg 2: Lödning av rubrikerna

Lödning av rubrikerna
Lödning av rubrikerna
Lödning av rubrikerna
Lödning av rubrikerna
Lödning av rubrikerna
Lödning av rubrikerna

Enviro+ FeatherWing behöver sina manliga sidhuvuden fästa och fjädern behöver stapla honhuvudena.

En vanlig teknik för att lokalisera stiften i rätt position under lödning är att sätta in dem i en brödbräda. Viss försiktighet krävs med denna FeatherWing eftersom picoblade -kontakten på undersidan är högre än plastdistanserna på huvudet. Detta kan göra att brädan oavsiktligt löds i en vinkel. Bilden ovan visar vinkeln. Detta löses enkelt genom att lyfta sidhuvudet jämnt med 2-3 mm (0,1 tum) från brödbrädan.

Staplingshonhuvudena måste vara vinkelräta mot brädet. Detta kan uppnås genom att placera dem på en plan yta och se till att fjäderbrädan pressas ordentligt mot dem. Bilden ovan visar att trycket appliceras med en penna med hjälp av en handskyddad enhet som lägger vikt på pennan. Vissa reservhuvuden ger ytterligare hjälp med att behålla avståndet.

I databladet MiCS-6814 står det:

Sensorn måste återflödas i en neutral atmosfär utan lödningsflöden. Sensorn får inte utsättas för höga koncentrationer av organiska lösningsmedel, silikonångor eller cigarettrök för att undvika förgiftning av det känsliga lagret.

En liten bit maskeringstejp som täcker gassensorn är en klok försiktighetsåtgärd vid lödning och flussrengöring. Skärmskyddet kan också lämnas kvar i detta skede för att hantera de oundvikliga små flaskstänk från lödning med ett järn. Mikrofonen skulle också dra nytta av skydd med maskeringstejp under varje flussrensning.

De långa pinnraderna kan enkelt böjas när du tar bort dem från en brödbräda eller annat uttag. Var försiktig så att du inte lyfter upp brädan i ena änden.

Adafruit har en guide om lödningsstaplingshuvuden, Pimoroni har en allmän lödguide som innehåller rubriker och det finns en trevlig video på YouTube som visar hur man lödar rubriker på en liknande bräda, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!

Steg 3: Installera CircuitPython och Combined Plotter Exempel

Installera exempel på CircuitPython och kombinerad plotter
Installera exempel på CircuitPython och kombinerad plotter

Om du inte är bekant med CircuitPython är det värt att läsa Welcome to CircuitPython -guiden först.

Installationsstegen nedan är baserade på pimoroni / EnviroPlus-FeatherWing README och guiden Komma igång med ett senare bibliotek för CircuitPython 6.x.

  1. Installera den senaste versionen av CircuitPython (6.0.0 i december 2020) från https://circuitpython.org/ - denna process beskrivs i CircuitPython för Feather nRF52840.
  2. Verifiera installationen genom att ansluta till seriekonsolen via USB. REPL -prompten visar versionen. Versionen kan också kontrolleras genom att inspektera boot_out.txt på CIRCUITPY -enheten.
  3. Installera dessa bibliotek från ett paket från https://circuitpython.org/libraries i lib -katalogen på CIRCUITPY:

    1. adafruit_bus_enhet
    2. adafruit_bme280 (inte adafruit_bmp280)
    3. adafruit_st7735r (inte adafruit_st7735)
    4. adafruit_display_text
  4. Installera dessa bibliotek från EnviroPlus-FeatherWing-1.0.zip-filen från GiHub: pimoroni/EnviroPlus-FeatherWing: version 1.0 i lib-katalogen på CIRCUITPY:

    1. i2cdevice (får inte förväxlas med Adafruits i2c_device -bibliotek)
    2. pimoroni_envirowing
    3. pimoroni_ltr559
    4. pimoroni_physical_feather_pins
    5. pimoroni_pms5003
    6. Installera inte pimoroni_circuitpython_adapter härifrån
  5. Installera det senaste Pimoroni CircuitPython -adapterbiblioteket genom att ladda ner _init_.py -filen till en nyskapad lib/pimoroni_circuitpython_adapter -katalog på CIRCUITPY.
  6. Ladda ner det kombinerade plotterexempelprogrammet till CIRCUITPY genom att klicka på Spara länk som … på plotters_combined.py
  7. Byt namn på eller ta bort befintlig code.py -fil på CIRCUITPY och byt sedan namn på plotters_combined.py till code.py. Den här filen körs när CircuitPython -tolk startar eller laddar om.

De versioner som användes för den här guiden var:

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

Steg 4: Den kombinerade plotteren

Den kombinerade plotteren
Den kombinerade plotteren

Den kombinerade plotteren har fyra skärmar:

  1. Ljud och ljus.
  2. PM2.5 och PM10.
  3. Temperatur, tryck och luftfuktighet.
  4. OX, RÖD och NH3.

Partikelskärmen (PM) visas bara om Plantower PMS5003 är ansluten. Programmet kontrollerar om det finns närvarande i början och skriver ut detta informationsmeddelande om det inte är anslutet:

PMS5003 Läs timeout: Det gick inte att läsa start av rambyte

Du har förmodligen inte en pms5003 ansluten, fortsätter utan partikelloggning

Plottintervallet är satt till 540 sekunder högst upp i programmet. Detta kan justeras för att styra tomtfrekvensen.

Steg 5: Enviro+ FeatherWing Pins

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

Enviro+ FeatherWing använder ett stort antal fjädernålar. Följande används, namnen inom parentes är från Pimoronis namngivningsschema:

  • A0 (pin5) - MiCS6814 ammoniakgassensor
  • A1 (pin6) - MiCS8614 reducerande gassensor
  • A2 (pin7) - MiCS6814 sensor för oxiderande gas
  • A3 (pin8) - analog mikrofon
  • A4 (pin9) - MiCS6814 aktivera
  • D5 (pin19) - SPI -buss skärmkommando
  • D6 (pin20) - Välj SPI -buss skärmchip
  • D9 (pin21) - bakgrundsbelysning (PWM)
  • D10 (pin22) - PMS5003 aktivera
  • D11 (pin23) - PMS5003 återställs
  • D12 (pin24) - LTR -559 -avbrott (stöds inte i CircuitPython -biblioteket)
  • SCK (pin11) - SPI -bussur
  • MO (pin12) - SPI buss master out slav in
  • MI (pin13) - SPI -bussmästare i slavutgång
  • RX (pin14) - PMS5003 -sändning (mottagning av Feather)
  • TX (pin15) - PMS5003 mottagning (sändning från Feather)
  • SCL (pin18) - I2C -klocka
  • SDA (stift 17) - I2C -data

Detta gör att A5, D2/DFU och D13 är fria att använda.

Steg 6: Strömförbrukning

Eneörbrukning
Eneörbrukning

Strömförbrukningen ligger väl inom USB -specifikationen även om ett LiPo -batteri är anslutet och laddas. Användningen är mer relevant för att planera en övergång till batteriström. Några mycket ungefärliga mätningar av strömmen är:

  • 100mA inaktiv, bakgrundsbelysning av;
  • 100mA plotter körs, låg bakgrundsbelysning;
  • 120mA plotter kör, motljus hög.

Databladet för Plantower PMS5003 anger att strömmen är mindre än 100mA, detta skulle vara ett tillägg till ovanstående siffror. Användningen av DC-DC-omvandlare på Enviro+ FeatherWing kan öka detta antal något.

Feather nRF52840 Express -kortet har en NeoPixel (RGB LED) men ljusstyrkan för dess standardanvändning som en indikator på programstatus lägger bara till en liten mängd till förbrukningen. Själva fjäderbrädet är under 10mA på egen hand, FeatherWing är det krafthungriga kortet.

Steg 7: Lägga till Plantower PMS5003 Sensor för särskild materia

Lägga till Plantower PMS5003 sensor för särskild materia
Lägga till Plantower PMS5003 sensor för särskild materia
Lägga till Plantower PMS5003 sensor för särskild materia
Lägga till Plantower PMS5003 sensor för särskild materia
Lägga till Plantower PMS5003 sensor för särskild materia
Lägga till Plantower PMS5003 sensor för särskild materia

Met One Instruments BAM 1020 är en vanlig syn runt om i världen som mäter partiklar i städer. Det finns en rad billigare enheter och Enviro+ FeatherWing levereras med en kontakt för Plantower PMS5003 partikelsensor.

Pimoroni -bibliotekskoden för den här sensorn verkar för närvarande bräcklig. En enkel och snabb förbättring är att fånga undantag i programmet. Programmet plotters_combined.py kan förbättras genom att lägga till detta högst upp:

importera pimoroni_pms5003

Och byter ut den här raden i huvudsak medan loop

# ta avläsningar

pms_reading = pms5003.read ()

med:

# ta avläsningar

försök: pms_reading = pms5003.read () utom pimoroni_pms5003. ChecksumMismatchError: print ("checksumfel")

Steg 8: Gå vidare

Går längre
Går längre

Det finns ett antal områden att utforska när du har Enviro+ FeatherWing igång.

  • Lägger till en extern temperaturgivare. Temperatursensorn i BME280 utsätts för både intern uppvärmning och uppvärmning från närliggande komponenter och är avsedd att kalibrera de andra BME280 -sensorerna. Värdet kan bearbetas för att ge ett ungefärligt mått på omgivningens lufttemperatur men det finns gott om överkomliga, överlägsna externa alternativ.
  • Kalibrering av sensorerna. Trycket är lätt med hjälp av väderobservationer eller kortsiktiga prognoser (dessa kommer att vara 0 ft amsl), resten är svåra.
  • Korrigering av PMS5003 -utgången för relativ luftfuktighet. En formel presenteras på sidan 8 i PDF om EPA: PurpleAir PM2.5 USA: s korrigering och prestanda under rökhändelser 4/2020
  • Lägga till kod för att sända sensordata över Bluetooth Low Energy till andra enheter.
  • Undersöker hur man minimerar strömförbrukningen. Några av sensorerna har aktiveringsledningar, dessa kan ta bort ström från sensorerna eller sätta dem i ett lågeffektläge. För sensorer med en uppvärmningstid är periodisk provtagning kanske inte praktisk.
  • Att köpa, anpassa eller göra ett fodral lämpligt för montering utomhus med noggrant utformat internt luftflöde och lämpliga försiktighetsåtgärder för direkt solljus. SensorTech MiCS-6814 gassensorn fungerar bäst med ett konstant, lågt flöde av luft över den.
  • Undersöker hur väderförhållanden påverkar föroreningar på marknivå. Tips: inversioner är betydande.
  • Konvertering till batteri eller solceller med batteri. Solenergi är mer utmanande än att bara lägga till en solcellspanel, se avsnittet Design Notes i Adafruit Learn: USB, DC & Solar Lipoly Charger.
  • Lägga till andra sensorer för att mäta vanliga föroreningar som ozon (O3) och svaveldioxid (SO2) eller växthusgaser som koldioxid (CO2). Några sensorer mäter "eCO2" och är inte lämpliga för att mäta atmosfärisk CO2. Adafruit säljer nu prisvärda Sensirion SCD-30 NDIR CO2-givare på ett bräde med STEMMA QT i2c-kontakter.
  • Om du vill undersöka att skicka data över Internet med Wi-Fi verkar FeatherS2-kortet med ESP32-S2 mikrokontroller vara kompatibelt med Enviro+ FeatherWing. Det finns en problematisk begränsning med ESP32-S2 analog till digital omvandlare (ADC) som förhindrar korrekt mätning av gassensorerna. Se Adafruit Forums: Feather ADC-jämförelse inklusive 2.6V begränsad ESP32-S2 för mer information.

Relaterade Projekt:

  • Adafruit Learn: Jämförelse och experiment med brandfarliga gassensorer
  • Adafruit Learn: TMP36 temperatursensor

Vidare läsning:

  • Världshälsoorganisationens (WHO) riktlinjer för luftföroreningar
  • British Lung Foundation - luftkvalitet (PM2.5 och NO2)
  • Breathe London-ett nätverk som kompletterar London Air Quality Network med "prisvärda, enkla att installera och underhålla luftkvalitetssensorer för alla", som för närvarande använder Clarity Node-S.
  • World Air Quality Index - samlar in data från många olika källor med kartvyer och historiska data.
  • Atmosphere Journal: Föroreningar inomhus från bostadsugnar: Undersökning av översvämning av partiklar i bostäder under användning i verkligheten - detta använder Raspberry Pi -versionen av Enviro+ -kortet.
  • Lagstiftning: Air Quality Standards Regulations 2010 (Storbritannien)
  • Pimoroni Blog: Årets mest förorenade natt (i Storbritannien)
  • The Economist: Midnight sky - Polens koleldade uppvärmning skapar stor förorening (januari 2021)
  • BBC News: Trafikbuller försämrar sångfåglarnas förmåga (buller)
  • Software Bugs in a Particulate Matter Sensor Library - en titt på den omsorg som krävs för att robust analysera PMS5003 seriellt protokoll.