Inhoudsopgave:

De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express - Ajarnpa
De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express - Ajarnpa

Video: De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express - Ajarnpa

Video: De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express - Ajarnpa
Video: Raspberry Pi Pico для робототехники 2024, November
Anonim
De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express
De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express
De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express
De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express
De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express
De Pimoroni Enviro+ FeatherWing gebruiken met de Adafruit Feather NRF52840 Express

De Pimoroni Enviro+ FeatherWing is een board boordevol sensoren ontworpen om te werken met de Adafruit Feather-serie boards. Het is een nuttige plek om te beginnen voor iedereen die geïnteresseerd is in milieumonitoring, luchtvervuiling en dataverkeer. Het beschikt over:

  • Bosch BME280 - temperatuur-, druk-, vochtigheidssensor;
  • Lite-On LTR-559 - licht- en naderingssensor;
  • SensorTech MiCS-6814 - oxiderende gassen, reducerende gassen en ammoniaksensor;
  • Analoge microfoon - geluidsoverlast meten;
  • Connector voor Plantower PMS5003 fijnstofsensor (niet meegeleverd).

Het trio metaaloxidesensoren op de MiCS-6814 bevat een minder gebruikelijke sensor voor oxiderende gassen. Dit is handig vanwege de gevoeligheid voor stikstofdioxide (NO2), een vervuilende stof die veel voorkomt in steden en in de buurt van grote wegen.

Pimoroni raadt ofwel de Adafruit aan?

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

De nRF52840 is gekozen voor deze handleiding omdat deze Bluetooth Low Energy (BLE) ondersteunt, waardoor het bord de mogelijkheid heeft om gegevens naar een ander apparaat te verzenden.

De Feather en FeatherWing worden beide geleverd met losse mannelijke headers. Vrouwelijke headers zijn vereist om de planken te stapelen. Deze gids toont het gebruik van "stapelkoppen" waarmee het Featherboard ook in een breadboard kan worden gestoken, wat het experimenteren met extra sensoren vergemakkelijkt. De headers moeten op de boards worden gesoldeerd, maar dit is redelijk eenvoudig.

De Enviro+ FeatherWing heeft één subtiel verschil met zijn neef, de Enviro+ Air Quality voor Raspberry Pi. De FeatherWing-versie lijkt te zijn ontworpen om te werken met spanningen van minder dan 5 V, waardoor een enkele lithium-polymeer (LiPo) batterij die 3,7 V-4,3 V produceert, kan worden gebruikt. Het heeft een DC-DC-converter om 5V te leveren voor de optionele PMS5003 en het kan de interne MiCS-6814-verwarmers afzonderlijk van stroom voorzien om met deze lagere spanningen om te gaan.

De hoofdafbeelding toont de Enviro+ FeatherWing met de PM2.5- en PM10-gegevens van de PMS5003. Halverwege het complot is een lucifer van Swan Vestas geslagen om de kaars aan te steken.

Een tweede artikel behandelt het plotten van kooldioxidegehaltes met de Pimoroni Enviro+ FeatherWing en Adafruit SCD-30.

Benodigdheden:

  • Pimoroni Enviro+ FeatherWing - Pimoroni | Adafruit - (er bestaat nog een vergelijkbaar bord voor de Raspberry Pi)
  • Adafruit nRF52840 Feather Express - Pimoroni | Adafruit
  • Feather Stacking Headers - Pimoroni | Adafruit - normale vrouwelijke headers of FeatherWing doubler/tripler kunnen ook worden gebruikt
  • Soldeer
  • Optioneel: Plantower PMS5003 fijnstofsensor - Pimoroni | Adafruit

Stap 1: De Bootloader upgraden

Het Featherboard kan worden gecontroleerd voordat het wordt gesoldeerd door het via USB op een computer aan te sluiten. Dit is een handig moment om de bootloader te controleren - oude versies kunnen verwarrende maar onschadelijke fouten veroorzaken op Windows.

