Значок програми HeartRate Broadcaster

Ваша частота серцевих скорочень,
на будь-якому велокомп’ютері.

HeartRate Broadcaster (HRB) зчитує живу частоту серцевих скорочень з вашого Apple Watch та AirPods Pro, об’єднує їх у одне значення та повторно передає через Bluetooth LE як стандартний монітор частоти серцевих скорочень. Ваш тренувальний застосунок бачить грудну клітку.

Спробувати безкоштовно через TestFlight, встановити вручну або придбати за USD 4,99 у App Store. Три варіанти. Опис у магазині на перевірці.

Одне серце, один потік

Ваш годинник вимірює. Ваші AirPods вимірюють. Два датчики, які в один і той же момент показують різні результати, гірші за один датчик, що трохи помиляється, тому HRB ніколи не транслює обидва — він узгоджує їх і передає в ефір рівно одне число.

HeartRate Broadcaster показує 96 уд/хв з Apple Watch, рядок угоди про датчик із написом "Лише годинник" та підключений пристрій.

Узгодження датчиків, відкрито

Додаток ніколи не просить вас повірити йому на слово. Він називає датчики, які він може почути на даний момент, вказує, наскільки вони розходяться в ударах за хвилину, і показує, який саме показник він обрав і надіслав.

Apple Watch
Основний датчик. Він запускає справжню тренувальну сесію — єдиний спосіб зчитувати частоту серцевих скорочень з корисною частотою та продовжувати зчитування при вимкненому екрані.
AirPods Pro 3
Другий, повністю необов’язковий датчик. Годинник сам по собі є повним джерелом; AirPods самі по собі також є ним.
iPhone
Він усереднює покази, які збігаються, відкидає викид, коли вони не збігаються, і рекламує результат як стандартну службу серцевого ритму Bluetooth LE (0x180D). Коли датчик мовчить, рядок повідомляє про це, а не тихо порівнює його з застарілим числом.
Головне пристрій
MyWhoosh, Zwift, TrainerRoad, Wahoo та пристрої Garmin Edge з підтримкою Bluetooth бачать один звичайний нагрудний датчик.

Три способи отримати додаток

Існує лише один додаток і одна його збірка. Різниця лише в тому, як ви його отримуєте: два шляхи не коштують нічого, але вимагають зусиль або терпіння, а третій — App Store, який є найзручнішим.

TestFlight — безкоштовно, 90 днів

Доступно для всіх, запрошення не потрібне. Встановіть додаток TestFlight від Apple, відкрийте публічне посилання, і бета-версія встановиться поряд із іншими програмами. Кожна збірка залишається придатною до використання протягом 90 днів з моменту публікації; нова збірка скидає цей термін, тому бета-версія продовжує працювати, доки оновлюється.

Приєднатися до публічної бета-версії

Встановлення вручну — безкоштовно, потрібен обліковий запис розробника

Кожна релізна версія на GitHub містить збірку .ipa у режимі розповсюдження. Вона підписана для розповсюдження, тому для встановлення потрібно перепідписати її власним сертифікатом — це можна зробити за допомогою Xcode, AltStore або Sideloadly. Функції HealthKit та фоновий Bluetooth недоступні у безкоштовних профілях provisioning, тому цей спосіб вимагає платного облікового запису Apple Developer. Там також є повний вихідний код.

Релізи на GitHub

App Store — 4,99 USD

Одна покупка. Немає підписки, внутрішніх покупок, реклами чи необхідності створювати обліковий запис; додаток оновлюється автоматично, як і будь-який інший. Ви платите за зручність не використовувати жоден із попередніх способів, а також за роботу, вкладену у його розробку.

Переглянути в App Store

Спробувати через 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. Тут немає макетів.

Що він робить

Усе, що тут показано, вже доступне в додатку. На цій сторінці немає жодної інформації про дорожню карту.

Справжній ремінець для вимірювання пульсу

Рекламує стандартну службу серцевого ритму (0x180D) з вимірюванням серцевого ритму та розташуванням датчика тіла. Будь-який пристрій, що спарюється з Bluetooth-ремонтом, підтримує це, без супутнього додатка чи плагіна.

