Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sistema de Segurança Arduino: Detecção de Movimento Inteligente e Alerta

Componentes e Materiais

Componente Quantidade
Arduino UNO 1
Sensor Ultrassônico HC-SR04 (Genérico) 1
Servo (Tower Pro MG996R) 1
Buzzer 1
Protoboard (genérico) 1
Fios Jumpers Macho/Fêmea 1
Caixa Plástica 1

Ferramentas e Máquinas Necessárias

Aplicativos e Serviços Online

Sobre este Projeto

Introdução

Sistema de Segurança Arduino: Detecção de Movimento Inteligente e Alerta
Sistema de Segurança Arduino: Detecção de Movimento Inteligente e Alerta

Este projeto é um Sistema de Segurança Baseado em Arduino consistindo de um Arduino Uno, um motor servo, um sensor ultrassônico e um buzzer piezoelétrico.

Aqui, o sensor ultrassônico detecta um objeto que está dentro de seu alcance, o que aciona o buzzer. Esses dados do sensor também são inseridos no software Processing IDE, que cria um mapa gráfico.

O motor servo é usado para girar o sensor ultrassônico de forma a cobrir uma grande área.

Este é um projeto bastante simples e pode ser feito em uma hora.

Procedimento do Projeto

Após terminar estas conexões, coloque todo o circuito dentro da caixa, como mostrado na figura.

Então é hora de codificar.

Código

Security System_IDE (C/C++)
#include <Servo.h>
int tPin = 2;
int ePin = 3;
int buz = 10;
int d1, d2;
int i = 0;
int sdistance;
Servo myServo;

void setup() {
  Serial.begin(9600);
  pinMode(tPin, OUTPUT);
  pinMode(ePin, INPUT);
  pinMode(buz, OUTPUT);
  myServo.attach(9);
}

void loop() {
  for (i = 0; i <= 180; i += 10) {
    myServo.write(i);
    delay(30);
    d2 = calculateDistance();
    Serial.print(i);
    Serial.print(",");
    Serial.print(d2);
    Serial.print(".");
  }
  for (i = 180; i > 0; i -= 10) {
    myServo.write(i);
    delay(30);
    d2 = calculateDistance();
    Serial.print(i);
    Serial.print(",");
    Serial.print(d2);
    Serial.print(".");
  }
}

int calculateDistance() {
  digitalWrite(tPin, HIGH);
  delay(1000);
  digitalWrite(tPin, LOW);
  d1 = pulseIn(ePin, HIGH);
  d2 = d1 * 0.0171821306;
  if (d2 < 10) {
    digitalWrite(buz, HIGH);
  } else {
    digitalWrite(buz, LOW);
  }
  return d2;
}
Processing (Java)
import processing.serial.*;
import java.awt.event.KeyEvent;
import java.io.IOException;

Serial myPort;
String angle = "";
String distance = "";
String data = "";
String noObject;
float pixsDistance;
int iAngle, iDistance;
int index1 = 0;
int index2 = 0;
PFont orcFont;

void setup() {
  size(1366, 768); // ***ALTERE ISTO PARA SUA RESOLUÇÃO DE TELA***
  smooth();
  myPort = new Serial(this, "COM3", 9600);
  myPort.bufferUntil('.');
}

void draw() {
  fill(98, 245, 31);
  noStroke();
  fill(0, 4);
  rect(0, 0, width, height - height * 0.065);
  fill(98, 245, 31);
  drawRadar();
  drawLine();
  drawObject();
  drawText();
}

void serialEvent(Serial myPort) {
  data = myPort.readStringUntil('.');
  data = data.substring(0, data.length() - 1);
  index1 = data.indexOf(",");
  angle = data.substring(0, index1);
  distance = data.substring(index1 + 1, data.length());
  iAngle = int(angle);
  iDistance = int(distance);
}

void drawRadar() {
  pushMatrix();
  translate(width / 2, height - height * 0.074);
  noFill();
  strokeWeight(2);
  stroke(98, 245, 31);
  arc(0, 0, (width - width * 0.0625), (width - width * 0.0625), PI, TWO_PI);
  arc(0, 0, (width - width * 0.27), (width - width * 0.27), PI, TWO_PI);
  arc(0, 0, (width - width * 0.479), (width - width * 0.479), PI, TWO_PI);
  arc(0, 0, (width - width * 0.687), (width - width * 0.687), PI, TWO_PI);
  line(-width / 2, 0, width / 2, 0);
  line(0, 0, (-width / 2) * cos(radians(30)), (-width / 2) * sin(radians(30)));
  line(0, 0, (-width / 2) * cos(radians(60)), (-width / 2) * sin(radians(60)));
  line(0, 0, (-width / 2) * cos(radians(90)), (-width / 2) * sin(radians(90)));
  line(0, 0, (-width / 2) * cos(radians(120)), (-width / 2) * sin(radians(120)));
  line(0, 0, (-width / 2) * cos(radians(150)), (-width / 2) * sin(radians(150)));
  line((-width / 2) * cos(radians(30)), 0, width / 2, 0);
  popMatrix();
}

