【写真で解説】自作デバイス（ESP8266）をmyThingsにつなぐまで！

myThings…名前は聞いたことあるし、スマートフォンのアプリを入れてみたのだけど、自作ハードウエアをつなぐのってなんだかIDCFクラウド使わなきゃいけないぽいし、やったことないって方にお勧めの記事です！（自分も初体験でしたｗ）
いろいろ迷ったところをなるべく写真を使って解説しています。
おそらくこの写真の通りやってみればうまくいくはずです。ぜひmyThingsを活用してみませんか！
#myThingsってなに？
![alt](https://sofmo.pw/data/mythings/2015-12-16_21h52_21.png)
ホームページを見ていただくとわかるのですが、いろいろなチャンネルを組み合わせることで自分にピッタリなサービスをつくる仕組みのことです。
>この記事を参考にするとよいと思います。
>http://qiita.com/ekawamur/items/1503b5d5b786ffef2ae6

#IDCFとmyThingsの関係
myThingsにデータを投げる際にいろいろな決まりごとがあってそれを隠してくれるもの！(中の人のお話)
IDCFさんが自作デバイスからの情報を集めて、そのデータをIDCFさんがmyThingsに送信してくれます。
（myThings向けにもっとラッピングしてくれるとやりやすいのにな…）

#前提条件
ArduinoIDEでESP8266のコンパイルができること
IDCF cloudに登録済みのID
#IDCF Cloudの設定
##仮想マシンを作ってみる
>今回はこの記事を参考に書かせていただいています。
>http://qiita.com/masato/items/f9be4a15216fe29de7fb

myThingsに接続する際に必要な仮想マシンを作っていきます。
コンピューティングというのが仮想マシンをつくるところです。サーバが置いてある東日本、西日本選択できますが、どちらでも大丈夫です。
![alt](https://sofmo.pw/data/mythings/2015-12-16_14h41_49.png)
仮想マシン作成をクリックしてください。
![alt](https://sofmo.pw/data/mythings/2015-12-16_14h44_25.png)
マシンタイプには、おそらく一番安いlight.S1マシンをえらんでください。
![alt](https://sofmo.pw/data/mythings/2015-12-16_14h45_24.png)
イメージには、Ubuntu　server 14.04を選択してください。
![alt](https://sofmo.pw/data/mythings/2015-12-16_14h46_12.png)
仮想マシン台数は1台、ネットワークインターフェイスはそのままにしてください。
![alt](https://sofmo.pw/data/mythings/2015-12-16_14h50_00.png)
SSH　keyはteratermなどSSHで通信する際に必要となるキーです。teratermで設定する際には作成してください。teratermを準備していない方は、なしで大丈夫です。
![alt](https://sofmo.pw/data/mythings/2015-12-16_14h52_53.png)
![alt](https://sofmo.pw/data/mythings/2015-12-16_14h54_04.png)
仮想マシンに名前を付けることができます。自由につけてください。
![alt](https://sofmo.pw/data/mythings/2015-12-16_14h58_36.png)
確認画面です。確認してよろしければ、作成をクリックしてください。
作成にはしばらく時間がかかります。
![alt](https://sofmo.pw/data/mythings/2015-12-16_15h04_03.png)
![alt](https://sofmo.pw/data/mythings/2015-12-16_15h04_53.png)
##ネットワークの設定
仮想マシンの設定が終わって、仮想マシンが使える状態になる前にインターネットに関する設定をします。
左側のある、仮想マシンやスナップショット、操作ログがあるところにIPアドレスという設定項目があります。そこをクリックして設定をしていきます。
IPアドレス名がクリックできるのでそこをクリックしてください。
![alt](https://sofmo.pw/data/mythings/2015-12-16_16h44_32.png)
ここで上に出ている緑色のIPアドレスをメモをしておいてください。あとでmyThingsのアプリで認証する際やesp8266に接続する際に使います。
メモし終わったらファイアウォールの設定をします。
![alt](https://sofmo.pw/data/mythings/2015-12-16_16h45_20.png)
ファイアウォールの設定ですが、画像を参考に入力していってください。

| コメント | ポート番号 | 
|-----------|------------|
| mqtt     |        1883 |
| http     |      80 | 
| https    |        433 | 
![alt](https://sofmo.pw/data/mythings/2015-12-16_16h51_55.png)
続いて、ポートフォワードの設定をします。ファイアウォールと同じように設定していってください。
![alt](https://sofmo.pw/data/mythings/2015-12-16_16h59_45.png)
##仮想マシンの設定
再び仮想マシンに戻って、設定を続けていきます。
今回は、teratermなどを入れなくてもブラウザで設定できるのでブラウザで設定していきます。
![alt](https://sofmo.pw/data/mythings/2015-12-16_16h35_31.png)
この画面が見えるときはしばらく待ってからリベンジしてください。
![alt](https://sofmo.pw/data/mythings/2015-12-16_16h16_00.png)
ブラウザで設定する際に必要となるubuntuのパスワードが届くのでメモしておいてください。
![alt](https://sofmo.pw/data/mythings/2015-12-16_15h10_13.png)
ログインIDはroot パスワードは先ほどメモしたメールのパスワードを入力してください。
パスワードを入力しても黒い画面は変わりませんが、入力を続けてください。入力が終わってenterを押せばログインできるはずです。
まずは、ubuntuのアップデートをインストールします。

`sudo apt-get install git `


![alt](https://sofmo.pw/data/mythings/2015-12-16_17h50_53.png)

gitをインストールします。

`sudo apt-get update `

![alt](https://sofmo.pw/data/mythings/2015-12-16_17h51_39.png)

作業用にフォルダを作ります。

`mkdir ~/iot `
`cd ~/iot `

![alt](https://sofmo.pw/data/mythings/2015-12-16_17h54_29.png)

githubからファイルをダウンロードがします。

`git clone https://github.com/IDCFChannel/meshblu-compose`


![alt](https://sofmo.pw/data/mythings/2015-12-16_17h56_39.png)

ダウンロードが完了したらフォルダを移動してbootstrapを動作させます。

`cd meshblu-compose`
`./bootstrap.sh`

![alt](https://sofmo.pw/data/mythings/2015-12-16_17h58_56.png)

bootstrap実行中…

![alt](https://sofmo.pw/data/mythings/2015-12-16_18h01_42.png)

docker-composeを実行してインストールが正しくできているか確認してください。

`docker-compose ps`

![alt](https://sofmo.pw/data/mythings/2015-12-16_18h42_22.png)

デバイスの登録をします。ここで表示されるtokenをアプリで使うのでメモしておいてください。初回の一度だけすればおkです。

`docker-compose run --rm iotutil register`


![alt](https://sofmo.pw/data/mythings/2015-12-16_18h47_21.png)

ここのリストをみることで、triggerのtokenやuuidが分かり、そのキーでmyThingsを操作できるようになります。

`docker-compose run --rm iotutil list`


![alt](https://sofmo.pw/data/mythings/2015-12-16_18h58_20.png)
##スマートフォンのアプリで連携の設定
連動させる方法について写真を順に読んでいただくとできるはずです。

![alt](https://sofmo.pw/data/mythings/Screenshot_20151217-195851.png)

![alt](https://sofmo.pw/data/mythings/Screenshot_20151217-200032.png)

![alt](https://sofmo.pw/data/mythings/Screenshot_20151217-200037.png)
初回のみこの設定が必要です。先ほどメモした、IPアドレスと`docker-compose run --rm iotutil register`でメモしたtokenを入力してください。
![alt](https://sofmo.pw/data/mythings/Screenshot_20151217-205714.png)
このように組み合わせすることで天気をpush通知とIDCF経由で自作デバイスにデータを届けることができます。
![alt](https://sofmo.pw/data/mythings/Screenshot_20151217-210003.png)

#自作デバイスにつなげる（ESP8266）
>こちらの記事を参考にしてください。
> http://qiita.com/mayfair/items/9aab50397a7bde84a7c1

後日追記する予定です。
#まとめ
今回、初めてやってみたのですがこの環境さえ作ってしまえばあとは簡単に連動できるのは素晴らしいです。
myThings Advent Calendar 2015 の記事を書いていると案外この環境を作るまでに苦労したので、この記事が参考になればうれしいです。
投稿日を過ぎてしまったためとりあえず簡素ですが上げておきます。
myThingsであそんでいきましょう！

間違いや誤解を生む表現等ありましたらコメントください。