Tabla de contenido:

Bambú claro (lámpara conectada): 3 pasos
Bambú claro (lámpara conectada): 3 pasos

Video: Bambú claro (lámpara conectada): 3 pasos

Video: Bambú claro (lámpara conectada): 3 pasos
Video: Cómo conectar los cables de una lámpara de techo | Tutorial para principiantes 2024, Noviembre
Anonim
Bambú claro (lámpara conectada)
Bambú claro (lámpara conectada)

¡Hola y bienvenido!

Light bamboo es una lámpara conectada que se enciende cuando se recibe una notificación en el teléfono inteligente Android al que está conectado. El objetivo de este instructivo es mostrarle la etapa de diseño del proyecto: desde la arquitectura de hardware hasta la conexión Bluetooth Low Energy (BLE) y la construcción de la aplicación Android.

Para nuestra lámpara, elegimos una planta de plástico para un diseño de decoración genial. Para este proyecto, las notificaciones que se muestran son de las siguientes aplicaciones: llamadas, sms / mms, facebook, messenger, instagram, whatsapp y gmail. Se atribuye un color claro a cada tipo de notificación.

Para este proyecto, necesitará:

  • Un uC con un módulo BLE integrado: nFR51822 RedBearLab
  • 3 anillos NeoPixel (12 LED RGB)
  • Un teléfono inteligente Android
  • Estudio de Android

Cada notificación tiene una prioridad específica, según su importancia. Por ejemplo, una notificación de llamada entrante es más importante que una notificación de Facebook. En ese caso, el color de los LED se asociará a la notificación de llamada entrante.

El teléfono inteligente en el que desarrollamos la aplicación es un Samsung Galaxy A5.

Paso 1: Pieza de hardware

Pieza de hardware
Pieza de hardware

Nuestra arquitectura es bastante simple.

Conecte los pines del anillo NeoPixel a la placa nRF51822 de la siguiente manera:

  • Inout Pin de datos del NeoPixel Ring al puerto 3 del uC.
  • Vcc del NeoPixel Ring a los 3.3V del uC.
  • GND del NeoPixel Ring al GND del uC.

Puede notar que no usamos el pin de datos de salida del anillo NeoPixel. Esto se debe a que los pines de datos de entrada de los tres anillos NeoPixel que usamos en este proyecto están todos conectados al mismo puerto de la placa nRF51822 (pin 3).

Paso 2: parte del software

Parte del software
Parte del software
Parte del software
Parte del software
Parte del software
Parte del software

1. La comunicación Bluetooth Low Energy:

En una comunicación BLE, el servidor (que en nuestro caso es uC) y el cliente (el teléfono inteligente) intercambian datos mediante transacciones GATT. En esas transacciones, los datos se organizan jerárquicamente en secciones llamadas servicios, que agrupan piezas de datos de usuario relacionadas conceptualmente llamadas características. En nuestro caso, la encapsulación de datos es simple ya que solo tenemos una información para pasar del cliente al servidor (ver la imagen de arriba).

  • en el lado del servidor: Para poder utilizar la placa nrf51822 como servidor BLE, primero instale la biblioteca "BLEPeripheral.h" en el IDE de Arduino. Esta biblioteca proporciona funciones listas para usar para la creación de servicios y características y publicidad.
  • en el lado del cliente: para iniciar una comunicación BLE en Android Studio, primero configure los permisos BLE en el archivo de manifiesto. Luego, en el archivo activity_main.xml, agregue 4 botones: escanear, detener el escaneo, conectar y desconectar que permitirán a la aplicación buscar dispositivos BLE cercanos, detener el escaneo, conectarse y desconectarse a un dispositivo. En el archivo main_activity.java, implemente las funciones que están asociadas con los botones anteriores: startScanning (), stopscanning (), connectToDeviceSelected (), desconectarDeviceSelected (). Finalmente, implemente las funciones de devolución de llamada que se llaman cuando cambia el estado del cliente.

2. Gestión de notificaciones

  • en el lado del cliente (en Android Studio): para escuchar las notificaciones provenientes del teléfono inteligente, implemente un oyente de notificaciones que se activa cuando ocurre una notificación en la barra de estado. Este oyente de notificaciones enviará un "mensaje", llamado intención, a la actividad principal cuando se publique o elimine una notificación. Este "mensaje" contiene un código de notificación que ayuda a identificar la aplicación que publicó la notificación. Para procesar la notificación en la actividad principal, cree un receptor de transmisión que recibirá el mensaje del oyente de la notificación. Luego, dependiendo del código de notificación, se envía un carácter diferente al servidor.
  • en el lado del servidor (en Arduino IDE): se muestra la notificación que tiene la mayor prioridad.

Paso 3: Paso 3: Anexos

Aquí encontrará todo el código fuente.

Recomendado: