цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Простое устройство уведомления о корреспонденции в почтовом ящике на основе Arduino и датчика удара KY-031



Простое устройство уведомления о корреспонденции в почтовом ящике на основе Arduino и датчика удара KY-031

Автор: Mike(admin) от 3-09-2021, 03:55

Порой бывает нужно вовремя узнавать о поступившей в почтовый ящик корреспонденции, чтобы не пропустить какое-нибудь важное письмо или небольшую посылку. Для такого своевременного оповещения звуковым и световым сигналами можно сделать простое устройство на основе Arduino и датчика удара KY-031.


Простое устройство уведомления о корреспонденции в почтовом ящике на основе Arduino и датчика удара KY-031

Схема подключения компонентов устройства оповещения приведена далее.


Простое устройство уведомления о корреспонденции в почтовом ящике на основе 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


Теги: Arduino, датчик удара




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий