ЦИФРОВОЙ КОНТРОЛЬ ЗДОРОВЬЯ
Author: Краюшкина Анна

АННОТАЦИЯ

Своевременная диагностика и мониторинг заболеваний занимает важное место в современной медицине. Целью проекта является создание мобильного устройства для контроля основных медицинских показателей человека: сердечные ритмы, температура тела, режима приёма лекарств: возможность удаленно загружать график приема лекарств и контроля его исполнения, оснащенного кнопкой экстренного вызова, а так же состояния окружающей среды: температура и влажность воздуха, атмосферное давление; управление прибором осуществляется через телефон по СМС-сообщениям.

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

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

Письменная часть работы выполнена на 16 страницах.

Приложение к работе выполнено на 14 страницах и включает в себя 16 рисунков и 4 таблицы.

 

Введение

Актуальность и значимость проекта: своевременная диагностика и мониторинг заболеваний, занимает важное место в современной медицине. В последнее время растет число устройств, позволяющих пользователям следить за своим здоровьем и даже дистанционно получать квалифицированную медицинскую помощью. Такой подход позволяет снизить затраты пациента на посещения лечащих врачей, а те всегда в курсе актуального состояния здоровья пациента, могут своевременно дать рекомендации. Отслеживание параметров окружающей среды при помощи носимых устройств позволит выявлять неблагоприятные и опасные условия, которые также могут влиять на самочувствие.

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

Изучив существующие решения, я не нашла готового устройства с подобным функционалом, поэтому с помощью научного руководителя решили сделать его самостоятельно.

Задачи проекта:

  • разработка принципа работы устройства в соответствии с поставленной целью;
  • поиск и изучение необходимых модулей и элементов для реализации функций устройства;
  • разработка и изготовление печатной платы;
  • сборка и тестирование узлов;
  • разработка алгоритма работы микропрограммы;
  • разработка и изготовление корпуса устройства;
  • определение реальных технических параметров устройства;
  • расчет себестоимости устройства;
  • сравнительный анализ существующих решений.

Используемые методы:

теоретический - изучение принципов работы цифровых устройств, особенностей функционирования микроконтроллера Arduino, модулей и элементов; представление алгоритма работы программы в виде блок-схемы; метод линейного программирования;

практический - разработка функциональной и принципиальной схемы устройства; проектирование печатной платы в программе Sprint Layout; изготовление печатной платы лазерно-утюжным методом; сборка; тестирование печатной платы методом «прозвонки»; составление программы на языке C++ в среде разработки Arduino IDE;

экспериментальный – испытания показателей назначения устройства на соответствие заявленным.

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

Ресурсное обеспечение проекта: с основными элементами и модулями, используемыми в устройстве можно ознакомиться в приложении к настоящей работе (табл.1). Источник финансирования – личные средства. Расчет стоимости проекта представлен в приложении (табл.2).

 

 

1. Принцип работы устройства

В соответствии с поставленной целью и задачами был разработан принцип работы устройства.

При включении опции «тревожный режим» каждую секунду микроконтроллер Arduino Pro Mini опрашивает состояние  критически важных датчиков (пульс, температура тела). Если их показания находятся вне нормы срабатывает тревожный звуковой сигнал, вибрация и отправляется соответствующее СМС-сообщение медицинскому персоналу по номеру телефона, который запрограммирован в ЦКЗ.

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

При поступлении информационного СМС-сообщения, не содержащего режима приёма лекарства, загорается жёлтый светодиод, издается звуковой сигнал и однократно срабатывает вибрация. При прочтении СМС жёлтый светодиод погасает.

В случае отсутствия чрезвычайных ситуаций (при включенном «тревожном режиме»), устройство раз в секунду обновляет состояние экрана. Всего возможны 5 режимов отображения информации (условно назовём их пятью экранами):

  1. отображается заряд батареи, текущее время и дата;
  2. отображается температура тела;
  3. отображается температура и относительная влажность воздуха, атмосферное давление;
  4. отображается пульс сердца;
  5. отображается последнее СМС-сообщение.

Смена экрана происходит по нажатию кнопки управления.

Управление ЦКЗ происходит с помощью СМС-команд:

  1. “cmd1” – включение датчика пульса;
  2. “cmd2” – выключение датчика пульса;
  3. “cmd3” – запрос состояния всех датчиков;
  4. “cmd4 <лекарство> <чч:мм> < чч:мм > < чч:мм > < чч:мм >” – режим приёма лекарства (т.н. рецепт), расписанный по времени, допускается до 4-х этапов и до 3-х рецептов;
  5. “cmd5” – удалить все рецепты;
  6. “cmd6 №” – удалить рецепт с данным номером (1-3);
  7. “cmd7” – включить тревожный режим;
  8. “cmd8” – выключить тревожный режим.

