Sommario:
- Passaggio 1: aggiornamento del bootloader
- Passaggio 2: saldatura delle intestazioni
- Passaggio 3: installazione di CircuitPython e esempio di plotter combinato
- Passaggio 4: il plotter combinato
- Passaggio 5: perni Enviro+ FeatherWing
- Passaggio 6: consumo energetico
- Passaggio 7: aggiunta del sensore di materia particolare Plantower PMS5003
- Passaggio 8: andare oltre
Video: Utilizzo di Pimoroni Enviro+ FeatherWing con Adafruit Feather NRF52840 Express: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
La Pimoroni Enviro+ FeatherWing è una tavola piena di sensori progettati per funzionare con la serie di tavole Adafruit Feather. È un punto di partenza utile per chiunque sia interessato al monitoraggio ambientale, all'inquinamento atmosferico e alla raccolta di dati. È dotato di:
- Bosch BME280 - sensore di temperatura, pressione, umidità;
- Lite-On LTR-559 - sensore di luce e prossimità;
- SensorTech MiCS-6814 - sensore di gas ossidanti, gas riducenti e ammoniaca;
- Microfono analogico - misurazione dell'inquinamento acustico;
- Connettore per sensore di particolato Plantower PMS5003 (non incluso).
Il trio di sensori di ossido di metallo sul MiCS-6814 include un sensore meno comune per i gas ossidanti. Questo è utile per la sua sensibilità al biossido di azoto (NO2), un inquinante comune nelle città e vicino alle strade principali.
Pimoroni consiglia l'Adafruit
- Feather M4 Express (120MHz, 192kB ram) o
- Feather nRF52840 Express (64MHz, 256kB ram).
Il nRF52840 è stato scelto per questa guida in quanto supporta Bluetooth Low Energy (BLE) che offre alla scheda la possibilità di inviare dati a un altro dispositivo.
La Feather e la FeatherWing sono entrambe dotate di intestazioni maschili non attaccate. Le intestazioni femminili sono necessarie per impilare le schede. Questa guida mostra l'uso di "intestazioni impilabili" che consentono di inserire la scheda Feather anche in una breadboard facilitando la sperimentazione con sensori aggiuntivi. Le intestazioni devono essere saldate alle schede, ma questo è ragionevolmente semplice.
L'Enviro+ FeatherWing ha una sottile differenza rispetto al suo cugino, l'Enviro+ Air Quality per Raspberry Pi. La versione FeatherWing sembra essere progettata per funzionare con tensioni inferiori a 5 V consentendo l'utilizzo di una singola batteria ai polimeri di litio (LiPo) che produce 3,7 V-4,3 V. Dispone di un convertitore CC-CC per fornire 5 V per il PMS5003 opzionale e può alimentare individualmente i riscaldatori interni MiCS-6814 per far fronte a queste tensioni più basse.
L'immagine principale mostra l'Enviro+ FeatherWing che mostra i dati PM2.5 e PM10 dal PMS5003. Una partita Swan Vestas è stata accesa a metà del complotto per accendere la candela.
Un secondo articolo riguarda il tracciamento dei livelli di anidride carbonica con Pimoroni Enviro+ FeatherWing e Adafruit SCD-30.
Forniture:
- Pimoroni Enviro+ FeatherWing - Pimoroni | Adafruit - (esiste un'altra scheda simile per il Raspberry Pi)
- Adafruit nRF52840 Feather Express - Pimoroni | Adafruit
- Testate impilabili piuma - Pimoroni | Adafruit - si possono usare anche normali intestazioni femminili o FeatherWing double/tripler
- Saldare
- Opzionale: sensore di particolato Plantower PMS5003 - Pimoroni | Adafruit
Passaggio 1: aggiornamento del bootloader
La scheda Feather può essere controllata prima di essere saldata collegandola a un computer tramite USB. Questo è un momento utile per controllare il bootloader: le vecchie versioni possono produrre errori confusi ma innocui su Windows.
Facendo doppio clic sul pulsante di ripristino di Feather, viene presentata al computer host un'unità denominata FTHR840BOOT. Un file chiamato INFO_UF2. TXT può essere aperto per ispezionare la versione, l'esempio seguente mostra il contenuto che indica la versione 0.2.6:
Bootloader F2 0.2.6 lib/nrfx (v1.1.0-1-g096e770) lib/tinyusb (legacy-525-ga1c59649) s140 6.1.1
Modello: Adafruit Feather nRF52840 Express Board-ID: NRF52-Bluefruit-v0 Bootloader: s140 6.1.1 Data: 21 dicembre 2018
Le versioni precedenti alla 0.2.9 soffrono del suddetto bug. Il processo di aggiornamento leggermente complicato è descritto in Adafruit Learn: Introducing the Adafruit nRF52840 Feather: Update Bootloader e discusso nei forum di Adafruit: gli errori di Windows copiano CircuitPython UF2 su FTHR840BOOT.
Passaggio 2: saldatura delle intestazioni
L'Enviro+ FeatherWing ha bisogno delle sue intestazioni maschili attaccate e la Feather ha bisogno delle intestazioni femminili impilabili attaccate.
Una tecnica comune per individuare i pin nella posizione corretta durante la saldatura consiste nell'inserirli in una breadboard. È necessaria una certa cautela con questo FeatherWing poiché il connettore picoblade sul lato inferiore è più alto dei distanziatori in plastica sull'intestazione. Ciò potrebbe causare la saldatura involontaria della scheda ad angolo. L'immagine sopra mostra l'angolo. Questo è facilmente risolvibile alzando uniformemente le intestazioni di 2-3 mm (0,1 pollici) dalla breadboard.
Le intestazioni femminili impilabili devono essere perpendicolari al tabellone. Ciò può essere ottenuto posizionandoli su una superficie piana e assicurandosi che la tavola Feather sia premuta saldamente contro di loro. L'immagine sopra mostra la pressione applicata con una matita con un dispositivo per le mani fuori tiro che appesantisce la matita. Alcune intestazioni di riserva forniscono ulteriore aiuto per mantenere la spaziatura.
La scheda tecnica MiCS-6814 afferma:
Il sensore deve essere saldato a rifusione in atmosfera neutra, senza vapori di flusso di saldatura. Il sensore non deve essere esposto ad alte concentrazioni di solventi organici, vapori di silicone o fumo di sigaretta per evitare di avvelenare lo strato sensibile.
Un piccolo pezzo di nastro adesivo che copre il sensore di gas è una saggia precauzione durante la saldatura e la pulizia del flusso. La protezione per lo schermo può anche essere lasciata accesa in questa fase per far fronte agli inevitabili piccoli spruzzi di flusso dalla saldatura con un ferro da stiro. Il microfono trarrebbe anche vantaggio dalla protezione con nastro adesivo durante qualsiasi pulizia del flusso.
Le lunghe file di perni possono essere facilmente piegate quando vengono rimosse da una breadboard o da un'altra presa. Fare attenzione a non sollevare la tavola da un'estremità.
Adafruit ha una guida sulla saldatura delle intestazioni di impilamento, Pimoroni ha una guida generale alla saldatura che include le intestazioni e c'è un bel video su YouTube che mostra come saldare le intestazioni su una scheda di stile simile, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!
Passaggio 3: installazione di CircuitPython e esempio di plotter combinato
Se non hai familiarità con CircuitPython, vale la pena leggere prima la guida Welcome to CircuitPython.
I passaggi di installazione di seguito si basano sul file README di pimoroni / EnviroPlus-FeatherWing e sulla guida introduttiva con una libreria successiva per soddisfare CircuitPython 6.x.
- Installa l'ultima versione di CircuitPython (6.0.0 a dicembre 2020) da https://circuitpython.org/: questo processo è descritto in CircuitPython per Feather nRF52840.
- Verificare l'installazione collegandosi alla console seriale tramite USB. Il prompt REPL mostra la versione. La versione può essere verificata anche ispezionando boot_out.txt sull'unità CIRCUITPY.
-
Installa queste librerie da un bundle da https://circuitpython.org/libraries nella directory lib su CIRCUITPY:
- adafruit_bus_device
- adafruit_bme280 (non adafruit_bmp280)
- adafruit_st7735r (non adafruit_st7735)
- adafruit_display_text
-
Installa queste librerie dal file EnviroPlus-FeatherWing-1.0.zip da GiHub: pimoroni/EnviroPlus-FeatherWing: Versione 1.0 nella directory lib su CIRCUITPY:
- i2cdevice (da non confondere con la libreria i2c_device di Adafruit)
- pimoroni_envirowing
- pimoroni_ltr559
- pimoroni_physical_feather_pins
- pimoroni_pms5003
- Non installare pimoroni_circuitpython_adapter da qui
- Installa l'ultima libreria di adattatori Pimoroni CircuitPython scaricando il file _init_.py in una directory lib/pimoroni_circuitpython_adapter appena creata su CIRCUITPY.
- Scarica il programma di esempio del plotter combinato su CIRCUITPY facendo clic su Salva collegamento con nome… su plotters_combined.py
- Rinominare o eliminare qualsiasi file code.py esistente su CIRCUITPY, quindi rinominare plotters_combined.py in code.py. Questo file viene eseguito quando l'interprete CircuitPython viene avviato o ricaricato.
Le versioni utilizzate per questa guida sono state:
- CircuitPython 6.0.0
- Pacchetto libreria CircuitPython adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
- Libreria EnviroPlus-FeatherWing Versione 1.0
- libreria pimoroni_circuitpython_adapter 9-dic-2020 f062036
Passaggio 4: il plotter combinato
Il plotter combinato ha quattro schermate:
- Suono e luce.
- PM2.5 e PM10.
- Temperatura, pressione e umidità.
- BUE, ROSSO e NH3.
La schermata del particolato (PM) viene visualizzata solo se è collegato il Plantower PMS5003. Il programma verifica la sua presenza all'avvio e stampa questo messaggio informativo se non è connesso:
PMS5003 Read Timeout: impossibile leggere l'inizio del byte di frame
Probabilmente non hai un pms5003 connesso, continuando senza registrazione del particolato
L'intervallo del grafico è impostato su 540 secondi nella parte superiore del programma. Questo può essere regolato per controllare la velocità del grafico.
Passaggio 5: perni Enviro+ FeatherWing
L'Enviro+ FeatherWing utilizza un gran numero di pin della Feather. Vengono utilizzati i seguenti, i nomi tra parentesi sono dallo schema di denominazione di Pimoroni:
- A0 (pin5) - Sensore di gas ammoniaca MiCS6814
- A1 (pin6) - Sensore di riduzione gas MiCS8614
- A2 (pin7) - Sensore di gas ossidante MiCS6814
- A3 (pin8) - microfono analogico
- A4 (pin9) - Abilita MiCS6814
- D5 (pin19) - Comando schermo bus SPI
- D6 (pin20) - Selezione del chip dello schermo del bus SPI
- D9 (pin21) - retroilluminazione (PWM)
- D10 (pin22) - Abilitazione PMS5003
- D11 (pin23) - Ripristino PMS5003
- D12 (pin24) - Interrupt LTR-559 (non supportato nella libreria CircuitPython)
- SCK (pin11) - Orologio bus SPI
- MO (pin12) - SPI bus master out slave in
- MI (pin13) - Master bus SPI in uscita slave
- RX (pin14) - trasmissione PMS5003 (ricezione tramite Feather)
- TX (pin15) - Ricezione PMS5003 (trasmissione da Feather)
- SCL (pin18) - Orologio I2C
- SDA (pin 17) - Dati I2C
Questo lascia A5, D2/DFU e D13 liberi per l'uso.
Passaggio 6: consumo energetico
Il consumo energetico rientra ampiamente nelle specifiche USB anche se è collegata una batteria LiPo e si sta ricaricando. L'utilizzo è più rilevante per pianificare il passaggio all'alimentazione a batteria. Alcune misure molto approssimative della corrente sono:
- 100mA inattivo, retroilluminazione spenta;
- Plotter da 100 mA in funzione, retroilluminazione bassa;
- Plotter da 120 mA in funzione, retroilluminazione alta.
La scheda tecnica del Plantower PMS5003 afferma che la corrente è inferiore a 100 mA, questo sarebbe in aggiunta ai numeri sopra. L'uso del convertitore DC-DC su Enviro+ FeatherWing può aumentare leggermente questo numero.
La scheda Feather nRF52840 Express ha un NeoPixel (LED RGB) ma i livelli di luminosità per il suo utilizzo predefinito come indicatore dello stato del programma aggiungono solo una piccola quantità al consumo. La stessa scheda Feather è inferiore a 10 mA da sola, la FeatherWing è la scheda affamata di potenza.
Passaggio 7: aggiunta del sensore di materia particolare Plantower PMS5003
Il Met One Instruments BAM 1020 è uno spettacolo comune in tutto il mondo che misura il particolato nelle città. Esiste una gamma di dispositivi più convenienti e Enviro+ FeatherWing è dotato di un connettore per il sensore di particolato Plantower PMS5003.
Il codice della libreria Pimoroni per questo sensore al momento sembra fragile. Un miglioramento semplice e rapido consiste nell'intercettare le eccezioni nel programma. Il programma plotters_combined.py può essere migliorato aggiungendo questo in alto:
import pimoroni_pms5003
E sostituendo questa riga nel ciclo while principale
# prendere letture
pms_reading = pms5003.read()
insieme a:
# prendere letture
prova: pms_reading = pms5003.read() tranne pimoroni_pms5003. ChecksumMismatchError: print("errore di checksum")
Passaggio 8: andare oltre
Ci sono un certo numero di aree da esplorare una volta che Enviro+ FeatherWing è in funzione.
- Aggiunta di un sensore di temperatura esterno. Il sensore di temperatura nel BME280 è soggetto sia al riscaldamento interno che al riscaldamento dei componenti vicini ed è destinato a calibrare gli altri sensori BME280. Il valore può essere elaborato per fornire una misura approssimativa della temperatura dell'aria ambiente, ma ci sono molte opzioni esterne convenienti e di qualità superiore.
- Calibrazione dei sensori. La pressione è facile utilizzando osservazioni meteorologiche o previsioni a breve termine (queste saranno a 0 piedi slm), il resto è difficile.
- Correzione dell'uscita PMS5003 per l'umidità relativa. Una formula è presentata a pagina 8 del PDF su EPA: PurpleAir PM2.5 U. S. Correction and Performance During Smoke Events 4/2020
- Aggiunta del codice per trasmettere i dati del sensore tramite Bluetooth Low Energy ad altri dispositivi.
- Indagare su come ridurre al minimo il consumo di energia. Alcuni dei sensori hanno linee di abilitazione, queste possono rimuovere l'alimentazione dai sensori o metterli in una modalità a basso consumo. Per i sensori con un tempo di riscaldamento, il campionamento periodico potrebbe non essere pratico.
- Acquistare, adattare o realizzare una custodia adatta al montaggio all'esterno con flusso d'aria interno attentamente progettato e adeguate precauzioni per la luce solare diretta. Il sensore di gas SensorTech MiCS-6814 funziona al meglio con un flusso d'aria costante e a bassa velocità attraverso di esso.
- Esaminare come le condizioni meteorologiche influenzano l'inquinamento a livello del suolo. Suggerimento: le inversioni sono significative.
- Conversione a batteria o solare con alimentazione a batteria. L'energia solare è più impegnativa della semplice aggiunta di un pannello solare fotovoltaico, vedere la sezione Note di progettazione in Adafruit Learn: USB, DC & Solar Lipoly Charger.
- Aggiunta di altri sensori per misurare inquinanti comuni come l'ozono (O3) e l'anidride solforosa (SO2) o i gas serra come l'anidride carbonica (CO2). Alcuni sensori misurano "eCO2" e non sono adatti per misurare la CO2 atmosferica. Adafruit ora vende il sensore di CO2 Sensirion SCD-30 NDIR di grande valore su una scheda con connettori STEMMA QT i2c.
- Se si desidera indagare sull'invio dei dati su Internet tramite Wi-Fi, la scheda FeatherS2 con microcontrollore ESP32-S2 sembra essere compatibile con Enviro+ FeatherWing. Esiste una limitazione problematica con i convertitori da analogico a digitale ESP32-S2 (ADC) che impedisce la corretta misurazione dei sensori di gas. Per ulteriori informazioni, vedere i forum Adafruit: confronto ADC Feather incluso ESP32-S2 limitato a 2,6 V.
Progetti correlati:
- Adafruit Learn: confronto e sperimentazione con i sensori di gas infiammabili
- Adafruit Learn: Sensore di temperatura TMP36
Ulteriori letture:
- Linee guida sull'inquinamento atmosferico dell'Organizzazione mondiale della sanità (OMS)
- British Lung Foundation - Qualità dell'aria (PM2,5 e NO2)
- Breathe London - una rete per integrare la London Air Quality Network con "sensori di qualità dell'aria convenienti, facili da installare e mantenere per chiunque", che attualmente utilizza Clarity Node-S.
- Indice mondiale della qualità dell'aria: raccoglie dati da molte fonti diverse con visualizzazioni di mappe e dati storici.
- Atmosphere Journal: Inquinamento dell'aria interna da stufe residenziali: esame dell'inondazione di particolato nelle case durante l'uso nel mondo reale - utilizza la versione Raspberry Pi della scheda Enviro+.
- Legislazione: le normative sugli standard di qualità dell'aria 2010 (Regno Unito)
- Pimoroni Blog: La notte più inquinata dell'anno (nel Regno Unito)
- The Economist: Midnight sky - Il riscaldamento domestico a carbone della Polonia crea un inquinamento diffuso (gennaio 2021)
- BBC News: Il rumore del traffico compromette le capacità degli uccelli canori (inquinamento acustico)
- Bug software in una libreria di sensori di particolato: uno sguardo alla cura richiesta per analizzare in modo affidabile il protocollo seriale PMS5003.