Оглавление:

Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express: 8 шагов
Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express: 8 шагов

Видео: Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express: 8 шагов

Видео: Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express: 8 шагов
Видео: 3D Hangouts — светодиоды, реквизит, Wipper Snapper и приспособление для перьевых заголовков 2024, Ноябрь
Anonim
Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express
Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express
Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express
Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express
Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express
Использование Pimoroni Enviro + FeatherWing с Adafruit Feather NRF52840 Express

Pimoroni Enviro + FeatherWing - это плата, заполненная датчиками, предназначенными для работы с досками серии Adafruit Feather. Это полезное место для начала для всех, кто интересуется мониторингом окружающей среды, загрязнением атмосферы и изменением данных. Особенности:

  • Bosch BME280 - датчик температуры, давления, влажности;
  • Lite-On LTR-559 - датчик освещенности и приближения;
  • SensorTech MiCS-6814 - датчик окислительных газов, восстановительных газов и аммиака;
  • Аналоговый микрофон - измерение уровня шума;
  • Разъем для датчика твердых частиц Plantower PMS5003 (не входит в комплект).

Трио металлооксидных датчиков MiCS-6814 включает менее распространенный датчик окисляющих газов. Это полезно из-за его чувствительности к диоксиду азота (NO2), загрязнителю, часто встречающемуся в городах и возле основных дорог.

Пиморони рекомендует либо Adafruit

  • Feather M4 Express (120 МГц, 192 КБ оперативной памяти) или
  • Feather nRF52840 Express (64 МГц, 256 КБ оперативной памяти).

Для этого руководства был выбран nRF52840, поскольку он поддерживает Bluetooth Low Energy (BLE), что дает плате возможность отправлять данные на другое устройство.

И Feather, и FeatherWing имеют незакрепленные мужские заголовки. Для штабелирования досок требуются женские заголовки. В этом руководстве показано использование «штабелируемых заголовков», которые позволяют вставлять плату Feather в макет, облегчая эксперименты с дополнительными датчиками. Заголовки необходимо припаять к платам, но это достаточно просто.

Enviro + FeatherWing имеет одно небольшое отличие от своего кузена, Enviro + Air Quality для Raspberry Pi. Версия FeatherWing, по-видимому, предназначена для работы с напряжением ниже 5 В, что позволяет использовать одну литий-полимерную (LiPo) батарею, вырабатывающую 3,7–4,3 В. В нем есть преобразователь постоянного тока в постоянный, обеспечивающий 5 В для дополнительного PMS5003, и он может запитывать внутренние нагреватели MiCS-6814 индивидуально, чтобы справиться с этими более низкими напряжениями.

На основном изображении показано, как Enviro + FeatherWing отображает данные PM2,5 и PM10 от PMS5003. Спичка Swan Vestas зажгла на полпути сюжета, чтобы зажечь свечу.

Во второй статье рассматривается график уровней углекислого газа с помощью Pimoroni Enviro + FeatherWing и Adafruit SCD-30.

Запасы:

  • Pimoroni Enviro + FeatherWing - Пиморони | Adafruit - (еще одна аналогичная плата существует для Raspberry Pi)
  • Adafruit nRF52840 Feather Express - Пиморони | Адафрут
  • Жатки для штабелирования перьев - Пиморони | Adafruit - также можно использовать обычные женские заголовки или удвоитель / тройник FeatherWing
  • Припой
  • Дополнительно: датчик твердых частиц Plantower PMS5003 - Pimoroni | Адафрут

Шаг 1. Обновление загрузчика

Плату Feather можно проверить перед пайкой, подключив ее к компьютеру через USB. Это удобное время для проверки загрузчика - старые версии могут приводить к сбивающим с толку, но безвредным ошибкам в Windows.

Двойной щелчок по кнопке сброса Feather вызывает отображение диска с именем FTHR840BOOT на главном компьютере. Для проверки версии можно открыть файл INFO_UF2. TXT, в приведенном ниже примере показано содержимое, указывающее на версию 0.2.6:

Загрузчик F2 0.2.6 lib / nrfx (v1.1.0-1-g096e770) lib / tinyusb (legacy-525-ga1c59649) s140 6.1.1

Модель: Adafruit Feather nRF52840 Express Board-ID: NRF52-Bluefruit-v0 Загрузчик: s140 6.1.1 Дата: 21 декабря 2018 г.

Версии до 0.2.9 страдают от вышеупомянутой ошибки. Немного неудобный процесс обновления описан в Adafruit Learn: Знакомство с Adafruit nRF52840 Feather: Update Bootloader и обсуждается на форумах Adafruit: ошибки Windows копируют CircuitPython UF2 в FTHR840BOOT.

