Difference between revisions of "Bombilla LED de colores con Bluetooth Low Energy"

From Wiki Makespace Madrid
Jump to: navigation, search
(Detalles)
(Detalles)
Line 28: Line 28:
 
=== Detalles ===
 
=== Detalles ===
  
Tras leer el código, esto es todo lo que hay que saber para controlar la bombilla yeelight:
+
Tras leer el código, esto es todo lo que hay que saber para controlar la bombilla yeelight (color en formato RGB e intensidad de 0 a 100):
  
 
     public static final String YEELIGHT_SERVICE = "0000fff0-0000-1000-8000-00805f9b34fb";
 
     public static final String YEELIGHT_SERVICE = "0000fff0-0000-1000-8000-00805f9b34fb";

Revision as of 11:53, 21 February 2014

Bombilla LED de colores con Bluetooth Low Energy

ESTADO: Propuesto para M-Week Feb 2014

Miembros: Javier M.

Objetivo

Controlar una bombilla LED desde internet a través de un móvil

Motivación

Aprender cómo funciona Bluetooth Low Energy y poder integrarlo después en otros proyectos

Antecedentes

Tengo una bombilla yeelight comprada en Seeedstudio. Hay publicado un pseudo SDK para Android. Las últimas semanas he estado trasteando con Bluetooth Low Energy y el último API de Android. Tras el "Hola mundo", ahora me gustaría programar algo "de verdad".

No tengo ni experiencia, ni dispositivos, ni entorno de desarrollo iOS. Si alguien se anima, se puede hacer el mismo proyecto en paralelo para entorno Apple y comparar las plataformas.

Para interactuar con la bombilla, y si da tiempo quiero utilizar el SDK de twinsprite, una startup de unos amigos que une objetos virtuales y objetos físicos.


Métodos y técnicas utilizadas

  • Bombilla yeelight
  • Bluetooth Low Energy
  • Android (+ iOS?)
  • API de twinsprite


Detalles

Tras leer el código, esto es todo lo que hay que saber para controlar la bombilla yeelight (color en formato RGB e intensidad de 0 a 100):

   public static final String YEELIGHT_SERVICE = "0000fff0-0000-1000-8000-00805f9b34fb";
   public static final String CHARACTERISTIC_CONTORL = "0000fff1-0000-1000-8000-00805f9b34fb";
   data = r + "," + g + "," + b + "," + bright + ","
   // 30 2C 31 30 38 2C 36 30 2C 38 34 2C 2C 2C 2C 2C 2C 2C
	
   // 128,1,0,50,,,,,,,,
   // 31 32 38 2C 31 2C 30 2C 35 30 2C 2C 2C 2C 2C 2C 2C 2C
	
   characteristic.setValue(data.getBytes());
   gatt.writeCharacteristic(characteristic);