站点图标 Fengxiaoping's bubble

(30 gadget day 5) 那棵灯 – HueMyo party



Philips的hue灯泡算是智能灯泡的鼻祖了,这次就来玩玩这个哈。

meethue

meethue.com是hue的门户啦,有各种的使用说明。开发者的入口在哪呢…找了半天发现右边有竖着的developer…

好吧,进去以后直奔Get started。大概扫一圈以后发现这个hue的bridge设计的还真不错,直接通过http就能访问到api的测试后台。

[code lang=text]
POST http://<bridge ip address>/api
{"devicetype":"test user","username":"newdeveloper"}
[/code]

[code lang=text]
url -X PUT -H 'Content-Type: application/json' -d '{"on":false, "sat":255, "bri":255,"hue":10000}' http://192.168.31.xxx/api/newdeveloper/lights/1/state
[/code]

MYO控制HUE

哈,MYO又出现了!上次只拿了pose的数据,这次我想让灯泡跟着挥手变换颜色,那就要获得当前手臂的角度啦。代码的区别只是多加个回调就好啦。能拿到一个4维的数据。xyzw。

[code lang=text]
@Override
public void onOrientationData(Myo myo, long timestamp, Quaternion rotation) {
((TextView) findViewById(R.id.hello)).setText(
"Z:" + rotation.z() + " W:" + rotation.w() + " X:" + rotation.x() + " Y:" + rotation.y());

}
[/code]

通过观察发现挥手的时候变换的很多的是w轴,而且右手挥动的过程正好是-0.5到0.5的过程。好啦,现在把这个数据随时记录下来,每秒钟发个PUT过去改灯泡的状态。咱就用OkHttp搞好啦,类似这样。

[code lang=text]
String updateHue(int bright, int hue) throws IOException {
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(JSON,
"{"on":true,"bri":150}");
Request request = new Request.Builder()
.url("http://192.168.31.xxx/api/newdeveloper/lights/1/state&quot;)
.post(body)
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
[/code]

Party!

好啦,就这样!

Party呀

退出移动版