Шаг 2: припаиваем разъемы

Пайка заголовков
Пайка заголовков
Пайка заголовков
Пайка заголовков
Пайка заголовков
Пайка заголовков

Enviro + FeatherWing нуждается в прикрепленных штыревых заголовках, а Feather нуждается в прикрепленных штабелируемых женских заголовках.

Распространенный метод размещения контактов в правильном положении при пайке - это вставить их в макетную плату. При использовании этого FeatherWing требуется некоторая осторожность, поскольку соединитель пикоблейда на нижней стороне выше пластиковых прокладок на жатке. Это может привести к непреднамеренной пайке платы под углом. На картинке выше показан угол. Это легко решается путем равномерного поднятия заголовков на 2-3 мм (0,1 дюйма) от макета.

Штабелируемые женские коллекторы должны располагаться перпендикулярно плате. Этого можно добиться, поместив их на ровную поверхность и убедившись, что перьевой картон плотно прижат к ним. На картинке выше показано давление, прикладываемое карандашом с помощью приспособления для помощи руками, находящегося вне кадра, с приложением веса карандаша. Некоторые запасные заголовки предоставляют дополнительную помощь в сохранении интервала.

В техническом описании MiCS-6814 указано:

Датчик должен быть припаян оплавлением в нейтральной атмосфере, без паров паяльного флюса. Датчик не должен подвергаться воздействию высоких концентраций органических растворителей, паров силикона или сигаретного дыма во избежание отравления чувствительного слоя.

Небольшой кусок малярной ленты, закрывающий газовый датчик, является разумной мерой предосторожности при пайке и очистке флюсом. На этом этапе также можно оставить защитную пленку, чтобы справиться с неизбежными крошечными брызгами флюса от пайки утюгом. Микрофон также может быть защищен малярной лентой во время очистки от флюса.

Длинные ряды контактов можно легко согнуть, вынув их из макета или другого гнезда. Будьте осторожны, чтобы не приподнять доску одним концом.

У Adafruit есть руководство по пайке стековых заголовков, у Pimoroni есть общее руководство по пайке, которое включает заголовки, и на YouTube есть хорошее видео, показывающее, как припаять заголовки к плате аналогичного стиля, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!

Шаг 3. Установка CircuitPython и примера комбинированного плоттера

Пример установки CircuitPython и комбинированного плоттера
Пример установки CircuitPython и комбинированного плоттера

Если вы не знакомы с CircuitPython, то сначала стоит прочитать руководство «Добро пожаловать в CircuitPython».

Приведенные ниже шаги по установке основаны на pimoroni / EnviroPlus-FeatherWing README и руководстве по началу работы с более поздней библиотекой для обслуживания CircuitPython 6.x.

  1. Установите последнюю версию CircuitPython (6.0.0 в декабре 2020 г.) с https://circuitpython.org/ - этот процесс описан в CircuitPython для Feather nRF52840.
  2. Проверьте установку, подключившись к последовательной консоли через USB. Приглашение REPL показывает версию. Версию также можно проверить, просмотрев файл boot_out.txt на диске CIRCUITPY.
  3. Установите эти библиотеки из пакета с https://circuitpython.org/libraries в каталог lib на CIRCUITPY:

    1. adafruit_bus_device
    2. adafruit_bme280 (не adafruit_bmp280)
    3. adafruit_st7735r (не adafruit_st7735)
    4. adafruit_display_text
  4. Установите эти библиотеки из файла EnviroPlus-FeatherWing-1.0.zip с GiHub: pimoroni / EnviroPlus-FeatherWing: Version 1.0 в каталог lib на CIRCUITPY:

    1. i2cdevice (не путать с библиотекой i2c_device от Adafruit)
    2. pimoroni_envirowing
    3. pimoroni_ltr559
    4. pimoroni_physical_feather_pins
    5. pimoroni_pms5003
    6. Не устанавливайте pimoroni_circuitpython_adapter отсюда
  5. Установите последнюю версию библиотеки адаптера Pimoroni CircuitPython, загрузив файл _init_.py во вновь созданный каталог lib / pimoroni_circuitpython_adapter на CIRCUITPY.
  6. Загрузите пример программы комбинированного плоттера в CIRCUITPY, щелкнув Сохранить ссылку как… на сайте plotters_combined.py
  7. Переименуйте или удалите любой существующий файл code.py на CIRCUITPY, затем переименуйте файл plotters_combined.py в code.py. Этот файл запускается при запуске или перезагрузке интерпретатора CircuitPython.