Dubbelklikken op de resetknop van Feather zorgt ervoor dat een schijf met de naam FTHR840BOOT aan de hostcomputer wordt gepresenteerd. Een bestand genaamd INFO_UF2. TXT kan worden geopend om de versie te inspecteren, het onderstaande voorbeeld toont de inhoud die versie 0.2.6 aangeeft:

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 Datum: 21 december 2018

Versies vóór 0.2.9 hebben last van de eerder genoemde bug. Het ietwat lastige upgradeproces wordt beschreven in Adafruit Learn: Introductie van de Adafruit nRF52840 Feather: Update Bootloader en besproken in Adafruit Forums: Windows-fouten kopiëren CircuitPython UF2 naar FTHR840BOOT.

Stap 2: Solderen van de headers

De headers solderen
De headers solderen
De headers solderen
De headers solderen
De headers solderen
De headers solderen

De Enviro+ FeatherWing heeft zijn mannelijke headers bevestigd en de Feather heeft de stapelbare vrouwelijke headers nodig.

Een veelgebruikte techniek om de pinnen in de juiste positie te plaatsen tijdens het solderen, is door ze in een breadboard te steken. Enige voorzichtigheid is geboden bij deze FeatherWing, aangezien de picoblade-connector aan de onderkant langer is dan de plastic afstandhouders op de header. Hierdoor kan het bord onbedoeld onder een hoek worden gesoldeerd. De afbeelding hierboven toont de hoek. Dit is eenvoudig op te lossen door de headers gelijkmatig 2-3 mm van het breadboard te verhogen.

De stapelbare vrouwelijke headers moeten loodrecht op het bord staan. Dit kan worden bereikt door ze op een vlakke ondergrond te plaatsen en ervoor te zorgen dat het Featherboard er stevig tegenaan wordt gedrukt. De afbeelding hierboven laat zien dat er druk wordt uitgeoefend met een potlood met een out-of-shot hulpmiddel voor helpende handen dat gewicht op het potlood legt. Sommige reservekopteksten bieden extra hulp bij het behouden van de tussenruimte.

In het MiCS-6814-gegevensblad staat:

De sensor moet in een neutrale atmosfeer worden gesoldeerd, zonder soldeervloeidampen. De sensor mag niet worden blootgesteld aan hoge concentraties organische oplosmiddelen, siliconendampen of sigarettenrook om vergiftiging van de gevoelige laag te voorkomen.

Een klein stukje plakband dat de gassensor bedekt, is een verstandige voorzorgsmaatregel tijdens het solderen en fluxreiniging. De schermbeschermer kan in dit stadium ook worden aangebracht om de onvermijdelijke kleine spatten van vloeimiddel van het solderen met een strijkijzer op te vangen. De microfoon zou ook baat hebben bij bescherming met plakband tijdens het opruimen van flux.

De lange rijen pinnen kunnen gemakkelijk worden gebogen wanneer ze uit een breadboard of ander stopcontact worden gehaald. Zorg ervoor dat u het bord niet aan één kant optilt.

Adafruit heeft een handleiding over het solderen van stacking headers, Pimoroni heeft een algemene soldeergids met headers en er is een mooie video op YouTube die laat zien hoe je headers op een soortgelijk bord soldeert, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!

Stap 3: CircuitPython en gecombineerde plotter installeren Voorbeeld

Voorbeeld van CircuitPython en gecombineerde plotter installeren
Voorbeeld van CircuitPython en gecombineerde plotter installeren

Als u niet bekend bent met CircuitPython, is het de moeite waard om eerst de Welcome to CircuitPython-gids te lezen.

