反射式光電スイッチの反応距離は2~3センチ

手をかざすと、スイッチが入る仕組みが必要になり、「TCRT5000 反射式光電スイッチ」を購入しました。

水道の蛇口やトイレなど、衛生面が気になるところで使われそうな部品です。

Amazonで10個入り170円、送料無料。

1個17円・・・。

反射した光で物体感知

「TCRT5000 反射式光電スイッチ」は名前から予測できますが、発光素子から光を放ち、反射した光を受光素子で受け取り、近くに物があるか感知します。

光と言っても赤外線なので、人間の目には見えません。

受光した赤外線をArduinoのアナログ値で受け取って使います。

ちなみに、物体の接近を直接デジタル値(HIGH、LOW)で受け取れるモジュールもあります。

少し大きくて邪魔ですが、プログラムも抵抗もいらず、お手軽に使えます。

反応距離は2~3センチ

「TCRT5000 」をArduinoにつなげて、手をかざして反応する距離を調べてみましょう。

 

・・・思ったより手を近づけないと反応しないようです。

目測ですが、確実に判定できるのは2~3センチ。

判断基準を大きめにして、10センチくらいで判定しようとすると、電圧の揺らぎで誤認することがあります。

反応距離はいまいちですが・・・「TCRT5000 」を3つ並べて、ジェスチャーセンサーを作ったので、次回掲載します。

2軸 カメラマウントでロボット工作

ロボットを作りのため、2つのサーボモーターを組み合わせるキット「SG90サーボ用 2軸 カメラマウント」を入手しました。

Amazonで740円くらいです。

どう組み立てれば?

この商品、説明書がありません。

そして、どう考えても加工無しで組み立てられません。

差込み部分のサイズが違います。惜しいというレベルでもありません。

とにかく切断、削る

仕方ないので、組み合うサイズに加工します。

ペンチで切断。

とりあえず入りました。

他にも、削らないと入らないところ、勘違いして削ったところなど、試行錯誤を繰り返し・・・

組み立て完成

なんとか組みあがりました。

Arduinoで2つのサーボモータを制御するプログラムを書きます。

良い動きです。

カメラマウント制御用の商品となりますが、まったく違う使い方をします。

これにぬいぐるみを被せ、タマゴの中に格納します。

つづく・・・(8月中旬あたり掲載)

土壌湿度センサーで危険信号

第18回 IoT×プログラミング教育

前回作った土壌湿度センサーをバージョンアップさせ、鉢植の土の乾きを危険信号で知れる仕組みを作ります。

ただ、子供が「アサガオの世話を学ぶ」という学校から与えられた課題がある以上、あまりにも学習の弊害になるような世話の効率化はしない方針です。

乾きの危険信号を作る

赤、黄、緑のLEDを用意します。

一定以上、土が乾いたら黄色信号が光り、カラカラに乾燥すると赤信号を光らせます。

電池駆動で、電池ボックスにON、OFFのスイッチが付いています。

省電力の工夫がないので、きっと電源ONのままだと、すぐに電池切れになるでしょう・・・。

土の乾きを調べたいときに電源をONにするルールです。

危険信号プログラム

前回のプログラムに、LED点灯制御と条件分岐を付け足します。

#define RED_PIN 12
#define YELLO_PIN 9
#define GREEN_PIN 6
int val;

