Enviro Air Quality: подключение, настройка и начало работы

Используйте Enviro Air Quality для мониторинга окружающей среды. Модуль буквально «напичкан» датчиками, которые помогут измерить качество воздуха, атмосферное давление, температуру и влажность окружающей среды, уровень шума и освещенности, а также зафиксирует приближение объекта. А ещё модуль позволяет вывести все показатели датчиков на яркий графический дисплей.

Enviro Air Quality — это уникальная и компактная метеостанция для Raspberry Pi.

Подключение и настройка

Enviro Air Quality совместим со всеми версиями компьютеров Raspberry Pi. В качестве примера используем одноплатный компьютер Raspberry Pi 4.

  1. Установите Enviro Air Quality сверху на Raspberry Pi через 40-контактную колодку пинов ввода-вывода.
  2. Скачайте репозиторий с драйверами от производителя через систему контроля версий git.
    git clone git clone https://github.com/pimoroni/enviroplus-python
  3. Перейдите в директорию библиотеки.
    cd enviroplus-python
  4. Запустите скрипт, который разом установит все программные модули под каждый датчик и настроит интерфейсы компьютера Raspberry Pi.
    sudo ./install.sh
  5. Перезагрузите систему, после установки драйверов.
    sudo reboot
  6. На этом установка библиотеки закончена и можно смело переходить к экспериментам.

Примеры работы

Из коробки в библиотеке Enviroplus Python хранятся базовые примеры для знакомства с модулем.

  1. Перейдите в директорию с экспериментами:
    cd examples
  2. Отобразите все примеры из директории:
    ls

  3. Рассмотрим их подробнее.

BME280: вывод климатических показаний

Для начала запустите пример для вывода показаний с климатического датчика.

python3 weather.py

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

Вы заметите, что значение температуры немного завышено. Это связано с тем, что некоторое количество тепла всё таки передается от процессора Raspberry Pi к плате Enviro+ и, следовательно, к датчику BME280. Но, вы можете получить температуру процессора Pi от его внутреннего датчика температуры и использовать полученное значение для показаний.

Запустите пример для вывода температуры с компенсацией.

python3 compensated-temperature.py

В итоге показания температуры будут более точными.

LTR-559: вывод освещенности и расстояния

Перейдем к оптическому сенсору освещенности и расстояния. Запустите пример:

python3 light.py

В консоли отобразится текущее значению потока света в люксах и расстояние до видимого объекта в отчетах АЦП от 0 до 2047, при этом расстояние до объекта обратно пропорционально показаниям в консоли.

MiCS6814: вывод концентрации вредных веществ

Датчик газа MiCS6814 выводит значения сопротивления вредных веществ в Ом’ах, которые соответствуют уровням трех различных типов газа: восстанавливающего, окисляющего и аммиака. Запустите пример:

python gas.py

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

Как только показания стабилизировались, попробуйте подышать на датчик и сравните изменения.

ST7735 LCD: привет мир

Вывод в консоль не всегда удобен для мониторинга данных в реальном времени. Для этого на плате Enviro+ расположен маленький, но яркий и красочный дисплей. В качестве теста экрана запустим проверенный годами Hello, World!

python3 lcd.py

All-in-one: вывод всех показаний на дисплей

Пришло дело к кульминации всех усилий. Запустите пример, который будет отображать данные с каждого датчика по очереди на дисплей. А переключать канал на каждый последующий сенсор, поможет датчик LTR-559 в качестве бесконтактной кнопки.

python all-in-one-no-pm.py

Элементы платы

Дисплей

Дисплейный модуль выполнен по технологии TFT IPS с диагональю 0,96 дюйма и разрешением 160×80 точек. Матрица дисплея подключена к встроенному чипу ST7735, который выполняет роль моста между экраном и внешними управляющими платами. Контроллер ST7735 общается с компьютером Raspberry Pi по интерфейсу SPI. Для связи c дисплеем используйте библиотеку ST7735 Python от производителя, которая входит в общий сет библиотек для Enviro.

Метеодатчик BME280

Метеосенсор выполнен на чипе BME280, который измеряет атмосферное давление, а также температуру и влажность окружающей среды. Сенсор BME280 общается с компьютером Raspberry Pi по интерфейсу I²C с адресом 0x76. Для связи c датчиком используйте библиотеку BME280 Python от производителя, которая входит в общий сет библиотек для Enviro.

Датчик освещенности и приближения LTR-559

