Cómo habilitar acceso remoto en Raspberry Pi


Si bien Raspberry Pi nació como un proyecto para llevar computadores a los niños de bajos recursos y se pudiera conectar cualquier periférico para poder hacer que este fuera más asequible pero muchas veces resulta que no tenemos todo de primera mano.

Como este proyecto ha tomado tanta popularidad y tantos propósitos distintos a veces es difícil tener un teclado, mouse y pantalla extra para poder administrar cada Raspberry Pi, por lo cual hoy en día es posible hacerlo por distintos medios que veremos durante este artículo.

Comenzaré con el más amigable; cabe aclarar que ambos métodos solo sirven en Raspbian y que nuestra Raspberry debe estar en nuestra red local, a no ser que tenga una IP dedicada.

Escritorio remoto

  • Instalar XRDP que simplemente habilita un protocolo de escritorio remoto (RDP)

Read More

Capturar credenciales de Facebook con una extensión de Google Chrome


Hace unos días comencé a revisar las API de Google Chrome que ofrece para crear extensiones y decidí crear una sencilla extensión que captura el email y la contraseña de Facebook al momento de hacer login (hay gente que le llama hackear Facebook), esto lo logro al hacer un hook en el evento “submit” del formulario de login.

En términos más técnicos lo que estoy haciendo es un event listener al documento y bajo ciertos parámetros solo opero en el login de Facebook.

También me pareció interesante tomar pantallazos de Facebook cada determinado tiempo, para ello se cuenta con un botón que habilita esta opción.

Sin embargo la idea es que esta información salga del navegador de la víctima y vaya a nuestras manos, para ello configuré la aplicación para que responda a un servidor hecho con Node.js y Socket.io, de ahí para adelante es historia. Read More

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