Nefry×Milkcocoaであそぶ

[Milkcocoaの歩き方](http://qiita.com/n0bisuke/items/81b8b209374daf8c4930)で紹介していただいたMilkcocoa界隈の強い人こと、わみです。
今回はMilkcocoaであそんでみたのでそれを紹介していこうと思います。

![IMG_20161210_161503.jpg](https://qiita-image-store.s3.amazonaws.com/0/97208/21e27fc5-b40c-5a1f-a001-500cd52b8694.jpeg)


#きっかけ
東京で開催された[Milkcocoaハンズオン](https://mlkcca.connpass.com/event/40292/)でMilkcoocaのドット絵と**Nefry**を使ってデバイスとWebを連動させるハンズオンが開催されました。

>[イベントのレポート](http://togetter.com/li/1029940)
![[イベントのレポート](http://togetter.com/li/1029940)](https://pimg.togetter.com/1deeaa506a4ef07108fc54183b83eae46ac87801/687474703a2f2f696e7374616772616d2e636f6d2f702f424b794845636c6a455a532f6d656469612f3f73697a653d6c)
>[dotStudioのハンズオン記事](https://dotstud.io/blog/milkcocoa-nefry-iot-handson/)


私もお手伝いに行ったのですが、Nefryに反映されるLEDは一つしかない！**それはちょっと寂しい！！**

別件でせっかくLEDパネルを手に入れたのでそれをつかってMilkcocoaのドット絵を表示してみます！

#作ってみよう！

##Nefry
**フリスクサイズのIoTデバイス**でUSBに直接繋げられたり、Webページ上でWiFiの設定やESP8266の端末設定ができるようになっていたりとESP8266をより簡単に扱えるものになっています。

詳しくはLigブログで記事をいくつか載せていますのでご覧ください。

[自作したオリジナルIoTデバイス「Nefry」とインターネットを繋いでみた](http://liginc.co.jp/236620)

[Webサービス同士を連携できる「IFTTT」と自作IoTデバイスを繋いで生活を便利にしてみた](http://liginc.co.jp/263899)

>**[dotstudio](https://dotstud.io/projects/nefry-connect-internet/)さんにて販売中です！！**

![](https://qiita-image-store.s3.amazonaws.com/0/97208/95705e6e-e8e8-9f9d-6778-7de63860a01e.jpeg)　　

##Milkcocoa
Uhuru Technical Rockstarsさんが開発している、リアルタイム通信やハードウエアとwebの接続などが簡単にできるようになるバックエンドサービスです。
 
![2015-12-19_23h40_23.png](https://qiita-image-store.s3.amazonaws.com/0/97208/f8d11811-1568-250d-cef9-a73d60c67fa9.png)

## MilkcocoaとNefry向けに情報を変換しよう

>https://milkcocoacolor.netlify.com/
ホスティングされているのはこちら

>dotstudioの[ハンズオン記事](https://dotstud.io/blog/milkcocoa-nefry-iot-handson/)をベースに作られています。

実際に試す時にはhttps://github.com/wamisnet/Milkcocoa_Nefry_Panel のapp.jsの30行目にある``` new Milkcocoa``のAPPIDをご自身のデータに変更してください。`

```js
//Nefry側のアプリ&データストア
let milkcocoa2 = new MilkCocoa(`readidztqm2w.mlkcca.com`);
const nefry_ds = milkcocoa2.dataStore('nefry');
```


## Nefryにプログラムを書こう！

それではさっそく256個のLEDを制御するプログラムをNefryに書き込みましょう！
細かいNefryMilkcocoaライブラリについてはこちらの記事を参考にしてください。
>**[Milkcocoaと連携させるライブラリの紹介記事です。](https://liginc.co.jp/282918)**


```cpp:Nefry&Milkcocoa.ino
#include <Adafruit_NeoPixel.h>

#include <Nefry.h>
#include <Nefry_Milkcocoa.h>

Nefry_Milkcocoa *milkcocoa;

void onpush(DataElement *elem);
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(256,D0,NEO_GRB);
void setup() {
  pixels.begin();
  milkcocoa->print();//Setup ModuleにAPPIDの表示をする
  milkcocoa = Nefry_Milkcocoa::begin();
  Nefry.println( milkcocoa->on( "nefry", "push", onpush) ? "Milkcocoa onPush OK" : "Milkcocoa onPush NG" );
  for(int i=0;i<256;i++){
    pixels.setPixelColor(i, pixels.Color(0,150,0));
    pixels.setBrightness(10);
  }
  pixels.show();
  Nefry.ndelay(500);
    for(int i=0;i<256;i++){
    pixels.setPixelColor(i, pixels.Color(0,0,0));
    pixels.setBrightness(10);
  }
  pixels.show();
}

void loop() {
  milkcocoa->loop(10000);
  Nefry.ndelay(500);
}

void onpush(DataElement *elem) {//MilkcocoaのOn関数と同一
  int pss=elem->getInt("ps");
  Nefry.println(pss);
  pixels.setPixelColor(pss, pixels.Color(elem->getInt("r"),elem->getInt("g"),elem->getInt("b")));
  pixels.setBrightness(10);
  pixels.show();
  Nefry.setLed(elem->getInt("r"),elem->getInt("g"),elem->getInt("b"));
}

```

プログラムを書き込んだら、NefryにWiFiを設定したり、Milkcocoaの情報を設定してください。

##NefryとLEDパネルをつなげよう！

下の図のように接続してください。
(Nefry V2以前の端末ではVINがありません。)

|LEDパネル||Nefry v2|
|:--:|:--:|:--:|
|5v|----|vin|
|GND|----|GND|
|DIN|----|D0|

![IMG_20161210_154357.jpg](https://qiita-image-store.s3.amazonaws.com/0/97208/a5e3ccef-a7e2-7859-8766-8a40897f1068.jpeg)
![IMG_20161210_154420.jpg](https://qiita-image-store.s3.amazonaws.com/0/97208/423c4ee2-3dc0-4309-97af-0d3118ee0173.jpeg)

買ったときについてきたケーブルが色が途中で変わっていたので注意が必要ですね
はんだ付け必要なのでちょっと手間がかかりますね…


##動かしてみよう！

問題なく接続できたら、NefryをUSBに繋いでください。
1.5A以上流せるUSBポートじゃないとうまく動かないので注意を…(´・ω・`)

ACアダプタで5V供給するのでも大丈夫です。

![IMG_20161210_161559.jpg](https://qiita-image-store.s3.amazonaws.com/0/97208/3342125f-5b6c-1ce1-3a6b-e34c253d0a10.jpeg)

<blockquote class="twitter-video" data-lang="ja"><p lang="ja" dir="ltr">Milkcocoa×Nefry×フルカラーLEDパネルであそんでみた！<br>ぐるぐる色が変わるよ！<a href="https://twitter.com/hashtag/nefry?src=hash">#nefry</a> <a href="https://twitter.com/hashtag/mlkcca?src=hash">#mlkcca</a> <a href="https://t.co/xcKwSnXteY">pic.twitter.com/xcKwSnXteY</a></p>&mdash; わみ (@wamisnet) <a href="https://twitter.com/wamisnet/status/807486527244681216">2016年12月10日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

#まとめ

今回、Milkcocoaとハードウエアを繋げてみました！

これだけリアルタイムに色が変わっていけばみんなで落書きして遊ぶこともできます！

文字を表示したり、ドット絵を表示したりできるのでぜひ遊んでみてください！