void drawObject() {
  pushMatrix();
  translate(width / 2, height - height * 0.074);
  strokeWeight(9);
  stroke(255, 10, 10);
  pixsDistance = iDistance * ((height - height * 0.1666) * 0.025);
  if (iDistance < 10) {
    line(pixsDistance * cos(radians(iAngle)), -pixsDistance * sin(radians(iAngle)),
         (width - width * 0.505) * cos(radians(iAngle)), -(width - width * 0.505) * sin(radians(iAngle)));
  }
  popMatrix();
}

void drawLine() {
  pushMatrix();
  strokeWeight(9);
  stroke(30, 250, 60);
  translate(width / 2, height - height * 0.074);
  line(0, 0, (height - height * 0.12) * cos(radians(iAngle)), -(height - height * 0.12) * sin(radians(iAngle)));
  popMatrix();
}

void drawText() {
  pushMatrix();
  if (iDistance > 10) {
    noObject = "Out of Range";
  } else {
    noObject = "In Range";
  }
  fill(0, 0, 0);
  noStroke();
  rect(0, height - height * 0.0648, width, height);
  fill(98, 245, 31);
  textSize(25);
  text("2cm", width - width * 0.3854, height - height * 0.0833);
  text("4cm", width - width * 0.281, height - height * 0.0833);
  text("6cm", width - width * 0.177, height - height * 0.0833);
  text("10cm", width - width * 0.0729, height - height * 0.0833);
  textSize(40);
  text("Akshay6766 ", width - width * 0.875, height - height * 0.0277);
  text("Angle: " + iAngle + " ", width - width * 0.48, height - height * 0.0277);
  text("Distance: ", width - width * 0.26, height - height * 0.0277);
  if (iDistance < 40) {
    text(" " + iDistance + " cm", width - width * 0.225, height - height * 0.0277);
  }
  textSize(25);
  fill(98, 245, 60);
  translate((width - width * 0.4994) + width / 2 * cos(radians(30)), (height - height * 0.0907) - width / 2 * sin(radians(30)));
  rotate(-radians(-60));
  text("30", 0, 0);
  resetMatrix();
  translate((width - width * 0.503) + width / 2 * cos(radians(60)), (height - height * 0.0888) - width / 2 * sin(radians(60)));
  rotate(-radians(-30));
  text("60", 0, 0);
  resetMatrix();
  translate((width - width * 0.507) + width / 2 * cos(radians(90)), (height - height * 0.0833) - width / 2 * sin(radians(90)));
  rotate(radians(0));
  text("90", 0, 0);
  resetMatrix();
  translate(width - width * 0.513 + width / 2 * cos(radians(120)), (height - height * 0.07129) - width / 2 * sin(radians(120)));
  rotate(radians(-30));
  text("120", 0, 0);
  resetMatrix();
  translate((width - width * 0.5104) + width / 2 * cos(radians(150)), (height - height * 0.0574) - width / 2 * sin(radians(150)));
  rotate(radians(-60));
  text("150", 0, 0);
  popMatrix();
}

Esquemáticos

Sistema de Segurança Arduino: Detecção de Movimento Inteligente e Alerta

Processo de manufatura

  1. Detector de Idiomas TinyML com Edge Impulse no Arduino Nano 33 BLE Sense
  2. Construa um Jogo em Tempo Real com Giroscópio: Arduino Nano + Sensor MPU-6050
  3. Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
  4. Construa um Homem de Ferro com Arduino: Componentes, Sensores e Guia Passo a Passo
  5. Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
  6. Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão
  7. Medição de Distância em Tempo Real com Sonar Arduino e Visualização no Processing
  8. MobBob: Construa Seu Próprio Robô Arduino, Controlado via Smartphone Android
  9. Lâmpada de Mesa Reativa a Áudio com Arduino Nano
  10. Jogo Pong Neon em Matriz NeoPixel com Arduino Nano