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

 



Сигнализация для вещей на основе Arduino

Автор: Mike(admin) от 1-08-2022, 03:55

Иногда люди оставляют свои вещи в надежде на то, чтобы вскоре вернуться за ними, и на то, что их никто не возьмет. Например, сотрудник какой-нибудь компании может пойти на обед и оставить на своем рабочем месте, какие-нибудь личные вещи, ключи или еще что-то подобное. Но не везде могут найтись честные коллеги, или в офис может зайти кто-нибудь посторонний, который может позариться на лежащую на виду вещь.


Сигнализация для вещей на основе Arduino

Для предотвращения этого можно собрать простую сигнализацию, которая будет крепиться к вещи и звуковым образом оповещать всех вокруг о том, что вещь взяли.


Данное устройство мы соберем на основе Arduino и акселерометра ADXL335. В качестве компонента для звукового оповещения будет использоваться пьезозуммер. Схема устройства проста и представлена далее.


Сигнализация для вещей на основе Arduino

А вот как данная сборка может выглядеть на макетной плате.


Сигнализация для вещей на основе Arduino

Код программы для Arduino приведен далее.



int X_axis = A0;
int Y_axis = A1;
int Z_axis = A2;
const int buzzerPin = 9;
const int LEDpin = 8;
const int btnPin = 7;
const int deg_acc = 3;
boolean trigAlarm = false;
int x, y, z;

int STILL[4];

void setup() {
  analogReference(EXTERNAL);
  pinMode(buzzerPin, OUTPUT);
  pinMode(LEDpin, OUTPUT);
  pinMode(btnPin, INPUT);
  Serial.begin(9600);
  while (digitalRead(btnPin) != HIGH) {}
}

void loop() {
  if (digitalRead(btnPin) == HIGH) {
    Serial.print("Calibrating");
    delay(500);
    int i = 0;   
    while (i < 3) {   
      Serial.print(".");
      STILL[0] = analogRead(X_axis);
      STILL[1] = analogRead(Y_axis);
      STILL[2] = analogRead(Z_axis);
      delay(500);
      i++;
    }
    digitalWrite(LEDpin, HIGH);
    tone(buzzerPin, 2000);
    delay(100);
    digitalWrite(LEDpin, LOW);
    noTone(buzzerPin);
    delay(100);
    digitalWrite(LEDpin, HIGH);
    tone(buzzerPin, 2000);
    delay(100);
    digitalWrite(LEDpin, LOW);
    noTone(buzzerPin);
    trigAlarm = false;
  }
  x = analogRead(X_axis);
  y = analogRead(Y_axis);
  z = analogRead(Z_axis);

  if ((x > (STILL[0] - deg_acc)) && (x < (STILL[0] + deg_acc)) && (y > (STILL[1] - deg_acc)) && (y < (STILL[1] + deg_acc)) && (z > (STILL[2] - deg_acc)) && (z < (STILL[2] + deg_acc)) ) {
    //    Serial.print(x);
    //    Serial.print("\t");
    //    Serial.print(y);
    //    Serial.print("\t");
    //    Serial.print(z);
    //    Serial.println();
  }
  else {
    trigAlarm = true;
  }
  if (trigAlarm == true) {
    digitalWrite(LEDpin, HIGH);
    tone(buzzerPin, 2000);
    delay(100);
    digitalWrite(LEDpin, LOW);
    noTone(buzzerPin);
  }
  delay(100);
}

Данный проект можно усовершенствовать, миниатюризировав его, взяв более компактную плату Arduino и разместив все в небольшом корпусе. Также можно добавить возможности оповещения пользователя по SMS, если, например, подключить SIM800.


Таким образом, если вещь с данным сигнализатором возьмут, то об этом услышат многие вокруг и обратят на это внимание, что может спугнуть потенциального злоумышленника.




© digitrode.ru


Теги: Arduino, сигнализация




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

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

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