Enviro Air Quality: подключение, настройка и начало работы
Используйте Enviro Air Quality для мониторинга окружающей среды. Модуль буквально «напичкан» датчиками, которые помогут измерить качество воздуха, атмосферное давление, температуру и влажность окружающей среды, уровень шума и освещенности, а также зафиксирует приближение объекта. А ещё модуль позволяет вывести все показатели датчиков на яркий графический дисплей.
Enviro Air Quality — это уникальная и компактная метеостанция для Raspberry Pi.
Подключение и настройка
Enviro Air Quality совместим со всеми версиями компьютеров Raspberry Pi. В качестве примера используем одноплатный компьютер Raspberry Pi 4.
- Установите Enviro Air Quality сверху на Raspberry Pi через 40-контактную колодку пинов ввода-вывода.
- Скачайте репозиторий с драйверами от производителя через систему контроля версий git.
git clone https://github.com/pimoroni/enviroplus-python
- Перейдите в директорию библиотеки.
cd enviroplus-python
- Запустите скрипт, который разом установит все программные модули под каждый датчик и настроит интерфейсы компьютера Raspberry Pi.
sudo ./install.sh
- Перезагрузите систему, после установки драйверов.
sudo reboot
- На этом установка библиотеки закончена и можно смело переходить к экспериментам.
Примеры работы
Из коробки в библиотеке Enviroplus Python хранятся базовые примеры для знакомства с модулем.
- Перейдите в директорию с экспериментами:
cd examples
- Отобразите все примеры из директории:
ls
- Рассмотрим их подробнее.
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