組込み初心者ですが、前回の記事『NefryBT R2とGrove赤外線センサーを使ってクラウド上でグラフ化してみる』に続いて、光センサーを使ってみました。
Grove光センサーは、アナログ信号で受けるようです。
まずはAmbientにグラフ化するためのチャネルを開設します。
次にNefryのGrove端子A0に光センサーを差し込みます。そして以下のようなソースを作成して流し込み。
#include <math.h> #include <Nefry.h> #include <NefryAmbient.h> NefryAmbient nefryAmbient; float Rsensor; //Resistance of sensor in K void setup() { Serial.begin(9600); Nefry.println("Grove IR Distance Interrupter !"); Nefry.setLed(0,0,0); pinMode(A0,INPUT); // A0ポート //ambientを使えるように初期設定をします。 bool ret = nefryAmbient.begin( xxxx, // チャンネルIDを入力 "xxxxxxxxxxxxxxxx"); // write key Nefry.setProgramName("Grove_IR_Sensor");//プログラム名を指定します。 if(ret == false){ Nefry.println("Fail of SetupAmbient"); } } void loop() { int sValue = analogRead( A0 ); Rsensor = (float)(1023-sValue)*10/sValue; Nefry.print("the light sensor value is "); Nefry.println( sValue ); Nefry.print("the sensor resistance is "); Serial.println(Rsensor,DEC);//show the ligth intensity on the serial monitor; int red = (int)(Rsensor / 255); int green = 128; int blue = (int)(Rsensor / 255); Nefry.setLed(red , green, blue); // LEDがランダムに点灯します。 // Ambient の送信 bool ret; ret = nefryAmbient.set(1, Rsensor); //field,dataの順にセットします。 if(ret == false) Nefry.println("Fail of set"); ret = nefryAmbient.send();//ambientにデータを送信します。 if(ret == false) Nefry.println("Fail of send"); delay( 5000 ); }