Порой бывает нужно вовремя узнавать о поступившей в почтовый ящик корреспонденции, чтобы не пропустить какое-нибудь важное письмо или небольшую посылку. Для такого своевременного оповещения звуковым и световым сигналами можно сделать простое устройство на основе Arduino и датчика удара KY-031.
Схема подключения компонентов устройства оповещения приведена далее.
Датчик удара желательно установить в месте, где крышка почтового ящика при его закрытии соприкасается с его корпусом в случае, если этот почтовый ящик не имеет отверстия для просовывания корреспонденции. Если такое отверстие имеется, как в случае многих почтовых ящиков в многоквартирных домах, то такой датчик лучше расположить на дне, где наиболее вероятен его контакт с бросаемой в ящик корреспонденцией. Само устройство может питаться от четырех батареек AA или одной батарейки 9 В типа «Крона».
Код программы устройства оповещения на основе Arduino и датчика KY-031 приведен далее.
int ShockSensor = 4;
int RedLed = 5;
int GreenLed = 6;
int Buzzer = 7;
int value = HIGH;
boolean Alarm = false;
unsigned long LatestKnockTime;
int TriggerTime = 25;
void setup ()
{
Serial.begin(9600);
pinMode (ShockSensor, INPUT) ;
pinMode (Buzzer, OUTPUT);
pinMode (RedLed, OUTPUT);
pinMode (GreenLed, OUTPUT);
}
void loop ()
{
value = digitalRead (ShockSensor) ;
if (value == LOW)
{
LatestKnockTime = millis();
if (!Alarm){
Serial.println("Shock detected");
digitalWrite (GreenLed, HIGH);
digitalWrite (Buzzer, HIGH);
delay(1000);
digitalWrite (Buzzer, LOW);
delay(1000);
digitalWrite (Buzzer, HIGH);
delay(1000);
digitalWrite (Buzzer, LOW);
delay(1000);
digitalWrite (Buzzer, HIGH);
delay(1000);
digitalWrite (Buzzer, LOW);
delay(1000);
digitalWrite (Buzzer, HIGH);
delay(1000);
digitalWrite (Buzzer, LOW);
delay(1000);
Alarm = true;
}
}
else
{
if( (millis()-LatestKnockTime) > TriggerTime && Alarm){
Serial.println("Nothing Detected");
digitalWrite (Buzzer, LOW);
Alarm = false;
}
}
}
© digitrode.ru