Питание осуществляется от встроенного литий-ионного аккумулятора. Наглядно функциональная схема спроектированного устройства показана на рисунке 1 приложения.

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

 

 

2. Принципиальная схема устройства и её описание

В соответствии с функциональной схемой ЦКЗ, особенностями выбранной микроконтроллерной платформы Arduino и используемых модулей, описанных выше была разработана принципиальная схема ЦКЗ (рис.2 приложения), отражающая особенности подключения всех узлов.

Центральным узлом является платформа Arduino Pro mini (DD1), которая контролирует работу остальных датчиков, модулей и элементов. Питание осуществляется через встроенный аккумулятор A1, подзаряжаемый от micro USB зарядного устройства через контроллер зарядки DD7.

Приём и отправка SMS сообщений, осуществление исходящих звонков происходит через GSM модуль DD2, подключенный к 7, 8 выводу МК, которые работают в режиме «Software Serial» (т.е. программного COM-порта). Соответственно, вывод №7 настроен как RXD, а вывод №8 – как TXD МК.

Вывод визуальной информации (текстовой и графической) происходит через LCD модуль DD3, работающий через аппаратный интерфейс SPI МК, который, согласно технической документации на МК, воспринимает SPI устройства через выводы №№10-13. К данным выводам подключены контакты DD3: SCE, RST, D/C, SCLK. Включение подсветки дисплея происходит подачей сигнала низкого уровня («0») через токоограничительный резистор R7 с 14 вывода МК на контакт BL дисплея. Резистор R7 необходим для предотвращения выхода из строя светодиодов подсветки.

Датчик температуры S1 подключен по интерфейсу One-Wire к 9 выводу МК. Согласно технической документации на датчик, между линиями VCC и DATA включен резистор R7. Интерфейс One-Wire реализуется на программном уровне.

Датчик пульса S2 передаёт аналоговый сигнал 0..VCC, который воспринимает встроенный в МК АЦП через вход A2.

Часы DD4 и метеодатчик DD5 подключены через интерфейс I2C контактами SDA,SCL к выводам МК A4,A5. Согласно техническому описанию МК, к данным выводам могут быть подключены параллельно до 128 устройств.

Для ручного управления ЦКЗ служат 2 кнопки: SA1 (экстренный вызов) и SA2 (управление), которые подключены к цифровым входам №2, 3 МК. Данные входы работают в режиме реагирования на внешние прерывания (т.е. МК приостанавливает выполнение текущей программы и запускает процедуру обработки прерывания в случае нажатия на одну из этих кнопок). При нажатии на кнопку SA1 или SA2 на вход МК подаётся напряжение VCC, соответствующее логической «1». Резисторы R5, R6 нужны для исключения регистрации ложных нажатий микроконтроллером путём подтягивания входов 2,3 к земле.

Индикация сердечного пульса и входящего SMS-сообщения совершается через светодиоды VD1, VD2, подключенные к выводам МК №№4,5 через токоограничительные резисторы R3,R4.

Дополнительная информативность событий обеспечивается тактильной вибрацией вибромотора М1 и звуковым сигналом зуммера B1, подключенного к выходу 17 МК. К 6 выводу МК подключен усилительный касках на транзисторе VT1 и резисторе R2 для вибромотора, поскольку ток его потребления (213мА) значительно превосходит предельный ток выхода МК (50мА). Для защиты мотора от обратного тока включен диод VD3.

 

 

3. Аппаратная часть устройства

Согласно принципиальной схеме, описанной в предыдущем разделе, была спроектировала печатная плата в программе Sprint Layout 6.0 (рис.3 приложения).

Исходя из необходимости создания небольшого устройства, все модули были расположены с двух сторон на плате размером 97*62мм, по возможности были задействованы миниатюрные варианты радиодеталей (чип-резисторы, микрокнопки).

