Translate

2016年5月20日金曜日

Ciaoサンプルコード"CiaoRestClient-ThingSpeak"を翻訳してみた

Ciaoに関する主なドキュメントを読んだので、
そろそろサンプルを動かしたくなってきました。

で、Arduino Yunサイトにリンクがあった

CiaoRestClient-ThingSpeak
http://labs.arduino.org/CiaoRestClient-ThingSpeak

を勝手翻訳してみました。
At your own riskで参照ください。

-----

CiaoRestClient-ThingSpeak


"CiaoRestClient"は、CiaoライブラリとThingSpeak Cloudとの間のインタラクションのSketchコード例です。特に、温度や湿度をモニタするためにThingsSpeakへのチャネルの作成方法をコードで確認することができます。

Ciao


このSketchは、Ciaoライブラリが必要となります。

Ciaoを実行するためには:

  • Ciao Core:パッケージマネジャもしくはソースからインストール可能、詳細は後述  
  • Ciaoライブラリ:Arduino IDE 1.7.7以降もしくはArduino Studio 0.0.4以降で使用可能、ライブラリを手作業でも追加可能、詳細は後述
  • コンパチブルボード:このリンクをチェックしてCiaoが動作するボードのリストを確認のこと

CIAO SETUPのCiao Coreのインストール手順を確認のこと。


注意:
Arduino UNO WiFiには、すでに導入済みです。


ThingSpeak

ThingSpeakは、オープンなデータプラットフォームであり、センサや(Arduinoのような)起動装置(アキュームレータ)からのデータ集約、格納、分析、参照を可能にするInternet of ThingsのためのAPIです。例えば、ThingsSpeakでセンサロギングアプリケーション、位置追跡アプリケーション、そしてステータス更新でのSocial Network of Thingsを構築することができます。それらが実現できれば、あなたの現在の場所から家庭のサーモスタット操作を実行することが可能です。ThingSpeakの主要な要素はチャネルです。そしてそれはデータフィールド、位置フィールド、ステータスフィールドを含んでいます。ThingsSpeakチャネル構築後、MATLAB(R)コードを使ってチャネルへデータを書きこみ、処理し、そしてデータを参照することができます、そしてツイートやその他のアラートによるデータへ反応することができます。典型的なThingSpeakワークフローは次の通りです:
  • チャネル作成、データ集約
  • データの分析と視覚化
  • 他のアプリを使ったデータ作用(加工?)

ThingSpeak APIは、GitHub上から取得可能です。HTTPリクエスト実行、強力な数値アルファベットデータ、数値データ処理、位置追跡、そしてステータス更新のための完全なThingSpeak APIが含まれています。


ThingSpeakチャネルの作成


Sketchを実行するには、thingspeak.com 上のアカウント登録および新規チャネルの作成が必要です。つぎの手順で実行してください:

・Webサイトから登録してください:http://thingspeak.com

図1 → http://labs.arduino.org/dl1420?display&scale=0.6

・図2のようにChannels > My Channels > New Channelメニューをクリックしてチャネルを作成してください:

図2 → http://labs.arduino.org/dl1592?display&scale=0.6

・新規チャネルにリネームし、2つのフィールドを追加してください。最初のフィールドは湿度データ、2番めのフィールドは温度です。

図3 → http://labs.arduino.org/dl1593?display&scale=0.6
図4 → http://labs.arduino.org/dl1594?display&scale=0.6

・図5のように、マクロAPIKEY_THINGSPEAKの値"XXXXXXXXX"をチャネルのAPI Keysセクションにある"Write API key"の値に書き換えてください。

図5 → http://labs.arduino.org/dl1595?display&scale=0.6

次にSketchコードをボードへアップロードします。

コード


Arduino.org IDEを使ってアップロードしてください。まだ入手していない場合は、ここからダウンロード可能です。

すでに説明したマクロAPIKEY_THINGSPEAKの値"XXXXXXXXX"を"Write API key"の値に書き換えることを忘れないで下さい。


/*
このサンプルコードはCiaoライブラリとThingSpeak Cloudとの
インタラクションを確認することができます。
実行するためには、tingspkeak.com サイト上でアカウントを登録し、
サイトの"Channels"セクションからチャネルを作成してください
(Channels -> My Channels -> New Channel)。

新しいチャネルには2つのフィールドが必要です。
最初のフィールドは湿度、2番めのフィールドは温度です。

その後、マクロAPIKEY_THINGSPEAKの値"XXXXXXXXX"を
チャネルセクションの"Write API key"の値に書き換えます。
*/

#include
#include

#define CONNECTOR     "rest"
#define SERVER_ADDR   "api.thingspeak.com"

#define APIKEY_THINGSPEAK  "XXXXXXXXX" //Insert your API Key

short hum = 60;
short temp = 22;

void setup() {
  Ciao.begin(); // CIAO 初期化
}

void loop() {
    String uri = "/update?api_key=";
    uri += APIKEY_THINGSPEAK;
    uri += "&field1=";
    uri += String(hum);
    uri += "&field2=";
    uri += String(temp);

    Ciao.println("Send data on ThingSpeak Channel");

    CiaoData data = Ciao.write(CONNECTOR, SERVER_ADDR, uri);

    if (!data.isEmpty()){
      Ciao.println( "State: " + String (data.get(1)) );
      Ciao.println( "Response: " + String (data.get(2)) );
    }
    else{
      Ciao.println("Write Error");
    }
  delay(30000); // Thinkspeak ポリシー
}


アウトプット


ThingSpeak チャネルを開き、湿度と温度を確認してください:

図6 → http://labs.arduino.org/dl1596?display&scale=0.6

もしArduino UNO WiFiを使用しているのであれば、WebパネルのWIFI CONSOLEへアクセスしてこの画面を参照してください:

図7 → http://labs.arduino.org/dl1596?display&scale=0.6

注意:
このSketchでは、デフォルトの湿度値(60)と温度値(22)を使っています。
ボードにセンサを接続しSketchを修正して湿度や温度の実測値に変更してみてください。



Ciaoライブラリを使用した他の例はGitHubの次のリンクを参考にしてください:https://github.com/arduino-org/arduino-ciao-library
 



------

そうか、Arduino社はArduino YunではなくArduino UNO WiFiをInternet of Thingsのフラッグシップモデルにしようとしているのか..

そうなると、Arduino UNO WiFiがスイッチサイエンスとかで販売されるのも時間の問題かもなあ..

今、技適マーク取ってるところなんだろうなあ..おそらく..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...