HummingBoardをクラウドサービスMyThingsにつなぐIoTが話題になっています。HummingBoardは、IoTのような用途に向いています。センサーのデータをクラウドにあげてみることを検証してみます。サーバー側のソフトで集計をして、Webからのアクセスでそのデータをグラフにして表示をみたり、ある温度を超えるとMyThingsからお知らせが届くということを検証してみます。今回はMyThings-IDCFクラウドのサービスを使います。クラウドサービスを提供するIDCFのサイトでは、「標準」の開発環境となるボードを用意していますが、HummingBoardでも同じことができることを見ていきます。以前のコラムで、温度センサーの値をHummingBoardのI2Cポートから読み出し、HummingBoard内にWebサーバーを組み込んで、温度データをWeb上でグラフを表示することを紹介しています。この時は、HummingBoardをプライベートクラウドのように扱い、クライアントであるWebサーバーから直接読みだすような仕組みとしていたわけですが、今回は、データをIDCFのサーバーに一旦あげて、そのサーバーへクライアントからアクセスするようになるわけです。クラウドにデータを上げるといいか、というところがIoTの一番大事なところです。データとしてあげておくと、以前のコラムで紹介したようにグラフ表示としてしか情報を提供できないのに対し、クラウドからデータとして取ってこれれば、違うアプリケーションからそのデータが利用できるということです。それが、統計データとしてや、同様のデータを全国レベルで集計することもあり得ることでしょう。今回の例では、IDCFが始めたばかりのサービスでもあり、すぐにインタフェースを含めて変更が入ることでしょう。この記事もすぐに時代遅れになってしまうことでしょう。今はこのアイデアを感じていただければ幸いです。購入することができます。-55°C~+150°C・電圧範囲:DC+2.7V~+5.5V・I2C互換インターフェース・消費電流(@VDD=3.3V、TA=+25°C)ノーマル・モード:210μA(typ)パワーセービング・モード(1サンプル/1秒):46μA(typ)シャットダウン・モード:2μA(typ)・基板サイズ:15×11ミリ・基板上の入出力端子:4個(VDD,GND,SCL,SDA)[配線]HumminBoardとの接続表です。拡張ボードとブレッドボードを用いています。VCC[OS]HummingBoardのGPIOの検証に使っているDebianを用います。v2.6(2015年2月時点で最新)以降のものを使ってください。し表示されればOKです。--温度を計測するために、下のようなPythonのファイルを作成します/root/adt7410ディレクトリを生成して、ファイル名はadt7410.pyでセーブしてください。(母艦のPCでadt7410.pyファイルを作成して、SDをマウントしてコピーする方が簡単でよいでしょう。以下、様々なテキスト・ファイルの作成・設置については同様に考えてください。16.0))time.sleep(10)温度測定をしてみます次のようにPythonスクリプトを実行してください。/root/adt7410/adt7410.py10秒ごとに温度が表示されます。ここまでは、前回のものを繰り返して掲載しました。[IDCFクラウドサービスの準備]IDCFサイトに解説があるのでこれに従ってサーバーの準備をします。Composeにまとめられています。商用クラウドサービスと比べると、MQTT、RESTインタフェースを利用するところでは同じですが、サービス項目・コンセプトが異なっていて、リアルなシステムを組むには物足りないものとなる。ここでは、クラウド利用の手始めと考えてやってみましょう。サイトのマニュアルに従ってサーバーを作り、インストールスクリプトを走らせます。2からBME280環境センサのデータ送信」の部分がHummingBoardに置き換わるだけで、他は全く同じ手順となります。IDCFの自分で構築したサーバーにアクセスするために、ポートの設定などを行います。セキュリティを考えてアクセス可能なIPを制限するなど工夫します。[IDCFクラウドサービスにつなぐ]まず最初は、IDCFのページで参考に書かれていることを踏襲して動作の確認を検証してみます。これまでの手順でMeshbluサーバーの構築とuuidが登録されています。この登録してある10個のuuidから以下の3つを次のような割り当てをしてみます。subscribeするuuidそれぞれのtokenとuuidをlistコマンドから確認します。│...trigger-1からaction-2へメッセージが送信できるように設定します。action-2Dockerホストに別のシェルを開きmosquitto_subコマンド使います。action-2のuuidをトピック名に指定して、action-2のuuidへのメッセージをsubscribeします。\-duuidとtoken情報を入力します。IDCF_CHANNEL_URLのアドレスは環境にあわせて設定します。"553b9d58-a3cf-4e3c-8843-e4be9abbb280"}それでは、先のプログラムをクラウドへデータを送り込むように改造をしてみます。上のconfig.pyと同じディレクトリに置きます。'__main__':main()上のプログラムをADT7410_publish.pyとして、root権限で実行します。10秒間隔で指定した2つのuuidにメッセージをpublishします。コンソールにmessageが同時に表示されて確認できます。[Dockerホストで確認]Dockerホストのmosquitto_subが起動しているシェルに戻ります。HummingBoardから環境データのメッセージをsubscribeできました。[MyThingsを連携して使う]MyThingsアプリは、「トリガー」に対して「アクション」を組み合わせることのできるアプリです。入力はチャネルと呼ばれ、好きなチャンネルを選択して、自分の好みの組み合せを作成することができます。天気がよかったらiPhoneで通知を受ける。お買い得な情報が更新されたら逃さず知ることができる。組み合わせを作るということです。「IDCFチャンネル」を利用して、IoTプロトタイプ開発をすることができます。自作ガジェットとチャンネルを組み合わせることに応用ができます。以下のコマンドを実行して認証tokenを確認します。この例ではmeshblu_auth_token列のb8c55ad8が認証tokenになります。このuuidとtokenを認証用のHTTPヘッダに使います。url}/data/{uuid}のURLにデータをPOSTします。APIでHTTPS通信は自己署名の証明書を使っているため、curlコマンドの場合は--insecureフラグが必要です。HTTP通信も使えます。cloudのトリガーをMyThingsで受けるようにします。スマホからMyThingsアプリをダウンロードしてきます。設定で「チャネル一覧」の中に「開発者向け」に「IDCF」があります。IDCFにチャンネルの認証を行うには、IPアドレスと認証tokenを入力して「利用を開始する」。ホーム画面に戻り、右上の「プラス」をタップして組み合わせを作成します。「トリガー」をタップして『「IDCF」チャンネル』を選択、「条件を満たしたら」をタップし、「trigger-1」を選択し「OK」します。次に「アクション」をタップして「Slack」を承認します。チャットチャンネルの選択と、「IDCF」チャンネルのトリガーが「条件を満たした」ときにSlackに表示されるメッセージを入力し、「OK」をします。最初の組み合わせ作成画面で「作成」します。「IDCF」チャンネルのトリガーが「条件を満たした」状態をテストします。「IDCF」チャンネルの仮想マシンにログインして、以下のコマンドを実行します。日本国内への配送に適用されます。Exposure会員ページ英徳社について問い合わせ閉じる。