tl;dr
JAWS DAYS 2016 - HackDayトラックでSORACOM Air+AWS IoTでデータ可視化 〜OpenBlocks IoTハンズオン初級編〜をやりました
いよいよです。今年はSORACOM Air と AWS IoTとOpenBlocksのハンズオンです! #jawsdays pic.twitter.com/f18B3U5Ip8
— Kohei MATSUSHITA (@ma2shita) 2016年3月12日
- 49名参加で完走率30%程度と大爆死
- 原因はBX1のセットアップに使うWi-Fi環境の劣悪さでしたが、5GHzに逃げるって方法を思いつかなかった私の負けです
- AWS Lambdaは、まだWindowsの人には早い(?)
- 物理世界はつらいよ。でも、台数が多くても短時間に簡単にセットアップできるべき
- BLEセンサーのメーカーは、MAC Addressを外装に記して欲しい
経緯
それはAWS Samurai 2015の辻さんからのお誘いから始まりました
突然の50台!
30台程度のハンズオンは経験済みでしたが、50台は未踏です
そして岡崎さんから
合計5時間の超大作!
※結局私はランチ1時間を挟んだ3時間を担当しました
反省点1: Wi-Fi環境
5GHzの有効活用
JAWS DAYS 2016の来場者は1,100名、昨年度同様Wi-Fi環境が劣悪になることはわかっていました
そんな中でOpenBlocks IoT BX1との接続はWi-Fiとなるため、セットアップができるのか?AWS Consoleを表示することができるのか?そんな不安がスタッフ全員の心配事としてありました
さすがにこれだけiotfamilyなSSIDが並ぶことも無いですね。HackDayはそこそこ元気です。 #jawsdays pic.twitter.com/5yTuG0SLwC
— Kohei MATSUSHITA (@ma2shita) 2016年3月12日
結果、やはりダメ
しかし午後に5GHzのAPを急遽設置していただいたところ改善がみられ次回につながるアイデアとなったと思います
具体的にはハンズオン会場のWi-FiやBX1との接続に使用するWi-Fiを5GHzにする、といったところです
要望:
- BX1の出荷初期状態は2.4GHzの1ch固定であるため、このへんの改善が期待されます
個人的には2.4GHzでなく、5GHzを初期にしても全く問題ないと思います。理由は下記の通り
- スマホ等、昨今の機器がすでに5GHz ready
- 5GHzのほうが遮蔽物の影響を受けやすいので、むしろ近距離セットアップする場合には使い勝手が良い
反省点2: AWS LambdaをWindowsな人に使ってもらう
詳細はこっちに書きました
しかし、npmやpipが必要なものを動かすときには、zipで固めてアップロードする必要があります
OSXやLinuxな方はいいのですが、Windowsな方にはまだまだハードルが高いようですね
急いで書き直しましたけど、おかげでトラブルがなかったようで良かったです!
みんながAWS HUBにインスタンスしているのに、俺と来たらハンズオンのテキスト書き直してるよ\(^o^)/
— Kohei MATSUSHITA (@ma2shita) 2016年3月11日
でもいいの、ESへのbulkをpython標準ライブラリのみで書き直したから。
要望:
- AWS IoTからESにDirectで流し込めればいいのにね
反省点3: BX1 50台のセットアップ
- 電波干渉が予想されていたため、BX1の初期起動状態のWi-Fi周波数を散らす
- 初級編と中級編で人が入れ替わるため、ソフトウェア的なリセットが必要
以上2点を実施するため、Ansibleを使いました
といっても、メーカ出荷時点ではAnsibleを走らすことはできないため、標準のファームウェア(というかUserland)にAnsibleが自動起動するように仕立て上げたオレオレファームウェアを作り、それを50台にインストールしてもらいました
一度作っちゃえば、Wi-Fi経由でplaybook.ymlをダウンロードして自身を構成してくれるようになるため、個体差があるデバイスを生成するのも苦になりません
本日はBX1のファームウェア書き込みの修行
— Kohei MATSUSHITA (@ma2shita) 2016年3月9日
といってもAnsibleでgoしてるだけだから、USBに電源さすだけの簡単なお仕事です pic.twitter.com/3ZyZ9sSPUc
※このファームウェアをつくるスクリプトは公開してもいいのかちょっとわからないので、個別にご相談ください
要望:
- こういう自動化できる仕組みが標準で提供されて欲しい
反省点4: BLEデバイスを見つける方法
スクリーンショット撮り忘れましたけど、50台近くもBLEデバイスが検出されるのは、ちょっと笑えます
ただ、この中から自分のデバイスを探すとなると、笑いも止まります
週末のJAWS DAYS 2016のハンズオンに向けてアップ開始
— Kohei MATSUSHITA (@ma2shita) 2016年3月7日
(意訳:BLEのアドレスを調べてラベリングする修行 pic.twitter.com/YmAIWIkhpD
結局、電波的に隔離された部屋でBLEデバイスの電源をON → ラベリングという、タンポポお刺身ワークロードが発生しました
要望:
- 最初からMAC Addressはラベリングされてて欲しい
さいごに: BX1のWebUIの改善希望
メーカへの報告と不具合(?)の回避方法を兼ねて記しておきます
ネットワークセットアップについて
初期出荷状態がフォームに表示して欲しい
最初にネットワークのセットアップを促されるのですが、下記のとおりフォームに何も表示されません
そのため再入力の手間があります
とくに認証方式がWPA-PSKがデフォルト表示になっており、気づかずに設定してしまうと「WPA2-PSKでつなげる(初期はWPA2-PSK)→セットアップ完了して再起動→WPA-PSKになる」
このようなシーケンスになるのですが、特にWindowsは認証方式が変更されると再接続してくれません。これにより「接続できないんだけど」トラブルが大発生しました
回避方法
しっかり入力しましょう。とくに認証の部分は確認が必要です
初期状態はOpenBlocks IoT Family向けWEB UIセットアップガイド 2-3. WEBクライアントの準備(PDF)にSSIDとパスフレーズのみ記載されています
独自調査では下記のとおりです
- SSID = iotfamily_本体シリアル番号
- パスフレーズ = openblocks
- 周波数 = 2.4GHz / 1ch
- 暗号化方式 = WPA2-PSK
Internet Explorer 9,10,11 での検証不足?
ネットワークのセットアップにIEの古いやつ(9? 10? 11?)を使うと、必要項目を埋めているはずなのに「ネットワーク設定を入力してください」表示され、セットアップを完了させることができませんでした
正確な条件やスクリーンショットを撮り忘れました、すみません
回避方法
IE EdgeかChrome等、モダンなやつでやりましょう
あとがき
チューターの皆さんに助けてもらいながらのハンズオンでした。完走者も出て、ほんとよかった!
でもやっぱり、私は夏休みの宿題的パワーで押し切るしかできないのだと、思いましたよ