« 4-8x8 dot matrix Clock drive by Arduino NANO and GPS | Main | ナレーション入りの音楽からナレーションを抜き出す »

06/18/2019

Arduinoでトイレの電気消し忘れ注意喚起

  Photo時々、トイレの電気を消し忘れている事がある。PIRでモーション検知して電灯をON/OFFする方法もあるが、利用中に突然電灯が消えるという可能性もある。
トイレの電灯を消し忘れた状態では、モーションが検知されず、室内は明るい状態にある。この時に注意喚起音を流せば、この音に気づいて、消灯するだろうと思い、Arduino NANO を使って、

簡単な回路を作ってみた。

システムのチェック用のために、LEDを2つ追加した。
左側は、PIRセンサーの動作確認用で、PIRセンサーがモーションを検知すると点灯する。右側のLEDは、電灯が消えている時に点灯する。
LEDに流れる電流が多くて、ブレッドボード基盤周りが少し熱を持つので、適当な抵抗を入れて電流制限するのが良さそうだ。

必要なセンサーは、部屋の明るさ用にCDR、モーション検知用にPIRの2つ。どちらも手元にあったものを使った。

この状態で暫く使ってみて、動作が良くないようなら、Sketchの中の常数を少し変えてみよう・・・

半日後 ・・・ 状況検出がうまくいっていないので、主に Loop部の Sketchを下記のように書き直した。

ところが・・・使ってみると、夜間、トイレの電気を点灯すると、ブザーが鳴ってしまう! この警報はうるさいなぁ~これを回避しないと、実用とするのは如何なものか・・・ 悩ましい。

《Sketch》

#define LDRpin A0 // this LDR detect the brightness in the room
const int buzzPin = 9;
const int blight = 700; // the threshold value of brightness
int LDRValue = 0; // for read the LDR analog pin
int darkled = 12; // to check darkness
int pirled = 6; // to check motion detection
int pirsensor= 2; // PIR sensor pin
int pirval = 0;
int state = LOW;

void setup() {
Serial.begin(9600); // sets serial port for communication
pinMode(darkled, OUTPUT); // initalize LED as an output
pinMode( pirled, OUTPUT);
pinMode(pirsensor, INPUT); // initialize sensor as an input
pinMode(buzzPin, OUTPUT); // alarm
}

void loop() {
LDRValue = analogRead(LDRpin); // read the value from the LDR
Serial.print("LDR Value = ");
Serial.println(LDRValue); // print the value to the serial port
pirval = digitalRead(pirsensor); // read sensor value
if(LDRValue > blight )
{
digitalWrite(darkled, LOW);
if( pirval == LOW ) // the motion is not detected
{
digitalWrite(pirled, LOW);
// Makes pulses
for(int x = 0; x < 1000; x++) {
digitalWrite(buzzPin,HIGH);
delayMicroseconds(130);
digitalWrite(buzzPin,LOW);
delayMicroseconds(130);
}
delay(300);
}
if ( pirval == HIGH ) // human is in the room
{
digitalWrite(pirled, HIGH);
Serial.println("Motion detected!");
delay(30000);
}
}
if(LDRValue <= blight )
{
digitalWrite(darkled, HIGH);
}
state = LOW;
digitalWrite( pirled, LOW);
digitalWrite(buzzPin, LOW);
digitalWrite(darkled, LOW);
}

 

« 4-8x8 dot matrix Clock drive by Arduino NANO and GPS | Main | ナレーション入りの音楽からナレーションを抜き出す »

Arduino」カテゴリの記事

Comments

Post a comment

Comments are moderated, and will not appear on this weblog until the author has approved them.

(Not displayed with comment.)

« 4-8x8 dot matrix Clock drive by Arduino NANO and GPS | Main | ナレーション入りの音楽からナレーションを抜き出す »

September 2019
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

Recent Trackbacks

無料ブログはココログ