De installatiestappen hieronder zijn gebaseerd op de pimoroni / EnviroPlus-FeatherWing README en de handleiding Aan de slag met een latere bibliotheek voor CircuitPython 6.x.

  1. Installeer de nieuwste versie van CircuitPython (6.0.0 in december 2020) van https://circuitpython.org/ - dit proces wordt beschreven in CircuitPython voor Feather nRF52840.
  2. Controleer de installatie door via USB verbinding te maken met de seriële console. De REPL-prompt toont de versie. De versie kan ook worden gecontroleerd door boot_out.txt op de CIRCUITPY-drive te inspecteren.
  3. Installeer deze bibliotheken vanuit een bundel van https://circuitpython.org/libraries in de lib-directory op CIRCUITPY:

    1. adafruit_bus_device
    2. adafruit_bme280 (niet adafruit_bmp280)
    3. adafruit_st7735r (niet adafruit_st7735)
    4. adafruit_display_text
  4. Installeer deze bibliotheken vanuit het EnviroPlus-FeatherWing-1.0.zip-bestand van GiHub: pimoroni/EnviroPlus-FeatherWing: Versie 1.0 in de lib-directory op CIRCUITPY:

    1. i2cdevice (niet te verwarren met de i2c_device-bibliotheek van Adafruit)
    2. pimoroni_envirowing
    3. pimoroni_ltr559
    4. pimoroni_physical_feather_pins
    5. pimoroni_pms5003
    6. Installeer pimoroni_circuitpython_adapter niet vanaf hier
  5. Installeer de nieuwste Pimoroni CircuitPython-adapterbibliotheek door het _init_.py-bestand te downloaden naar een nieuw gemaakte lib/pimoroni_circuitpython_adapter-map op CIRCUITPY.
  6. Download het gecombineerde plotter-voorbeeldprogramma naar CIRCUITPY door op de link Opslaan als… op plotters_combined.py te klikken
  7. Hernoem of verwijder een bestaand code.py-bestand op CIRCUITPY en hernoem de plotters_combined.py naar code.py. Dit bestand wordt uitgevoerd wanneer de CircuitPython-interpreter start of opnieuw wordt geladen.

De voor deze handleiding gebruikte versies waren:

  • CircuitPython 6.0.0
  • CircuitPython-bibliotheekbundel adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
  • EnviroPlus-FeatherWing-bibliotheek Versie 1.0
  • pimoroni_circuitpython_adapter bibliotheek 9-dec-2020 f062036

Stap 4: De gecombineerde plotter

De gecombineerde plotter
De gecombineerde plotter

De gecombineerde plotter heeft vier schermen:

  1. Geluid en licht.
  2. PM2.5 en PM10.
  3. Temperatuur, druk en vochtigheid.
  4. OX, ROOD en NH3.

Het fijnstofscherm (PM) verschijnt alleen als de Plantower PMS5003 is aangesloten. Het programma controleert zijn aanwezigheid aan het begin en drukt dit informatieve bericht af als het niet is aangesloten:

PMS5003 Time-out voor lezen: kon begin van framebyte niet lezen

U heeft waarschijnlijk geen pms5003 aangesloten en gaat verder zonder fijnstofregistratie

Het plot-interval is bovenaan het programma ingesteld op 540 seconden. Dit kan worden aangepast om de plotsnelheid te regelen.

Stap 5: Enviro+ FeatherWing-pinnen

Enviro+ FeatherWing-pinnen
Enviro+ FeatherWing-pinnen
Enviro+ FeatherWing-pinnen
Enviro+ FeatherWing-pinnen

De Enviro+ FeatherWing gebruikt een groot aantal pinnen van de Feather. De volgende worden gebruikt, de namen tussen haakjes komen uit het naamgevingsschema van Pimoroni:

  • A0 (pin5) - MiCS6814 ammoniakgassensor
  • A1 (pin6) - MiCS8614 reduceergassensor
  • A2 (pin7) - MiCS6814 oxiderende gassensor
  • A3 (pin8) - analoge microfoon
  • A4 (pin9) - MiCS6814 ingeschakeld
  • D5 (pin19) - SPI-bus schermopdracht
  • D6 (pin20) - SPI-busscherm chipselectie
  • D9 (pin21) - achtergrondverlichting (PWM)
  • D10 (pin22) - PMS5003 inschakelen
  • D11 (pin23) - PMS5003 reset
  • D12 (pin24) - LTR-559 interrupt (niet ondersteund in CircuitPython-bibliotheek)
  • SCK (pin11) - SPI-busklok
  • MO (pin12) - SPI-bus master uit slave in
  • MI (pin13) - SPI-busmaster in slave uit
  • RX (pin14) - PMS5003 zenden (ontvangen door Feather)
  • TX (pin15) - PMS5003 ontvangen (zenden vanaf Feather)
  • SCL (pin18) - I2C-klok
  • SDA (pin 17) - I2C-gegevens