В этом руководстве использовались следующие версии:

  • CircuitPython 6.0.0
  • Пакет библиотеки CircuitPython adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
  • Библиотека EnviroPlus-FeatherWing Версия 1.0
  • Библиотека pimoroni_circuitpython_adapter 9 декабря 2020 г. f062036

Шаг 4: Комбинированный плоттер

Комбинированный плоттер
Комбинированный плоттер

Комбинированный плоттер имеет четыре экрана:

  1. Звук и свет.
  2. PM2,5 и PM10.
  3. Температура, давление и влажность.
  4. OX, RED и NH3.

Экран твердых частиц (ТЧ) появляется только в том случае, если подсоединен Plantower PMS5003. Программа проверяет его наличие при запуске и выводит это информационное сообщение, если оно не подключено:

PMS5003 Тайм-аут чтения: не удалось прочитать начало байта кадра

Вероятно, у вас нет подключенного pms5003, и вы продолжаете без регистрации твердых частиц.

Интервал построения установлен на 540 секунд в верхней части программы. Это можно отрегулировать, чтобы контролировать скорость печати.

Шаг 5: булавки Enviro + FeatherWing

Штифты Enviro + FeatherWing
Штифты Enviro + FeatherWing
Штифты Enviro + FeatherWing
Штифты Enviro + FeatherWing

Enviro + FeatherWing использует большое количество булавок Feather. Используются следующие, имена в скобках взяты из схемы именования Пиморони:

  • A0 (pin5) - датчик газа аммиака MiCS6814
  • A1 (pin6) - датчик редукционного газа MiCS8614
  • A2 (pin7) - датчик окислительного газа MiCS6814
  • A3 (pin8) - аналоговый микрофон
  • A4 (pin9) - MiCS6814 включить
  • D5 (pin19) - команда экрана шины SPI
  • D6 (pin20) - выбор микросхемы экрана шины SPI
  • D9 (pin21) - подсветка (ШИМ)
  • D10 (pin22) - PMS5003 включить
  • D11 (pin23) - сброс PMS5003
  • D12 (pin24) - прерывание LTR-559 (не поддерживается в библиотеке CircuitPython)
  • SCK (pin11) - часы шины SPI
  • MO (pin12) - главный выход шины SPI подчиненный вход
  • MI (pin13) - мастер шины SPI в подчиненном выходе
  • RX (pin14) - передача PMS5003 (прием Feather)
  • TX (pin15) - прием PMS5003 (передача от Feather)
  • SCL (pin18) - часы I2C
  • SDA (вывод 17) - данные I2C

Это оставляет A5, D2 / DFU и D13 свободными для использования.

Шаг 6: Потребляемая мощность

Потребляемая мощность
Потребляемая мощность

Энергопотребление находится в пределах спецификации USB, даже если литий-полимерный аккумулятор подключен и заряжается. Использование более актуально для планирования перехода на питание от батареи. Вот некоторые очень приблизительные измерения силы тока:

  • 100мА в режиме ожидания, подсветка выключена;
  • Плоттер 100мА работает, подсветка слабая;
  • Плоттер 120 мА работает, подсветка высокая.

В таблице данных Plantower PMS5003 указано, что ток меньше 100 мА, это будет в дополнение к приведенным выше значениям. Использование DC-DC преобразователя в Enviro + FeatherWing может немного увеличить это число.

Плата Feather nRF52840 Express имеет NeoPixel (светодиод RGB), но уровни яркости для использования по умолчанию в качестве индикатора состояния программы лишь незначительно увеличивают потребление. Сама по себе плата Feather имеет ток ниже 10 мА, FeatherWing - это энергоемкая плата.

Шаг 7. Добавление датчика особого вещества Plantower PMS5003

Добавление датчика особого вещества Plantower PMS5003
Добавление датчика особого вещества Plantower PMS5003
Добавление датчика особого вещества Plantower PMS5003
Добавление датчика особого вещества Plantower PMS5003
Добавление датчика особого вещества Plantower PMS5003
Добавление датчика особого вещества Plantower PMS5003

Met One Instruments BAM 1020 - это обычное во всем мире устройство для измерения твердых частиц в городах. Существует ряд более доступных устройств, и Enviro + FeatherWing поставляется с разъемом для датчика твердых частиц Plantower PMS5003.

Код библиотеки Pimoroni для этого датчика в настоящее время кажется хрупким. Простое и быстрое улучшение - это перехват исключений в программе. Программу plotters_combined.py можно улучшить, добавив ее вверху:

импорт pimoroni_pms5003

