Ваша частота серцевих скорочень,
на будь-якому велокомп’ютері.
HeartRate Broadcaster (HRB) зчитує показники серцевого ритму з Apple Watch та AirPods Pro у реальному часі та об’єднує їх у один показник. Він передає цей сигнал через Bluetooth LE як стандартний монітор серцевого ритму: ваш тренувальний додаток бачить грудну клітку.
Одне серце, один потік
Ваші годинники вимірюють. Ваші AirPods вимірюють. Два датчики, які показують різні результати в один і той самий момент, гірші, ніж один датчик із невеликою похибкою, тому HRB вирішує конфлікт між ними і передає в ефір рівно одне число.
Узгодження датчиків, відкрито
Він називає датчики, які він може почути на даний момент, виводить різницю між ними в ударах за хвилину (BPM) і показує, який саме показник він обрав і надіслав.
- Apple Watch
- Основний датчик. Він запускає справжню тренувальну сесію — єдиний спосіб зчитувати частоту серцевих скорочень з корисною частотою та продовжувати зчитування при вимкненому екрані.
- AirPods Pro 3
- Другий, повністю необов’язковий датчик. Годинник сам по собі є повним джерелом; AirPods самі по собі також є ним.
- iPhone
- Він усереднює покази, які збігаються, відкидає викид, коли вони не збігаються, і рекламує результат як стандартну службу серцевого ритму Bluetooth LE (
0x180D). Коли датчик мовчить, рядок повідомляє про це, а не тихо порівнює його з застарілим числом. - Головне пристрій
- MyWhoosh, Zwift, TrainerRoad, Wahoo та пристрої Garmin Edge з підтримкою Bluetooth бачать один звичайний нагрудний датчик.
Вхідні вати, вихідні калорії
Датчик потужності вимірює роботу. Перетворення цієї роботи на калорії вимагає двох констант, обидві з яких наведені нижче.
Від педалей до цифри
Ватт — це джоулі за секунду. HRB інтегрує потужність, повідомлену датчиком, за час його фактичної роботи, а потім перетворює механічну роботу на енергію, витрачену вашим тілом на її виробництво.
- Робота
- Кожна вибірка потужності множиться на проміжок часу, який вона покриває, і підсумовується. Випадок втрати сигналу виключається, а не інтерполюється — у підсумку вказується, скільки секунд було втрачено.
- Ефективність
- Приблизно 24% енергії, яку ви витрачаєте, перетворюється на роботу на педалях; решта вивільняється у вигляді тепла. Це значення,
0.24, вписується в діапазон 0,20–0,25, виміряний для підготовлених велосипедистів, і саме тому один кілоджоль роботи коштує приблизно одну кілокалорію. - У стані спокою
- Здоров’я означає «понад стан спокою» за активною енергією, тому частка базового обміну сесії — за формулою Міффліна–Сан Жеора, з урахуванням вашого зросту, ваги, віку та статі — віднімається перед записом будь-яких даних. У зведенні відображаються обидва показники.
- Без вимірювача
- За відсутності даних про потужність оцінка базується на опублікованій регресії за частотою серцевих скорочень (Keytel et al., 2005), про що повідомляється на екрані. Оцінка, позначена як така, варта більше, ніж число, яке видає себе за виміряне.
Кожний вимірювач на велосипеді
Cycling Power (0x1818), Cycling Speed and Cadence (0x1816) та FTMS Indoor Bike Data (0x1826). Педальні вимірювачі, кривошипні та розумні тренери передають дані; педальні вимірювачі також повідомляють про лівий/правий баланс, якщо він є.
Перевірено в умовах реальних поїздок разом із Wahoo Kickr Core 2 та педалями PowerTap P1, які одночасно передавали дані.
Один вимірювач є основним, решта записуються
Педальні вимірювачі, кривошип та тренер показують різні результати, оскільки вимірюють у різних точках трансмісії. Ви обираєте, від якого з них береться значення спалених калорій; інші записуються поруч із ним, зі своїми середніми значеннями, щоб ви бачили розкид.
Їзда, біг, плавання
Сесія отримує мітку перед початком, і за замовчуванням позначається як поїздка, коли вимірювач потужності увімкнено. Мітка визначає тип активності HealthKit, а годинник позначає власну сесію відповідно до неї.
Ваші дані про тіло залишаються тут
Зріст, вага, дата народження та стать вводяться один раз і зберігаються лише на телефоні. Вони використовуються для двох наведених вище рівнянь і ні для чого іншого. Зріст вказується у футах і дюймах або в сантиметрах.
Запис у Health
Кожна сесія зберігається як тренування з активною енергією, тому вона потрапляє у ваші кільця та в будь-який додаток, який зчитує дані Health. Історія всередині додатку зберігає деталі, для яких у Health немає полів: які датчики були виявлені та де були прогалини.
Він повідомляє, коли припускає
Неповний профіль тіла, втрачений датчик або оцінка лише за частотою серцевих скорочень відображаються в розділі «Примітки» під фігурою. Нічого не приховується і не округлюється задля кращого вигляду.
Три способи отримати додаток
Є один додаток і одна його збірка. Різниця лише в тому, як ви його отримуєте: два з цих способів безкоштовні, але вимагають зусиль або терпіння, а третій — це App Store.
TestFlight — безкоштовно, 90 днів
Доступно для всіх, запрошення не потрібне. Встановіть додаток TestFlight від Apple, відкрийте публічне посилання, і бета-версія встановиться поряд із іншими програмами. Кожна збірка залишається придатною до використання протягом 90 днів з моменту публікації; нова збірка скидає цей термін, тому бета-версія продовжує працювати, доки оновлюється.
Встановлення вручну — безкоштовно, потрібен обліковий запис розробника
Кожна релізна версія на GitHub містить збірку .ipa у режимі розповсюдження. Вона підписана для розповсюдження, тому для встановлення потрібно перепідписати її власним сертифікатом — це можна зробити за допомогою Xcode, AltStore або Sideloadly. Функції HealthKit та фоновий Bluetooth недоступні у безкоштовних профілях provisioning, тому цей спосіб вимагає платного облікового запису Apple Developer. Там також є повний вихідний код.
App Store — 4,99 USD
Одна покупка. Немає підписки, покупок всередині додатка, реклами чи облікового запису, і він оновлюється сам, як і будь-який інший додаток. Ви платите за те, щоб уникнути обох способів вище, а також за роботу, яка стоїть за цим.
Спробувати через TestFlight
Бета-версія відкрита — немає списку запрошень і немає етапу затвердження. Це та сама платна версія, встановлена через бета-канал Apple замість магазину.
- 1 — Встановіть TestFlight
- Офіційний бета-застосунок від Apple, безкоштовний у App Store. Його потрібно встановити на iPhone, щоб посилання запрацювало.
- 2 — Відкрийте публічне посилання
- На тому ж iPhone відкрийте testflight.apple.com/join/VUJCa5Gw, потім натисніть «Прийняти» та «Встановити». Без запрошень і без кодів.
- 3 — Додайте застосунок для годинника
- Встановіть його через застосунок Watch на iPhone, так само як будь-який інший застосунок для годинника. Годинник є датчиком, тому цей крок є обов’язковим.
Збірка TestFlight працює 90 днів з моменту публікації. Кожна нова збірка перезапускає цей період, тому бета-версія продовжує працювати, доки оновлюється. У версії App Store нічого не закінчується.
Кожен екран
Зроблено зі збірки для розповсюдження на iPhone 17 Pro Max та Apple Watch. Деякі зроблено на телефоні під час їзди; решта — на симуляторі, який не має Bluetooth-радіо, тому датчики там є заміною, що подає в додаток реальні показники. Кожне число на екрані — це власна арифметика додатка. Тут нічого не є малюнком.
Що він робить
Усе, що тут показано, вже доступне в додатку. На цій сторінці немає жодної інформації про дорожню карту.
Справжній ремінець для вимірювання пульсу
Рекламує стандартну службу серцевого ритму (0x180D) з вимірюванням серцевого ритму та розташуванням датчика тіла. Будь-який пристрій, що спарюється з Bluetooth-ремонтом, підтримує це, без супутнього додатка чи плагіна.
Два датчики, одне число
Коли годинники та AirPods повідомляють дані, HRB усереднює показники, які збігаються, і відкидає викид, коли вони не збігаються, надаючи перевагу тому, що ближче до тренду, який він вже спостерігав.
Віртуальний перемикач передач
Цей самий телефон також може діяти як перемикач через відкритий протокол Bike Control, тому кнопки, що передають дані про частоту серцевих скорочень, керують вашим тренажером у MyWhoosh або Zwift. Без кліків, без контролерів Play, без другого пристрою.
Dynamic Island
Live Activity на екрані блокування та в Dynamic Island: поточні удари за хвилину, джерело даних та підписка головного пристрою. Інформація доступна без розблокування.
Плаваюче вікно
Режим «Картка в картці» залишає число на екрані, поки ви користуєтеся іншою програмою: запустіть тренування в HRB, перейдіть до програми для тренувань, і показник ЧСС супроводжуватиме вас у вигляді плаваючого вікна. Воно зберігається після перемикання на головний екран і накладається на інші програми, не заважаючи їм; вікно не видає звуків, ніколи не призупиняється, не зменшується і не захоплює те, що вже відтворюється.
Блокування дотику екрана годинника
Рукав, блискавка на джерсі або випадковий дотик до керма можуть перервати трансляцію під час поїздки. Увімкніть блокування, і додаток на годиннику ігноруватиме випадкові дотики — для розблокування потрібен свідомий дотиск протягом однієї секунди, а значення пульсу залишатиметься читабельним протягом усього часу.
Діагностика в повному обсязі
Налаштування показують підключені центральні пристрої за ідентифікатором, надіслані кадри на підписника, поточну частоту кадрів, точні байти останнього кадру та час, що минув з моменту його надсилання. Якщо щось не працює, ви можете побачити, яка половина з’єднання є причиною проблеми.
Анімація, синхронізована з ритмом серця
Серце на телефоні та годиннику б’ється з виміряною частотою і зупиняється, коли припиняється надходження зразків. Нерухоме серце над правдоподібним числом означає, що датчик втратив зв’язок.
Продовжує передавати дані у фоновому режимі
Після підключення головного пристрою з’єднання зберігається навіть при блокуванні телефону. HRB повідомляє про зміну значення щосекунди, як це робить справжній ремінець і чого очікують головні пристрої.
Тестовий сигнал
Синтетичне джерело частоти серцевих скорочень для спарювання та налагодження без необхідності щось надягати. Переконайтеся, що головний пристрій бачить мовлення, перш ніж хвилюватися про датчик.
Двадцять п’ять мов
Кожен екран на телефоні та годиннику перекладено двадцятьма п’ятьма мовами, включаючи арабську з правосторонньою версткою, а не дзеркальним відображенням англійської. Оберіть одну в налаштуваннях, і вона залишиться обраною, незалежно від мови телефону. Цей сайт також перекладено двадцятьма п’ятьма мовами.
Сумісність
Будь-який додаток або головний пристрій, який спарюється з датчиком серцевого ритму через Bluetooth LE Heart Rate Service, спарюється з HRB таким самим чином.
А ось що він показує. Зазначені пристрої — це ті, проти яких тестувався додаток і на яких їздили; лічильник або тренажер, якого немає в цьому списку, також працюватиме, оскільки додаток зчитує стандартні профілі Cycling Power та FTMS, а не конкретні моделі.
Немає підтримки ANT+ — і жоден додаток не може її додати
HRB передає дані лише через Bluetooth LE. ANT+ — це окремий радіопроткол, а в iPhone немає апаратного забезпечення для ANT+, тому жодне програмне забезпечення не може його передавати. Це обмеження пристрою, а не додатка.
Пристрої, які спарюються з датчиком частоти серцевих скорочень лише через ANT+ — включаючи Garmin Forerunner 935, — ніколи не побачать це мовлення, незалежно від налаштувань.
Налаштування для MyWhoosh
Працюють два варіанти. Вибір залежить від того, чи готові ви носити з собою iPhone, оскільки Apple Watch не може підключитися до нічого без нього.
Apple Watch + iPhone + AirPods Pro 3
Точний варіант. Обидва датчики передають дані, HRB узгоджує їх у одне значення, а MyWhoosh бачить один датчик. Запустіть додаток на годиннику, виберіть Обидва як джерело на телефоні, а потім підключіть HRB на екрані датчиків у MyWhoosh. Телефон залишається в кімнаті; годиннику не потрібно бути поруч із керуючим блоком, лише поруч із телефоном.
iPad + AirPods Pro 3
Варіант з одним пристроєм. AirPods Pro 3 підключаються безпосередньо до iPad, тому HRB, MyWhoosh та Bike Control працюють на одному екрані без участі телефону чи годинника. Встановіть джерело на AirPods — варіанти годинника тут приховані, оскільки нічого підключати.
Годинник завжди працює через iPhone
Apple Watch спарюється з iPhone і лише з iPhone, і ніколи не транслює дані про серцевий ритм через Bluetooth безпосередньо. Додаток на годиннику вимірює показники, передає їх телефону через з'єднання між годинником і телефоном, а головний пристрій підключається саме до телефону.
Отже, годинник додає другий датчик до конфігурації з iPhone, але не додає нічого до конфігурації з iPad. Якщо ви хочете мати на столі лише один пристрій, використовуйте AirPods на iPad і не підключайте годинник.
| Підключіть один раз, у фоновому режимі | Залишайте HRB відкритим на екрані, доки MyWhoosh не повідомить про підключення датчика. iOS приховує рекламу сервісу фоновим додатком, тому для виявлення потрібен передній план — після цього ви можете перемикати додатки або блокувати пристрій, і з'єднання збережеться. |
|---|---|
| Трансляція з одного пристрою | Запускайте HRB на телефоні або iPad, але не на обох одночасно. Дві копії, що рекламуються одночасно, додають два однакові сенсори HRB до списку MyWhoosh, і з екрана сполучення немає способу їх розрізнити. |
| Посилання на годинник, якщо рядок червоний | Рядок Watch App на головному екрані показує, що бачить телефон насправді. «Не встановлено» означає, що програму для годинника ще ніколи не відкривали; «недоступний» зазвичай означає, що програма не запущена — відкрийте її та почніть сесію. На iPad цей рядок зникає повністю. |
| Спроба без сенсора | Встановіть джерело на Тестовий сигнал, щоб транслювати штучні 50–100 уд/хв. Він спарюється в MyWhoosh так само, як і реальні дані — це найшвидший спосіб перевірити роботу датчика, перш ніж щось надягати. |
Питання
Те, з чим люди стикаються першими, та чесні відповіді на кожне.
AirDrop перестав працювати — спочатку зупиніть трансляцію
AirDrop знаходить пристрої поруч через Bluetooth LE, і HRB робить те саме, використовуючи той самий радіомодуль. Поки HRB рекламує себе, а головний пристрій підписаний, він безперервно утримує цей радіомодуль. Через це AirDrop або не бачить пристрій на іншому кінці, або показує його, але зависає перед початком передачі.
Зупиніть трансляцію або закрийте HRB, а потім AirDrop. Все працює знову миттєво: повторне спарювання займає один дотик, як тільки HRB повернеться на передній план. Те саме варто спробувати для будь-якої іншої функції, яка перестає працювати під час трансляції — передачі CarPlay, Bluetooth-клавіатури, що втрачає натискання клавіш, Continuity Camera.
Чи можна блокувати екран після сполучення?
Так. Для виявлення потрібен HRB на передньому плані, але з’єднання зберігається при блокуванні екрана, переведенні у фоновий режим та перемиканні між програмами. Ви не можете вперше сполучитися, коли програма прихована — iOS зупиняє рекламування послуги у фоновому режимі.
Як це впливає на заряд батареї?
Трансляція енергоємна незначно; набагато більше енергії споживає сеанс вправи, який генерує показання. Очікуйте приблизно стільки ж, скільки коштує будь-яка вправа з вимірювання серцевого ритму на цьому пристрої. Годинник є більш вразливою ланкою в конфігурації з iPhone, оскільки саме він здійснює вимірювання.
Чи можуть два додатки одночасно читати трансляцію?
Так. Bluetooth LE дозволяє кільком підписникам підключатися до одного датчика, тому MyWhoosh і друга програма можуть одночасно бачити ті самі дані. На головному екрані відображається кількість активних підписників, щоб ви могли переконатися, що обидва пристрої підключені.
Частота серцевих скорочень (BPM) зависла під час їзди
Показник сіріє, коли дані втрачають актуальність, замість того щоб повторювати застаріле значення. З AirPods це зазвичай означає, що вони припинили передачу даних — перемикання маршрутизації аудіо на цьому рядку тимчасово відключає й знову підключає з’єднання без виходу з програми.
Garmin не бачить пристрій
Перевірте, чи підтримує ця модель передавання пульсу лише через ANT+. У iPhone немає радіомодуля ANT+, тому жодна програма не може передавати дані через цей протокол. Пристрої Garmin, які приймають пульсометр за Bluetooth, звичайно спарюються з HRB; ті, що не підтримують Bluetooth, ніколи не зможуть це зробити.
Куди надходять дані?
Тільки до радіомодуля Bluetooth, нікуди більше. Немає облікового запису, сервера чи аналітики. Дані про частоту серцевих скорочень надходять з HealthKit на пристрої та передаються як стандартне значення датчика на будь-який підключений пристрій.
Вимоги
Що потрібно для роботи та скільки це коштує.
| iPhone | iOS 26 або новішої версії. Для трансляції використовується роль периферійного пристрою Bluetooth, яку не підтримує Симулятор — потрібне реальне обладнання. |
|---|---|
| Apple Watch | watchOS 11 або новішої версії. Програма для годинника запускає сеанс тренування, що є єдиним способом отримувати дані пульсу з достатньою частотою оновлення та продовжувати збір даних при вимкненому екрані. |
| AirPods | Необов’язково. AirPods Pro 3 передають дані пульсу на пристрій, на якому запущено сеанс тренування, тому HRB автоматично запускає його на телефоні, коли ви вмикаєте AirPods як джерело даних. |
| Ціна | 4,99 USD у App Store, одноразова оплата. Немає підписки та внутрішньододаткових покупок. Бета-версія TestFlight працює паралельно з випущеною версією для всіх, хто хоче отримати наступну версію раніше. |
| Підключення | Тримайте додаток відкритим, доки ваш пристрій не підключиться. iOS приховує UUID служби, яку оголошує фоновий додаток, тому пошук має відбуватися у фоновому режимі — після цього з’єднання зберігається навіть при блокуванні телефону. |
| Ім’я мовлення | За замовчуванням HRB, можна редагувати до 10 символів — пакети реклами мають розмір 31 байт, а пристрої обрізають довші імена. |
Вихідний код на GitHub
Весь застосунок опубліковано за ліцензією MIT — застосунок для iPhone, застосунок для годинника, Live Activity, скрипти збірки та цей вебсайт. Якщо ви хочете прочитати код Bluetooth, а не довіряти твердженням про конфіденційність, він там є.
- Прочитати
- github.com/tankbottoms/HeartRateBroadcaster — Swift, без залежностей, без SDK аналітики.
- Зібрати
- Клонуйте, запустіть
xcodegen generate, відкрийте проєкт і зберіть. Для підпису потрібен ваш власний ідентифікатор команди; більше нічого не потрібно. - Встановити
- Кожен реліз містить
.ipaу конфігурації Release з інструкціями для встановлення. HealthKit та фоновий Bluetooth недоступні у вільних профілях провізії, тому для перепідпису потрібен платний обліковий запис Apple Developer.