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 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...