И заменив эту строку в основном цикле while

# снять показания

pms_reading = pms5003.read ()

с участием:

# снять показания

попробуйте: pms_reading = pms5003.read () за исключением pimoroni_pms5003. ChecksumMismatchError: print ("ошибка контрольной суммы")

Шаг 8: Идем дальше

Идти дальше
Идти дальше

После запуска Enviro + FeatherWing вам предстоит изучить ряд областей.

  • Добавление внешнего датчика температуры. Датчик температуры в BME280 подвергается как внутреннему нагреву, так и нагреву от соседних компонентов и предназначен для калибровки других датчиков BME280. Значение можно обработать, чтобы получить приблизительную меру температуры окружающего воздуха, но существует множество доступных и превосходных внешних опций.
  • Калибровка датчиков. Давление легко при использовании погодных наблюдений или краткосрочных прогнозов (они будут на высоте 0 футов над уровнем моря), остальное сложно.
  • Корректировка вывода PMS5003 на относительную влажность. Формула представлена на странице 8 PDF-файла EPA: PurpleAir PM2.5 Коррекция и эффективность при задымлении в США 4/2020.
  • Добавление кода для передачи данных датчика по Bluetooth Low Energy на другие устройства.
  • Изучение способов минимизировать энергопотребление. Некоторые датчики имеют разрешающие линии, они могут отключать питание датчиков или переводить их в режим пониженного энергопотребления. Для датчиков с временем прогрева периодический отбор проб может оказаться нецелесообразным.
  • Покупка, адаптация или изготовление корпуса, подходящего для установки на улице, с тщательно продуманным внутренним потоком воздуха и соответствующими мерами предосторожности от попадания прямых солнечных лучей. Датчик газа SensorTech MiCS-6814 лучше всего работает при постоянном малом потоке воздуха через него.
  • Изучение того, как погодные условия влияют на загрязнение на уровне земли. Подсказка: инверсии важны.
  • Преобразование в батарею или солнечную батарею с питанием от батареи. Солнечная энергия является более сложной задачей, чем просто добавить фотоэлектрическую солнечную панель, см. Раздел «Примечания к дизайну» в Adafruit Learn: USB, DC и Solar Lipoly Charger.
  • Добавление других датчиков для измерения распространенных загрязнителей, таких как озон (O3) и диоксид серы (SO2), или парниковых газов, таких как диоксид углерода (CO2). Некоторые датчики измеряют «eCO2» и не подходят для измерения атмосферного CO2. Adafruit теперь продает недорогой датчик CO2 Sensirion SCD-30 NDIR на плате с разъемами STEMMA QT i2c.
  • Если вы хотите исследовать отправку данных через Интернет с помощью Wi-Fi, то плата FeatherS2 с микроконтроллером ESP32-S2, по-видимому, совместима с Enviro + FeatherWing. С аналого-цифровым преобразователем (АЦП) ESP32-S2 существует проблемное ограничение, которое препятствует правильному измерению газовых датчиков. См. Форумы Adafruit: Сравнение АЦП Feather, включая ESP32-S2 с ограничением 2,6 В для получения дополнительной информации.

Связанные проекты:

  • Adafruit Learn: сравнение и эксперименты с датчиками горючих газов
  • Adafruit Learn: датчик температуры TMP36

Дальнейшее чтение:

  • Рекомендации Всемирной организации здравоохранения (ВОЗ) по загрязнению воздуха
  • Британский фонд легких - Качество воздуха (PM2,5 и NO2)
  • Breathe London - сеть, дополняющая Лондонскую сеть контроля качества воздуха «доступными, простыми в установке и обслуживании датчиками качества воздуха для всех», в настоящее время использующая Clarity Node-S.
  • Мировой индекс качества воздуха - собирает данные из множества различных источников с картами и историческими данными.
  • Журнал Atmosphere: Загрязнение воздуха в помещении от бытовых печей: Изучение наводнения твердых частиц в домах во время использования в реальном мире - здесь используется версия платы Enviro + для Raspberry Pi.
  • Законодательство: Нормы стандартов качества воздуха 2010 г. (Великобритания)
  • Блог Pimoroni: Самая грязная ночь года (в Великобритании)
  • The Economist: Полуночное небо - Польское отопление домов на угле создает повсеместное загрязнение (январь 2021 г.)
  • BBC News: Транспортный шум снижает способности певчих птиц (шумовое загрязнение)
  • Ошибки программного обеспечения в библиотеке датчиков твердых частиц - взгляните на меры предосторожности, необходимые для надежного анализа последовательного протокола PMS5003.