• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Добавление датчика PMS7003 измеряющего PM1 PM2.5 и PM10 частиц находящихся в воздухе подключенного к ESP32 в ESPHome и Home Assistant

28 августа, 2021

Данный датчик можно приобрести тут: http://alii.pub/5z0s55

Я покупал тут: http://alii.pub/5z0sby

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

PM 2.5

Давайте сначала разберемся что такое PM2.5 частицы и зачем их измерять.

PM2.5 это воздушный загрязнитель, в состав которого входят как твердые микрочастицы, так и мельчайшие капельки жидкостей. И те, и другие размером примерно от 10 нм до 2,5 мкм. Другие обозначения и названия частиц РМ2.5: FSP (fine suspended particles), fine particles, fine particulate matter, мелкодисперсные взвешенные частицы, тонкодисперсная пыль.

Совсем мелкие частицы (порядка 1 нм и меньше) — это уже молекулы газов.

Почему именно 2.5 мкм? В отличие от более крупных частиц, РМ2.5 легко проникают сквозь биологические барьеры и поэтому представляют наибольшую угрозу для организма.

Все эти частицы и капельки размером меньше 2,5 мкм находятся в воздухе во взвешенном состоянии. Они есть и в лесу, и на море, но именно в городе представляют наибольшую опасность. Во-первых, обычно их в городе намного больше, а во-вторых, химический состав мелкодисперсного аэрозоля в городе опаснее, чем на природе. К слову, в разных городах могут сильно отличаться и состав аэрозоля РМ2.5, и параметры отдельных частиц.

По этому конечно лучше знать насколько “населена” Pm2.5 частицами наша окружающая среда.

Сделал табличку допустимого количества PM2.5 на ug/m3.

PMS7003.

 

Датчик PMS7003 умеет измерять частицы PM1, PM2.5, PM10. Но посути нас интересуют PM2.5 так как на них больше всего заострено внимание.

Датчик состоит из Лазера и линзы. Также в датчике есть небольшая турбинка которая делает забор воздуха и лазером определяет на линзе количество PM2.5 частиц.

Ориентируясь на табличку и с помощью этого датчика PMS7003 можно определять насколько заселена PM2.5 частицами и опасна для здоровья окружающая среда.

 

У датчика PM2.5 очень маленькие контакты и сложно будет к ним напаяться. Но в комплекте часто их продают уже с переходниками. По этому рекомендую приобретать его с переходником, это Вас избавит от трудоемкой пайки.

Данный датчик общается по UART.

Для подключения PMS7003 к ESP32 контроллеру (у меня это M5stack), я использовал всего 3 провода. VCC,GND,и пин TX от датчика к пину RX esp32. Я использовал пином RX пин GPIO02 контроллера M5stack.

ESPHome.

Для ESPHome существует интеграция под названием “pmsx003” . Найти описание можно по этой ссылке: https://esphome.io/components/sensor/pmsx003.html?highlight=pms7003

Мой код в ESPHome выглядит следующим образом:



uart:
  rx_pin: GPIO2
  baud_rate: 9600

sensor:
  - platform: pmsx003
    type: PMSX003
    pm_1_0:
      name: "Частицы <1.0µm Concentration"
    pm_2_5:
      name: "Частицы <2.5µm Concentration"
    pm_10_0:
      name: "Частицы <10.0µm Concentration"

Home Assistant.

Ну а как добавить этот датчик подключенный таким способом к ESPHome в Home Assistant. Тут все как обычно.

Заходим в Настройки->Интеграции-> Добавляем новую интеграцию ESPHome и введя ip адрес нашей ESPшки к которой подключен PMS7003. И все интеграция добавится.

В системе Home Assistant это все будет видеться как Частицы <1.0µm Concentration, Частицы <2.5µm Concentrationи Частицы <10.0µm Concentration соответственно. И выглядит это так:

Ну и при добавлении в карточку:

Значения постоянно меняются, так как опрашивается датчик постоянно, вот лог с ESPHome:

Опрос идет каждую секунду.

Ну и показания тоже меняются постоянно. Вот график PM2.5 частиц:

Ну судя по графику и  по табличке которую я перевел жить можно пока что ;-).

 

Спящий режим датчика PMS7003:

 

А вот как выглядит код со спящим режимом. Так как в модуле PMS7003 постоянно крутится турбинка, он долго не прослужит, по крайней мере долго без шумно не прослужит.

На нем есть пит set. Вот его подключаем к пину GPIO23 как указано в программе ниже.

В итоге эта программа работает следующим образом. 30 секунд снимаются показания и 5 минут датчик находится в спящем режиме.




uart:
  rx_pin: GPIO3
  baud_rate: 9600

sensor:
  - platform: pmsx003
    type: PMSX003
    pm_1_0:
      name: "Частицы <1.0µm Concentration"
      filters:
        - lambda: if (id(pms_ready_to_read).state) { return(x); } else { return {}; };
    pm_2_5:
      name: "Частицы <2.5µm Concentration"
      filters:
        - lambda: if (id(pms_ready_to_read).state) { return(x); } else { return {}; };
    pm_10_0:
      name: "Частицы <10.0µm Concentration"
      filters:
        - lambda: if (id(pms_ready_to_read).state) { return(x); } else { return {}; };
      
switch:
  - platform: template
    name: "PMSX003 Ready to Read Post Warm-Up"
    id: pms_ready_to_read
    optimistic: true
    
  - platform: gpio
    pin: 
      number: GPIO23
    id: pms_set
 
interval:
  - interval: 5min
    then:
      - switch.turn_on: pms_set
      - delay: 30s
      - switch.turn_on: pms_ready_to_read
      - delay: 5s
      - switch.turn_off: pms_ready_to_read
      - switch.turn_off: pms_set

 

На этом у меня все. Надеюсь кому-то это было полезным.

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·