Подготовленный проект затем был воплощен в настоящую печатную плату. Для этого был использован широко известный среди радиолюбителей «лазерно-утюжный» метод. Его суть в том, что рисунок печатной платы для каждой стороны распечатывается зеркально с помощью лазерного принтера на специальной фотобумаге, а затем эти бумаги прикладываются с двух сторон к стеклотекстолитовому образцу (рис.4) и проглаживаются горячим утюгом (рис.5). Далее в теплой воде омачивается и отдирается от платы бумага (рис.6, 7), на медной фольге остается рисунок (рис.8). Это возможно благодаря тому, что тонер лазерного принтера содержит частицы свинца, которые под воздействием тепла и механического давления утюга проникают в слои меди, иначе говоря, наблюдается явление диффузии. Подготовленный таким образом стеклотекстолитовый образец опускается в раствор хлорного железа (FeCl3) (рис.9, 10), где открытые участки меди вступают в химическую реакцию с хлорным железом: FeCl3 + Cu → FeCl2 + CuCl, в результате, как видно из реакции, получается хлорид железа (2) и хлорид меди. Для нас же важно, что медь из открытых участков подложки растворится, но останется под слоем тонера. Полученный образец промывается в воде, а затем протирается ацетоном, который смывает тонер, при этом под ним остаются медные дорожки на плате (рис.11). Теперь плата готова для радиомонтажа!

На плате необходимо просверлить отверстия под ножки, а также залудить медные дорожки (слой олова предохраняет медь от коррозии) после чего можно делать монтаж радиоэлементов (рис.12). Общий вид платы после монтажа показан на рис. 14.

После проверки работоспособности каждого модуля и элемента по отдельности (рис. 13), можно приступать к написанию микропрограммы для МК, изготовлению корпуса ЦКЗ методом 3d моделирования в среде Autodesk Inventor и последующей печати на принтере Picaso 3D (рис. 15).

Общий вид ЦКЗ в корпусе показан на рис. 16.

 

4. Программная часть устройства

Согласно поставленным задачам, был разработан алгоритм работы программы в виде блок-схемы, по которой составлена программа.

Программа была написана на языке C++, в среде разработки Arduino IDE. Arduino IDE – это удобный редактор, в котором есть только необходимая разработчику информация.

Начальная инициализация устройств, режим работы МК происходит в функции void setup(). Функция void loop() содержит бесконечный цикл, внутри которого и заложена основная часть программы. С каждым шагом бесконечного цикла происходит проверка ряда условий: пришло ли смс, в норме ли медицинские показатели (пульс, температура тела), установлен ли режим приёма лекарства и если да – то не настало ли время его приёма. Каждое это условие имеет свои следствия и соответствующую обработку событий: если пришла смс, то не содержит ли она управляющую команду, начинающуюся с “cmd..”, а если содержит, то какую именно и, соответственно, запускается определённая реакция.

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

Информация на экране отображается в любой момент времени, каждые 2 секунды она обновляется (void updateScreen (n) ). В переменной N_screen хранится номер отображаемого экрана от 0 до 4. Опрос датчика пульса и термодатчика DS18B20 отнимает много времени, поэтому он происходит раз в 2 секунды, что достаточно для фиксирования ухудшения здоровья.

Есть некоторые события, важность которых стоит выше других, поэтому их надо обрабатывать сразу же в случае их возникновения, отложив другие дела (МК не может выполнять одновременно несколько команд). Например, если происходит нажатие на одну из кнопок – нужно сразу отреагировать – сменить экран с информацией, или сделать вызов медперсонала. Эти события обрабатываются МК как прерывания.

В arduino выводы №2, 3 могут быть использованы в качестве источников внешних прерываний, чем мы и воспользовались, подключив к ним кнопку смены экрана и экстренного вызова. Переход в режим внешнего прерывания происходит по команде attachInterrupt(N,func,RISING), где N – номер прерывания 0 или 1; func – некоторая функция, которая запустится при наступлении события; RISING – указание на необходимость реакции на импульсы с положительным фронтом (переход от 0 к 1). В моем случае func для первой кнопки называется void _button1(), и void _button2() – для второй.

Общение с GSM модулем SIM800L происходит через текстовые сообщения в виде AT-команд. В программе использовались следующие AT команды:

AT+CBC – получение информации о степени заряда аккумулятора

AT+CMGF=1;&W – настройка на приём текстовых SMS

AT+CMGDA="DEL ALL" – удаление всех SMS

AT+CMGS=”+79XXXXXXXXX” text – отправка SMS с нужным текстом на указанный номер

ATD+79XXXXXXXXX – позвонить на указанный номер

AT+CMGR=id – чтение SMS по id – номеру из буфера модуля

