・Edisonってなに?
切手orSDサイズのコンピューターでございます。Linux Yoctoと呼ばれるOSが載っています。
・IoTってなに?
Internet of thingsの略。室内温度・湿度のモニタ、エアコンのスイッチ、室内照明などをネットから操作できるようにする技術の総称だと思ってください。
外出先で「今日は猛暑だ…家に着く前にエアコン入れれたらなぁ…」を叶えるアイテムです。
正確には、Internet of thingsの略の通り、エアコンなどの「アイテムをネットに繋ぐ行為」を指します。
・要は何するの?
先ほど述べた「今日は猛暑だ…家に着く前にエアコン入れれたらなぁ…」をEdisonと呼ばれる切手サイズのコンピューターで叶えます。
本題に入ります。
こちら、Edisonで御座います。切手サイズの本体はボード中の写真で見て奥側になります。
このボードはEdisonをarduinoというものとして使えるようにするボードになります。
まずは、以下のページを参考にローカルでサーバーを立ち上げます。
http://edison-lab.jp/blog/2015/03/lets-make-edison-led-server.html
(最終閲覧日:2015/08/18)
ローカルでのサーバー立ち上げまではそこまで難しく無いと思います。
次に、インターネットにサーバーを公開する方法ですが、通常は固定IPというものを取得する必要があります。ですが、お金が掛かる場合も多く面倒であるので、ngrokというサービスを使用します。このサービスについて記述されている日本人サイトは現在の所多くありません。
下記のサイトを参考に、ngrokの登録と、downloadを行います。
http://netbuffalo.doorblog.jp/archives/4974284.html
(最終閲覧日:2015/08/18)
ここで注意しなければならないのは、Linux 32bitをdownloadします。32bitでないバーションを使用した場合、状況に依りますが、
/bin/ngrok: line 1: syntax error: unexpected "&" (expecting ")")
といったエラーが以降の項目で発生するでしょう。
それでは、downloadしたngrok 32bitをEdisonにinstallしていきます。
ngrokをコマンドで動作するようにするためには、Ediosn内の /bin に入れる必要があります。
edisonのファイルシステムは通常では、USB接続しているPCにマウントされておらず、PC側からedisonの中を探しても/binにはたどり着けません。そのため、マウントを行います。
Edisonのコマンド上で、
# rmmod g_multi
# mkdir /update
# losetup -o 8192 /dev/loop0 /dev/disk/by-partlabel/update
# mount /dev/loop0 /update
# ls /update
とそれぞれ行ってみてください。
参考:USB Gadget Mass Storage image location
https://communities.intel.com/thread/55520
(最終閲覧日:2015/08/18)
# ls /update を行うと、
root@Edison:~# ls /update
$RECYCLE.BIN edison_ifwi-dbg-05-dfu.bin
edison-image-edison.ext4 edison_ifwi-dbg-05.bin
edison-image-edison.hddimg edison_ifwi-dbg-06-dfu.bin
edison_dnx_fwr.bin edison_ifwi-dbg-06.bin
edison_dnx_osr.bin filter-dfu-out.js
edison_ifwi-dbg-00-dfu.bin flashall.bat
edison_ifwi-dbg-00.bin flashall.sh
edison_ifwi-dbg-01-dfu.bin ngrok
edison_ifwi-dbg-01.bin ota_update.scr
edison_ifwi-dbg-02-dfu.bin package-list.txt
edison_ifwi-dbg-02.bin pft-config-edison.xml
edison_ifwi-dbg-03-dfu.bin u-boot-edison.bin
edison_ifwi-dbg-03.bin u-boot-edison.img
edison_ifwi-dbg-04-dfu.bin u-boot-envs
edison_ifwi-dbg-04.bin
などと表示されるでしょう。これはusb接続しているディレクトリそのものです。ここに、ngrokファイルを入れておきます。
それでは、ngrokを/binに移動すれば、終わりですが、
write error: No space left on device
等とエラーが出て移動できないと思います。
これは起動時にEdisonのディレクトリがいっぱいになってしまうのが原因らしいです。
参考:Edisonへ書き込み出来ない [ write error: No space left on device ]
http://nonnoise.github.io/Edison/Setup/NoSpace.html
(最終閲覧日:2015/08/18)
# du -sh /var/log/journal/*
# mv /update/ngrok /bin
と行えば移動できるでしょう。
# ls /bin
で確認してみてください。
それでは、ngrokを起動します。
# ngrok http 80
とコマンドすれば、
ngrok by @inconshreveable (Ctrl+C to quit)
Tunnel Status online
Version 2.0.19/2.0.19
Web Interface http://127.0.0.1:4040
Forwarding http://c6e9d181.ngrok.io -> localhost:80
Forwarding https://c6e9d181.ngrok.io -> localhost:80
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
などと表示されるでしょう。
ここでは、http://c6e9d181.ngrok.io がアドレスになります。アドレスは適宜変更できます。
これで、自分のEdisonサーバーが世界に公開されます。
是非、挑戦してみてください。
文責 @murenezumi