Python
RaspberryPi
IoT
isaax

ウェブアプリlikeにIoT開発ができるプラットフォーム、isaaxの勉強会に行ってきました!雪の舞う東京で頑張って(笑)

注)今回の内容はほぼこちらの記事に内包されてます。

isaaxとは?

一言で言うとIoTのための開発プラットフォームです。

ラズパイとかのシングルボードコンピュータ上にisaaxエージェントを入れてgitレポジトリと紐づけておくと、git pushするだけでデバイスへのデプロイが完了するし、デバイスの死活情報やアプリのエラーログまでweb上のダッシュボードから確認できるので、IoTがとっても捗るというスグレモノです。

isaaxの使い方

作業レポジトリの準備

まずは作業用のgitレポジトリを準備します。
今回使用するサンプルプログラムが勉強会の事務局によって用意されているので、以下のレポジトリを自分のgithubアカウントにforkしておきます。

https://github.com/xshellinc/study-group

isaaxにログイン

https://isaax.io/ へアクセスし、isaaxダッシュボードにログインします。githubアカウントでもログインできます。

ダッシュボードにログインできたら、プロジェクト一覧のボタンからプロジェクトを作成します。

適当なプロジェクト名を入力し、githubアカウントと連携しているので(githubアカウントでログインしたから?)、レポジトリの欄でstudyとか入力すると先ほどforkしたレポジトリが表示されます。

レポジトリを選択して保存。これでプロジェクトは作成完了です。

isaax-agentのインストール

isaaxのエージェントはLinuxが入ってれば動くそうです。勉強会ではラズパイを使用しました。

ということで、sshログインまでできるよう設定されたラズパイをご用意ください。

勉強会ではSDカードが準備されていました。設定方法はこちら。中身はpicameraの設定とサンプルプログラムで使用するopencv周りの環境設定なので、isaaxを使うという観点ではネットワークとsshの設定までで良いのでしょう。

さてそれではisaax-agentをインストールします。

インストールはCLIツールを使って母艦PCから行うこともできるそうですが、今回はデバイス(ラズパイ)にsshログインしてインストールします。

ラズパイにsshログインして

curl -fsSL get.isaax.io | sudo bash -s stable <プロジェクトトークン>

で完了です。

プロジェクトトークンって?と思っているでしょうからやり方を説明します。

まず、isaaxのダッシュボード上で、クラスター一覧からdefaultというのを選び、ISAAX_AGENT_RELEASEというトグルをON(右に寄っていればOK)にしておきます。

その後、プロジェクト一覧から今回作成したプロジェクトを選択し、詳細タブからプロジェクトトークンのボタンを押すとプロジェクトトークンが表示されます。

下の段にcurl -fsSL〜と上記のコマンドがプロジェクトトークン付きで表示されるのでコピーして、ラズパイ上で実行します。これだけで自動的にエージェントがインストールされ、(おそらく)デーモン化されてバックグラウンドで動作します。

正しく動作すると、ダッシュボード上のデバイスの欄がオンライン表示になっていることが確認できます。

アプリケーションの実行

実はここまで作業した時点で、レポジトリのプログラムが実行されています。いつの間にっ・・!

勉強会用のラズパイ設定とサンプルプログラムを使っている場合、ウェブブラウザから<ラズパイのIP>:5000にアクセスするとカメラ画像が確認できるはずです。

私は最初カメラのハード的な故障(イベントあるある)で動きませんでしたが、そのエラーログもisaaxのダッシュボード上で確認できました。カメラを取り替えて再起動すると、ラズパイがオフライン→オンラインになる様子や、アプリが正常に起動した様子もisaaxのダッシュボードから確認できました。

アプリケーションの更新

ここまでできたら、あとは母艦PCでプログラム修正、git commit&pushすると、数秒でラズパイ上のプログラムが更新されて実行されます。

アップデートやアプリ再起動のログは全てisaax上で確認できるので、ホント、ウェブアプリの開発と同じ感覚で作っていけますね。

勉強会ではカメラ画像表示→動体認識→人物認識、とプログラムを更新して様子を体験しました。

まとめ

実はisaaxを作っているxshellさんとは、isaaxがベータ版になる前からお話ししているのですが、格段に安定して使いやすくなっていますね。

機会があればもうちょいisaaxのhello world的な記事なども書いてみたいですし、普通に普段の開発で使っていきたいです。isaaxの勉強会は今後も続々と予定されているようなので、興味がある方は是非!