AT+CFUN=1,1 – включение обычного режима работы модуля и его перезагрузка

Для работы с аппаратными модулями были использованы готовые библиотеки функций, взятые в свободном доступе в интернете с сайта github.com. Эти библиотеки (заголовочные файлы DS1307RTC.h, AdafruitGFX.h, Adafruit_PCD8544.h, Seed_BME280.h, PulseSensorPlayground.h), значительно упростили программирование, сведя к минимуму программный код для обращения к модулям.

Arduino Pro mini обладает небольшой оперативной памятью в 2 Кб, что недостаточно для хранения всех констант (особенно текстовых), графических образов и переменных. Поэтому текстовые константы предварительно были записаны в энергонезависимую EEPROM память (1Кб), куда также записываются и рецепты (String eeprom_read() и void eeprom_write() ) Графические же образы (эмблемы сердец, таблетки) записаны во flash память (32 Кб) программ (директива PROGMEM при объявлении массива). Удивительно, но даже этих мер едва хватило – так flash память заполнена на 100%, ОЗУ на 60-100%, EEPROM на 60%.

 

 

ЗАКЛЮЧЕНИЕ

В результате проделанной работы:

  1. Разработано устройство, позволяющее дистанционно контролировать сердечные ритмы, температуру тела и режим приёма лекарств пациентом, а также температуру и влажность окружающего воздуха.
  2. Найдены и освоены теоретически и практически необходимые для платы элементы и модули.
  3. Разработана и изготовлена печатная плата устройства, сделан радиомонтаж компонентов устройства.
  4. Создана микропрограмма для управления устройством.
  5. Изготовлен корпус устройства.
  6. Определены реальные технические параметры устройства.
  7. Произведен расчет себестоимости устройства.

Таким образом, было создано полностью готовое и рабочее устройство.

Разработанное устройство имеет небольшую массу, компактные размеры и возможность контролировать основные медицинские показатели человека, окружающей среды посредством выбранных датчиков (модулей) и управлением через телефон по смс-сообщениям. Стоимость всех компонентов применяемых в устройстве, не превышает 2 153,93 рублей, что существенно меньше стоимости имеющихся аналогов, предлагаемых производителями медицинской техники.

Устройство прошло окончательные испытания, по результатам которых были составлены его технические характеристики (табл.3) и таблица с алгоритмом выполнения устройством установленных команд (табл.4). Все поставленные цели и задачи выполнены.

Разработка данного бюджетного портативного устройства является перспективной идеей, так как устройства, помогающие исследовать здоровье и диагностировать болезни, всегда актуальны.

 

 

Список используемых источников:

  1. Пухальский Г. И., Новосельцева Т. Я. Цифровые устройства: Учебное пособие для втузов. / СПб.: Политехника, 1996. — 885 с.
  2. Основы радиотехники и связи : учебное пособие / П. П. Березовский. –. Екатеринбург: Изд-во Урал. ун-та, 2017.– 212 с
  3. Микроконтроллеры AVR для начинающих https://cxem.net/beginner/beginner73.php
  4. Open source platform Arduino https://www.arduino.cc
  5. Sprint layout 6.0. Руководство пользователя http://wzone.vegalab.ru/faq/sprint_layout
  6. Б. Страуструп  Программирование. Принципы и практика с использованием C++ /СПб: Вильямс, 2016. – 1328с.
  7. Белов А. Программирование микроконтроллеров для начинающих и не только /СПб.: Hayкa и Texникa, 2016. — 352 с.
  8. Соммер У. Программирование микроконтроллерных плат Arduino/Freeduino СПб.: БХВ-Петербург, 2017. — 256 с.
  9. Dallas 18b20 datasheet http://open.e-voron.dp.ua/wp-content/uploads/2012/01/DS18B20-rus.pdf
  10. SIM800l datasheet https://img.filipeflop.com/files/download/Datasheet_SIM800L.pdf
  11. BME280 datasheet https://www.embeddedadventures.com/datasheets/BME280.pdf
  12. Ардуино: графический ЖК дисплей Nokia 5110 https://robotclass.ru/tutorials/graphics-lcd-nokia-5110/
  13. DS1307 datasheet https://datasheets.maximintegrated.com/en/ds/DS1307.pdf
  14. MP03962 datasheet https://www.alldatasheet.com/datasheet-pdf/pdf/1106030/GOLLEDGE/MP03962.html

15. Ардуино: датчик пульса. https://robotclass.ru/tutorials/arduino-pulse-sensor/