Около двух лет я живу в Петербурге. По мостовым и набережным города я гуляю и того больше, а местную легенду о том, что гранитные камни на них, радиоактивны настолько, что петербуржцы готовят на них шаверму, я слышу чуть ли не с самого рождения.
Так ли они фонят на самом деле? В городе, вообще, можно найти хоть сколько-нибудь значимый уровень гамма-излучения? Чтобы это проверить, сегодня я покажу как за полчаса собрать дозиметр, с которым мы выясним, насколько городские легенды правдивы и что с этим делать.
Как работает дозиметр?
Давайте возьмем стеклянную трубку, через которую продета металлическая проволока. Теперь закачаем в эту трубку какой-нибудь инертный газ вместо воздуха и запаяем ее так, чтобы конец проволоки торчал наружу, но трубка оставалась герметичной.
Обернем эту трубку фольгой и подадим на нее и проволоку высокое напряжение постоянного тока. 230 вольт будет достаточно.
После того, как напряжение подано, внутри трубки появится поле высокой напряженности, но из-за того что наш инертный газ (и стекло, кстати, тоже) - неплохой диэлектрик, ток никуда не потечет.
Подождем, пока наш импровизированный конденсатор вдруг не начнет периодически пробивать, вопреки предположению из предыдущего абзаца. Причем, пробой будет происходить стабильно и ритмично.
Поздравляю, у вас радиоактивный фон!
Когда фотон, который несет в себе достаточно энергии, пролетает через трубку, он передает ее газу внутри. Этот газ, после небольшой цепной реакции, на мгновение ионизируется и становится проводником.
Ток, который больше ничего не сдерживает, начинает течь от проволоки к фольге, а напряжение между ними падает. Когда фотон перестает воздействовать на атомы газа, тот снова становится диэлектриком и ток течь перестает. И так, пока либо в трубке не закончится газ, либо вокруг нее фотоны.
Именно так, уже без малого 100 лет, работает счетчик Гейгера-Мюллера, сделать который можно даже в гараже, если у вас есть трубка, фольга, электричество, и чуть-чуть инертного газа.
Но это еще не дозиметр. Такой прибор всего лишь реагирует на каждую пролетевшую сквозь него частицу, а дозиметр показывает накопленную дозу радиации. Проще говоря, количество частиц, которые пролетели через него за единицу времени, в пересчете на какие-то понятные величины.
Чтобы дозиметр получился, нужно добавить к тому что мы сделали детектор пробоя и сумматор разрядов, реализовать подсчет скользящего среднего с алгоритмом обработки выбросов, привести показания к нужной шкале и нарисовать их на дисплее.
Прототипируем на коленке
Моя задача в том, чтобы выяснить, как там дела с гранитом у Медного Всадника, а не собрать еще один плохо сделанный DC-DC преобразователь напряжения вокруг очередной трубки СБМ из New Old Stock запасов из карманов Родины.
Поэтому я пошел и купил готовый счетчик Гейгера, который уже умеет делать все подсчеты и коррекцию, и отдает нормализованные данные в I2C.
Теперь остается только быстренько прикрутить его к какому-нибудь контроллеру и прогуляться по улицам.
Коротенькое признание
Откровенно говоря, я бы и этим не стал заниматься, попадись мне готовый дозиметр с Wi-Fi и толковым веб-интерфейсом по вменяемой цене
В качестве контроллера я взял ESP-8266 в виде отладочной платки NodeMCU.
Он позволит мне сэкономить на дисплее, завязав все отображение данных и управление на простеньком web-интерфейсе, а его радиоактивная неустойчивость не является для меня проблемой: если вдруг выяснится что мой дозиметр отказал из-за высокого уровня гамма-излучения, сломанный дозиметр будет не самой главной моей проблемой.
Про сборку рассказывать особо нечего: берем готовый модуль и прикручиваем его к другому готовому модулю, после чего пишем код на готовых библиотеках и смотрим на данные из браузера.
Хорошая новость в том, что я не умру от радиации. Плохая - в том, что пользоваться этим прототипом можно только пока он лежит на столе.
Пакуем в корпус
Наш дозиметр должен быть портативным, компактным и максимально простым. Поэтому ни дисплея, ни клавиш управления у него не будет, их заменит веб-интерфейс.
Единственное требование к корпусу, это наличие каких-то отверстий. И то, не для того, чтобы трубка лучше воспринимала фотоны, которые и без дырок отлично пролетят через пластиковую стенку, а банально для охлаждения контроллера.
После того, как корпус распечатан, упаковываем в него начинку и идем смотреть на набережные.
То, ради чего, все затевалось
Прикладываем коробочку к камню и ждем положенные 8 минут. Это время нужно, потому что модуль со счетчиком Гейгера возвращает в качестве результатов измерения два параметра:
Интенсивность излучения (мкР/ч) c алгоритмом сильного усреднения, для точного измерения излучения за большой промежуток времени (500с).
Интенсивность излучения (мкР/ч) c алгоритмом регистрации локальных источников и загрязнений с динамическим диапазоном времени расчета.
Поскольку у нас MVP дозиметра, UI умеет показывать только данные с сильным усреднением и, если не выждать нужное время, данные не сойдутся с реальностью. Можно успеть выпить стаканчик кофе.
Итак, миф не подтвержден, но и не разрушен.
С одной стороны, гранит действительно фонит, и это хорошо заметно на графике. Измерения начинают попадать в желтую зону сразу после того как дозиметр оказался на камне.
С другой - фон не только попадает в допустимые значения, но и вообще считается безопасным, поскольку не превышает 60 мкР/ч.
Ниже карта с местами, где я отметил значения, которые удалось измерить.
Короче говоря, хоть сколько-нибудь опасного для человека фона я не нашел, сколько ни старался. Причем, циферки на желтом фоне я смог получить только вплотную приложив дозиметр к граниту. Уже в полуметре от них фон возвращается к привычным зеленым значениям.
А вот что меня удивило, так это уровень фона в метро. Там он немного ниже, чем в среднем на поверхности.
То, что нужно было сделать с самого начала
Первое, что сделало мои замеры сложнее, это необходимость стоять по 8 минут на одной точке на весеннем ветру, поэтому на UI дозиметра я добавил переключатель между режимами измерения.
Второе - это сохранение измерений. До сих пор дозиметр никак не хранил показания, кроме как на экране пользователя, а кинуть коробку в рюкзак и пройтись по улицам хотелось.
Поэтому я добавил буфер значений, который позволит записывать раз в пять минут и хранить результаты измерений в энергонезависимой памяти контроллера, а при загрузке странички, показывать их на том же графике.
Что теперь умеет дозиметр?
Получившийся дозиметр, как ему и положено, измеряет радиацию. У меня нет поверенного дозиметра, чтобы сверить их показания, как нет и стабильного источника гамма-излучения, чтобы проверить, действительно ли показания верны.
Поэтому, все что мне остается, это верить показаниям и считать что они правдивы.
Кроме этого, дозиметр умеет выступать в качестве точки доступа WiFi или работать в уже готовой сети.
Чтобы посмотреть показания счетчика, достаточно пройти по ссылке http://ymeter.local внутри локальной сети
После того, как страничка откроется, на ней будут текущие показания радиоактивного фона и график измерений за последние несколько часов с отрезками по пять минут, после чего раз в секунду будет отрисовываться новое полученное от трубки значение
Чтобы настроить работу дозиметра в сети, придется сходить по адресу к которой можно подключаться по адресу http://ymeter.local:8080/
Дозиметр как часть умного дома
Разумеется, большую часть времени, счетчик радиации стоит дома на полочке и показывает домашний умеренный фон. И, поскольку дома я держу настроенный Home Assistant, сложно было удержаться от еще одной интеграции.
Конфигурация для Home Assistant
- platform: rest
resource: http://192.168.0.63/statistic
name: Y Sensor
unit_of_measurement: " uR/h"
value_template: "{{ value_json['staticIntensity'] }}"
Хочу такое же
Ниже я оставлю набор ссылок на все, что может потребоваться, чтобы собрать такое же устройство у себя дома
Готовый счетчик Гейгера-Мюллера от RadSense (не реклама).
Библиотечка от авторов модуля для быстрого прикручивания его к AVR/ARM контроллерам.
Почему в прошивке нет .ino файлов
Я действительно написал прошивку не в Arduino IDE, а в Platform.IO, которая позволяет получить все то же самое, но использует другой компилятор и может интегрироваться в Clion или VsCode. Но код, который получился в итоге, отлично может быть скомпилирован и из Arduino IDE, куда его придется перенести.
Напоследок
Конечно, я мог пойти и купить готовый дозиметр любого класса точности, даже поверенный и сертифицированный. Моей задачей было прогуляться по городу и хорошо провести время за развенчиванием милой городской легенды, и я очень люблю DIY.
А еще, хобби - это увлекательно.