Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Laser Tripwire Project: Bouw een eenvoudige inbraakdetector

Componenten en benodigdheden

Arduino UNO Of compatibel Arduino Uno bord 1
Solderloos Breadboard Half Size 1
Weerstand 10k ohm 3
Draadbruggen (algemeen) 1
Fotoweerstand 2
Laser Diode 1
SparkFun Drukknop 12mm 1
Buzzer 1

Apps en online diensten

  • Arduino IDE

Over dit project

Een laser tripwire bouwen

Componenten

  • Enkele draadbruggen
  • 3 x 10k weerstanden
  • 2 x Fotoweerstanden
  • Een drukknop
  • Een buzzer
  • Een laser
  • Een Arduino
  • Een breadboard
  • En een spiegel

Ik heb ook een apart breadboard gebruikt voor de laser-detectieschakeling (helpt bij het positioneren van de laser op de fotoweerstand).

De laser-detector maken

Begin met de detectiesectie van de schakeling. Plaats twee draadbruggen in aparte terminalstrips. Verbind een fotoweerstand met de rode draad en een terminalstrip. De andere fotoweerstand tussen een andere terminalstrip en de rode draad. Sluit een 10k weerstand aan van de gele draad naar één fotoweerstand en de andere 10k tussen de andere fotoweerstand en de gele draad. Verbind twee extra draden met elk snijpunt van fotoweerstanden en 10k weerstanden (groen en oranje).

Verbind de gele draad met de negatieve rail en de rode met de positieve rail. Verbind oranje met A0 (laser-detector) en groen met A1 (omgevingslichtdetector).

De buzzer aansluiten

Plaats de buzzer op het breadboard. Verbind de negatieve rail met de negatieve buzzerpin. Verbind de positieve buzzerpin met pin 3 van de Arduino.

De knop maken

Plaats de knop tussen 2 terminalstrips (contact alleen bij indrukken). Sluit de laatste 10k weerstand aan aan één uiteinde van de knop en een negatieve pin (naar ground rail). Verbind het andere uiteinde van de knop met de positieve rail. Verbind het snijpunt van knop en weerstand met pin 4 van de Arduino.

Laserlicht aansluiten

Sluit de laser aan op pin 2 en ground. Ik gebruikte een goedkope laser die ik "gehackt" heb met krokodillenklammen aan de veer en het behuizing, met velcro om de knop ingedrukt te houden.

Ik heb een programma geschreven voor de Laser Trip Wire. Het controleert continu of de knop is ingedrukt. Bij indrukken: setup-modus, nogmaals indrukken: armed-modus.

Setup-modus:

  • Geeft waarden weer op de seriële poort.
  • Als het licht op de fotoweerstand helder genoeg is, gaat pin 13 aan. Dit helpt bij het richten van de laser.

Armed-modus:

  • Elke 3 seconden rapportage via seriële communicatie.
  • Controleert of de waarde van de fotoweerstand daalt door de laserbundel te verbreken; bij verbreking start de trip-modus.

Trip-modus (alarm):

  • Piept 3 keer en stuurt data naar seriële poort.
  • Keert terug naar armed-modus.

Code

Laser Tripwire (Arduino)

// 5 pins trip wire
int mode = 1;
int ambiant;
int trip = 1000;
int minLight = 900;
int makeBeep = 1;
int atAverage;
long millisCount;
int laserPin = 2;
int ledPin = 13;
int buzzerPin = 3;
String modeNames[3] = {"SETTINGS","ARMED","TRIP"};
int modePin = 4;
int tripPin = A0;
int ambiantPin = A1;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(laserPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  pinMode(modePin, INPUT);
  Serial.begin(9600);
}

void loop() {
  if (digitalRead(modePin) == 1) {
    trip = analogRead(tripPin);
    mode = mode + 1;
    if (mode >= 2) { mode = 0; }
    beep(1);
    delay(300);
  }
  switch (mode) {
    case 0:
      digitalWrite(laserPin,HIGH);
      ambiant = analogRead(ambiantPin);
      trip = analogRead(tripPin);
      atAverage = ambiant + ((trip - ambiant)/2);
      stats();
      if (trip >= minLight) { digitalWrite(ledPin,HIGH); }
      else { digitalWrite(ledPin,LOW); }
      break;
    case 1:
      digitalWrite(laserPin,HIGH);
      digitalWrite(ledPin,LOW);
      ambiant = analogRead(ambiantPin);
      atAverage = ambiant + ((trip - ambiant)/2);
      if (analogRead(tripPin) < atAverage) { mode = 2; }
      if ((millis() - millisCount) >= 3000) { millisCount = millis(); stats(); }
      break;
    case 2:
      if ((millis() - millisCount) >= 1000) { millisCount = millis(); stats(); beep(3); mode = 1; }
      break;
  }
  delay(1);
}

void beep(int qty) {
  int count;
  if (makeBeep == 1) {
    for (count = 1; count <= qty; count++) {
      digitalWrite(buzzerPin, HIGH);
      delay(50);
      digitalWrite(buzzerPin, LOW);
      delay(50);
    }
  }
}

void stats() {
  Serial.print("A:"); Serial.print(ambiant);
  Serial.print(" T:"); Serial.print(trip);
  Serial.print(" AT:"); Serial.print(atAverage);
  Serial.print(" MODE:"); Serial.print(modeNames[mode]);
  Serial.println("");
}

Schema's

Breadboard-weergave en schemaweergave van de laser tripwire.

Productieproces

  1. Bouw een Squid Game-thema Interactieve Pop met Arduino UNO – DIY Project
  2. Bouw een Arduino Real-Time Clock voor Islamitische Gebedstijden
  3. Arduino Uno Gebaseerde Mensendetectie Robot: Stap-voor-stap Sensorintegratie
  4. Arduino Uno WiFi Webserver: LED aan/uit schakelen via browser
  5. Bouw een eenvoudige rekenmachine met Arduino UNO – Makkelijk project
  6. Afbeeldingen Weergeven op een 1,17-inch TFT LCD met Arduino UNO
  7. Een draagbaar Persistence-of-Vision-display bouwen met Arduino UNO en ATtiny85
  8. Een 8×8 LED-matrix beheersen met Arduino Uno: Stap-voor-stap handleiding
  9. Wi-Servo: Servomotoren Besturen via Wi-Fi met een Webbrowser
  10. Afstandsbediening van een Lamp met Arduino Uno, Relais en Android App
  11. 25 kHz 4-pins PWM-ventilatorbesturing met Arduino Uno – Bouw, Code & Test