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

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

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

Код программы для 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