Cuprins:
- Pasul 1: Actualizarea Bootloader-ului
- Pasul 2: lipirea anteturilor
- Pasul 3: Instalarea CircuitPython și Exemplu de plotter combinat
- Pasul 4: Plotterul combinat
- Pasul 5: Enviro + FeatherWing Pins
- Pasul 6: Consum de energie
- Pasul 7: Adăugarea senzorului de materie particulară Plantower PMS5003
- Pasul 8: Mergeți mai departe
Video: Utilizarea Pimoroni Enviro + FeatherWing cu Adafruit Feather NRF52840 Express: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Pimoroni Enviro + FeatherWing este o placă plină de senzori concepută pentru a funcționa cu seria de plăci Adafruit Feather. Este un loc util pentru a începe pentru oricine este interesat de monitorizarea mediului, poluarea atmosferică și amestecul de date. Este dotat:
- Bosch BME280 - senzor de temperatură, presiune, umiditate;
- Lite-On LTR-559 - senzor de lumină și proximitate;
- SensorTech MiCS-6814 - gaze oxidante, gaze reducătoare și senzor de amoniac;
- Microfon analogic - măsurarea poluării fonice;
- Conector pentru senzorul de particule Plantower PMS5003 (nu este inclus).
Trio de senzori de oxid de metal de pe MiCS-6814 includ un senzor mai puțin comun pentru gazele oxidante. Acest lucru este util pentru sensibilitatea sa la dioxidul de azot (NO2), un poluant comun în orașe și în apropierea drumurilor majore.
Pimoroni recomandă fie Adafruit
- Feather M4 Express (120MHz, 192kB ram) sau
- Feather nRF52840 Express (64MHz, 256kB ram).
NRF52840 a fost ales pentru acest ghid, deoarece acceptă Bluetooth Low Energy (BLE), care oferă consiliului potențialul de a trimite date către un alt dispozitiv.
Feather și FeatherWing vin ambele cu anteturi masculine neatasate. Antetele de sex feminin sunt necesare pentru a stiva plăcile. Acest ghid prezintă utilizarea „antetelor de stivuire” care permite inserarea plăcii Feather într-o placă de facilitare, facilitând experimentarea cu senzori suplimentari. Anteturile trebuie lipite pe plăci, dar acest lucru este destul de simplu.
Enviro + FeatherWing are o diferență subtilă în comparație cu vărul său, Enviro + Calitatea aerului pentru Raspberry Pi. Versiunea FeatherWing pare să fie concepută pentru a funcționa cu tensiuni sub 5V permițând utilizarea unei singure baterii litiu-polimer (LiPo) care produce 3.7V-4.3V. Are un convertor DC-DC pentru a furniza 5V pentru PMS5003 opțional și poate alimenta încălzitoarele interne MiCS-6814 individual pentru a face față acestor tensiuni mai mici.
Imaginea principală arată Enviro + FeatherWing afișând datele PM2.5 și PM10 de pe PMS5003. Un meci Swan Vestas a fost lovit la jumătatea parcelei pentru a aprinde lumânarea.
Un al doilea articol acoperă Trasarea nivelurilor de dioxid de carbon cu Pimoroni Enviro + FeatherWing și Adafruit SCD-30.
Provizii:
- Pimoroni Enviro + FeatherWing - Pimoroni | Adafruit - (există un alt tablou similar pentru Raspberry Pi)
- Adafruit nRF52840 Feather Express - Pimoroni | Adafruit
- Anteturi de stivuire cu pene - Pimoroni | Adafruit - pot fi folosite și anteturi feminine normale sau dubler / tripler FeatherWing
- Solder
- Opțional: senzor de particule Plantower PMS5003 - Pimoroni | Adafruit
Pasul 1: Actualizarea Bootloader-ului
Placa Feather poate fi verificată înainte de a fi lipită, conectând-o la un computer utilizând USB. Acesta este un moment util pentru a verifica bootloaderul - versiunile vechi pot produce erori confuze, dar inofensive pe Windows.
Dacă faceți dublu clic pe butonul de resetare Feather, este prezentată computerului gazdă o unitate numită FTHR840BOOT. Un fișier numit INFO_UF2. TXT poate fi deschis pentru a inspecta versiunea, exemplul de mai jos arată conținutul care indică versiunea 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 Data: 21 decembrie 2018
Versiunile anterioare 0.2.9 suferă de eroarea menționată mai sus. Procesul de actualizare ușor dificil este descris în Adafruit Learn: Introducerea Adafruit nRF52840 Feather: Update Bootloader și discutat în Adafruit Forums: Erorile Windows copiază CircuitPython UF2 în FTHR840BOOT.
Pasul 2: lipirea anteturilor
Enviro + FeatherWing are nevoie de anteturile masculine atașate, iar Feather are nevoie de anteturile feminine stivuite atașate.
O tehnică obișnuită pentru a localiza știfturile în poziția corectă în timpul lipirii este de a le introduce într-o placă de prindere. Este necesară o anumită precauție cu acest FeatherWing, deoarece conectorul picoblade de pe partea inferioară este mai înalt decât distanțierele din plastic de pe antet. Acest lucru ar putea provoca lipirea neintenționată a unui unghi. Imaginea de mai sus arată unghiul. Acest lucru se rezolvă cu ușurință ridicând anteturile în mod uniform cu 2-3 mm (0,1 in) de la panoul de verificare.
Antetele feminine de stivuire trebuie să fie perpendiculare pe tablă. Acest lucru se poate realiza plasându-le pe o suprafață plană și asigurându-vă că placa Feather este presată ferm împotriva lor. Imaginea de mai sus prezintă presiunea aplicată cu un creion cu un dispozitiv pentru mâini ajutătoare care nu se împușcă, care pune greutate pe creion. Unele anteturi de rezervă oferă un ajutor suplimentar în menținerea spațiului.
Fișa tehnică MiCS-6814 precizează:
Senzorul nu trebuie să fie expus la concentrații mari de solvenți organici, vapori de silicon sau fum de țigară, pentru a evita otrăvirea stratului sensibil.
O mică bucată de bandă de mascare care acoperă senzorul de gaz este o precauție înțeleaptă în timpul lipirii și curățării fluxului. Protectorul de ecran poate fi lăsat, de asemenea, activat în această etapă pentru a face față inevitabilelor mici stropi de flux de la lipirea cu un fier de călcat. Microfonul ar beneficia, de asemenea, de protecție cu bandă de mascare în timpul curățării fluxului.
Rândurile lungi de știfturi pot fi îndoite cu ușurință atunci când le scoateți dintr-o panou sau altă priză. Aveți grijă să evitați să ridicați placa la un capăt.
Adafruit are un ghid despre lipirea antetelor de stivuire, Pimoroni are un ghid general de lipire care include anteturi și există un videoclip frumos pe YouTube care arată cum să lipiți anteturile pe o placă de stil similară, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!
Pasul 3: Instalarea CircuitPython și Exemplu de plotter combinat
Dacă nu sunteți familiarizați cu CircuitPython, atunci merită să citiți mai întâi ghidul Bine ați venit la CircuitPython.
Pașii de instalare de mai jos se bazează pe pimoroni / EnviroPlus-FeatherWing README și ghidul Noțiuni introductive cu o bibliotecă ulterioară pentru a satisface CircuitPython 6.x.
- Instalați cea mai recentă versiune de CircuitPython (6.0.0 în decembrie 2020) de pe https://circuitpython.org/ - acest proces este descris în CircuitPython for Feather nRF52840.
- Verificați instalarea conectându-vă la consola serială prin USB. Solicitarea REPL afișează versiunea. Versiunea poate fi verificată și prin inspectarea boot_out.txt pe unitatea CIRCUITPY.
-
Instalați aceste biblioteci dintr-un pachet de la https://circuitpython.org/libraries în directorul lib de pe CIRCUITPY:
- adafruit_bus_device
- adafruit_bme280 (nu adafruit_bmp280)
- adafruit_st7735r (nu adafruit_st7735)
- adafruit_display_text
-
Instalați aceste biblioteci din fișierul EnviroPlus-FeatherWing-1.0.zip din GiHub: pimoroni / EnviroPlus-FeatherWing: Versiunea 1.0 în directorul lib de pe CIRCUITPY:
- i2cdevice (nu trebuie confundat cu biblioteca i2c_device a Adafruit)
- pimoroni_envirowing
- pimoroni_ltr559
- pimoroni_physical_feather_pins
- pimoroni_pms5003
- Nu instalați pimoroni_circuitpython_adapter de aici
- Instalați cea mai recentă bibliotecă de adaptoare Pimoroni CircuitPython descărcând fișierul _init_.py într-un director nou creat lib / pimoroni_circuitpython_adapter de pe CIRCUITPY.
- Descărcați exemplul de program combinat de plotter în CIRCUITPY făcând clic pe Salvare link ca … pe plotters_combined.py
- Redenumiți sau ștergeți orice fișier code.py existent pe CIRCUITPY, apoi redenumiți plotters_combined.py în code.py. Acest fișier este rulat atunci când interpretul CircuitPython pornește sau se reîncarcă.
Versiunile utilizate pentru acest ghid au fost:
- CircuitPython 6.0.0
- Pachet de bibliotecă CircuitPython adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
- Biblioteca EnviroPlus-FeatherWing Versiunea 1.0
- biblioteca pimoroni_circuitpython_adapter 9-Dec-2020 f062036
Pasul 4: Plotterul combinat
Plotterul combinat are patru ecrane:
- Sunet și lumină.
- PM2.5 și PM10.
- Temperatura, presiunea și umiditatea.
- OX, RED și NH3.
Ecranul pentru particule (PM) apare numai dacă este atașat Plantower PMS5003. Programul verifică prezența sa la început și tipărește acest mesaj informațional dacă nu este conectat:
PMS5003 Timeout de citire: Eroare la citirea startului octetului de cadru
Probabil nu aveți un pms5003 conectat, continuând fără înregistrarea particulelor
Intervalul de complot este setat la 540 de secunde în partea de sus a programului. Aceasta poate fi ajustată pentru a controla rata parcelei.
Pasul 5: Enviro + FeatherWing Pins
Enviro + FeatherWing folosește un număr mare de știfturi Feather. Sunt folosite următoarele, numele dintre paranteze sunt din schema de denumire a lui Pimoroni:
- A0 (pin5) - senzor de gaz amoniac MiCS6814
- A1 (pin6) - senzor de gaz reducător MiCS8614
- A2 (pin7) - senzor de gaz oxidant MiCS6814
- A3 (pin8) - microfon analogic
- A4 (pin9) - activare MiCS6814
- D5 (pin19) - comanda ecranului SPI bus
- D6 (pin20) - Selectarea cipului ecranului autobuzului SPI
- D9 (pin21) - iluminare din spate (PWM)
- D10 (pin22) - activare PMS5003
- D11 (pin23) - resetare PMS5003
- D12 (pin24) - întrerupere LTR-559 (neacceptată în biblioteca CircuitPython)
- SCK (pin11) - ceas de autobuz SPI
- MO (pin12) - SPI bus master out slave slave
- MI (pin13) - SPI bus master in slave out
- RX (pin14) - Transmitere PMS5003 (primire prin Feather)
- TX (pin15) - recepție PMS5003 (transmite de la Feather)
- SCL (pin18) - ceas I2C
- SDA (pinul 17) - date I2C
Acest lucru lasă A5, D2 / DFU și D13 libere pentru utilizare.
Pasul 6: Consum de energie
Consumul de energie se încadrează în specificațiile USB, chiar dacă o baterie LiPo este atașată și se reîncarcă. Utilizarea este mai relevantă pentru planificarea mutării la baterie. Unele măsurători foarte aproximative ale curentului sunt:
- 100mA inactiv, iluminarea din spate stinsă;
- Plotter 100mA în funcțiune, iluminare de fundal scăzută;
- Plotter de 120mA în funcțiune, iluminare din spate ridicată.
Fișa tehnică pentru Plantower PMS5003 afirmă că curentul este mai mic de 100mA, acest lucru ar fi în plus față de numerele de mai sus. Utilizarea convertorului DC-DC pe Enviro + FeatherWing poate crește ușor acest număr.
Placa Feather nRF52840 Express are un NeoPixel (LED RGB), dar nivelurile de luminozitate pentru utilizarea sa implicită ca indicator al stării programului adaugă doar o cantitate mică la consum. Placa Feather în sine este sub 10mA singură, FeatherWing este placa înfometată de putere.
Pasul 7: Adăugarea senzorului de materie particulară Plantower PMS5003
Met One Instruments BAM 1020 este o vedere obișnuită în întreaga lume care măsoară particule în orașe. Există o gamă de dispozitive mai accesibile, iar Enviro + FeatherWing vine cu un conector pentru senzorul de particule Plantower PMS5003.
Codul bibliotecii Pimoroni pentru acest senzor pare în prezent fragil. O îmbunătățire simplă și rapidă este de a prinde excepții în program. Programul plotters_combined.py poate fi îmbunătățit adăugând acest lucru în partea de sus:
import pimoroni_pms5003
Și înlocuind această linie în bucla principală while
# faceți lecturi
pms_reading = pms5003.read ()
cu:
# faceți lecturi
încercați: pms_reading = pms5003.read () cu excepția pimoroni_pms5003. ChecksumMismatchError: print ("checksum error")
Pasul 8: Mergeți mai departe
Există o serie de domenii de explorat după ce ați lansat Enviro + FeatherWing.
- Adăugarea unui senzor de temperatură extern. Senzorul de temperatură din BME280 este supus atât încălzirii interne, cât și încălzirii de la componentele din apropiere și este destinat calibrării celorlalți senzori BME280. Valoarea poate fi procesată pentru a oferi o măsură aproximativă a temperaturii aerului ambiant, dar există o mulțime de opțiuni externe superioare la prețuri accesibile.
- Calibrarea senzorilor. Presiunea este ușoară folosind observațiile meteo sau prognozele pe termen scurt (acestea vor fi la 0 ft amsl), restul sunt dificile.
- Corectarea ieșirii PMS5003 pentru umiditate relativă. O formulă este prezentată la pagina 8 din PDF despre EPA: PurpleAir PM2.5 SUA Corecție și performanță în timpul evenimentelor de fum 4/2020
- Adăugarea unui cod pentru difuzarea datelor senzorului prin Bluetooth Low Energy către alte dispozitive.
- Investigarea modului de minimizare a consumului de energie. Unii dintre senzori au linii de activare, acestea pot elimina puterea de la senzori sau le pot pune într-un mod de consum redus. Pentru senzorii cu timp de încălzire, eșantionarea periodică poate să nu fie practică.
- Cumpărarea, adaptarea sau realizarea unei cutii potrivite pentru montarea în exterior cu un flux de aer intern proiectat cu atenție și măsuri de precauție adecvate pentru lumina directă a soarelui. Senzorul de gaz SensorTech MiCS-6814 funcționează cel mai bine cu un flux constant de aer, cu un debit scăzut.
- Examinarea modului în care condițiile meteorologice influențează poluarea la nivelul solului. Sugestie: inversiunile sunt semnificative.
- Conversia la energie de la baterie sau solară cu energie de la baterie. Energia solară este mai dificilă decât simpla adăugare a unui panou solar fotovoltaic, consultați secțiunea Note de proiectare din Adafruit Learn: USB, DC și Solar Lipoly Charger.
- Adăugarea altor senzori pentru măsurarea poluanților obișnuiți precum ozonul (O3) și dioxidul de sulf (SO2) sau gazele cu efect de seră precum dioxidul de carbon (CO2). Câțiva senzori măsoară „eCO2” și nu sunt potrivite pentru măsurarea CO2 atmosferic. Adafruit vinde acum senzorul de mare valoare Sensirion SCD-30 NDIR CO2 pe o placă cu conectori STEMMA QT i2c.
- Dacă doriți să investigați transmiterea datelor prin Internet utilizând Wi-Fi, placa FeatherS2 cu microcontroler ESP32-S2 pare să fie compatibilă cu Enviro + FeatherWing. Există o limitare problematică cu convertorul analogic la convertizor digital ESP32-S2 (ADC) care previne măsurarea corectă a senzorilor de gaz. Consultați Forumurile Adafruit: comparație ADC Feather, inclusiv ESPV-S2 limitat de 2.6V pentru mai multe informații.
Proiecte asociate:
- Adafruit Learn: Comparație și experimentare cu senzori de gaze inflamabile
- Adafruit Learn: senzor de temperatură TMP36
Lecturi suplimentare:
- Orientările Organizației Mondiale a Sănătății (OMS) privind poluarea aerului
- British Lung Foundation - Calitatea aerului (PM2.5 și NO2)
- Respirați Londra - o rețea pentru a suplimenta Rețeaua Londrei pentru Calitatea Aerului cu „senzori de calitate a aerului accesibile, ușor de instalat și de întreținut pentru oricine”, utilizând în prezent Clarity Node-S.
- Indicele mondial al calității aerului - colectează date din mai multe surse diferite, cu vizualizări ale hărții și date istorice.
- Jurnal Atmosphere: Poluarea aerului din interiorul sobelor rezidențiale: examinarea inundațiilor de particule în case în timpul utilizării în lumea reală - aceasta utilizează versiunea Raspberry Pi a plăcii Enviro +.
- Legislație: Regulamentul privind standardele de calitate a aerului 2010 (Marea Britanie)
- Blog Pimoroni: Cea mai poluată noapte a anului (în Marea Britanie)
- The Economist: Midnight sky - Încălzirea locuințelor pe bază de cărbune din Polonia creează poluare pe scară largă (ianuarie 2021)
- BBC News: Zgomotul din trafic afectează abilitățile păsărilor cântătoare (poluarea fonică)
- Bug-uri software într-o bibliotecă de senzori de materii particulate - o privire asupra îngrijirii necesare pentru a analiza în mod robust protocolul serial PMS5003.