Дозиметр для умного дома на ESP8266

В качестве датчика здесь применен советский счетчик Гейгера-Мюллера СБМ-20 (можно так же использовать и его аналоги, например, трубку СТС-5). Сердцем девайса служит популярный микроконтроллер ESP8266 с Wi-Fi на борту.
Так же есть возможность снятия показаний через USB порт, для чего было написано специальное программное обеспечение Radiation Meter Software.

Питание трубки счетчика обеспечивает повышающий преобразователь, собранный на основе дросселя типа "гантелька" на 10 мГн с намотанными поверх четырьмя витками жилы от кабеля обычной витой пары.


Управление напряжением лежит на плечах ESP. С помощью кратковременных импульсов происходит накачка высоковольтной части схемы до ~400 вольт. Обратная связь реализована через делитель напряжения, который подключен ко входу АЦП микроконтроллера.
Детектирование ионизирующих частиц сопровождается появлением отрицательных импульсов на катоде трубки, которые инвертируются с помощью транзистора и вызывают срабатывание прерывания на одном из входов МК.

Что касается корпуса устройства, то он выполнен из отрезка 32 мм пластиковой сантех-трубы, один конец которой закрыт заглушкой, а на другом нарезана резьба. Плата помещается внутрь, в гнездо USB устанавливается кабель и на отверстие накручивается полипропиленовая пробка с внутренней резьбой.
При желании девайс можно прикрепить на стену, используя держатели для сантехнических труб.
В качестве источника питания подойдет обычный адаптер от мобильника.
Все файлы, необходимые для самостоятельной сборки данного дозиметра, находят в GitHub репозитории проекта.

Ссылки на покупку комплектующих оставляю ниже:

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

#define PUMPING_PIN 4 // Номер пина генератора накачки
#define PUMPING_PULSE 50 // Длина импульса накачки
#define PUMPING_FREQ 5 // Частота генератора накачки
#define PUMPING_ADC 450 // Максимальное напряжение делителя АЦП
#define PUMPING_POWER 400 // Напряжение питания счетчика

#define SENSOR_PIN 5 // Номер пина, к которому подсоединен датчик
#define SENSOR_TYPE 1 // Тип датчика (СБМ-20/СТС-5/BOI-33 = 1, СБМ-19/СТС-6 = 2)
#define SENSOR_NUM 1 // Количество установленных датчиков (параллельное подключение)
#define SENSOR_TIME 36 // Время для замера в секундах
#define SENSOR_SUM 10 // Количество замеров для усреднения

Для сборки прошивки используется сервис WiFi-IoT. В конструкторе необходимо выбрать SDK версии 1.3.0, отметить модули "Настройки по умолчанию" (указываются параметры подключения к вашей точке доступа), "MQTT клиент", "UART bridge" и "Конструктор кода" (вставляем код прошивки из файла firmware.c) и скомпилировать бинарник.

Скачиваем результат в виде одного файла и прошиваем (я использовал NodeMCU Flasher) с начального адреса 0x00000. Вход в режим программирования осуществляется одновременным нажатием двух кнопок на печатной плате. Чтобы микроконтроллер активировал работу со всеми требуемыми модулями, необходимо зарегистрировать для него PRO-лицензию. Более подробно об этом процессе можно прочитать в официальной инструкции сервиса.

UPD: Jager совместно с @anonymass разработали похожее устройство, но для сетей ZigBee. Советую сходить по ссылке и почитать.

Обсуждение

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *