Mục lục:
- Bước 1: Nâng cấp Bootloader
- Bước 2: Hàn các tiêu đề
- Bước 3: Cài đặt Ví dụ về CircuitPython và Máy vẽ kết hợp
- Bước 4: Máy vẽ kết hợp
- Bước 5: Enviro + FeatherWing Pins
- Bước 6: Tiêu thụ điện năng
- Bước 7: Thêm cảm biến vật chất cụ thể của Plantower PMS5003
- Bước 8: Tiến xa hơn
Video: Sử dụng Pimoroni Enviro + FeatherWing với Adafruit Feather NRF52840 Express: 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Pimoroni Enviro + FeatherWing là một bảng chứa đầy các cảm biến được thiết kế để hoạt động với loạt bảng Adafruit Feather. Đó là một nơi hữu ích để bắt đầu cho bất kỳ ai quan tâm đến giám sát môi trường, ô nhiễm khí quyển và kết hợp dữ liệu. Nó có tính năng:
- Bosch BME280 - cảm biến nhiệt độ, áp suất, độ ẩm;
- Lite-On LTR-559 - cảm biến ánh sáng và khoảng cách;
- SensorTech MiCS-6814 - khí oxy hóa, khí khử và cảm biến amoniac;
- Micro tương tự - đo độ ô nhiễm tiếng ồn;
- Đầu nối cho cảm biến vật chất hạt Plantower PMS5003 (không bao gồm).
Bộ ba cảm biến oxit kim loại trên MiCS-6814 bao gồm một cảm biến ít phổ biến hơn đối với khí ôxy hóa. Điều này rất hữu ích cho sự nhạy cảm của nó với nitơ điôxít (NO2), một chất ô nhiễm phổ biến ở các thành phố và gần các con đường lớn.
Pimoroni khuyên bạn nên ăn quả Adafruit
- Feather M4 Express (120MHz, 192kB ram) hoặc
- Feather nRF52840 Express (64MHz, 256kB ram).
NRF52840 được chọn cho hướng dẫn này vì nó hỗ trợ Bluetooth Low Energy (BLE) giúp bo mạch có khả năng gửi dữ liệu đến một thiết bị khác.
Feather và FeatherWing đều đi kèm với tiêu đề nam không kèm theo. Các tiêu đề nữ được yêu cầu để xếp các bảng. Hướng dẫn này cho thấy việc sử dụng "tiêu đề xếp chồng" cho phép bảng Feather cũng được chèn vào bảng mạch để tạo điều kiện thuận lợi cho việc thử nghiệm với các cảm biến bổ sung. Các tiêu đề cần được hàn vào bảng nhưng điều này khá đơn giản.
Enviro + FeatherWing có một điểm khác biệt nhỏ so với người anh em họ của nó, Enviro + Air Quality cho Raspberry Pi. Phiên bản FeatherWing dường như được thiết kế để hoạt động với điện áp dưới 5V cho phép sử dụng một pin lithium polymer (LiPo) duy nhất tạo ra 3.7V-4.3V. Nó có bộ chuyển đổi DC-DC để cung cấp 5V cho PMS5003 tùy chọn và nó có thể cấp nguồn riêng cho các bộ sưởi bên trong MiCS-6814 để đối phó với các điện áp thấp hơn này.
Hình ảnh chính cho thấy Enviro + FeatherWing hiển thị dữ liệu PM2.5 và PM10 từ PMS5003. Trận đấu Swan Vestas đã diễn ra được nửa chặng đường trong âm mưu thắp sáng ngọn nến.
Bài báo thứ hai đề cập đến việc lập biểu đồ mức độ carbon Dioxide với Pimoroni Enviro + FeatherWing và Adafruit SCD-30.
Quân nhu:
- Pimoroni Enviro + FeatherWing - Pimoroni | Adafruit - (một bảng tương tự khác tồn tại cho Raspberry Pi)
- Adafruit nRF52840 Feather Express - Pimoroni | Adafruit
- Đầu trang xếp chồng lông vũ - Pimoroni | Adafruit - tiêu đề nữ bình thường hoặc bộ nghi ngờ / tripler FeatherWing cũng có thể được sử dụng
- Hàn
- Tùy chọn: Cảm biến vật chất dạng hạt Plantower PMS5003 - Pimoroni | Adafruit
Bước 1: Nâng cấp Bootloader
Bảng Feather có thể được kiểm tra trước khi hàn bằng cách kết nối nó với máy tính bằng USB. Đây là thời điểm hữu ích để kiểm tra bộ nạp khởi động - các phiên bản cũ có thể tạo ra các lỗi khó hiểu nhưng vô hại trên Windows.
Nhấp đúp vào nút đặt lại của Feather sẽ hiển thị một ổ đĩa có tên FTHR840BOOT cho máy tính chủ. Có thể mở tệp INFO_UF2. TXT để kiểm tra phiên bản, ví dụ bên dưới hiển thị nội dung cho biết phiên bản 0.2.6:
F2 Bootloader 0.2.6 lib / nrfx (v1.1.0-1-g096e770) lib / tinyusb (inherit-525-ga1c59649) s140 6.1.1
Model: Adafruit Feather nRF52840 Express Board-ID: NRF52-Bluefruit-v0 Bootloader: s140 6.1.1 Ngày: 2018-12-21
Các phiên bản trước 0.2.9 bị lỗi nói trên. Quá trình nâng cấp hơi rắc rối được mô tả trong Adafruit Tìm hiểu: Giới thiệu Adafruit nRF52840 Feather: Cập nhật Bộ nạp khởi động và được thảo luận trong Diễn đàn Adafruit: Lỗi Windows sao chép CircuitPython UF2 sang FTHR840BOOT.
Bước 2: Hàn các tiêu đề
Enviro + FeatherWing cần gắn tiêu đề nam và Feather cần gắn tiêu đề nữ xếp chồng.
Một kỹ thuật phổ biến để định vị các chân ở vị trí chính xác trong khi hàn là lắp chúng vào một breadboard. Cần thận trọng với FeatherWing này vì đầu nối picoblade ở mặt dưới cao hơn miếng đệm bằng nhựa trên tiêu đề. Điều này có thể khiến bo mạch bị hàn một góc không chủ ý. Hình trên cho thấy góc. Điều này có thể dễ dàng giải quyết bằng cách nâng đồng nhất các tiêu đề lên 2-3mm (0,1in) so với breadboard.
Các tiêu đề nữ xếp chồng phải vuông góc với bảng. Điều này có thể đạt được bằng cách đặt chúng trên một bề mặt phẳng và đảm bảo tấm Feather được ép chặt vào chúng. Hình trên cho thấy áp lực được tác động lên bút chì với một thiết bị trợ giúp ngoài tầm nhìn tác động lên cây bút chì. Một số tiêu đề dự phòng cung cấp một số trợ giúp bổ sung trong việc duy trì khoảng cách.
Biểu dữ liệu MiCS-6814 cho biết:
Cảm biến phải được hàn lại trong môi trường trung tính, không có hơi chất hàn. Cảm biến không được tiếp xúc với dung môi hữu cơ, hơi silicone hoặc khói thuốc lá có nồng độ cao để tránh nhiễm độc lớp nhạy cảm.
Một miếng băng dính nhỏ che bộ cảm biến khí là một biện pháp phòng ngừa khôn ngoan trong quá trình hàn và làm sạch chất trợ dung. Lớp bảo vệ màn hình cũng có thể được để ở giai đoạn này để đối phó với các tia thông lượng nhỏ không thể tránh khỏi khi hàn với bàn là. Micrô cũng sẽ được hưởng lợi từ việc bảo vệ bằng băng che trong bất kỳ quá trình làm sạch thông lượng nào.
Các hàng ghim dài có thể dễ dàng uốn cong khi tháo chúng ra khỏi breadboard hoặc ổ cắm khác. Hãy cẩn thận để tránh kéo bảng lên ở một đầu.
Adafruit có một hướng dẫn về cách hàn các tiêu đề xếp chồng, Pimoroni có một hướng dẫn hàn chung bao gồm các tiêu đề và có một video rất hay trên YouTube hướng dẫn cách hàn các tiêu đề vào một bảng kiểu tương tự, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!
Bước 3: Cài đặt Ví dụ về CircuitPython và Máy vẽ kết hợp
Nếu bạn chưa quen với CircuitPython thì trước tiên bạn nên đọc hướng dẫn Chào mừng đến với CircuitPython.
Các bước cài đặt bên dưới dựa trên pimoroni / EnviroPlus-FeatherWing README và hướng dẫn Bắt đầu với thư viện mới hơn để phục vụ cho CircuitPython 6.x.
- Cài đặt phiên bản mới nhất của CircuitPython (6.0.0 vào tháng 12 năm 2020) từ https://circuitpython.org/ - quy trình này được mô tả trong CircuitPython for Feather nRF52840.
- Xác minh cài đặt bằng cách kết nối với bảng điều khiển nối tiếp qua USB. Lời nhắc REPL hiển thị phiên bản. Phiên bản cũng có thể được kiểm tra bằng cách kiểm tra boot_out.txt trên ổ MẠCH.
-
Cài đặt các thư viện này từ một gói từ https://circuitpython.org/libraries vào thư mục lib trên CIRCUITPY:
- adafruit_bus_device
- adafruit_bme280 (không phải adafruit_bmp280)
- adafruit_st7735r (không phải adafruit_st7735)
- adafruit_display_text
-
Cài đặt các thư viện này từ tệp EnviroPlus-FeatherWing-1.0.zip từ GiHub: pimoroni / EnviroPlus-FeatherWing: Phiên bản 1.0 vào thư mục lib trên CIRCUITPY:
- i2cdevice (đừng nhầm với thư viện i2c_device của Adafruit)
- pimoroni_envirowing
- pimoroni_ltr559
- pimoroni_physical_feather_pins
- pimoroni_pms5003
- Không cài đặt pimoroni_circuitpython_adapter từ đây
- Cài đặt thư viện bộ điều hợp Pimoroni CircuitPython mới nhất bằng cách tải xuống tệp _init_.py vào thư mục lib / pimoroni_circuitpython_adapter mới được tạo trên CIRCUITPY.
- Tải xuống chương trình ví dụ về máy vẽ đồ thị kết hợp xuống CIRCUITPY bằng cách nhấp vào Lưu liên kết thành… trên plotters_combined.py
- Đổi tên hoặc xóa bất kỳ tệp code.py hiện có nào trên CIRCUITPY, sau đó đổi tên plotters_combined.py thành code.py. Tệp này được chạy khi trình thông dịch CircuitPython khởi động hoặc tải lại.
Các phiên bản được sử dụng cho hướng dẫn này là:
- CircuitPython 6.0.0
- Gói thư viện CircuitPython adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
- Thư viện EnviroPlus-FeatherWing Phiên bản 1.0
- thư viện pimoroni_circuitpython_adapter 9-Dec-2020 f062036
Bước 4: Máy vẽ kết hợp
Máy vẽ kết hợp có bốn màn hình:
- Âm thanh và ánh sáng.
- PM2.5 và PM10.
- Nhiệt độ, áp suất và độ ẩm.
- OX, ĐỎ và NH3.
Màn hình vật chất hạt (PM) chỉ xuất hiện nếu Plantower PMS5003 được gắn vào. Chương trình kiểm tra sự hiện diện của nó khi bắt đầu và in thông báo thông tin này nếu nó không được kết nối:
Thời gian chờ đọc PMS5003: Không đọc được phần bắt đầu của byte khung
Có thể bạn chưa kết nối pms5003, tiếp tục mà không cần ghi nhật ký hạt
Khoảng thời gian cốt truyện được đặt thành 540 giây ở đầu chương trình. Điều này có thể được điều chỉnh để kiểm soát tỷ lệ cốt truyện.
Bước 5: Enviro + FeatherWing Pins
Enviro + FeatherWing sử dụng một số lượng lớn các chân của Feather. Những cái sau được sử dụng, tên trong ngoặc là từ cách đặt tên của Pimoroni:
- A0 (pin5) - Cảm biến khí amoniac MiCS6814
- A1 (pin6) - Cảm biến khí khử MiCS8614
- A2 (pin7) - Cảm biến khí oxy hóa MiCS6814
- A3 (pin8) - micrô analog
- A4 (pin9) - bật MiCS6814
- D5 (pin19) - Lệnh màn hình bus SPI
- D6 (pin20) - Chọn chip màn hình bus SPI
- D9 (pin21) - đèn nền (PWM)
- D10 (pin22) - PMS5003 bật
- D11 (pin23) - Đặt lại PMS5003
- D12 (pin24) - ngắt LTR-559 (không được hỗ trợ trong thư viện CircuitPython)
- SCK (pin11) - Đồng hồ xe buýt SPI
- MO (pin12) - SPI bus master out slave in
- MI (pin13) - SPI bus master trong đầu ra nô lệ
- RX (pin14) - PMS5003 truyền (nhận bởi Feather)
- TX (pin15) - PMS5003 nhận (truyền từ Feather)
- SCL (pin18) - Đồng hồ I2C
- SDA (chân 17) - Dữ liệu I2C
Điều này để lại A5, D2 / DFU và D13 miễn phí để sử dụng.
Bước 6: Tiêu thụ điện năng
Mức tiêu thụ điện năng nằm trong thông số kỹ thuật của USB ngay cả khi pin LiPo được gắn và đang sạc lại. Việc sử dụng phù hợp hơn với việc lập kế hoạch chuyển sang sử dụng pin. Một số phép đo rất gần đúng của dòng điện là:
- 100mA nhàn rỗi, đèn nền tắt;
- Máy vẽ 100mA chạy, đèn nền thấp;
- Máy vẽ 120mA chạy, đèn nền cao.
Biểu dữ liệu cho Plantower PMS5003 cho biết dòng điện nhỏ hơn 100mA, điều này sẽ bổ sung cho các con số trên. Việc sử dụng bộ chuyển đổi DC-DC trên Enviro + FeatherWing có thể làm tăng con số này một chút.
Bo mạch Feather nRF52840 Express có NeoPixel (LED RGB) nhưng mức độ sáng được sử dụng mặc định làm chỉ báo trạng thái chương trình chỉ làm tăng thêm một lượng nhỏ mức tiêu thụ. Bản thân bảng Feather dưới 10mA, FeatherWing là bảng đói điện.
Bước 7: Thêm cảm biến vật chất cụ thể của Plantower PMS5003
Met One Instruments BAM 1020 là một thiết bị đo phổ biến trên khắp thế giới để đo vật chất dạng hạt ở các thành phố. Có một loạt các thiết bị giá cả phải chăng hơn và Enviro + FeatherWing đi kèm với đầu nối cho cảm biến vật chất dạng hạt Plantower PMS5003.
Mã thư viện Pimoroni cho cảm biến này hiện có vẻ rất mỏng manh. Một cải tiến đơn giản và nhanh chóng là bắt các ngoại lệ trong chương trình. Chương trình plotters_combined.py có thể được cải thiện bằng cách thêm phần này ở trên cùng:
nhập pimoroni_pms5003
Và thay thế dòng này trong vòng lặp while chính
# đọc
pms_reading = pms5003.read ()
với:
# đọc
try: pms_reading = pms5003.read () ngoại trừ pimoroni_pms5003. ChecksumMismatchError: print ("checksum error")
Bước 8: Tiến xa hơn
Có một số khu vực để khám phá khi bạn đã chạy Enviro + FeatherWing.
- Thêm cảm biến nhiệt độ bên ngoài. Cảm biến nhiệt độ trong BME280 chịu cả nhiệt bên trong và nhiệt từ các bộ phận lân cận và được thiết kế để hiệu chỉnh các cảm biến BME280 khác. Giá trị có thể được xử lý để cung cấp một số đo gần đúng về nhiệt độ không khí xung quanh nhưng có rất nhiều tùy chọn bên ngoài cao cấp, giá cả phải chăng.
- Hiệu chỉnh các cảm biến. Áp suất rất dễ sử dụng quan sát thời tiết hoặc dự báo ngắn hạn (chúng sẽ ở mức 0 ft amsl), phần còn lại là khó.
- Điều chỉnh đầu ra PMS5003 cho độ ẩm tương đối. Một công thức được trình bày trên trang 8 của PDF trên EPA: Hiệu chỉnh và hiệu suất của PurpleAir PM2.5 Hoa Kỳ trong sự kiện khói 4/2020
- Thêm mã để truyền dữ liệu cảm biến qua Bluetooth Low Energy tới các thiết bị khác.
- Nghiên cứu cách giảm thiểu điện năng tiêu thụ. Một số cảm biến có đường kích hoạt, những đường này có thể loại bỏ nguồn điện từ cảm biến hoặc đặt chúng ở chế độ năng lượng thấp. Đối với các cảm biến có thời gian khởi động, việc lấy mẫu định kỳ có thể không phù hợp thực tế.
- Mua, điều chỉnh hoặc chế tạo vỏ phù hợp để gắn bên ngoài với luồng không khí bên trong được thiết kế cẩn thận và các biện pháp phòng ngừa thích hợp đối với ánh nắng trực tiếp. Cảm biến khí SensorTech MiCS-6814 hoạt động tốt nhất với luồng không khí lưu thông tốc độ thấp, liên tục qua nó.
- Kiểm tra mức độ ảnh hưởng của điều kiện thời tiết đối với ô nhiễm ở mặt đất. Gợi ý: nghịch đảo là đáng kể.
- Chuyển đổi sang năng lượng pin hoặc năng lượng mặt trời với năng lượng pin. Năng lượng mặt trời còn nhiều thách thức hơn là chỉ cần thêm một tấm pin mặt trời quang điện, hãy xem phần Ghi chú thiết kế trong Adafruit Learn: USB, DC & Solar Lipoly Charger.
- Thêm các cảm biến khác để đo các chất ô nhiễm thông thường như Ozone (O3) và sulfur dioxide (SO2) hoặc các khí nhà kính như carbon dioxide (CO2). Một số cảm biến đo "eCO2" và không thích hợp để đo CO2 trong khí quyển. Adafruit hiện đang bán cảm biến CO2 Sensirion SCD-30 NDIR giá trị lớn trên bảng có đầu nối STEMMA QT i2c.
- Nếu bạn muốn điều tra việc gửi dữ liệu qua Internet bằng Wi-Fi thì bo mạch FeatherS2 với bộ vi điều khiển ESP32-S2 dường như tương thích với Enviro + FeatherWing. Có một hạn chế có vấn đề với bộ chuyển đổi tương tự ESP32-S2 sang kỹ thuật số (ADC), ngăn cản việc đo lường chính xác các cảm biến khí. Xem Diễn đàn Adafruit: So sánh Feather ADC bao gồm cả ESP32-S2 giới hạn 2.6V để biết thêm thông tin.
Các dự án liên quan:
- Adafruit Learn: So sánh và thử nghiệm với các cảm biến khí dễ cháy
- Adafruit Learn: Cảm biến nhiệt độ TMP36
Đọc thêm:
- Hướng dẫn về Ô nhiễm Không khí của Tổ chức Y tế Thế giới (WHO)
- Tổ chức Phổi Anh Quốc - Chất lượng không khí (PM2.5 và NO2)
- Breathe London - một mạng lưới để bổ sung cho Mạng lưới Chất lượng Không khí London với "các cảm biến chất lượng không khí giá cả phải chăng, dễ lắp đặt và duy trì cho bất kỳ ai", hiện đang sử dụng Clarity Node-S.
- Chỉ số Chất lượng Không khí Thế giới - thu thập dữ liệu từ nhiều nguồn khác nhau với chế độ xem bản đồ và dữ liệu lịch sử.
- Tạp chí Khí quyển: Ô nhiễm không khí trong nhà từ bếp ăn: Kiểm tra sự ngập lụt của vật chất dạng hạt vào nhà trong quá trình sử dụng trong thế giới thực - điều này sử dụng phiên bản Raspberry Pi của bảng Enviro +.
- Luật pháp: Quy định Tiêu chuẩn Chất lượng Không khí 2010 (Anh)
- Blog Pimoroni: Đêm ô nhiễm nhất trong năm (ở Anh)
- The Economist: Bầu trời lúc nửa đêm - Hệ thống sưởi nhà bằng than ở Ba Lan tạo ra ô nhiễm trên diện rộng (tháng 1 năm 2021)
- BBC News: Tiếng ồn giao thông làm suy giảm khả năng của chim biết hót (ô nhiễm tiếng ồn)
- Lỗi phần mềm trong Thư viện cảm biến vật chất dạng hạt - xem xét sự cẩn thận cần thiết để phân tích cú pháp mạnh mẽ giao thức nối tiếp PMS5003.