/sgp4x

Модуль MicroPython для работы с датчиком качества окружающего воздуха SGP40/SGP41 от Sensirion.

Primary LanguagePythonMIT LicenseMIT

SGP4X

Модуль MicroPython для работы с датчиком качества окружающего воздуха SGP40/SGP41 от Sensirion.

Назначение

SGP40 представляет собой цифровой датчик газа, предназначенный для контроля качества воздуха в помещениях! Его основная задача — измерение уровня летучих органических соединений (ЛОС) в воздухе.

Особенности SGP40:

* интерфейс I2C
* встроенный микронагреватель
* показания качества воздуха с компенсацией влажности
* устойчивость к загрязняющим веществам

Применение

  1. Очистители воздуха.
  2. Системы вентиляции с автоматическим управлением.
  3. Умные системы контроля микроклимата.

SGP41

Особенности SGP41:

  1. Два датчика в одном корпусе.
  2. Возможность автоматического управления очистительными системами.
  3. Мониторинг потенциально опасных концентраций загрязняющих веществ.

Технические характеристики SGP41:

* Диапазон измерения ЛОС: до 1000 ppm (эквивалент этанола)
* Диапазон измерения NOx: до 10 ppm (эквивалент NO2)
* Время отклика: менее 10 секунд для ЛОС, менее 250 секунд для NOx

Области применения SGP41:

* Профессиональные очистители воздуха
* Системы вентиляции и воздухообмена
* Кухонные вытяжки
* Умные системы контроля качества воздуха

Дополнительная обработка данных

Без дополнительной обработки, показания SGP40 и SGP41 использовать нельзя! Требуется программная обработка сырых(!) данных для получения индекса VOC/NOx, пригодного для анализа и отображения пользователю. Рекомендуется реализовать компенсацию по влажности и температуре для повышения точности.

На данный момент дополнительную обработку сырых данных от SGP40/41 в программах, использующих Micropython, сделать невозможно! Так как Sensirion Gas Index Algorithm использует полноценный Python 3.6 и выше!

Sensirion’s Gas Index Algorithm

https://pypi.org/project/sensirion-gas-index-algorithm/

Питание

Напряжение питания SGP4X 1,7..3,6 Вольта!

Прошивка

Загрузите прошивку MicroPython на плату NANO, PICO RP2040 (ESP и т. д.), а затем файлы: main.py, sgp4Xmod.py и папку sensor_pack_2 полностью. Затем откройте main.py в своей IDE и запустите его.

Подключение

Просто подключите плату c SGP4X к Arduino, ESP или любой другой плате с прошивкой MicroPython.

Внимание

Я использовал плату с датчиком SGP41. В ответе на команду sgp40_measure_raw_signal с датчика было считано шесть байт. Первые три байта содержат ЛОС, вторая тройка содержит NOx. С первой тройкой было все в порядке, CRC, принятый от датчика и рассчитанный CRC совпали. Вторая тройка байт была 0xFF, 0xFF, 0xFF. Естественно, код выбросил исключение о неверном CRC. Возможно мой датчик поддельный, поэтому, если у вас подобная ситуация, в конструкторе указывайте sensor_id = 0 (как будто это SGP40) а check_crc должен быть в Истина всегда!

Картинки

Результат работы

alt text