Hierdoor blijven A5, D2/DFU en D13 vrij voor gebruik.

Stap 6: Stroomverbruik

Energieverbruik
Energieverbruik

Het stroomverbruik valt ruim binnen de USB-specificatie, zelfs als een LiPo-batterij is aangesloten en wordt opgeladen. Het gebruik is relevanter voor het plannen van een overstap naar batterijvoeding. Enkele zeer benaderende metingen van de stroom zijn:

  • 100mA inactief, achtergrondverlichting uit;
  • 100mA plotter actief, achtergrondverlichting laag;
  • 120mA plotter actief, achtergrondverlichting hoog.

In de datasheet van de Plantower PMS5003 staat dat de stroom minder is dan 100mA, dit komt bovenop de bovenstaande cijfers. Het gebruik van een DC-DC-converter op de Enviro+ FeatherWing kan dit aantal iets verhogen.

Het Feather nRF52840 Express-bord heeft een NeoPixel (RGB LED), maar de helderheidsniveaus voor het standaardgebruik als indicator van de programmastatus dragen slechts een klein beetje bij aan het verbruik. Het Featherboard zelf is op zichzelf minder dan 10mA, de FeatherWing is het stroomvretende board.

Stap 7: De Plantower PMS5003 Sensor voor Bijzondere Materie toevoegen

De Plantower PMS5003 Sensor voor bijzondere materie toevoegen
De Plantower PMS5003 Sensor voor bijzondere materie toevoegen
De Plantower PMS5003 Sensor voor bijzondere materie toevoegen
De Plantower PMS5003 Sensor voor bijzondere materie toevoegen
De Plantower PMS5003 Sensor voor bijzondere materie toevoegen
De Plantower PMS5003 Sensor voor bijzondere materie toevoegen

De Met One Instruments BAM 1020 is een bekend gezicht over de hele wereld dat fijnstof in steden meet. Er bestaat een reeks meer betaalbare apparaten en de Enviro+ FeatherWing wordt geleverd met een connector voor de Plantower PMS5003 fijnstofsensor.

De Pimoroni-bibliotheekcode voor deze sensor lijkt momenteel kwetsbaar. Een eenvoudige en snelle verbetering is om uitzonderingen in het programma op te vangen. Het programma plotters_combined.py kan worden verbeterd door dit bovenaan toe te voegen:

import pimoroni_pms5003

En deze regel in de main while-lus vervangen

# lees meting

pms_reading = pms5003.read()

met:

# lees meting

probeer: pms_reading = pms5003.read() behalve pimoroni_pms5003. ChecksumMismatchError: print("checksum error")

Stap 8: Verder gaan

Verder gaan
Verder gaan

