Используйте Enviro Air Quality для мониторинга окружающей среды. Модуль буквально «напичкан» датчиками, которые помогут измерить качество воздуха, атмосферное давление, температуру и влажность окружающей среды, уровень шума и освещенности, а также зафиксирует приближение объекта. А ещё модуль позволяет вывести все показатели датчиков на яркий графический дисплей.
Enviro Air Quality — это уникальная и компактная метеостанция для Raspberry Pi.
Enviro Air Quality совместим со всеми версиями компьютеров Raspberry Pi. В качестве примера используем одноплатный компьютер Raspberry Pi 4.
git clone https://github.com/pimoroni/enviroplus-python
cd enviroplus-python
sudo ./install.sh
sudo reboot
Из коробки в библиотеке Enviroplus Python хранятся базовые примеры для знакомства с модулем.
cd examples
ls
Для начала запустите пример для вывода показаний с климатического датчика.
python3 weather.py
В консоли каждую секунду будет отображаться значения атмосферного давления, температуры и относительной влажности окружающей среды. Попробуйте прикоснуться или подышать на датчик BME280, проверьте как меняются показания.
Вы заметите, что значение температуры немного завышено. Это связано с тем, что некоторое количество тепла всё таки передается от процессора Raspberry Pi к плате Enviro+ и, следовательно, к датчику BME280. Но, вы можете получить температуру процессора Pi от его внутреннего датчика температуры и использовать полученное значение для показаний.
Запустите пример для вывода температуры с компенсацией.
python3 compensated-temperature.py
В итоге показания температуры будут более точными.
Перейдем к оптическому сенсору освещенности и расстояния. Запустите пример:
python3 light.py
В консоли отобразится текущее значению потока света в люксах и расстояние до видимого объекта в отчетах АЦП от 0 до 2047, при этом расстояние до объекта обратно пропорционально показаниям в консоли.
Датчик газа MiCS6814 выводит значения сопротивления вредных веществ в Ом’ах, которые соответствуют уровням трех различных типов газа: восстанавливающего, окисляющего и аммиака. Запустите пример:
python gas.py
Для стабилизации значений сенсора подождите около 10 минут, поскольку датчик постепенно нагревается.
Как только показания стабилизировались, попробуйте подышать на датчик и сравните изменения.
Вывод в консоль не всегда удобен для мониторинга данных в реальном времени. Для этого на плате Enviro+ расположен маленький, но яркий и красочный дисплей. В качестве теста экрана запустим проверенный годами Hello, World!
python3 lcd.py
Пришло дело к кульминации всех усилий. Запустите пример, который будет отображать данные с каждого датчика по очереди на дисплей. А переключать канал на каждый последующий сенсор, поможет датчик 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 общается с компьютером Raspberry Pi по интерфейсу I²C с адресом 0x76
. Для связи c датчиком используйте библиотеку BME280 Python от производителя, которая входит в общий сет библиотек для Enviro.
Сенсор освещенности и приближения выполнен на чипе LTR-559, который измеряет уровень освещенности в люксах и фиксирует приближающие объекты.
Сенсор LTR-559 общается с компьютером Raspberry Pi по интерфейсу I²C с адресом 0x23
. Для связи c датчиком используйте библиотеку LTR559 Python от производителя, которая входит в общий сет библиотек для Enviro.
Такой же датчик расположен в мобильных телефонах, который автоматически затемняет и увеличивает яркость экрана в зависимости от уровня освещенности и отключает сенсорный экран, когда он находится рядом с ухом.
В итоге датчик LTR-559 можно использовать не только для считывания уровня освещенности, но и в качестве триггера к приближающимся объектам. В примерах библиотеки на модуль Enviro датчик приближения используется в качестве переключателя отображения различных данных с сенсоров на дисплей.
Датчик газа выполнен на модуле MiCS6814, который поможет следить за качеством воздуха в окружающей среде. Сенсор MiCS6814 общается с компьютером Raspberry Pi через аналого-цифровой преобразователь ADS1015, который считывает аналоговые показания с датчика MICS6814, а затем преобразует данные в цифровые коды. Сама же АЦП общается с Raspberry Pi по интерфейсу I²C с адресом 0x49
. Для связи c датчиком используйте библиотеку GAS Python от производителя, которая входит в общий сет библиотек для Enviro.
В модуле расположено три отдельных самодостаточных чувствительных элемента с независимыми нагревателями. Каждый чип рассчитан на определенную группу газов:
Датчик также будет чувствителен к остальным веществам, например водород, этанол и другие углеводороды.
Т.к. в воздухе может концентрироваться группа различных газов, то невозможно выделить и определить концентрацию конкретного газа. Самый простой способ интерпретировать данные, т.е. снимать показания с датчика, пока они не стабилизируются, а затем установить базовую линию и измерять данные относительно этой базовой линии. Это даст приблизительное представление о том, повышается или ухудшается качество воздуха.
Показания датчиков восстановления и аммиака будут падать с увеличением концентрации обнаруживаемых газов, а показания датчика окисления, наоборот будут увеличиваться с увеличением уровня концентрации.
На плате 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-пиновый разъём.