Ikona aplikacji HeartRate Broadcaster

Twoje tętno,
na dowolnym komputerze rowerowym.

HeartRate Broadcaster (HRB) odczytuje żywe tętno z Apple Watch i AirPods Pro, łączy je w jedną wartość i nadaje ponownie przez Bluetooth LE jako standardowy czujnik tętna. Aplikacja treningowa widzi opaskę na klatce piersiowej.

Darmowa do wypróbowania na TestFlight, darmowa do ręcznego instalowania lub 4,99 USD po pojawieniu się w App Store. Trzy opcje. Strona w sklepie jest w trakcie recenzji.

Jedno serce, jeden strumień

Twój zegarek mierzy. Twoje AirPods mierzą. Dwa czujniki rozchodzące się w tym samym momencie są gorsze niż jeden czujnik lekko zaniżający wynik, dlatego HRB nigdy nie nadaje obu jednocześnie — arbitruje między nimi i wypuszcza w eter dokładnie jedną liczbę.

HeartRate Broadcaster wyświetlający 96 BPM z Apple Watch, wiersz umowy o czujnik z informacją "Tylko zegarek" oraz podłączone urządzenie główne.

Zgodność czujników, na jawie

Aplikacja nigdy nie prosi o zaufanie jej bezkrytycznie. Wymienia czujniki, które obecnie wykrywa, wyświetla różnicę między nimi w uderzeniach na minutę i pokazuje, który pojedynczy odczyt wybrała i wysłała.

Apple Watch
Główny czujnik. Uruchamia prawdziwą sesję treningową — jedyny sposób na próbkowanie tętna z użyteczną częstotliwością i na kontynuowanie próbkowania przy wyłączonym ekranie.
AirPods Pro 3
Drugi, całkowicie opcjonalny czujnik. Sam zegarek jest kompletnym źródłem; tak samo samodzielne AirPods.
iPhone
Uśrednia odczyty, które się zgadzają, odrzuca wartości odstające, gdy się nie zgadzają, i ogłasza wynik jako standardową usługę Heart Rate Service Bluetooth LE (0x180D). Gdy czujnik umilknie, wiersz to informuje, zamiast cicho porównywać go z przestarzałą liczbą.
Główne urządzenie
MyWhoosh, Zwift, TrainerRoad, Wahoo oraz kompatybilne z Bluetooth jednostki Garmin Edge widzą jeden zwykły pasek na klatce piersiowej.

Trzy sposoby na uzyskanie aplikacji

Jest jedna aplikacja i jedna jej wersja. Różnią się one tylko sposobem uzyskania: dwie z tych opcji są bezpłatne, ale wymagają wysiłku lub cierpliwości, a trzecia to App Store, czyli opcja najbardziej wygodna.

TestFlight — darmowa, 90 dni

Dostępna dla każdego, nie jest wymagane zaproszenie. Zainstaluj aplikację TestFlight firmy Apple, otwórz publiczny link, a wersja beta zainstaluje się obok innych aplikacji. Każda kompilacja pozostaje ważna przez 90 dni od dnia publikacji; nowa kompilacja resetuje ten czas, dzięki czemu wersja beta działa dalej, dopóki jest aktualizowana.

Dołącz do publicznego testu beta

Ręczna instalacja — darmowa, wymaga konta deweloperskiego

Każda wersja na GitHubie zawiera plik .ipa w konfiguracji Release. Jest on podpisany pod dystrybucję, więc jego instalacja wymaga ponownego podpisania własnym certyfikatem — robią to Xcode, AltStore i Sideloadly. HealthKit i tła Bluetooth nie są dostępne dla profili dystrybucyjnych bezpłatnych, więc ta opcja wymaga płatnego konta Apple Developer. Dostępny jest również pełny kod źródłowy.

Wersje na GitHubie

App Store — 4,99 USD

Jedna płatność. Bez subskrypcji, bez zakupów w aplikacji, bez reklam, bez konta, a aplikacja aktualizuje się sama, jak każda inna. Płacisz za wygodę rezygnacji z powyższych opcji oraz za pracę włożoną w jej stworzenie.

Zobacz w App Store

Próbowanie na TestFlight

Beta jest otwarta — nie ma listy zaproszeń ani etapu zatwierdzania. To ta sama aplikacja co wersja płatna, instalowana przez kanał beta Apple zamiast ze sklepu.

