View Single Post
Det enkleste er kanskje å ta i bruk en eksisterende teknologi for å slippe alt tilleggsutstyret. Et eksempel er da Bluetooth Low Energy aka. Bluetooth Smart. På PC-siden trenger du da et Bluetooth-adapter som støtter Bluetooth 4.0 eller nyere, og dette er gjerne innebygd i mange laptops av nyere modell. En dongle koster i underkant av $10.

Det finnes en drøss av sensorer som kan sender ut data med Heart Rate Monitor-profilen til Bluetooth, og det er opp til deg å finne en som passer bruksområdet. Det finnes f.eks. belter, som er billige og bra, men litt for personlige til å dele, og passer dårlig å demoe på ukjente personer (som må delvis kle av seg). Klokker har gjerne mer funksjonalitet enn bare å måle puls, og blir fort veldig dyre.

Jeg tok en kikk på Zephyr HxM, og APIet så utrolig jalla ut. De har laget sitt eget meldingsformat, og SDKet ser ut til å være laget for Windows 9x, noe som er helt vanvittig i 2017. Det er heller ikke listet noen kvalifiserte design fra de, så det ser ut som noe pirat-opplegg. Jeg ville heller forsøkt å finne en billig Polar H6, H7, H10 eller OH1 (de som bruker Bluetooth). Disse implementerer den offisielle Heart Rate Monitor-profilen fra Bluetooth, og er derfor relativt rett-fram å ta i bruk på en Windows-PC. For Linux er det enda enklere via BlueZ-stacken og verktøyene hcitool/gatttool. Dette kan scriptes og pipes hvor enn dere måtte ønske.

Kort sagt så kobler du til enheten, krypterer forbindelsen, kjører en service discovery, finner heart rate monitor-profilen og innholdet i den, og så skriver du til ene deskriptoren at du ønsker å få oppdateringer når hjerterytmen endrer seg. Da kommer de inn på rekke og rad, uten videre interaksjon. Neste gang du kobler til så trenger du ikke gjøre noe, for informasjonen blir husket mellom hver gang. Det du må løse da er å få informasjonen fra Bluetooth-endepunktet over til programmet du ønsker å lese det fra. Med tanke på at forbindelsen kan dø underveis, så kan det være lurt å løse dette i en ekstern prosess eller service, slik at det ikke over-kompliserer resten av koden deres.

Hvis dere ønsker å utvide til flere typer sensorer, så kan det fort bli mye hardware og drivere for å få alt til å fungere. Det kan da lønne seg å sette opp en mellomstasjon, f.eks. en RasPi, til å samle dataene, koble til enhetene om du mister forbindelsen underveis, og så pakke dette sammen og sende over en valgfri protokoll (Bluetooth, WiFi, ethernet).
Sist endret av Dyret; 21. november 2017 kl. 14:10.