01_LightSensor
明るさを測定する
光センサーで周囲の明るさを測り、ルクスの目安を表示します。
準備する
CherryIoTとモジュールを接続する
CherryIoTの指定コネクタに以下のモジュールを接続し、CherryIoTをPCのUSB-A挿入口に接続します。
光センサーモジュール
接続先:A
サンプルコード
GitHubで公開しているサンプルコードです。コードをコピーして Arduino IDEで使用します。
GitHubからコードを読み込んでいます...プログラムを書き込む
上のサンプルコードをコピーし、Arduino IDEに貼りつけます。
ボードとポートの設定を確認し、左上の 「→(書き込みボタン)」を押してCherryIoTに書き込みます。
初めて書き込む方は「はじめてのCherryIoT」で詳しい手順を確認してください。
動作確認
Arduino IDEの画面右上にあるアイコンをクリックすると、 画面下にシリアルモニターが表示されます。

センサーを覆ったり照らしたりすると、シリアルモニターに表示される数値が変化するなら成功です。
コードの解説
アナログ値を電圧へ変換し、計算した明るさに応じて「Bright」「Dark」を表示します。
GitHubからコードを読み込んでいます...const int litsnsrPin = 3;コネクタAの光センサーに対応するGPIO3を、定数litsnsrPinへ保存します。
void setup() {setup関数は、CherryIoTの電源を入れたときやリセットしたときに1回だけ実行されます。ここでは、シリアル通信と光センサー端子の初期設定を行います。
Serial.begin(115200);光センサーで測定した明るさと判定結果をPCへ表示するため、115200bpsでシリアル通信を開始します。
pinMode(litsnsrPin, INPUT);光センサーから届く信号を読み取れるように、litsnsrPinをINPUT(入力)に設定します。
void loop() {loop関数はsetup関数のあとに繰り返し実行されます。光センサーの値を読み取り、明るさを計算してシリアルモニターへ表示します。
float litsnsr_ad = analogRead(litsnsrPin);analogReadで光センサーから0~4095のアナログ値を読み取り、小数を扱えるfloat型の変数litsnsr_adへ保存します。アナログ値とは、明るさに応じて段階的に変化する数値です。
float litsnsr_v = litsnsr_ad * 3.3 / 4096;読み取った0~4095の値を、CherryIoTが扱う0~3.3Vの電圧へ換算し、変数litsnsr_vへ保存します。センサーの値から明るさを計算するために必要です。
float lux = 10000 * litsnsr_v / (3.3 - litsnsr_v) / 1000;電圧litsnsr_vから明るさの目安となるルクス値を計算し、変数luxへ保存します。ルクスは、場所の明るさを表す単位です。
Serial.print(lux);計算したルクス値をシリアルモニターへ表示します。Serial.printは、表示後に改行しません。
Serial.print(" Lux : ");数値の後ろへ単位の「Lux」と区切り記号を表示します。
if (lux > 20) {if文でluxが20より大きいかを確認します。20は明るいか暗いかを分ける基準値で、使用する環境に合わせて変更できます。
Serial.println("Bright");luxが20より大きい場合は、明るいことを示す「Bright」を表示して改行します。
delay(500);0.5秒待ちます。
} else {luxが20以下で、if文の条件を満たさなかった場合はこちらの処理を実行します。
Serial.println("Dark");暗いことを示す「Dark」を表示して改行します。
delay(500);0.5秒待ちます。