Monitorizar los latidos del corazón


Con Delphi, podemos monitorizar los latidos del corazón, utilizando un dispositivo Bluetooth LE

Heart Rate Monitor Bluetooth LE.png 

Esta aplicación actúa en modo cliente y al iniciarse lo primero que hace es buscar un servidor del cual leer los datos de los latidos del corazón.
Este servidor será un dispositivo como los que usan los runners mientras hacen alguna carrera.


Cuando se pulsa el botón "Scan" comienza la búsqueda de un dispositivo Bluetooth LE que implemente el servicio "Heart Rate" para ello utiliza el método "DiscoverDevices" con un timeout y un array de TBluetooth UUID's, en este caso BluetoothLE1.DiscoverDevices(2500, [HRSERVICE]) donde HRSERVICE es un servicio estándar.


TBluetoothUUID = '{0000180D-0000-1000-8000-00805F9B34FB}
 
Después del timeout se dispara el método "OnEndDiscoverDevices"
Para descubrir los servicios disponibles de un dispositivo se utiliza el método "GetServices" y si los encuentra vuelve a disparar el método GetCharacteristic
 
HRMEASUREMENT_CHARACTERISTIC: HRMEASUREMENT_CHARACTERISTIC: TBluetoothUUID  = '{00002A37-0000-1000-8000-00805F9B34FB}'
    BODY_SENSOR_LOCATION_CHARACTERISTIC:BODY_SENSOR_LOCATION_CHARACTERISTIC: TBluetoothUUID  = '{00002A38-0000-1000-8000-00805F9B34FB}'

Despues de conseguir el servicio y sus características comienza a recopilar los datos de los latidos.
Cuando se consigue obtener un valor se llama a "SubscribeToCharacteristic" para recibir datos periódicamente.
Para detener la recepción de datos se llama a "UnSubscribeToCharacteristic". 
El evento OnCharacteristicRead se llama cuando se lee un valor.
Dado que el servidor BluetoothLE envía un paquete con datos "en crudo - modo Raw" para extraer obtener las pulsaciones por minuto hay que seguir la especificación GATT (Heart Rate Measurement Data Package Structure), en cualquier caso en la ayuda de Delphi tenemos varios ejemplos y además desde RAD Studio - Tools - Getit Package Manager podremos descargarnos varios ejemplos.





NOTA: 
No confundir Bluetooh con Bluetooth LE (Low energy).
BluetoothLE Permite la comunicación entre dispositivos de pila de botón y dispositivos Bluetooth, que opera en 2.4 GHz (una de las bandas ISM), con una tasa de transferencia de 1 Mbps en la capa física, tiene soporte para seguridad, ya que puede emplear el sistema de cifrado AES y esquemas de seguridad configurables

Bluetooth permite un ancho de banda mayor en función de la versión:
 
Además Bluetooth LE no necesita parear dispositivos como requiere Bluetooth, tan sólo necesita encontrar un servidor para empezar a funcionar, excepto si la aplicación se ejecuta en Windows 8 o Windows 7, en cuyo caso sí que se necesita parear dispositivos.

Free Delphi CE Bootcamp Starts Today - Plus Free Bonus eBook

Week 1 begins today! Enroll for free and start streaming your lectures!
Delphi CE Bootcamp 2018 is a 8 week FREE instructional lecture series covering many different areas of Delphi development for new as well experienced developers. The free lecture series is presented by The Embarcadero Academy and stars renowned Delphi experts Marco Cantu, Cary Jensen, Andrea Magni, Olaf Monien, Ian Barker, Cesar Romero, and Alan Fletcher. New lectures will be posted each week throughout the bootcamp and replays will be available if you're not able to attend during a week.
The Delphi CE Bootcamp is free and you can sign up here After enrolling come back and stream lectures at your leisure anytime on your PC/Mac or Mobile device. This week there are 3hrs of lectures on Introduction to the Delphi Language with Marco Cantu, plus a bonus: read or download Marco's Object Pascal Handbook! ($29 value) for free.
Special offers and giveaways will also be offered each week throughout the bootcamp.
To follow the lecture series, you can use the FREE Delphi Community Edition or any Delphi 10.2.X Pro, Enterprise, or Architect edition.
Schedule:
Week 1 - Delphi Language Introduction with Marco Cantu - Stream now!
Week 2 - GUI Fundamentals (FMX and VCL) with Andrea Magni- Begins Sept 10th
Week 3 - Mobile / Multi-Platform Concepts with Ian Barker - Begins Sept 17th
Week 4 - DataBase/FireDAC with Cary Jensen - Begins Sept 24th
Week 5 - Debugging with Alan Fletcher - Begins Oct 1st
Week 6 - REST Services & APIs with Cesar Romero - Begins Oct 8th
Week 7 - Threading and Performance with Olaf Monien - Begins Oct 15th
Week 8 - Using 3rd Party Components with Ian Barker - Begins Oct 22nd
BONUS! We've also added a free bonus eBook this morning! You can read or download Marco Cantu's Object Pascal Language Handbook from your week 1 lecture curriculum.
SPECIAL OFFERS! During the eight week bootcamp use the coupon code CEBOOT20 at checkout to save 20% off any course, bundle, or Delphi certification exam including the new Delphi Certification Premium Package which includes 1x Practice Exam, 1x Certification Exam, and 1x Re-take if necessary.
Also save 20% on Marco's most popular course bundle entitled "Mastering Modern Delphi Language Techniques" which includes 5 courses and over 8hrs of lectures covering Interfaces, Generics and Anonymous Methods.