1 — Zainstaluj TestFlight
Własna aplikacja beta Apple, darmowa w App Store. Musi być zainstalowana na iPhone’ie, aby link cokolwiek zrobił.
2 — Otwórz publiczny link
Na tym samym iPhone’ie otwórz testflight.apple.com/join/VUJCa5Gw, a następnie dotknij Akceptuj i Instaluj. Bez zaproszenia i bez kodu.
3 — Dodaj aplikację na zegarek
Zainstaluj ją z aplikacji Watch na iPhone’ie, tak jak każdą inną aplikacją na zegarek. Zegarek jest czujnikiem, więc ten krok jest obowiązkowy.

Wersja TestFlight działa przez 90 dni od dnia publikacji. Każda nowa wersja restartuje ten okres, więc beta działa dalej, dopóki jest aktualizowana. Wersja w App Store nie wygasa.

Każdy ekran

Zrzuty wykonane z wersji produkcyjnej na iPhone’ie 17 Pro Max i Apple Watch. To nie są makiety.

Co potrafi

Wszystko, co tu widzisz, działa w aplikacji już dziś. Na tej stronie nie ma nic, co byłoby zapowiedzią przyszłych funkcji.

Prawdziwy pasek do pomiaru tętna

Reklamuje standardową usługę Heart Rate Service (0x180D) z pomiarem tętna i lokalizacją czujnika ciała. Każde urządzenie, które łączy się z paskiem Bluetooth, obsługuje tę usługę, bez konieczności instalowania aplikacji towarzyszącej ani wtyczek.

Dwa czujniki, jedna wartość

Gdy zegarek i AirPods raportują jednocześnie, HRB uśrednia wyniki, które się zgadzają, i odrzuca wartość odstającą, gdy się różnią — wybierając tę, która jest bliższa trendowi, który już obserwuje. Jednostki główne widzą zawsze tylko jeden czujnik.

Dynamic Island

Aktywna aktywność na ekranie blokady i w Dynamic Island: bieżące BPM, źródło pochodzenia oraz to, czy jednostka pomiarowa jest faktycznie subskrybowana. Informacje widoczne bez odblokowywania urządzenia.

Pływające okno

Tryb "Obraz w obrazie" utrzymuje liczbę na ekranie podczas korzystania z innej aplikacji — rozpocznij trening w HRB, przełącz się na aplikację treningową, a BPM podąża za Tobą jako pływające okno.

Blokada ekranu dotykowego dla zegarka

Rękaw, zamek w koszulce czy chwyt za taśmę kierownicy mogą przerwać transmisję w trakcie jazdy. Aktywuj blokadę, a aplikacja na zegarku ignoruje przypadkowe dotknięcia — jedno sekundowe naciśnięcie odblokowuje ją, a BPM pozostaje czytelny przez cały czas.

Narzędzia diagnostyczne, które mówią prawdę

Ustawienia pokazują połączone centra identyfikowane po identyfikatorze, ramki wysłane na subskrybenta, żywy współczynnik klatek, dokładne bajty ostatniej ramki oraz czas, jaki minął od jej wysłania. Gdy coś nie działa, można zobaczyć, która połowa łącza jest źródłem problemu.

Animacja zsynchronizowana z rytmem

Serce na telefonie i zegarku bije w zmierzonej przez Ciebie częstotliwości i zatrzymuje się, gdy przestają napływać próbki. Spokojne serce nad prawdopodobnie poprawną liczbą oznacza, że czujnik utracił połączenie.

Nadal nadaje w tle

Gdy jednostka głowicy nawiąże połączenie, łącze przetrwa zablokowanie telefonu. HRB powiadamia raz na sekundę, czy wartość się zmieniła, co robi prawdziwy pasek i czego oczekują jednostki głowic.

Sygnał testowy

Syntetyczne źródło częstości akcji serca do parowania i debugowania bez zakładania czujnika. Upewnij się, że jednostka głowicy widzi nadawanie, zanim zaczniesz się martwić o czujnik.

Kompatybilność

Każde urządzenie, które akceptuje czujnik częstości akcji serca przez Bluetooth LE, będzie postrzegać HRB jako taki czujnik.

MyWhoosh Zwift TrainerRoad Wahoo Garmin Edge (Bluetooth) nRF Connect

Brak ANT+ — i żadna aplikacja go nie doda

HRB nadaje wyłącznie przez Bluetooth LE. ANT+ to osobny protokół radiowy, a iPhone nie ma sprzętu ANT+, więc żadne oprogramowanie nie może go transmitować. To ograniczenie urządzenia, a nie aplikacji.

Urządzenia, które parują częstość akcji serca wyłącznie przez ANT+ — w tym Garmin Forerunner 935 — nigdy nie zobaczą tego nadawania, niezależnie od konfiguracji.

Konfigurowanie dla MyWhoosh

