
Предыстория
У моего девятилетнего сына диабет 1-го типа. Здоровая поджелудочная вырабатывает не только инсулин, который помогает преобразовывать глюкозу в крови в энергию, но и производит глюкагон, который сообщает печени о том, что необходимо выпустить глюкозу в кровь, когда уровень сахара в крови становится слишком низким. Человеку с диабетом 1-го типа приходится обходиться без этих естественных механизмов защиты и низкий сахар в крови может привести к потребности в неотложной медицинской помощи, если не заниматься лечением.
Нам повезло, что у нас есть доступ к технологиям, которые меняют жизнь, — например, системы непрерывного мониторинга глюкозы (CGM) и автоматизированные инсулиновые помпы. Однако у них есть свои проблемы, например, тревожные сигналы при высоком или низком сахаре. И помпа, и телефон моего сына начинают пищать, если его уровень глюкозы падает ниже 55 мг/дл. Это может произойти очень быстро в разных ситуациях: например, если он только что поел, получил большую дозу инсулина на еду, а потом пошёл на перемену. Или когда он играет во дворе и гоняет мяч. В идеале ему не нужно бы бегать с телефоном на себе во время футбола, но важно, чтобы он учился чувствовать приближение гипогликемии и успевал принять меры до того, как станет плохо.
Ещё один важный момент — сколько раз в день человек с диабетом 1 типа (или тот, кто за ним ухаживает) проверяет уровень сахара. Это как незавершённая задача, которая постоянно висит в голове, изо дня в день, — и это может вызывать усталость и эмоциональное выгорание. Поэтому, если бы можно было уменьшить время и количество усилий, необходимых для такой проверки или, ещё лучше, получать какой-нибудь сигнал в нужный момент, чтобы вообще не приходилось отвлекаться, — это могло бы значительно улучшить качество жизни.
Почему просто не купить Apple Watch?
Вот, наверное, о чём вы думаете. На отказ от яблочной продукции есть несколько причин.
Во-первых, Apple Watch (как и все продукты Apple) — это слишком гаджетный гаджет для ребёнка. В нём куча ярких функций, приложений и уведомлений. Это потрясающее инженерное и дизайнерское чудо, но оно слишком отвлекает ребёнка в школе.
Во-вторых, он плохо и ненадёжно отображает данные с мониторинга глюкозы (CGM). Интеграция с Dexcom часто работает в фоне, не показывает график в виджете — только число и стрелку. Люди даже идут на костыли вроде создания календарных событий, чтобы видеть актуальные данные.
А ещё задать удобные для пользователя настройки iOS, «Экранного времени» и уведомлений — это своего рода квест среднего уровня сложности. А нам нужно что-то простое.
Это стандартная ситуация, которая возникает, когда пытаешься сделать что-то лучше уже существующего на рынке. То, что продукт есть и технически «соответствует требованиям», не значит, что он работает хорошо. Я опросил сообщество людей с диабетом 1 типа, и результаты показали, что я не одинок: да, такие устройства существуют, и кто-то ими пользуется, но ответы ясно дали понять — они работают не так уж хорошо.
И вот что ещё важно: Apple много говорит о дизайне для детей и защитных механизмах — и да, у них действительно есть команды, которые этим занимаются. Но в корне проблема в том, что Apple — это не социально-ориентированная компания. Их устройства созданы, чтобы вызывать привыкание, удерживать внимание пользователей. А это не то, что я хочу видеть на запястье своего сына в школе.
Так у меня и появилась идея — создать простые умные часы с одной‑единственной функцией. Сначала для сына, а потом, возможно, вывести их на рынок как готовый продукт. Оказалось, я не один такой: другой папа — и по совместительству продукт‑дизайнер — Мэтт Лампкин ещё в 2018 году работал над похожей концепцией и подробно описывал свой опыт. Его кейс, презентация, а также советы и поддержка, которые он мне дал, когда я с ним связался, вдохновили меня всерьёз взяться за этот проект.
В итоге, после шести месяцев работы, мне удалось собрать небольшую партию рабочих прототипов, которые мы с сыном до сих пор носим. Однако дальше этого этапа продвинуться не получилось — я не нашёл жизнеспособного пути для масштабирования.
Пока детали ещё свежи в памяти, я хочу зафиксировать и поделиться своим опытом — вдруг он окажется полезным для других или просто интересным тем, кто задумывается о разработке hardware‑продуктов.
Оговорюсь: по профессии я разработчик программного обеспечения, полный новичок в электронике и hardware‑инженерии. Уверен, многое из того, о чём я пишу и что обнаружил в процессе, для профи в этой области покажется очевидным.
Требования к продукту
Мои цели по дизайну:
-
Создать простое устройство без лишних функций, отвлекающих моего сына во время занятий в школе, и которое не требовало бы больших усилий для настройки.
-
Устройство должно выдерживать игры на улице или занятия футболом, а также иметь защиту от дождя или брызг.
-
Оно должно выглядеть как обычные смарт-часы.
-
Устройство должно предоставлять корректные данные о глюкозе в любое время по запросу.
-
Оно должно уметь тактильно уведомлять пользователя, например, при приближении опасной гипогликемии («Срочно! Низкий сахар») или затяжной гипергликемии («Высокий сахар более часа»).
-
Дизайн циферблата должен потенциально упростить процесс проверки уровня глюкозы или хотя бы сделать его менее сложночитаемым.
Процесс
Я мог бы разбить проект на функциональные части: электронику, механику, ПО, финальную сборку. Но всё взаимосвязано, поэтому лучше опишу проект поэтапно.
Первые макетные платы и модули
Полтора года назад я попробовал запрограммировать готовое устройство M5Stick для отображения данных CGM. Получилось! Но батарея садилась быстро, использовался Wi-Fi, а корпус (стильный оранжевый) был громоздким и не защищал электронику от дождя или даже аккуратного мытья рук.
Когда я серьёзно взялся за разработку, то начал с готовых модулей от Adafruit и SparkFun — они предлагают удобные для макетирования компоненты: микроконтроллеры, сенсоры, батареи, кнопки, плюс отличную документацию с уроками, схемами и даже разводкой плат. Это позволило сосредоточиться на прошивке для Arduino и собрать основную систему с минимальной пайкой.
Первое серьёзное препятствие: стабильное BLE-соединение
В проекте было несколько технических «узких мест», способных поставить крест на всей затее. Первое — надёжное Bluetooth Low Energy (BLE) подключение к iOS‑приложению, которое должно получать данные от Dexcom. Apple жёстко ограничивает фоновые процессы ради экономии батареи и стабильности системы.
Изначально я пытался настроить фоновый запрос данных каждые 5 минут. Всё работало… но только если iPhone был на зарядке и приложение активно. Стоило его отключить или свернуть программу — запросы «проваливались в туман», выполняясь хаотично. Обходных путей не нашлось: iOS использует неочевидные алгоритмы, учитывающие частоту использования приложения, заряд батареи и другие факторы.
Это почти убило проект. Спасла смена логики: теперь часы (а не телефон) инициировали подключение каждые 5 минут, запрашивая данные через BLE. В этом случае iOS‑приложение (почти всегда) просыпалось и успевало выполнить HTTPS‑запрос во время сеанса связи. Так я доказал работоспособность схемы BLE → HTTPS.
Самое удобное оказалось в том, что данные Dexcom CGM обновляются с предсказуемыми интервалами. Это позволило настроить часы так, чтобы они просыпались и отправляли BLE‑запрос буквально через несколько секунд после загрузки новых показаний. В результате часы отстают от сенсора или помпы максимум на пару секунд — практически в реальном времени.
Переход на собственную печатную плату
После успешного тестирования прототипа на макетной плате пришло время уменьшить конструкцию до размеров наручных часов. Для этого я освоил Fusion 360 от Autodesk — программу для 3D‑моделирования.
Первое время было непривычно работать:
-
Вместо рисования 3D‑корпуса нужно начинать с 2D‑эскиза
-
Затем «вытягивать» его в трёхмерную форму
-
Любые правки исходного эскиза (который теперь в «прошлом» на временной шкале) влияют на всю последующую геометрию
Легко можно было запутаться, поэтому требовалось строго соблюдать последовательность операций. Когда все компоненты были размещены в модели, стало очевидно: чтобы всё поместилось в корпус часов, необходима собственная печатная плата вместо стандартных модулей.
Для меня это стало настоящим вызовом. Пришлось осваивать:
-
Основы электротехники.
-
Программы для проектирования схем и печатных плат (я выбрал KiCad и не пожалел).
-
Правила подготовки файлов для производства печатных плат.
-
Особенности сборки, чтобы плата действительно работала после изготовления.
Мне понадобилось скомпоновать всё так, чтобы это приняла фабрика по изготовлению печатных плат, и чтобы это всё работало при дальнейшем подключении. Я получил важный урок: разводка платы — это завершающий этап, а не начальный. Больше всего времени ушло на:
-
Разработку принципиальной схемы
-
Подбор компонентов
-
Изучение технической документации
-
Подготовку символов компонентов, их посадочных мест
-
Составление полной спецификации (BOM)
После долгой работы я наконец получил свою первую печатную плату! Теперь на одной компактной плате были интегрированы:
-
Разъём для батареи
-
Кнопка управления
-
Модуль DRV2605 (драйвер тактильного сигнала)
Тут же обнаружилась досадная ошибка — я перепутал полярность подключения батареи на модуле ESP32-S3, из‑за чего плата не включалась. Обидно, но это не остановило прогресс.
Воодушевлённый успехами, я решил отказаться от готового модуля ESP32-S3 в пользу чипа ESP32-S3-MINI-1 (со встроенной антенной), разместив его непосредственно на плате. Но возник вопрос: как прошивать firmware, выполнять отладку?
Изучив аналоги (например, часы Bangle.js), я понял, что удобнее всего использовать магнитные контакты типа pogo‑pin. Нашёл поставщика 4-контактных разъёмов и соответствующих кабелей USB‑A → pogo‑pin — решение сработало отлично.
Параллельно я сотрудничал с местной мастерской 3D‑печати, заказав несколько вариантов корпусов из смолы. Хотя детали получались идеально точными, материал оказался слишком хрупким для повседневного использования.
В ходе работы получил жёсткий урок: необходимость допусков (зазоров между деталями). В первой версии я их не предусмотрел — попытка вставить pogo‑коннектор закончилась сломанным корпусом. Методом проб выяснил, что оптимальный зазор для плотной посадки — 0.1 мм.
Неожиданные сложности с тактильной отдачей
Казалось бы, все вибромоторы‑»таблетки» с одинаковыми характеристиками должны работать идентично — но это не так. Из‑за разброса в сопротивлении между экземплярами требования к напряжению и реальная отдача варьировались от «вообще ничего не чувствуется» до «громко, как дрель».
DRV2605 (драйвер моторов) поддерживает калибровку, но я выяснил: стабильная работа возможна только с моторами, чьё сопротивление близко к 30 Ом.
Существует два основных типа тактильных моторов:
-
ERM — обычные вибромоторы, простые, но грубоватые;
-
LRA — линейные резонансные актуаторы (как в Apple Taptic Engine), обеспечивающие более тонкие и точные вибрации.
Я тестировал LRA, но доступные модели оказались слишком тихими — возможно, из-за качества или особенностей драйвера. В итоге для прототипа выбрал ERM: они громче и проще в управлении.
Задумка была не просто в «жужжании», а в ритмичных постукиваниях, скорость которых зависит от динамики уровня сахара:
-
Низкий сахар + падение → учащающиеся импульсы;
-
Низкий сахар + рост → импульсы замедляются;
…и так далее — чтобы сын мог на ощупь оценить ситуацию.
// Play a beat based on latest BG value and velocity void playSugarBeat(float bg, float vel) { float totalDelay = 0; float maxDelay = 3000; int maxBeats = 8; for (int i = 0; i < maxBeats; i++) { // 40mg/dL = 20ms, 400mg/dL = 920ms float multiplier = 2.5; float offset = 80; float bgToDelay = (bg * multiplier) - offset; totalDelay += bgToDelay; if (totalDelay > maxDelay) { break; } playEffect(1); // 1 = a short tap delay(bgToDelay); bg += vel; if (bg > 400) { bg = 400; } else if (bg < 40) { bg = 40; } } }
После нескольких дней использования алгоритма я с удивлением обнаружил, что начал буквально чувствовать уровень сахара у сына — даже не глядя на экран. Тактильные сигналы оказались настолько информативными, что визуальная проверка стала нужна гораздо реже.
Выбор дисплея и корпуса
Остановился на 1.69-дюймовом IPS‑экране с разрешением 240×280 пикселей. Альтернативы вроде AMOLED (сочные цвета, высокая чёткость) или E‑Ink (энергоэффективность, всегда включённый экран) выглядели заманчиво, особенно учитывая их низкое энергопотребление. Однако их стоимость была существенно выше, а совместимость с библиотеками вроде TFT_eSPI (которую я в итоге использовал) оставалась под вопросом.
От сенсорного слоя сознательно отказался — он усложнил бы конструкцию, добавил лишнюю толщину и противоречил главной идее «часов без отвлекающих факторов».
Для изготовления корпусов сотрудничал с компанией Fictiv. Результат превзошёл ожидания: быстро, качественно и по разумной цене.
Передо мной стоял огромный выбор производственных процессов, причём каждый вариант предлагал не менее внушительный ассортимент материалов. После тестирования двух технологий, SLS и Multi‑Jet Fusion (MJF), стало ясно, что MJF обладает неоспоримыми преимуществами. Эта технология не только более доступна по цене, но и обеспечивает исключительную точность печати. Используемый материал демонстрирует удивительную прочность, сохраняя свои свойства даже при толщине менее рекомендуемого минимума в 1 мм. Особого внимания заслуживает характерная зернистая текстура поверхности, которая выглядит очень аккуратно и профессионально.
Хотя SLS тоже показал хорошие результаты по прочности, качество печати оказалось несколько грубее, а изделия имели более выраженные признаки 3D‑печати. Основным недостатком MJF оказалась пористость материала, из‑за которой корпус свободно пропускал воду. Это потребовало поиска специального защитного покрытия.
В процессе испытаний были опробованы различные методы нанесения покрытия: ручная покраска, аэрография и распыление краски. Наилучший результат показала матовая серая аэрозольная краска Krylon, которая после высыхания создавала надёжное водонепроницаемое покрытие с УФ‑защитой, абсолютно не липкое и комфортное при ношении. При этом любые попытки использовать глянцевые составы приводили к появлению неприятного липкого слоя, который не исчезал со временем.
Эволюция печатной платы
К финалу проекта я последовательно разработал девять версий PCB. Наиболее значимым усовершенствованием стал переход с 2-слойной на 4-слойную архитектуру платы, что кардинально решило проблемы трассировки в условиях ограниченного пространства.
В процессе доработок я интегрировал акселерометр BMA400, выполняющий две ключевые функции: отслеживание шагов для мотивации физической активности и автоматическое пробуждение устройства при обнаружении факта снятия часов.
Многократная корректировка расположения компонентов позволила не только упростить процесс пайки и конечной сборки, но и оптимально разместить LiPo‑аккумулятор в ограниченном пространстве под платой.
К сожалению, я так и не нашёл идеального способа подключения аккумулятора. Пайка проводов вызывала опасения — не хотелось случайно спровоцировать короткое замыкание. Даже самый компактный 1.0-миллиметровый JST‑SH разъём оказался слишком велик для этого устройства.
Хотя вариант с зажимом проводов между платами не был реализован, возможность удобной замены и тестирования батарей определённо стоило предусмотреть в конструкции.
Аналогичная ситуация и с дисплеем — в идеале разводку платы стоило сделать под разъём для TFT‑экрана. Вместо этого приходится вручную припаивать шлейф, где расстояние между контактами не превышает трети миллиметра. Этот процесс:
-
Требует ювелирной точности
-
Занимает неоправданно много времени
-
Нуждается в профессиональном оборудовании
Изготовление стекла для часов
Я узнал, что китайская фабрика может изготовить небольшую партию стёкол с шелкографией по очень доступной цене и доставить их за несколько недель. Стекло не будет идеальным и уж точно не Gorilla Glass™, но будет достаточно близко к заданным спецификациям и вполне подойдет для прототипа.
Когда стекло было у меня на руках, я подумал, что у меня есть все необходимое для финальной сборки. Но тут выяснилось ещё кое‑что…
Оказалось, что нельзя просто взять и поместить стекло перед TFT‑дисплеем — в этом случае результат будет выглядеть как дешёвый смартфон первого поколения. Требуется специальная OCA‑плёнка (Optically Clear Adhesive), и только очень шумный и дорогой ламинатор сможет правильно её нанести. Без него неизбежно появятся пузыри, которые испортят изображение.
Я отправился в местную мастерскую по ремонту техники и попытался объяснить владельцу, что мне нужно не починить часы, а разработать свои собственные. Когда он наконец понял мою просьбу, то сказал, что у него нет OCA‑ламинатора. Его совет был прост: найти дисплей с уже приклеенным стеклом.
Это означало бы полный пересмотр конструкции: пришлось бы заново проектировать стекло, корпус и даже менять форму и размеры платы. Меня это категорически не устраивало.
После безумных поисков и ощущения, что проект вот‑вот рухнет, я осенило: OCA‑ламинатор по сути просто создаёт сильное давление, выдавливая воздух между плёнкой и стеклом. У меня не было ламинатора, но зато был… чугунный пресс для тортильи.
И знаете что? После нескольких проб и ошибок пресс сработал на удивление хорошо! Он удалил 99% пузырьков, а оставшиеся таинственным образом исчезли через пару часов. Проблема решена!
Другие кошмары сборки
Корпус должен был быть максимально компактным и по возможности водонепроницаемым. Потребовалось множество проб и ошибок, чтобы:
-
Правильно подобрать размер и расположение кнопки
-
Точно позиционировать экран относительно стекла
-
Определить оптимальное место пайки дисплея к плате
TFT IPS дисплей оказался склонен к засветам по углам при малейшем перекосе или натяжении, поэтому все элементы требовали идеального совмещения.
Для фиксации стекла на корпусе я использовал клей T-7000, нанося его по краю стеклянной панели. Хотя для прочного соединения требовалось минимальное количество клея, устранение засветов по краям потребовало многочисленных попыток и доработок.
Сюрприз! Arduino небезопасен
Когда сборка прототипа была практически завершена, я узнал, что для полной блокировки прошивки на ESP32 (чтобы её нельзя было прочитать или перезаписать) требуется два компонента: шифрование Flash и «Secure Boot v2». Оказалось, что ни то, ни другое не работает с Arduino IDE — приходится использовать менее удобную платформу разработки ESP‑IDF от Espressif. При этом бóльшую часть кода пришлось бы переписать с использованием библиотек для ESP‑IDF.
К этому моменту я уже не слишком беспокоился о защите интеллектуальной собственности. По сравнению с коммерческими решениями мой прототип был слишком примитивным и ориентированным на узкую нишу. Я и так склонялся к тому, чтобы сделать часы открытыми и модифицируемыми, а это окончательно убедило меня. Пока проект ещё не открыт, но это в планах.
Финальный босс: оптимизация батареи
Большинство собранных мной часов работали около 3 дней, кроме одних — тех, что носит мой сын. Они почему‑то держались 6–7 дней. Трёх дней в целом достаточно, но я заметил, что при сильном разряде батарея переставала заряжаться — видимо, сбоили либо LDO на 3,3 В, либо зарядный чип. Чтобы устройство могло пройти бета‑тестирование, нужно было улучшить автономность «трёхдневных» часов.
Сначала я предположил, что в «долгоиграющих» часах могли быть изменены регистры GPIO на ESP32-S3. Я написал программу для считывания всех регистров, но различий не нашёл. Затем я попытался оптимизировать настройки, чтобы ESP32 не потребляла энергию в режиме сна (минимизировал плавающие пины и подтянул неиспользуемые к земле), но это не дало эффекта.
Затем я проверил, не связана ли проблема с разбросом параметров компонентов, но замеры сопротивления резисторов в разных часах не показали существенных отличий.
Я потратил несколько дней, но так и не понял причину. В планах была 10-я версия платы с увеличенным сопротивлением подтягивающих резисторов, но я не уверен, что это поможет. Ещё одна нерешённая задача — полное отключение питания, чтобы часы могли месяцами лежать «выключенными». Из‑за требований к водонепроницаемости и компактности корпус прототипа неразборный, что усложняет доработки.
Заключение
Уже шесть месяцев мы с сыном носим наши часы почти ежедневно. Он берёт их в школу. Через месяц после начала учёбы стекло на его часах треснуло, но мне удалось разобрать устройство, аккуратно отпаять дисплей от платы и установить новое ламинированное стекло — с тех пор оно держится. Однако сборка и ремонт требуют колоссальных временных затрат.
Можно ли считать этот проект успешным? И да, и нет.
С одной стороны, часы улучшили качество жизни сына в школе, помогая отслеживать уровень глюкозы и предотвращать гипогликемию до срабатывания тревог. Устройство выглядит как «настоящие» умные часы. Я получил бесценный опыт в hardware‑разработке.
В то же время, создание прототипа — это лишь подножие горы. Сложности начинаются дальше: поиск надёжных производителей, построение бизнес‑связей, привлечение инвестиций, создание сообщества, вывод продукта на рынок и долгосрочная поддержка. Не говоря уже о сертификации (FCC) и прочих штуках.
Я восхищаюсь создателями Glowcose и SugarPixel — им удалось преодолеть всё это и создать по‑настоящему ценные решения для людей с диабетом 1 типа.
С готовым прототипом я связался с руководителем известного фонда помощи людям с диабетом. Хотя они не финансируют потребительские продукты, мы сошлись во мнении, что открытая модель (возможно, как наследник Pebble) — наиболее реалистичный путь. Впрочем, после недавнего анонса открытого исходного кода Pebble OS и возрождения бренда ситуация может измениться.
Если проект вас заинтересовал, хотите узнать больше или обсудить не затронутые темы — дайте знать!
Спасибо за внимание. Ваш Cloud4Y. Читайте нас здесь или в Telegram‑канале!
ссылка на оригинал статьи https://habr.com/ru/articles/903120/
Добавить комментарий