アグリゲート・コンピューティング風IoTでの戦い方、IoTLTの準備で得た知識の整理
先日(10/11)に、IoTLTでLTしてきたので、
LTの準備をする中で得た知識などを、このエントリで整理しておきます。
発表自体は、全力でネタです。
IoT縛りの勉強会! IoTLT vol.20 @ ウフル
アグリゲート・コンピューティング風IoTでの戦い方
LT発表資料
SlideShareにLT資料をアップしています。
デモ動画
YouTubeにデモ動画をアップしています。
ソースコード
GitHubにソースコードをアップしています。
GR-SAKURA/Arduinoのスケッチは、misc配下に格納しています。
システム構成
このLTで実装したシステムは、以下のシステム構成となっています。

以下で、
GR−SAKURA, ArduinoYUN, Rails部分の実装を簡単に説明します。
GR-SAKURAでのHTTPサーバ実装
ソースコード:
GR-SAKURAは、ArduinoYUNからのHTTPのリクエストを受け付けるので、HTTPサーバとして動作させます。
Arduinoと互換性があるので、以下の記事を参考にして実装することができます。
第6回 Arduinoを使ってWebサーバーをつくろう! | DEVICEPLUS
但し、GR-SAKURAにはMacアドレスが記載されていないので、任意の値を指定して起動させるようです。
EthernetのMACアドレス | GR-SAKURA フォーラム
ArduinoYUNからHTTP-GETの実行
ソースコード:
ArduinoYUNはWiFi機能のついた、Arduinoなのですが。
ネットワークへの接続を、
YUN自体をアクセスポイントとして一度起動させてPCのブラウザで設定画面にアクセス、
その設定画面でWiFiのアクセスポイントへの接続を設定するという流れで設定します。
Start with Arduino Yun | arduino.org
この設定さえできてしまえば、
HTTP-GETの実装は以下のチュートリアル通りで、特に難しい点は無いと思います。
HTTP Client | arduino.cc
Railsアプリの実装
ソースコード:
Alert API | OpsGenie
このRailsアプリはDBを持たないので、以下のように「-O」オプションでnewしています。
$ bundle exec rails new -O
Controllerの実装は、OpsGenieのAlertAPIを呼び出しているのみです。
OpsGenieの「apiKey」は環境変数(Herokuの設定画面で指定)から、引き渡される想定でコードを書いています。
Discussion