Działają dwa zestawy. Wybór zależy od tego, czy chcesz nosić ze sobą iPhone’a, ponieważ Apple Watch nie może niczego wykryć bez niego.

Apple Watch + iPhone + AirPods Pro 3

Dokładny zestaw. Oba czujniki przesyłają dane, HRB łączy je w jedną wartość, a MyWhoosh widzi jeden pasek. Uruchom aplikację na zegarku, wybierz Both jako źródło na telefonie, a następnie sparuj HRB w ekranie czujników MyWhoosh. Telefon pozostaje w pokoju; zegarek nie musi być blisko stacji sterującej, tylko blisko telefonu.

iPad + AirPods Pro 3

Zestaw jednoUrządzeniowy. AirPods Pro 3 łączą się bezpośrednio z iPadem, dzięki czemu HRB, MyWhoosh i Bike Control działają na tym samym ekranie bez udziału telefonu ani zegarka. Ustaw źródło na AirPods — opcje zegarka są tutaj ukryte, ponieważ nie ma niczego, do czego mogłyby się połączyć.

Zegarek zawsze łączy się przez iPhone’a

Apple Watch łączy się z iPhone’em i tylko z iPhone’em. Nie ma możliwości sparowania go z iPadem i nigdy nie nadaje sam w sobie sygnału tętna przez Bluetooth. Aplikacja na zegarku mierzy, przekazuje odczyt do telefonu przez połączenie zegarek-telefon, a to telefon jest urządzeniem, do którego faktycznie łączy się Twoja stacja sterująca.

Zegarek dodaje więc drugi czujnik do zestawu z iPhone’em, ale nic nie dodaje do zestawu z iPadem. Jeśli chcesz mieć jedno urządzenie na biurku, użyj AirPods na iPadzie i nie angażuj zegarka.

Pariowanie raz, w pierwszym planie Zostaw HRB otwarte na ekranie, aż MyWhoosh zgłosi połączenie czujnika. iOS ukrywa usługę reklamowaną przez aplikację działającą w tle, więc wykrywanie musi odbywać się, gdy HRB jest na pierwszym planie — po tym możesz przełączać aplikacje lub blokować urządzenie, a połączenie pozostanie aktywne.
Nadawanie z jednego urządzenia Uruchom HRB na telefonie lub iPadzie, ale nie na obu. Uruchomienie dwóch instancji jednocześnie powoduje wyświetlenie dwóch identycznych czujników HRB na liście MyWhoosh, a z ekranu parowania nie sposób ich rozróżnić.
Połączenie z zegarkiem, jeśli wiersz jest czerwony Wiersz aplikacji na zegarku na głównym ekranie pokazuje to, co faktycznie widzi telefon. Brak instalacji oznacza, że aplikacja na zegarku nie była jeszcze otwierana; brak dostępności zwykle oznacza, że aplikacja nie jest uruchomiona — otwórz ją i rozpocznij sesję. Wiersz całkowicie znika na iPadzie.
Testowanie bez czujnika Ustaw źródło na Test Signal, aby nadawać syntetyczny sygnał 50–100 BPM. Parowanie w MyWhoosh przebiega dokładnie tak samo jak w przypadku rzeczywistego odczytu, co pozwala najszybciej potwierdzić działanie strony czujnika przed założeniem czegokolwiek na ciało.

Pytania

Najczęstsze problemy i szczere odpowiedzi na każdy z nich.

AirDrop przestał działać — najpierw zatrzymaj nadawanie

AirDrop wykrywa pobliskie urządzenia za pomocą Bluetooth LE, a HRB robi to samo, używając tego samego radia. Gdy HRB nadaje, a urządzenie główne jest subskrybowane, radio jest stale zajęte, przez co AirDrop może nie wykryć urządzenia po drugiej stronie lub może je wyświetlić, ale zawiesić się przed rozpoczęciem transferu.

Zatrzymaj nadawanie lub zamknij HRB, a następnie AirDrop. Działa to natychmiast ponownie i nic nie ginie — ponowne sparowanie wymaga jednego dotyku, gdy HRB wróci na pierwszy plan. Warto to spróbować również w przypadku innych funkcji, które przestają działać podczas nadawania — np. handoff CarPlay, klawiatura Bluetooth, która przestaje reagować, lub Continuity Camera.

Czy mogę zablokować ekran po sparowaniu?

Tak. Wykrywanie wymaga, aby HRB było na pierwszym planie, ale połączenie przetrwa zablokowanie ekranu, przejście w tło i przełączanie aplikacji. Nie można jednak sparować po raz pierwszy, gdy aplikacja jest ukryta — iOS zatrzymuje nadawanie usługi w tle.

