OpenBlocks IoT BX1さらっと入門(・-・)

この記事は [慶應義塾大学SFC村井&徳田研 Advent Calendar 2015](http://www.adventar.org/calendars/1053) の18日目の記事です。
######比較的初心者を対象とした記事です。というか初心者が書いてます()

***
**OpenBlocks IoT BX1**をご存知だろうか・・・・!

![bx1_l.jpg](https://qiita-image-store.s3.amazonaws.com/0/105408/4df983f2-18b2-384a-a851-cc5c4e2f4b32.jpeg)

>
"多様なセンサーからの情報を収集・加工・伝送できるIoTゲートウェイ"
(from [http://openblocks.plathome.co.jp/products/obs_iot/bx1/](http://openblocks.plathome.co.jp/products/obs_iot/bx1/))

らしいです。

小型サーバーとしても使えるし、内部インターフェースが、Wi-Fi, Blouetooth, 3G。SIMカードも使えるので、屋外でのインターネット環境を気にせず使える場面がありそうです。
他にもBLEデバイスの開発や、AWS IoT, IBM Bluemix等クラウドサービスとのデータ通信にも対応しているそうで、いろいろと可能性がありそう。

まだ使い始めたばかりですが、なんといってもWebのUIベースでいろいろ設定できるので、便利だなぁと思っています。
もちろんscreenを使って、コマンドで操作することも可。

ちなみに本家のページではIoTデバイスとしてかなり激推しされております。
それでは早速いじっていきましょう。

##準備をしよう
さて、付属品はこんな感じです。
これは"I/O開発ボードセット"という基盤がセットになっているものになります。

<img width="768" alt="IMG_0016.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/105408/09c0ab74-26cd-4df1-51b8-bf67624aa7ed.jpeg">

①: OpenBlocksIoT BX1本体
　　CPU: インテル® Atom™ プロセッサー 500MHz
　　OS: 汎用のDebian/Linux
②: I/O開発ボード *~温湿度センサーを添えて~*
③: スペーサー・ネジ
④: USB Type-A microUSB ケーブル
⑤: USB 給電コンソールケーブル


PCから給電させる場合は④を使って、直接PCのUSBポートにつなぎます。
Ethernetを使いたい場合は、⑤で開発ボードとPCをつなぎ、OpenBlocks本体を、ボードにたてます。ボードのUSBポートにEthernet変換でつなげばできあがり。
こんな感じ(・~・)

![IMG_0017.jpg](https://qiita-image-store.s3.amazonaws.com/0/105408/9ebca084-7312-b11c-80e4-576aa426c4d7.jpeg)




##Web UIをのぞいてみそう

接続が完了したら、対象のSSIDにつなぎにいきましょう。
初期の場合はSSIDはbxなんとかっていう長い識別IDになっているはずです。
私は名前を事前に変えてあるので、こんな感じ。

次にブラウザで下記URLにアクセスしましょう。
初期設定では``192.168.254.254:880`` になっています。

![screen.png](https://qiita-image-store.s3.amazonaws.com/0/105408/bd018bce-ae0e-da20-74b2-4e36e2b046e8.png)
はい、きました。ユーザーをパスワードはドキュメントに記載されている初期のものを入力。

- ネットワーク周りの設定

<img width="561" alt="スクリーンショット 2015-12-18 22.22.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/105408/46269e30-1a75-4ef3-221a-93b96e5766c8.png">

初期設定ではこんな感じかと思います。
私の場合はAPモードで使いたいので、APモードにチェックをいれ、SSIDやパスワードを自分好みに変えていますが、クライアントモードで使う場合は、自分で使うAPのSSIDとPSKをいれてください。

/etc/network/interfacesとかetc/wpa_supplicant/wpa_supplicant.confに書くような設定がここだけでできちゃいます。
入っているのは汎用のDebianなので、Raspberry Piみたくhostapd入れる必要ないし、isc-dhcp-serverとかがすでに入ってる。素晴らしい。
設定が終わったら、再起動を促されるのでrebootしましょう。これもボタンぽちぽち押していけばできます。
APモードの場合は自分で決めたSSIDに接続して、決めたアドレスにアクセスすればまたWeb UIにアクセスできるはずです。

- ssh

次にsshの設定をしておきましょう。
<img width="1018" alt="スクリーンショット 2015-12-18 22.17.34.png" src="https://qiita-image-store.s3.amazonaws.com/0/105408/19e31065-33d3-d773-f1ec-0ef9a1eafea0.png">
SSH 開放: 有効に設定します。
<img width="789" alt="スクリーンショット 2015-12-18 22.22.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/105408/7fe0fd8b-4b5a-54ec-9e22-f1d4e7defe94.png">
ここからsshの設定ができます。

公開鍵を登録すればパスワードを使わない認証も可能です。


- そしてWeb UIからコマンドも叩けちゃうらしい 笑
<img width="1000" alt="スクリーンショット 2015-12-18 22.18.45.png" src="https://qiita-image-store.s3.amazonaws.com/0/105408/1d04a441-fe51-a66c-1e30-b1c38e7cdd0f.png">

コマンドを入力して実行ボタンを押すとそのコマンドが実行されるのですが、さすがにこれはターミナルでコマンド叩きたくなる　笑
でもちゃんと実行結果も表示してくれます。


##おまけその1: コンソールで接続

WebUIなんてクールじゃない、ターミナルからコマンドを叩くのがオレの生き方だ！
というそこのアナタ、ご安心を。

給電コンソールケーブル⑤をPCに繋いで、ターミナルで以下のように接続します。

<img width="426" alt="スクリーンショット 2016-01-23 14.14.27.png" src="https://qiita-image-store.s3.amazonaws.com/0/105408/88daa677-bf34-49c3-a14a-034dd6a5aac5.png">
``cd /dev``　でcu.usbserial-◯◯◯◯◯◯◯◯という名前が見つかるはずなので、そこは自分のものに変えてください。

ID, パスワードrootのもので入れます。[→参考]　後々設定で変えてください。(http://openblocks.plathome.co.jp/common/pdf/OpenBlocks_iot_WEBUI_Guide_v1.0.6_151111-2.pdf)

<img width="637" alt="スクリーンショット 2016-01-23 14.13.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/105408/70002c32-5340-a361-f9e2-5d0e2747143f.png">

これでもう中に入れたので好き勝手しちゃってください！

WebのUIからdefault gatewayを設定したつもりが、コンソールで入って確認してみたら、設定されていなかったということもあったので、そういう時はコンソールから/etc/network/interfacesを直接いじったりした方がいい時もあります。


##おまけその2:リセット
ネットワーク設定の中でも、SSIDの設定を間違えたりすると、Web UIにアクセスできなくなることがあります。そんな時はリセットです。
工場出荷状態に戻したい時の方法は[ココ](http://openblocks.plathome.co.jp/common/pdf/OpenBlocks_iot_WEBUI_Guide_v1.0.6_151111-2.pdf)にあります。
powerボタンとinitボタンが指で押せないくらい小さいので、ペン先や先が細いものを使うと良いです　笑

にっちもさっちもいかなくなったら、公式のページから最新版のファクトリーリセットデータを落として載せ替えちゃいましょう。
詳細は[ココ](http://openblocks.plathome.co.jp/support/guide/bx1/reset.html)

##まとめ

- Web UIベースで面倒な初期の設定が手軽にできる。
- 初心者でも比較的触りやすい。
- なにやらいろいろなインターフェースや機能があるので、可能性は無限大らしい(未検証)
- IoTっぽいことがいろいろできるみたい

例えば、Raspberry Piの上で何か動かそうする時に、その本来の目的でない
ネットワーク周りの設定等にひっかかって時間がかかるともったいないなぁと思うので、そういったところをこのWeb UIはかなり解決してくれるんじゃないかなーと思います。

各種ドキュメントや、工場出荷用データは[ここ](http://openblocks.plathome.co.jp/products/obs_iot/bx1/)にあるので、参考までに。

この記事をきっかけにいろんな人が触るようになって、Tipsを投下してくれることを祈ります🙏