Er zijn een aantal gebieden om te verkennen als je de Enviro+ FeatherWing eenmaal aan hebt staan.

  • Een externe temperatuursensor toevoegen. De temperatuursensor in de BME280 is onderhevig aan zowel interne verwarming als verwarming van nabijgelegen componenten en is bedoeld om de andere BME280-sensoren te kalibreren. De waarde kan worden verwerkt om een geschatte meting van de omgevingsluchttemperatuur te geven, maar er zijn tal van betaalbare, superieure externe opties.
  • Kalibreren van de sensoren. De druk is eenvoudig met behulp van weersobservaties of kortetermijnvoorspellingen (deze zullen op 0 ft amsl zijn), de rest is moeilijk.
  • Corrigeren van de PMS5003-uitgang voor relatieve vochtigheid. Een formule wordt gepresenteerd op pagina 8 van PDF op EPA: PurpleAir PM2.5 Amerikaanse correctie en prestatie tijdens rookgebeurtenissen 4/2020
  • Code toevoegen om de sensorgegevens via Bluetooth Low Energy uit te zenden naar andere apparaten.
  • Onderzoeken hoe het stroomverbruik te minimaliseren. Sommige sensoren hebben activeringslijnen, deze kunnen de stroom van de sensoren verwijderen of ze in een energiebesparende modus zetten. Voor sensoren met een opwarmtijd is periodieke bemonstering wellicht niet praktisch.
  • Een koffer kopen, aanpassen of geschikt maken voor buitenmontage met zorgvuldig ontworpen interne luchtstroom en geschikte voorzorgsmaatregelen voor direct zonlicht. De SensorTech MiCS-6814 gassensor werkt het beste met een constante, lage luchtstroom eroverheen.
  • Onderzoeken hoe weersomstandigheden de vervuiling op grondniveau beïnvloeden. Hint: inversies zijn significant.
  • Omzetten naar batterijstroom of zonne-energie met batterijstroom. Zonne-energie is een grotere uitdaging dan simpelweg het toevoegen van een fotovoltaïsch zonnepaneel, zie de sectie Design Notes in Adafruit Learn: USB, DC & Solar Lipoly Charger.
  • Andere sensoren toevoegen om veelvoorkomende verontreinigende stoffen zoals ozon (O3) en zwaveldioxide (SO2) of broeikasgassen zoals koolstofdioxide (CO2) te meten. Enkele sensoren meten "eCO2" en zijn niet geschikt voor het meten van atmosferische CO2. Adafruit verkoopt nu de voordelige Sensirion SCD-30 NDIR CO2-sensor op een bord met STEMMA QT i2c-connectoren.
  • Als u het verzenden van gegevens via internet via Wi-Fi wilt onderzoeken, lijkt het FeatherS2-bord met ESP32-S2-microcontroller compatibel te zijn met de Enviro+ FeatherWing. Er is een problematische beperking met de ESP32-S2 analoog naar digitaal converters (ADC) die een goede meting van de gassensoren verhindert. Zie Adafruit-forums: Feather ADC-vergelijking inclusief 2.6V beperkte ESP32-S2 voor meer informatie.

Gerelateerde projecten:

  • Adafruit Learn: vergelijking en experimenten met sensoren voor brandbare gassen
  • Adafruit Learn: TMP36 temperatuursensor

Verder lezen:

  • Richtlijnen voor luchtverontreiniging van de Wereldgezondheidsorganisatie (WHO)
  • British Lung Foundation - Luchtkwaliteit (PM2.5 en NO2)
  • Breathe London - een netwerk om het London Air Quality Network aan te vullen met "betaalbare, eenvoudig te installeren en te onderhouden luchtkwaliteitssensoren voor iedereen", die momenteel de Clarity Node-S gebruikt.
  • World Air Quality Index - verzamelt gegevens uit veel verschillende bronnen met kaartweergaven en historische gegevens.
  • Atmosphere Journal: Luchtvervuiling binnenshuis door residentiële kachels: onderzoek naar de overstroming van fijnstof in huizen tijdens gebruik in de echte wereld - dit maakt gebruik van de Raspberry Pi-versie van het Enviro+-bord.
  • Wetgeving: de Air Quality Standards Regulations 2010 (VK)
  • Pimoroni Blog: De meest vervuilde nacht van het jaar (in het VK)
  • The Economist: Middernachthemel - De kolengestookte huisverwarming in Polen zorgt voor wijdverbreide vervuiling (januari 2021)
  • BBC News: Verkeerslawaai schaadt de capaciteiten van zangvogels (geluidsoverlast)
  • Softwarefouten in een bibliotheek voor fijnstofsensoren - een blik op de zorg die nodig is om het seriële protocol PMS5003 robuust te ontleden.