Ile to kosztuje pod względem baterii?

Nadawanie zużywa mało energii; nie dotyczy to sesji treningowej, która generuje odczyt. Oczekuj podobnego zużycia, jak w przypadku dowolnego treningu pomiaru tętna na tym urządzeniu. Zegarek jest bardziej obciążoną częścią konfiguracji z iPhone’em, ponieważ to on dokonuje pomiaru.

Czy dwie aplikacje mogą jednocześnie odczytywać transmisję?

Tak. Bluetooth LE umożliwia kilku odbiorcom podłączenie się do jednego czujnika, dzięki czemu MyWhoosh i druga aplikacja mogą jednocześnie wyświetlać te same dane. Na głównym ekranie widoczna jest liczba aktywnych odbiorców w czasie rzeczywistym, co pozwala potwierdzić, że obie aplikacje faktycznie się połączyły.

Tętno zamarło w trakcie jazdy

Wartość jest szarzeje, gdy przestaje być aktualna, zamiast powtarzać martwą liczbę. W przypadku AirPods zwykle oznacza to, że przestały one przesyłać dane — przełącznik trasy dźwiękowej w tym wierszu przerywa i przywraca połączenie, co odtwarza łączność bez wychodzenia z aplikacji.

Mój Garmin go nie wykrywa

Sprawdź, czy ten model paruje z paskiem pomiaru tętna wyłącznie przez ANT+. iPhone nie posiada radia ANT+, więc żadna aplikacja nie może go przesyłać. Urządzenia Garmin, które akceptują pasek Bluetooth, normalnie parują z HRB; te, które go nie obsługują, nigdy nie będą tego robić.

Gdzie trafiają dane?

Do radia Bluetooth i nigdzie indziej. Nie ma konta, serwera ani analityki. Dane tętna pochodzą z HealthKit na urządzeniu i są wysyłane jako standardowa wartość czujnika do dowolnego podłączonego urządzenia.

Wymagania

Bez konta, bez logowania i nic nie opuszcza Twojego telefonu — dane tętna są przesyłane wyłącznie do radia Bluetooth.

iPhone iOS 26 lub nowszy. Nadawanie wykorzystuje rolę peripheralnej Bluetooth, której Symulator nie obsługuje — wymagany jest rzeczywisty sprzęt.
Apple Watch watchOS 11 lub nowszy. Aplikacja na zegarek uruchamia sesję treningową, co jest jedynym sposobem na uzyskanie danych o tętnie z przydatną częstotliwością i kontynuowanie próbkowania przy wyłączonym ekranie.
AirPods Opcjonalnie. AirPods Pro 3 przesyłają dane o tętnie do urządzenia, na którym uruchomiona jest sesja treningowa, więc HRB rozpoczyna ją na telefonie, gdy włączysz je jako źródło.
Cena 4,99 USD w App Store, płatność jednorazowa. Bez subskrypcji i zakupów w aplikacji. Wersja beta TestFlight działa równolegle z wersją wydawniczą dla każdego, kto chce wcześniej wypróbować następną wersję.
Parowanie Pozostaw aplikację otwartą, aż urządzenie główne się połączy. iOS ukrywa identyfikator UUID usługi ogłaszanej przez aplikację działającą w tle, więc wykrywanie musi odbywać się na pierwszym planie — po tym połączenie przetrwa zablokowanie telefonu.
Nazwa nadawcy HRB domyślnie, edytowalna do 10 znaków — pakiety reklamowe mają 31 bajty, a urządzenia główne obcinają dłuższe nazwy.

Otwarty kod źródłowy na GitHubie

Cała aplikacja jest udostępniona na licencji MIT — aplikacja na iPhone’a, aplikacja na Apple Watch, funkcja Live Activity, skrypty budowania oraz ta strona internetowa. Jeśli wolisz przeczytać kod Bluetooth zamiast ufać naszemu zapewnieniu o prywatności, cały kod jest dostępny.

Przeczytaj go
github.com/tankbottoms/HeartRateBroadcaster — Swift, bez zależności, bez SDK analitycznych, które należałoby sprawdzać.
Zbuduj
Sklonuj repozytorium, uruchom xcodegen generate, otwórz projekt i zbuduj. Podpisywanie wymaga własnego identyfikatora zespołu; nic więcej nie jest wymagane.
Zainstaluj pobocznie
Każda wersja zawiera konfigurację Release z plikiem .ipa i instrukcjami instalacji pobocznej. HealthKit i tło Bluetooth są niedostępne dla darmowych profilów provisioningu, więc ponowne podpisanie wymaga płatnego konta Apple Developer.