• 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 печать
  • Об авторе

Счетчик Гейгера RadSense на ESP32 в ESPHome и Home Assistant.

26 июля, 2022

cg_radsense СМБ20-1: http://alii.pub/6ewvzn

cg_radsense СМБ20: http://alii.pub/6ewx6t

cg_radsense без трубки СМБ20: http://alii.pub/6ewx61

cg_radsense без трубки СМБ20-1: http://alii.pub/6ewx59

Esp32: http://alii.pub/6c9kzh

Arduino: http://alii.pub/6ahstu

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

 

 

Всегда хотелось иметь счетчик Гейгера. И хотелось не просто иметь портативный счетчик, а именно модуль. На Aliexpress был один такой модуль, я всегда на него смотрел с интересом, но как-то не решался заказать.

Но не так давно, появились более интересные модули счетчиков Гейгера под названием CG_RadSense. От Русских ребят их  Climate Guard.

Модули CG_RadSense существуют под разные трубки такие как СМБ20 и СМБ20-1.

Так-как трубка – это самая дорогая часть в модуле. Отдельно продают платы, без трубок. На Авито всегда можно купить трубку подешевле, нежели в комплекте.

Характеристики дозиметра

Газоразрядный счетчик Гейгера СБМ 20-1
Диапазон измеряемого излучения 14,4 … 144 000,0 мкР/ч
Собственный фон не более 1 имп/с
Чувствительность к гамма-излучению от источника 37 Cs 160 … 75 имп/мкР
Разброс относительной чувствительности 15 %
Напряжение питания 3,0 … 3,5 В
Максимальный ток потребления 50 мА
Интерфейс подключения I2C
Частота шины I2C 400 кГц
I2C адрес 0x66
Чувствительность счетчика СБМ20-1 105 имп/мкР
Светодиодный индикатор радиоактивного фона да
Светодиодный индикатор питания нет
Диапазон рабочих температур -20°C … +60°C
Размеры 89 х 21 х 13,5 мм
Вес устройства (примерно) 12 г

 

Габариты устройства с трубкой СМБ20-1:

 

Разъем подключения

Контакт Цепь Описание
1 VCC Напряжение питания 3,0 В … 3,5 В
2 GND Земля (общий провод)
3 SCL Линия тактирования шины I2C
4 SDA

Линия данных шины I2C

 

Под эти модули есть страничка на github, где есть библиотека для работы в arduino IDE с модулем, даташит устройства. https://github.com/climateguard/RadSens

 

Для установки библиотеки в Arduino ide, достаточно найти библиотеку в поиске библиотек под названием:

После установки библиотеки, появится пример, который будет брать данные с модуля cg_RadSense и отправлять их в монитор порта. Данный пример будет работать под любым микроконтроллером.

Но чтоб данные снимать с датчика, то нужно подключить модуль по шине i2c к микроконтроллеру. А именно для подключения будет использоваться 4 провода. +,-, SCL и SDA.

+ и –  это напряжение 5 Вольт. А вот SCL и SDA – это какраз шина i2c. У каждого контроллера она расположена на разных пинах. Нужно смотреть распиновку микроконтроллера.

 

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

 

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

Я в этой статье расскажу про два способа отправки данных на сервер умного дома Home Assistant.

  1. Это отправка по MQTT на сервер Home Assistant.

Для этого я сделал программу на основе примера из библиотеки. Скачать программу можно отсюда: https://disk.yandex.ru/d/WzFmiPPaUdrR4w

В скетче нужно изменить следующее:

#define WIFI_SSID “NETGEAR”
#define WIFI_PASSWORD “14532552352”

это SSID и пароль от Вашей wi-fi сети.

#define MQTT_HOST IPAddress(192, 168, 31, 145) – тут указывается ip адрес сервера mqtt. В моем случае это сервер Home Assitant.

 

#define MQTT_PUB_TEMP “esp32/radsence/tvoc” – это топик куда будут отправляться данные.

mqttClient.setCredentials(“mqtt”, “mqtt”); – это пароль от сервера mqtt

 

Ну и так-же давайте подготовим сервер Home Assitant для получения этих данных по mqtt.

Для этого в Configuration.yaml в блоке Sensor, добавим следующий блок:


sensor:
  - platform: "mqtt"
    name: "RadSense"
    state_topic: "esp32/radsence/tvoc"
    value_template: "{{ value }}"
    unit_of_measurement: "μR/h"
    icon: "mdi:radioactive"    

Собственно тут изменить только топик, из которого будем брать данные. Ну или оставить так как у меня.

После добавления этого блока в Configuration.yaml, нужно перезагрузить Home Assistant. И после перезагрузки у Нас появится сенсор с именем RadSense.

 

Ну а теперь второй способ.

     2. Это добавление устройства в ESPHome.

Официальной поддержки данных модулей в ESPHome нет. Но существует пользовательский вариант добавления модуля cg_RadSense в ESPHome. Описан он на страничке: https://github.com/maaad/RadSens1v2

Тут не все так просто и есть моменты о которых хотелось бы рассказать.

Сначала для того, чтоб этот метод заработал, нам нужно на сервере Home Assistant создать папку под названием “RadSens1v2″ В Папке ESPHome. И закинуть туда 3 файла которые присутствуют на страничке github, ссылка выше.

По итогу выглядеть должно вот так:

 

Теперь Сам конфиг устройства в ESPHome.

Он состоит из нескольких блоков.

Добавляем эту часть:


  libraries:
    - Wire
    - "vurdalakov/RadSensBoard"
  includes:
    - RadSens1v2/_radsensboard.h
    - RadSens1v2/CountsPerMinute.h    

Причем ее нужно добавить в то место, как показано на скрине ниже. Блок этот выделен:

 

Ну и в самом конце добавляем следующее:


i2c:
  sda: 21
  scl: 22
  scan: true    
sensor:
  - platform: custom
    lambda: |-
      auto rad_sens = new MyRadSens();
      App.register_component(rad_sens);
      return {rad_sens->IntensityDynamic_Sensor, rad_sens->IntensityStatic_Sensor, rad_sens->CurrentCPM_Sensor, rad_sens->MaxCPM_Sensor};
    sensors:
      - name: "Dynamic intensity"
        id: dynamic_intensity
        accuracy_decimals: 1
        unit_of_measurement: μR/h
      - name: "Static intensity"
        accuracy_decimals: 1
        unit_of_measurement: μR/h
      - name: "Current CPM"
        accuracy_decimals: 1
        unit_of_measurement: CPM
      - name: "Max CPM"
        accuracy_decimals: 1
        unit_of_measurement: CPM  

Как показано на скрине:

 

Тут изменить нужно только пины шины i2c.

 

Ну и все.  После этого у Вас в Home Assistant появятся сенсоры с показаниями радиации:

 

Radiation measurement on esp32 in ESPHome and Home Assistant

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 ·