Intel EdisonでIntel XDK for IoTを使う

こんにちは．nyagato_00です．
Intel Edisonの開発のほうを始めました．
多くの方が様々なOSを載せて開発のほうしていますが，私はLinuxについての知識があまりないので，もっと低レベルなところから開発をしています．

今回は, Intel XDKとIntel EdisonをつないでNode.jsを使ってプログラミングをしてみたいと思います．

# Intel XDK for IoTの環境構築
[こちら](https://software.intel.com/en-us/html5/xdk-iot)から，お使いのOSにあったものをダウンロードします．
少々サイズが大きいのが注意です．

インストーラーを起動しXDKをインスールします．
![スクリーンショット 2014-11-30 11.15.51.png](https://qiita-image-store.s3.amazonaws.com/0/50627/63401d24-2f9f-c4d3-0499-4ca51b9d12dc.png)
XDKを既にお使いの方はアカウントを持っていると思うのでログインします．
まだ持っていない方はSign Inします．
※XDKのアカウントで使用するパスワードは大文字や@などの記号を使わないと行けません．
# Intel  XDK for IoTを使おう
次にXDKで開発する手順を説明します．
![スクリーンショット 2014-12-05 10.48.15.png](https://qiita-image-store.s3.amazonaws.com/0/50627/a3fea270-fb86-9ad0-ba53-894d4c7b8002.png)
起動すると上記のような画面になるかと思います．
左のSTART A NEW　PROJECTより"Start with Sample or Template"を選択します．
すでにいくつかのサンプルコードが追加されています．
Intel Edison kit for arduinoを使う場合はすぐに始められます．
まずはBlank Templateを選択してみましょう．
任意のディレクトリに"Hello world"のプログラムを保存します．
すると，main.jsとpackage.sonの2つが生成されます．
![スクリーンショット 2014-12-05 10.54.11.png](https://qiita-image-store.s3.amazonaws.com/0/50627/7db8d006-a109-164d-0864-86cb2ed4c5e7.png)

```
console.log("hello world");
```
上記のようにHello worldのコードを書きます．

# XDKとIntel Edisonを繋ぐ
次にIntel EdisonにXDKからプログラムをアップロードします．
[こちら](http://qiita.com/k_kinukawa/items/f46b0f6e0da6072e0a12)のkinukawaさんの記事が大変参考になるかと思います．
まず，開発機のIPアドレスを調べます．
Macの場合

```
xdk-whitelist --add 192.168.xx.xxx
systemctl enable xdk-daemon
systemctl restart xdk-daemon
```
Windows7,8,8.1の場合

```
xdk-whitelist --add 192.168.xx.xxx
```
![スクリーンショット 2014-12-05 11.22.24.png](https://qiita-image-store.s3.amazonaws.com/0/50627/10ad0ced-f7ef-7866-7290-bcdaf55aa7fe.png)
先ほどのIPアドレスを入力します．
Portの方は58888のままで大丈夫です．
![スクリーンショット 2014-12-05 11.24.08.png](https://qiita-image-store.s3.amazonaws.com/0/50627/8d04e4b7-b249-8a11-4cea-503122a4956c.png)
正常に繋がると上記のように表示されます．
Consoleのほうには

```
Intel XDK - IoT App Daemon v0.0.19 - commands: run, list, debug, status
```
と表示されるかと思います.
# XDKからIntel Edisonへプログラムのアップロード
ではプログラムをアップロードしましょう.
![スクリーンショット 2014-12-05 11.28.19.png](https://qiita-image-store.s3.amazonaws.com/0/50627/312b9473-dbf3-5366-cc52-187933ed6803.png)

上記の手順1,2,3の順に操作します.
Buildして,Uploadして,Runします.
Runすると,XDK下部のConsoleに"Hello World"と表示されるかと思います.

#おまけ１Yocto Linux実行
```
root@edison:~# ls /
bin             home            node_app_slot   sbin            var
boot            lib             opt             sketch
dev             lost+found      ota-update.log  sys
etc             media           proc            tmp
factory         mnt             run             usr
root@edison:~# cd /node_app_slot/
root@edison:/node_app_slot# ls
helloworld.xdk   main.js          package.json
helloworld.xdke  node_modules
root@edison:/node_app_slot# 
```
XDKからのプログラムはnode_app_slotディレクトに格納されています.

```
root@edison:/node_app_slot# node main.js 
hello world
```
main.jsを実行します.
上記のように表示されます.
#おまけ１XDKのデバッガ
XDKにはデバッガが内包されています.
![スクリーンショット 2014-12-05 11.37.18.png](https://qiita-image-store.s3.amazonaws.com/0/50627/6c5b0f7c-6d13-85ff-d933-286b4e80bad2.png)
←の虫のアイコンのボタンがデバッガです.
Google ChromeのConsoleと同じように使えます.
![スクリーンショット 2014-12-05 11.40.49.png](https://qiita-image-store.s3.amazonaws.com/0/50627/026ab9b8-0f89-3781-c7b0-56339fd2c4d4.png)
# おわりに
XDKではNode.jsでプログラムを作れるのでWeb系の開発者の方には使いやすいんでは無いでしょうか？
アナログピンやデジタルピンからのセンサデータを解析したり利用して様々なサービスが作れるのではないでしょうか.
ぜひ,Intel XDK for IoTとIntel Edisonで遊んでみてください！
(私はWebはあまり得意ではないですが)