Сенсор освещенности и приближения выполнен на чипе LTR-559, который измеряет уровень освещенности в люксах и фиксирует приближающие объекты. Сенсор LTR-559 общается с компьютером Raspberry Pi по интерфейсу I²C с адресом 0x23. Для связи c датчиком используйте библиотеку LTR559 Python от производителя, которая входит в общий сет библиотек для Enviro.

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

В итоге датчик LTR-559 можно использовать не только для считывания уровня освещенности, но и в качестве триггера к приближающимся объектам. В примерах библиотеки на модуль Enviro датчик приближения используется в качестве переключателя отображения различных данных с сенсоров на дисплей.

Датчик газа MiCS6814

Датчик газа выполнен на модуле MiCS6814, который поможет следить за качеством воздуха в окружающей среде. Сенсор MiCS6814 общается с компьютером Raspberry Pi через аналого-цифровой преобразователь ADS1015, который считывает аналоговые показания с датчика MICS6814, а затем преобразует данные в цифровые коды. Сама же АЦП общается с Raspberry Pi по интерфейсу I²C с адресом 0x49. Для связи c датчиком используйте библиотеку GAS Python от производителя, которая входит в общий сет библиотек для Enviro.

В модуле расположено три отдельных самодостаточных чувствительных элемента с независимыми нагревателями. Каждый чип рассчитан на определенную группу газов:

  • Восстанавливающие, например монооксид углерода (CO)
  • Окисляющие, например диоксид азота (NO2)
  • Аммиак (NH3)

Датчик также будет чувствителен к остальным веществам, например водород, этанол и другие углеводороды.

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

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

Микрофон MEMS

На плате Enviro расположен крошечный микрофон MEMS SPH0645LM4H-B, который позволяет записывать звук или определять уровни шума. Микрофон SPH0645LM4H-B общается с компьютером Raspberry Pi по интерфейсу I²S. Для связи c датчиком шума используйте библиотеку Noise Python от производителя, которая входит в общий сет библиотек для Enviro.

Разъём для датчика пыли

Через дополнительный разъём на плате можно подключить опциональный датчик пыли PMS5003, который измеряет концентрацию твёрдых частиц в миллионных долях (ppm). Сенсор PMS5003 общается с компьютером Raspberry Pi по интерфейсу UART/Serial. Для связи c датчиком используйте библиотеку PMS5003 Python от производителя, которая входит в общий сет библиотек для Enviro.

Входные пины ввода-вывода

Enviro Air Quality подключается к одноплатникам Rasperry Pi сверху через входной 40-пиновый разъём.

Распиновка

Габаритный чертёж

Характеристики

  • Модель: Pimoroni Enviro Air Quality HAT PIM458
  • Совместимость: платы Raspberry Pi
  • Разъём модуля: штырьковые соединители GPIO
  • Встроенные сенсоры:
    • Датчик климата: BME280
    • Датчик освещённости и приближения: LTR-559
    • Датчик газа: MiCS-6814
    • Датчик шума: МЭМС-микрофон Knowles SPH0645LM4H-B
  • Индикация: цветной LCD-дисплей 0,96”
  • Размеры: 65×30×8,5 мм

Датчик климата Bosch Sensortec BME280

  • Интерфейс: I²C
  • Адрес: 0x76
  • Диапазон измерения температуры: −40…+85 °С
  • Диапазон измерения влажности: 0–100% Rh
  • Диапазон измерения давления: 300–1100 гПа

Оптический датчик Lite-On LTR-559

  • Интерфейс: I²C
  • Адрес: 0x23
  • Диапазон измерения освещённости: 0,01–64000 лк
  • Дискретизация освещенности: 16 бит
  • Диапазон измерения расстояния: 0–2047 точек
  • Дискретизация расстояния: 11 бит

Датчик газа SGX Sensortech MiCS-6814

  • Интерфейс: I²C через внешний АЦП ADS1015
  • Адрес АЦП: 0x49
  • Конструкция датчика: три отдельных сенсора
  • Детектируемые газы:
    • Угарный газ (CO) и восстановительные газы
    • Диоксид азота (NO2) и прочие окислители
    • Аммиак (NH3)

Микрофон Knowles SPH0645LM4H-B

  • Интерфейс: I²S
  • Чувствительность: −26 дБ
  • Отношение сигнал/шум: 65 дБ
  • Тип: всенаправленный

LCD-дисплей

  • Интерфейс: SPI
  • Контроллер дисплея: ST7735
  • Диагональ экрана: 0,96 дюйма
  • Разрешение экрана: 160×80
  • Тип ЖК-матрицы: TFT IPS

Ресурсы