3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MilkcocoaAdvent Calendar 2016

Day 10

Nefry×Milkcocoaであそぶ

Last updated at Posted at 2016-12-10

Milkcocoaの歩き方で紹介していただいたMilkcocoa界隈の強い人こと、わみです。
今回はMilkcocoaであそんでみたのでそれを紹介していこうと思います。

IMG_20161210_161503.jpg

#きっかけ
東京で開催されたMilkcocoaハンズオンでMilkcoocaのドット絵とNefryを使ってデバイスとWebを連動させるハンズオンが開催されました。

イベントのレポート
イベントのレポート
dotStudioのハンズオン記事

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

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

#作ってみよう!

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

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

自作したオリジナルIoTデバイス「Nefry」とインターネットを繋いでみた

Webサービス同士を連携できる「IFTTT」と自作IoTデバイスを繋いで生活を便利にしてみた

dotstudioさんにて販売中です!!

  

##Milkcocoa
Uhuru Technical Rockstarsさんが開発している、リアルタイム通信やハードウエアとwebの接続などが簡単にできるようになるバックエンドサービスです。

2015-12-19_23h40_23.png

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

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

dotstudioのハンズオン記事をベースに作られています。

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

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

Nefryにプログラムを書こう!

それではさっそく256個のLEDを制御するプログラムをNefryに書き込みましょう!
細かいNefryMilkcocoaライブラリについてはこちらの記事を参考にしてください。

Milkcocoaと連携させるライブラリの紹介記事です。

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
IMG_20161210_154420.jpg

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

##動かしてみよう!

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

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

IMG_20161210_161559.jpg

Milkcocoa×Nefry×フルカラーLEDパネルであそんでみた!
ぐるぐる色が変わるよ!#nefry #mlkcca pic.twitter.com/xcKwSnXteY

— わみ (@wamisnet) 2016年12月10日

#まとめ

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

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

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

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?