Определитель апноэ v.1.0 (29.05.2026). Печать
2026 - Май
29.05.2026 10:03
Save & Share
Самодельный прибор для определения остановки дыхания во сне, независимо от природы её возникновения.


Стал просыпаться несколько раз по ночам. Думал, возрастное как желание поссать. Оказалось: либо апноэ, либо ларингоспазм: во сне мышцы глотки перекрывают дыхательные пути (не когда частично задыхаешься, а наглухо). При этом, они расслабляются именно во время резкого пробуждения, а т.к. сразу после сна - ещё не въезжаешь в окружение и в собственную гипоксию. И есть малый процент вероятности, что проснуться не успеешь.

Бесплатная медицина бесполезна в этом вопросе: смотрят как на дебила - направление на сомнолога (если он вообще по ОМС существует) не получить. Одновременно, платную полисомнографию не получить даже в городе: стала редкой услугой - готов был за неё и 30к отдать, но так и не нашёл. Значит, надо разрабатывать свой прибор, основанный на датчике газов MQ-135 (оказался универсальным: ловит углекислый газ) и медицинской маске для дыхания кислородом.

Прибор - помог определить, что дыхание останавливается (пример длительной телеметрии и монтажные моменты). Ясные единичные пробуждения, много позже и случайно, помогли определить причину: на одном успел почувствовать отлипание стенки горла, на другом произошёл резкий выдох без использования мышц (на чистой физике). На графике остановка дыхания выглядит как постепенное уменьшение углекислоты в датчике - с последующим дискретным повышением (вдохи-выдохи всё больше гонят углекислоты в датчик, пока она не выйдет на нормальный уровень. 2 графика, с криво выведенными числами она ось X: имитация (задержка дыхания специально) и реальность (задержка дыхания во сне) - к сожалению, совпали (разница - только в возобновлении дыхания: во сне оно происходит по-другому).



Программа для просмотра телеметрии - требует отдельного внимания: это должно быть высоконагруженное многопоточное приложение с корректным модулем отрисовки графиков. На старых 32-битных языках программирования это невозможно реализовать, на Qt - тоже проблема с модулем графиков. Т.е., самостоятельно программу анализа написать не могу: не на чем - требуется анализ всех языков программирования, а т.к. форумы программистов уже мертвы - будет очень тяжко. Единственное, что можно сделать, - грузить на график телеметрию кусками, с усреднением или аппроксимацией. Но корректнее - написать алгоритм, который ловит такое состояние без всяких графиков; тогда подойдёт хоть Visual Basic (кстати, именно его забыл проверить глубоко - а что если?.. Ведь 3D-программу удалось в своё время сделать).

Недостаток аппарата, серьёзный: датчик сушит нос (возможно, из-за ошибки монтажа) - можно проснуться из-за высушенной слизистой или наличия сухих козюлек. То есть, телеметрия сна может прерываться 1-2 раза за ночь. Именно для этого создана экстренная кнопка, помимо пробуждения от приступа и последующей гипоксии: "Я проснулся!11".

Незначительный недостаток: относительно сырой код, в контексте выжимания всего из модуля SD, на который идёт запись телеметрии. В самодельном холтере, который сейчас почти закончен, - исходники более оптимально написаны по критерию скорости и, возможно (пока не решил), с самоконтролем записанных данных.


Схема прибора и исходники (122КБ).
Обновлено ( 29.05.2026 18:08 )