Usando el sensor de latidos en Microsoft Band


Microsoft Band nos ofrece diversos sensores con el cual podemos acceder mediante el SDK que nos ofrece Microsoft.

Esta aplicación es bastante sencilla y dejo todo el código en C# comentado (por lo menos lo más relevante) y dejo el proyecto publicado en Github.

        ///<summary>
        /// Making the connection with Band
        /// </summary>

        /// <returns></returns>
        private async Task ConnectToBand()
        {
            var pairedBands = await BandClientManager.Instance.GetBandsAsync();
            if (pairedBands.Any())
            {
                var band = pairedBands.First();
                bandClient = await BandClientManager.Instance.ConnectAsync(band);                
            }
        }

        ///<summary>
        /// Cheking if the app has permission to use the sensor
        /// </summary>

        /// <returns></returns>
        private async Task<bool> HasConsentToUse()
        {
            if (bandClient != null)
            {
                if (bandClient.SensorManager.HeartRate.GetCurrentUserConsent() != UserConsent.Granted)
                {
                    // user has not consented, request it
                    await bandClient.SensorManager.HeartRate.RequestUserConsentAsync();
                    return false;
                }
                else
                {
                    return true;
                }
            }
            Debug.WriteLine("Fail when trying to connect to Microsoft Band");
            return false;
        }

        public async void StartListening()
        {
            statusBar.ProgressIndicator.Text = "acquiring data...";
            await statusBar.ProgressIndicator.ShowAsync();

            await ConnectToBand();
            if (await HasConsentToUse())
            {
                
                if (bandClient != null)
                {
                    var sensor = bandClient.SensorManager.HeartRate;
                    /// Triggering the sensor when changed
                    sensor.ReadingChanged += SensorReadingChanged;
                    /// Initiate the reading
                    await sensor.StartReadingsAsync();
                }
            }
            else
            {
                StartListening();
            }
        }

        public async void StopListening()
        {
            HeartbeatAnimation.Stop();
            var sensor = bandClient.SensorManager.HeartRate;
            sensor.ReadingChanged -= SensorReadingChanged;
            await sensor.StopReadingsAsync();
            bandClient.Dispose();
            StartAppear.Begin();
            HeartbeatOutput.Text = "0";
        }

        async void SensorReadingChanged(object sender, BandSensorReadingEventArgs<IBandHeartRateReading> e)
        {
            try
            {
                if (e.SensorReading != null)
                {
                    this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                    {
                        HeartbeatAnimation.Begin();
                        HeartbeatOutput.Text = e.SensorReading.HeartRate.ToString();

                        StatusBar.GetForCurrentView().ProgressIndicator.Text = "";
                        StatusBar.GetForCurrentView().ProgressIndicator.HideAsync();
                    });
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Error reading/sending data: {0}", ex);
            }
        }

Finalmente aplicando unos cuantos estilos el resultado es el siguiente:

Aquí en este enlace está el proyecto publicado: https://github.com/thEpisode/BandExperiments 

Hello World Microsoft Band


Hace unos días recibí una Microsoft Band, si bien es muy práctica es fácil de usar y lo más interesante, es muy fácil de hacer algún desarrollo para esta, por lo que he decidido indagar en el SDK y hacer algunos experimentos para así finalmente crear mi propia aplicación.

A diferencia de otros post que he hecho en este blog voy a dejar muy separados todos los post para que sean entendibles y no se aten los unos con los otros. Al final haré una aplicación funcional para esta Band. Read More

¿Cómo integrar Instagram en App Studio?


Hace unos días en un evento llevado a cabo en Bogotá, Colombia, me hicieron una pregunta la cual dejaré plasmada en este blog y es ¿Cómo integrar Instagram en una aplicación hecha con App Studio?.

Para ello supongo que ya se tendrán las bases necesarias para hacer una aplicación base en esta plataforma, aquí usaré la plantilla de “Mi banda favorita” y haré alusión a un grupo de música electrónica llamado Disclosure.


Read More

Arduino orientado a IoT


Luego de tener todos los componentes es necesario ahora conectar el backend (click aquí) con los Arduino necesarios el cual tendrán un código genérico ya que todos harán lo mismo, encender el led que trae por defecto cuando una aplicación de FrontEnd de la orden.

Si va a compilar desde Raspberry PI

Suponiendo que no se tiene instalado Arduino IDE es necesario ejecutar los siguientes comandos en la consola, cada uno por separado y donde dice “pi” es el usuario.

sudo apt-get update
sudo apt-get install arduino
sudo usermod -a -G tty pi
sudo usermod -a -G dialout pi

Read More

Raspberry PI orientado a IoT


Bien, ahora se usará una Raspberry PI para poder conectarse con nuestro backend creado anteriormente con Node.js (click aquí) y así poder interactuar con nuestra aplicación de frontend y los dispositivos conectados.

Para mayor agilidad en el taller se conectarán por medio de USB ya que esto no requiere de ninguna configuración ni dispositivos externos.

Conectarse por escritorio remoto

  • Conociendo la IP asignada a la Raspberry presione en su teclado las teclas Windows + R, tener en cuenta que la tecla Windows tiene la bandera de Windows y por lo general está al lado del botón ALT, este comando ejecutará un ventana y allí escribir “mstsc

Read More