void setup(){
  Serial.begin(57600);
  pinMode(RED_PIN, OUTPUT);
  pinMode(YELLO_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
}

void loop(){
  val = analogRead(0);
  Serial.println(val);
  digitalWrite(RED_PIN,LOW);
  digitalWrite(YELLO_PIN,LOW);
  digitalWrite(GREEN_PIN,LOW);
  if(val > 1000){
    digitalWrite(RED_PIN,HIGH);
  }else if(val > 900){
    digitalWrite(YELLO_PIN,HIGH);
  }else{
    digitalWrite(GREEN_PIN,HIGH);
  }
  delay(1000);
}

水を含む状態で、アナログ入力値が800だったので、だいたいですが・・・900を超えると黄色としましょう。

1000を超えると乾燥状態の赤信号です。

センサーを挿していない状態では、乾燥なので赤信号が点灯しています。

土壌湿度信号機をセット

子供が学校から持ち帰ったアサガオの鉢植にセットします。

センサーを土に突き刺すと・・・

緑色の点灯です。湿気は十分。

砂ぼこりや水から守るため、Arduinoはビニール袋で包みます。

昼間の乾きは激しい

翌日の朝、信号はまだ緑色でした。それを見た子供は水をあげなかったようです。

昼間見たら、黄色信号が点灯していました。

まずい・・・。

 

アサガオは水を好むので、夏場は1日2回、朝夕に水やりが必要です。常に信号は緑色の状態が望ましいです。

乾いたら水をあげると誤解させてしまったかも!?

失敗です。大事な説明が抜けていました・・・。

土壌湿度センサーで鉢植の乾きを知る

第17回 IoT×プログラミング教育

もうすぐ夏休みです。子供がアサガオを学校から持ち帰ったので、電子工作を用いて観察しましょう。

待った・・・やりすぎ注意

土壌湿度センサーで鉢植の乾きを監視。

さらに自動水やりを実現する構想で、ポンプも購入しましたが・・・

これって毎日水を上げて、アサガオを咲かす苦労を体感することに意味があるのでは?

子供の学習の機会を奪っている気がします。

土の乾きを知るだけの工作

自動水やりはやめて、鉢植の土の乾きを知るだけの機械を作りましょう。

「YL-69」と書かれている中国製の土壌湿度センサーモジュールを使います。

付属のジャンパーワイヤーがメスだったので、Arduino Nanoのピンに直接挿します。

AOがアナログ・アウトプット。
DOがデジタル・アウトプットとなります。

DOは使わないような気がしますが、一応13番ピンに挿してもらいました。

湿度を取得するプログラム

ライブラリも必要なく、光センサーなどと同じ要領です。

int val;

void setup(){
  Serial.begin(9600);
}

void loop(){
  val = analogRead(0);
  Serial.println(val);
  delay(1000);
}

1秒ごとに、シリアルモニタに湿度を数値で表示しましょう。

土壌湿度センサーに何も振れていない状態だと1023と表示されます。

5V MAXの電圧がかかっているようですが、モジュールについている可変抵抗器(十字のネジみたいなやつ)を回すと、入力値を小さめに調整できるのだと思います。

濡れたスポンジに挿してみる

土壌湿度センサーを、濡れたスポンジに挿してみます。

シリアルモニタの数値が、1023から817くらいまで下がりました。

湿度を取得できています!

水に入れてみる

思い切ってセンサーを水に入れてしまいましょう。

350くらいまで値が下がります。

ここまでの数値の時は、鉢植に水がたまっていて根が腐る状態です。

鉢植の土に挿す

それでは鉢植の土に挿します。

だいたい水を与えた状態で800くらいです。

今はパソコンと接続しないと数値を見られないので、次回はパソコンなしで乾きを知れる仕組みを作ります。

パワーLEDを制御できるのか

野外イベントでLEDを光らせたく、強力な光を放つパワーLEDを購入しました。

私は知識不足なので、最終的に専門の方に発注しますが、先に自分で試してみたくなりました。

「SODIAL(R)10個 3W ハイパワースター」をAmazonで購入。
1個あたり44円です。

簡単には光らない

Arduinoで砲弾型の3mmLED(Lチカで使うやつ)を光らせることは容易にできます。

しかし、パワーLEDは簡単にはいきません。

焼けるほど熱が出るので放熱板が必要です。

パワーLEDが小さいのに、放熱板が大きい・・・。
残念なほどスペースを取ります。

また、電流を調整する(?)ためのドライバーもいるようです。

交流電流!?

HiLetgo社が120円で販売している「LED定電流ドライバー」を合わせて購入しました。

パワーLEDの「+」「-」と、定電流ドライバーの「V+」「V-」をはんだ付けし、ドライバーの「N」と「L」から電力を供給しますが・・・

あれ??「入力電圧:AC85-265V」という仕様。

ACって交流電源!家庭用コンセントに直接つなぐ!?

仕方なくコンセントのコードを購入し、ワニ口クリップで接続します。

交流なのでどちらが「+」「-」というのはないです。

それにしても・・・100Vが怖い。

今まで5Vとか3.3Vの世界だったのに、桁が2つ違います。

感電死しそうです。

覚悟を決めてコンセントを挿す

遠くに離れてコンセントを挿すと・・・

光りました!まぶしい!!

昼間でも十分認識できる赤い輝きです。

さらに、青色の光も試します。

おお! ・・・お? なんだか紫色っぽいです。

発色が想像と違いましたが、とりあえずレンズフレアが素敵です。

2つ同時につなげたら?

2つの「LED定電流ドライバー」の「N」と「L」をつなぎ、残った「N」と「L」をACコンセントに繋ぎます。

すると、高速で点滅しだしました。

光過敏性発作を起こしそうな強烈な点滅なので、動画掲載は避けます。

赤、青、高速で交互に点滅します。

謎です。同時に光らせるつもりだったのに・・・

同時に光らせるには?

2つの「LED定電流ドライバー」の「N」と「L」を、どちらもACコンセントにつなげば、当然ながら同時に光ります。

Arduinoで制御するには?

光らせているだけでは、ただLED電球を買ったのと変わりないです。

これをArduinoで制御するには・・・

分かりません。

 

100Vが恐ろしく、Arduinoとつなぐ気になれません。

リレーとか、トランジスタを使うのでしょうか・・・。

まだまだ勉強が必要です。