Два датчики, одне число

Коли годинник і AirPods надсилають дані, HRB усереднює покази, які збігаються, і відкидає викид, якщо вони не збігаються, надаючи перевагу тому, що ближче до тренду, який він вже бачив. Приймачі бачать лише один датчик.

Dynamic Island

Активність на екрані блокування та в Dynamic Island: поточні удари в хвилину, джерело даних і те, чи підписаний на них насправді блок керування. Інформація доступна без розблокування.

Плаваюче вікно

Режим «Картинка в картинці» залишає число на екрані, поки ви користуєтеся іншою програмою: запустіть тренування в HRB, перейдіть до програми для тренувань, і значення пульсу супроводжуватиме вас у вигляді плаваючого вікна.

Блокування дотику екрана годинника

Рукав, блискавка на джерсі або випадковий дотик до керма можуть перервати трансляцію під час поїздки. Увімкніть блокування, і додаток на годиннику ігноруватиме випадкові дотики — для розблокування потрібен свідомий дотиск протягом однієї секунди, а значення пульсу залишатиметься читабельним протягом усього часу.

Діагностика, яка показує правду

Налаштування показують підключені центральні пристрої за ідентифікатором, надіслані кадри на підписника, поточну частоту кадрів, точні байти останнього кадру та час, що минув з моменту його надсилання. Якщо щось не працює, ви можете побачити, яка половина з’єднання є причиною проблеми.

Анімація, синхронізована з ритмом серця

Серце на телефоні та годиннику б’ється з виміряною частотою і зупиняється, коли припиняється надходження зразків. Нерухоме серце над правдоподібним числом означає, що датчик втратив зв’язок.

Продовжує передавати дані у фоновому режимі

Після підключення головного пристрою з’єднання зберігається навіть при блокуванні телефону. HRB повідомляє про зміну значення щосекунди, як це робить справжній ремінець і чого очікують головні пристрої.

Тестовий сигнал

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

Сумісність

Будь-який пристрій, який приймає дані від Bluetooth LE-датчика частоти серцевих скорочень, побачить HRB як такий самий датчик.

MyWhoosh Zwift TrainerRoad Wahoo Garmin Edge (Bluetooth) nRF Connect

Немає підтримки 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. Він не може спарюватися з iPad і ніколи не транслює дані про частоту серцевих скорочень через Bluetooth самостійно. Додаток годинника вимірює показники, передає їх на телефон через з’єднання «годинник-телефон», а саме телефон підключається до вашого велокомп’ютера.

Отже, годинник додає другий датчик до конфігурації з iPhone, але не додає нічого до конфігурації з iPad. Якщо ви хочете мати на столі лише один пристрій, використовуйте AirPods на iPad і не підключайте годинник.

Підключіть один раз, у фоновому режимі Тримайте додаток HRB відкритим на екрані, доки MyWhoosh не повідомить про підключення датчика. iOS приховує рекламу сервісу фоновим додатком, тому пошук має відбуватися, коли HRB знаходиться на передньому плані — після цього ви можете перемикатися на інші додатки або блокувати пристрій, і з’єднання збережеться.
Трансляція з одного пристрою Запускайте HRB на телефоні або iPad, але не на обох одночасно. Дві копії, що рекламуються одночасно, додають два однакові сенсори HRB до списку MyWhoosh, і з екрана сполучення немає способу їх розрізнити.
Посилання на годинник, якщо рядок червоний Рядок Watch App на головному екрані показує, що бачить телефон насправді. «Не встановлено» означає, що програму для годинника ще ніколи не відкривали; «недоступний» зазвичай означає, що програма не запущена — відкрийте її та почніть сесію. На iPad цей рядок зникає повністю.
Спроба без сенсора Встановіть джерело на Test Signal, щоб транслювати штучний сигнал 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 на пристрої та передаються як стандартне значення датчика на будь-який підключений пристрій.

Вимоги

Не потрібен акаунт, не потрібен вхід у систему, і нічого не залишає ваш телефон — дані пульсу надходять лише на Bluetooth-радіо й нікуди більше.

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.