İçindekiler:
- 1. Adım: Önyükleyiciyi Yükseltme
- Adım 2: Başlıkları Lehimleme
- Adım 3: CircuitPython ve Kombine Plotter Örneğinin Kurulumu
- Adım 4: Birleşik Plotter
- Adım 5: Enviro+ FeatherWing Pimleri
- Adım 6: Güç Tüketimi
- Adım 7: Plantower PMS5003 Özel Madde Sensörünü Ekleme
- Adım 8: Daha İleri Gitmek
Video: Pimoroni Enviro+ FeatherWing'i Adafruit Feather NRF52840 Express ile Kullanma: 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Pimoroni Enviro+ FeatherWing, Adafruit Feather serisi panolarla çalışmak üzere tasarlanmış sensörlerle dolu bir panodur. Çevresel izleme, atmosfer kirliliği ve veri hırsızlığı ile ilgilenen herkes için faydalı bir başlangıç noktasıdır. Şu özelliklere sahiptir:
- Bosch BME280 - sıcaklık, basınç, nem sensörü;
- Lite-On LTR-559 - ışık ve yakınlık sensörü;
- SensorTech MiCS-6814 - oksitleyici gazlar, indirgeyici gazlar ve amonyak sensörü;
- Analog mikrofon - gürültü kirliliğini ölçmek;
- Plantower PMS5003 partikül madde sensörü için konektör (dahil değildir).
MiCS-6814'teki metal oksit sensörlerinin üçlüsü, oksitleyici gazlar için daha az yaygın bir sensör içerir. Bu, şehirlerde ve ana yolların yakınında yaygın bir kirletici olan nitrojen dioksite (NO2) duyarlılığı için yararlıdır.
Pimoroni, Adafruit'i tavsiye ediyor
- Feather M4 Express (120MHz, 192kB ram) veya
- Tüy nRF52840 Ekspres (64MHz, 256kB ram).
nRF52840, karta başka bir cihaza veri gönderme potansiyeli veren Bluetooth Düşük Enerjiyi (BLE) desteklediği için bu kılavuz için seçilmiştir.
Feather ve FeatherWing'in her ikisi de bağlanmamış erkek başlıklarla birlikte gelir. Tahtaları istiflemek için dişi başlıklar gereklidir. Bu kılavuz, Feather board'un bir devre tahtasına yerleştirilmesine izin veren ve ekstra sensörlerle deney yapmayı kolaylaştıran "yığınlama başlıklarının" kullanımını gösterir. Başlıkların panolara lehimlenmesi gerekir, ancak bu oldukça basittir.
Enviro+ FeatherWing'in kuzeni Raspberry Pi için Enviro+ Hava Kalitesi ile karşılaştırıldığında ince bir farkı vardır. FeatherWing versiyonu, 3.7V-4.3V üreten tek bir lityum polimer (LiPo) pilin kullanılmasına izin vererek 5V'nin altındaki voltajlarla çalışacak şekilde tasarlanmış gibi görünüyor. İsteğe bağlı PMS5003 için 5V sağlamak üzere bir DC-DC dönüştürücüye sahiptir ve bu düşük voltajlarla başa çıkmak için MiCS-6814 dahili ısıtıcılara ayrı ayrı güç sağlayabilir.
Ana resim, PMS5003'ten PM2.5 ve PM10 verilerini görüntüleyen Enviro+ FeatherWing'i gösterir. Mumu yakmak için arsanın ortasında bir Kuğu Vestas kibriti vuruldu.
İkinci bir makale, Pimoroni Enviro+ FeatherWing ve Adafruit SCD-30 ile Karbon Dioksit Seviyelerinin Çizilmesini kapsar.
Gereçler:
- Pimoroni Enviro+ FeatherWing - Pimoroni | Adafruit - (Raspberry Pi için benzer bir tahta daha var)
- Adafruit nRF52840 Tüy Ekspres - Pimoroni | Ada meyvesi
- Tüy İstifleme Başlıkları - Pimoroni | Adafruit - normal dişi başlıklar veya FeatherWing doubler/tripler da kullanılabilir
- Lehim
- Opsiyonel: Plantower PMS5003 partikül madde sensörü - Pimoroni | Ada meyvesi
1. Adım: Önyükleyiciyi Yükseltme
Feather board, USB kullanılarak bir bilgisayara bağlanarak lehimlenmeden önce kontrol edilebilir. Bu, önyükleyiciyi kontrol etmek için faydalı bir zamandır - eski sürümler, Windows'ta kafa karıştırıcı ancak zararsız hatalar üretebilir.
Feather'ın sıfırlama düğmesine çift tıklamak, ana bilgisayara FTHR840BOOT adlı bir sürücünün sunulmasına neden olur. Sürümü incelemek için INFO_UF2. TXT adlı bir dosya açılabilir, aşağıdaki örnek 0.2.6 sürümünü gösteren içeriği gösterir:
F2 Önyükleyici 0.2.6 lib/nrfx (v1.1.0-1-g096e770) lib/tinyusb (eski-525-ga1c59649) s140 6.1.1
Model: Adafruit Feather nRF52840 Express Board-ID: NRF52-Bluefruit-v0 Bootloader: s140 6.1.1 Tarih: 21 Aralık 2018
0.2.9'dan önceki sürümler, yukarıda belirtilen hatadan muzdariptir. Biraz zahmetli yükseltme işlemi Adafruit Learn: Introduction the Adafruit nRF52840 Feather: Update Bootloader'da açıklanmış ve Adafruit Forumlarında tartışılmıştır: Windows hataları CircuitPython UF2'yi FTHR840BOOT'a kopyalar.
Adım 2: Başlıkları Lehimleme
Enviro+ FeatherWing'in erkek başlıklarının takılı olması ve Feather'ın istifleme dişi başlıklarının takılı olması gerekir.
Lehimleme sırasında pimleri doğru konuma yerleştirmek için yaygın bir teknik, bunları bir devre tahtasına yerleştirmektir. Alt taraftaki piko kanatlı konektör, başlıktaki plastik ara parçalardan daha uzun olduğundan, bu FeatherWing ile biraz dikkatli olunması gerekir. Bu, kartın istemeden bir açıyla lehimlenmesine neden olabilir. Yukarıdaki resim açıyı göstermektedir. Bu, başlıkları devre tahtasından 2-3 mm (0,1 inç) eşit şekilde yükselterek kolayca çözülür.
İstiflenen dişi başlıklar panoya dik olmalıdır. Bu, bunları düz bir yüzeye yerleştirerek ve Feather board'un üzerlerine sıkıca bastırılmasını sağlayarak başarılabilir. Yukarıdaki resim, kurşun kaleme ağırlık veren bir yardımcı eller cihazı ile kurşun kalemle uygulanan basıncı göstermektedir. Bazı yedek başlıklar, aralığın korunmasında ek yardım sağlar.
MiCS-6814 veri sayfası şunları belirtir:
Sensör, akı buharları lehimlenmeden nötr bir atmosferde yeniden akışla lehimlenmelidir. Hassas tabakanın zehirlenmesini önlemek için sensör yüksek konsantrasyonlarda organik çözücülere, silikon buharlarına veya sigara dumanına maruz bırakılmamalıdır.
Gaz sensörünü kaplayan küçük bir maskeleme bandı parçası, lehimleme ve flux temizleme sırasında akıllıca bir önlemdir. Bu aşamada, bir ütüyle lehimlemeden kaynaklanan kaçınılmaz küçük akı sıçramalarıyla başa çıkmak için ekran koruyucu da bırakılabilir. Mikrofon, herhangi bir akı temizliği sırasında maskeleme bandı ile korumadan da faydalanacaktır.
Uzun pim sıraları, bunları bir devre tahtasından veya başka bir yuvadan çıkarırken kolayca bükülebilir. Tahtayı bir ucundan yukarı kaldırmaktan kaçının.
Adafruit'in lehimleme başlıklarını lehimleme konusunda bir rehberi var, Pimoroni'nin başlıkları içeren genel bir lehimleme rehberi var ve YouTube'da başlıkların benzer bir stil kartına nasıl lehimleneceğini gösteren güzel bir video var, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!
Adım 3: CircuitPython ve Kombine Plotter Örneğinin Kurulumu
CircuitPython'a aşina değilseniz, önce CircuitPython'a Hoş Geldiniz kılavuzunu okumaya değer.
Aşağıdaki kurulum adımları pimoroni / EnviroPlus-FeatherWing README'yi ve CircuitPython 6.x'in ihtiyaçlarını karşılamak için daha sonraki bir kitaplıkla Başlarken kılavuzuna dayanmaktadır.
- https://circuitpython.org/ adresinden CircuitPython'un en son sürümünü (Aralık 2020'de 6.0.0) yükleyin - bu işlem, Feather nRF52840 için CircuitPython'da açıklanmıştır.
- USB üzerinden seri konsola bağlanarak kurulumu doğrulayın. REPL istemi sürümü gösterir. Sürüm, CIRCUTPY sürücüsündeki boot_out.txt dosyası incelenerek de kontrol edilebilir.
-
Bu kitaplıkları https://circuitpython.org/libraries adresindeki bir paketten CIRCUTPY'deki lib dizinine yükleyin:
- adafruit_bus_device
- adafruit_bme280 (adafruit_bmp280 değil)
- adafruit_st7735r (adafruit_st7735 değil)
- adafruit_display_text
-
Bu kitaplıkları GiHub'daki EnviroPlus-FeatherWing-1.0.zip dosyasından: pimoroni/EnviroPlus-FeatherWing: Sürüm 1.0'dan CIRCUITPY'deki lib dizinine yükleyin:
- i2cdevice (Adafruit'in i2c_device kitaplığı ile karıştırılmamalıdır)
- pimoroni_envirowing
- pimoroni_ltr559
- pimoroni_physical_feather_pins
- pimoroni_pms5003
- pimoroni_circuitpython_adapter'ı buradan kurmayın
- _init_.py dosyasını CIRCUITPY üzerinde yeni oluşturulmuş bir lib/pimoroni_circuitpython_adapter dizinine indirerek en son Pimoroni CircuitPython adaptör kitaplığını kurun.
- Plotters_combined.py üzerinde Bağlantıyı farklı kaydet… seçeneğine tıklayarak kombine çizici örnek programını CIRCUTPY'ye indirin
- CIRCUTPY'de mevcut herhangi bir code.py dosyasını yeniden adlandırın veya silin, ardından plotters_combined.py dosyasını code.py olarak yeniden adlandırın. Bu dosya, CircuitPython yorumlayıcı başlatıldığında veya yeniden yüklendiğinde çalıştırılır.
Bu kılavuz için kullanılan sürümler şunlardı:
- DevrePython 6.0.0
- CircuitPython kitaplık paketi adafruit-circuitpython-bundle-6.x-mpy-201208.zip
- EnviroPlus-FeatherWing kitaplığı Sürüm 1.0
- pimoroni_circuitpython_adapter kitaplığı 9-Aralık-2020 f062036
Adım 4: Birleşik Plotter
Kombine çizicinin dört ekranı vardır:
- Ses ve Işık.
- PM2.5 ve PM10.
- Sıcaklık, basınç ve nem.
- OX, KIRMIZI ve NH3.
Partikül madde (PM) ekranı yalnızca Plantower PMS5003 takılıysa görünür. Program başlangıçta varlığını kontrol eder ve bağlı değilse bu bilgi mesajını yazdırır:
PMS5003 Okuma Zaman Aşımı: Çerçeve baytının başlangıcı okunamadı
Muhtemelen bağlı bir pms5003'ünüz yok, parçacık kaydı olmadan devam ediyor
Çizim aralığı programın üst kısmında 540 saniye olarak ayarlanmıştır. Bu, çizim oranını kontrol etmek için ayarlanabilir.
Adım 5: Enviro+ FeatherWing Pimleri
Enviro+ FeatherWing, çok sayıda Feather pinini kullanır. Aşağıdakiler kullanılmıştır, parantez içindeki isimler Pimoroni'nin adlandırma şemasından alınmıştır:
- A0 (pin5) - MiCS6814 amonyak gazı sensörü
- A1 (pin6) - MiCS8614 azaltıcı gaz sensörü
- A2 (pin7) - MiCS6814 oksitleyici gaz sensörü
- A3 (pin8) - analog mikrofon
- A4 (pin9) - MiCS6814 etkinleştir
- D5 (pin19) - SPI veri yolu ekran komutu
- D6 (pin20) - SPI veri yolu ekran çipi seçimi
- D9 (pin21) - arka ışık (PWM)
- D10 (pin22) - PMS5003 etkinleştir
- D11 (pin23) - PMS5003 sıfırlama
- D12 (pin24) - LTR-559 kesmesi (CirclePython kitaplığında desteklenmez)
- SCK (pin11) - SPI veri yolu saati
- MO (pin12) - SPI bus ana çıkışı köle girişi
- MI (pin13) - Köle çıkışında SPI bus master
- RX (pin14) - PMS5003 iletme (Tüy ile alma)
- TX (pin15) - PMS5003 alma (Tüyden iletme)
- SCL (pin18) - I2C saati
- SDA (pim 17) - I2C verileri
Bu, A5, D2/DFU ve D13'ü kullanım için serbest bırakır.
Adım 6: Güç Tüketimi
Güç tüketimi, bir LiPo pil takılı ve yeniden şarj oluyor olsa bile, USB spesifikasyonu dahilindedir. Kullanım, pil gücüne geçişi planlamak için daha uygundur. Akımın bazı çok yaklaşık ölçümleri şunlardır:
- 100mA boşta, arka ışık kapalı;
- 100mA çizici çalışıyor, arka ışık düşük;
- 120mA çizici çalışıyor, arka ışık yüksek.
Plantower PMS5003'ün veri sayfası, akımın 100mA'dan az olduğunu belirtir, bu, yukarıdaki sayılara ek olacaktır. Enviro+ FeatherWing'de DC-DC dönüştürücünün kullanılması bu sayıyı biraz artırabilir.
Feather nRF52840 Express kartında NeoPixel (RGB LED) bulunur, ancak program durumunun bir göstergesi olarak varsayılan kullanımı için parlaklık seviyeleri tüketime yalnızca küçük bir miktar ekler. Feather kartının kendisi kendi başına 10mA'nın altındadır, FeatherWing güç aç bir tahtadır.
Adım 7: Plantower PMS5003 Özel Madde Sensörünü Ekleme
Met One Instruments BAM 1020, şehirlerdeki partikül maddeyi ölçen dünya çapında yaygın bir manzaradır. Daha uygun fiyatlı bir dizi cihaz mevcuttur ve Enviro+ FeatherWing, Plantower PMS5003 partikül madde sensörü için bir konektörle birlikte gelir.
Bu sensör için Pimoroni kitaplık kodu şu anda kırılgan görünüyor. Basit ve hızlı bir iyileştirme, programdaki istisnaları yakalamaktır. plotters_combined.py programı, bunu en üste ekleyerek geliştirilebilir:
pimoroni_pms5003'ü içe aktar
Ve bu satırı ana while döngüsünde değiştirmek
# okumalar al
pms_reading = pms5003.read()
ile birlikte:
# okumalar al
deneyin: pms_reading = pms5003.read() pimoroni_pms5003. ChecksumMismatchError hariç: print("checksum error")
Adım 8: Daha İleri Gitmek
Enviro+ FeatherWing'i çalıştırdıktan sonra keşfedebileceğiniz çok sayıda alan var.
- Harici bir sıcaklık sensörü ekleme. BME280'deki sıcaklık sensörü hem dahili ısıtmaya hem de yakındaki bileşenlerden gelen ısıtmaya tabidir ve diğer BME280 sensörlerini kalibre etmesi amaçlanmıştır. Değer, ortam hava sıcaklığının yaklaşık bir ölçüsünü sağlamak için işlenebilir, ancak çok sayıda uygun fiyatlı, üstün harici seçenek vardır.
- Sensörlerin kalibrasyonu. Hava durumu gözlemlerini veya kısa vadeli tahminleri kullanarak basınç kolaydır (bunlar 0 ft amsl'de olacaktır), gerisi zordur.
- Bağıl nem için PMS5003 çıktısının düzeltilmesi. EPA ile ilgili PDF'nin 8. sayfasında bir formül sunulmuştur: PurpleAir PM2.5 U. S. Duman Olayları Sırasında Düzeltme ve Performans 4/2020
- Sensör verilerini Bluetooth Low Energy üzerinden diğer cihazlara yayınlamak için kod ekleme.
- Güç tüketiminin nasıl en aza indirileceğini araştırmak. Sensörlerin bazılarında etkinleştirme hatları vardır, bunlar sensörlerden gelen gücü kesebilir veya düşük güç moduna geçirebilir. Isınma süresi olan sensörler için periyodik olarak örnekleme pratik olmayabilir.
- Dikkatlice tasarlanmış iç hava akışı ve doğrudan güneş ışığı için uygun önlemler ile dış mekana montaja uygun bir kasa satın almak, uyarlamak veya yapmak. SensorTech MiCS-6814 gaz sensörü, üzerinde sabit, düşük hızlı bir hava akışı ile en iyi şekilde çalışır.
- Hava koşullarının yer seviyesindeki kirliliği nasıl etkilediğini incelemek. İpucu: inversiyonlar önemlidir.
- Pil gücü ile pil gücüne veya güneş enerjisine dönüştürme. Güneş enerjisi, bir fotovoltaik güneş paneli eklemekten daha zordur, Adafruit Learn: USB, DC ve Solar Lipoli Şarj Cihazı'ndaki Tasarım Notları bölümüne bakın.
- Ozon (O3) ve kükürt dioksit (SO2) gibi yaygın kirleticileri veya karbondioksit (CO2) gibi sera gazlarını ölçmek için başka sensörler eklemek. Birkaç sensör "eCO2" ölçer ve atmosferik CO2 ölçümü için uygun değildir. Adafruit şimdi STEMMA QT i2c konektörlü bir kart üzerinde çok değerli Sensirion SCD-30 NDIR CO2 sensörünü satıyor.
- Wi-Fi kullanarak İnternet üzerinden veri göndermeyi araştırmak istiyorsanız, ESP32-S2 mikro denetleyicili FeatherS2 kartının Enviro+ FeatherWing ile uyumlu olduğu görülüyor. ESP32-S2 analog-dijital dönüştürücülerde (ADC) gaz sensörlerinin doğru şekilde ölçülmesini engelleyen sorunlu bir sınırlama vardır. Daha fazla bilgi için 2.6V sınırlı ESP32-S2 dahil Adafruit Forumları: Feather ADC karşılaştırmasına bakın.
İlgili Projeler:
- Adafruit Learn: Yanıcı Gaz Sensörleri ile Karşılaştırma ve Deney
- Adafruit Learn: TMP36 Sıcaklık Sensörü
Daha fazla okuma:
- Dünya Sağlık Örgütü (WHO) Hava Kirliliği Yönergeleri
- İngiliz Akciğer Vakfı - Hava Kalitesi (PM2.5 ve NO2)
- Breathe London - şu anda Clarity Node-S'yi kullanan, Londra Hava Kalitesi Ağı'nı "herkes için uygun fiyatlı, kurulumu ve bakımı kolay hava kalitesi sensörleri" ile destekleyecek bir ağ.
- Dünya Hava Kalitesi Endeksi - harita görünümleri ve geçmiş verilerle birçok farklı kaynaktan veri toplar.
- Atmosfer Dergisi: Evsel Sobalardan Kaynaklanan İç Mekan Hava Kirliliği: Gerçek Dünya Kullanımı Sırasında Evlere Partikül Madde Taşmasını İncelemek - bu, Enviro+ panosunun Raspberry Pi sürümünü kullanır.
- Mevzuat: 2010 Hava Kalitesi Standartları Düzenlemeleri (İngiltere)
- Pimoroni Blog: Yılın En Kirli Gecesi (İngiltere'de)
- The Economist: Gece yarısı gökyüzü - Polonya'nın kömürle çalışan ev ısıtması yaygın kirlilik yaratıyor (Ocak 2021)
- BBC News: Trafik gürültüsü ötücü kuşların yeteneklerini bozuyor (gürültü kirliliği)
- Partikül Madde Sensör Kitaplığındaki Yazılım Hataları - PMS5003 seri protokolünü sağlam bir şekilde ayrıştırmak için gereken özene bir bakış.