Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Sistema de seguridad basado en Arduino

Componentes y suministros

Arduino UNO
× 1
Sensor ultrasónico - HC-SR04 (genérico)
× 1
Servos (Tower Pro MG996R)
× 1
Buzzer
× 1
Breadboard (genérico)
× 1
Cables de puente macho / hembra
× 1
Caja de plástico
× 1

Herramientas y máquinas necesarias

Cuchillo

Aplicaciones y servicios en línea

Arduino IDE
IDE de procesamiento

Acerca de este proyecto

Introducción

Este proyecto es un sistema de seguridad basado en Arduino que consta de un Arduino Uno, un servomotor, un sensor ultrasónico y un zumbador piezoeléctrico.

Aquí, el sensor ultrasónico detecta un objeto que está dentro de su rango, lo que activa el timbre. Estos datos del sensor también se introducen en un software IDE de procesamiento, que crea un mapa gráfico.

El servomotor se utiliza para rotar el sensor ultrasónico de modo que cubra un área grande.

Este es un proyecto bastante simple y se puede hacer en una hora.

Aquí está el procedimiento para el proyecto:

  • Conecte el pin de disparo del sensor al pin 2 del Arduino
  • Conecte el Pin Echo del Sensor al Pin 3 del Arduino
  • Conecte Vcc y GND del suministro del sensor y tierra respectivamente
  • Coloque el timbre en la placa de pruebas
  • Conecte su extremo positivo al pin 10 del Arduino y conecte el extremo negativo a tierra
  • Conecte el cable negro y rojo del servomotor a tierra y suministre respectivamente
  • Conecte el cable amarillo del servomotor al Pin 9 del Arduino
  • Conecte el terminal de 5V del Arduino al suministro y el terminal GND del Arduino a tierra

Después de terminar estas conexiones, coloque todo el circuito dentro de la caja como se muestra en la figura.

Entonces es el momento de codificar.

Código

  • Security System_IDE
  • Procesando
Security System_IDE C9Search
 #include . int tPin =2; int ePin =3; int buz =10; int d1, d2; int i =0; int sdistance; Servo myServo; configuración vacía () {Serial.begin (9600); pinMode (tPin, SALIDA); pinMode (ePin, ENTRADA); pinMode (buz, SALIDA); myServo.attach (9); } bucle vacío () {para (i =0; i <=180; i + =10) {myServo.write (i); retraso (30); d2 =calcularDistancia (); Serial.print (i); Serial.print (","); Serial.print (d2); Serial.print ("."); } para (i =180; i> 0; i- =10) {myServo.write (i); retraso (30); d2 =calcularDistancia (); Serial.print (i); Serial.print (","); Serial.print (d2); Serial.print ("."); }} int calcularDistancia () {escritura digital (tPin, ALTA); retraso (1000); digitalWrite (tPin, BAJO); d1 =pulseIn (ePin, ALTO); d2 =d1 * 0,0171821306; if (d2 <10) {digitalWrite (buz, HIGH); } else {digitalWrite (buz, LOW); } return d2; } 
Procesando Java
 procesamiento de importación.serial. *; // Importa la biblioteca para la comunicación serialimport java.awt.event.KeyEvent; // importa la biblioteca para leer los datos del puerto serialimport java.io.IOException; Serial myPort; // define Object Serial // defubes variablesString angle =""; String distance =""; String data =""; String noObject; float pixsDistance; int iAngle, iDistance; int index1 =0; int index2 =0; PFont orcFont; configuración vacía () {tamaño (1366, 768); // *** CAMBIAR ESTO A SU RESOLUCIÓN DE PANTALLA *** smooth (); myPort =new Serial (este, "COM3", 9600); // inicia la comunicación serial myPort.bufferUntil ('.'); // lee los datos desde el puerto serie hasta el carácter '.'. Entonces en realidad dice esto:ángulo, distancia.} Void draw () {fill (98,245,31); // simulando el desenfoque de movimiento y el desvanecimiento lento de la línea en movimiento noStroke (); llenar (0,4); rect (0, 0, ancho, alto-alto * 0.065); llenar (98,245,31); // color verde // llama a las funciones para dibujar el radar drawRadar (); Dibujar linea(); dibujarObjeto (); drawText ();} void serialEvent (Serial myPort) {// comienza a leer datos desde el puerto serie // lee los datos desde el puerto serie hasta el carácter '.' y lo coloca en la variable String "datos". datos =myPort.readStringUntil ('.'); datos =data.substring (0, data.length () - 1); index1 =data.indexOf (","); // busca el carácter ',' y lo coloca en la variable "index1" angle =data.substring (0, index1); // lee los datos desde la posición "0" a la posición de la variable index1 o ese es el valor del ángulo que la placa Arduino envió al puerto serie distance =data.substring (index1 + 1, data.length ()); // lee los datos desde la posición "index1" hasta el final de los datos pr ese es el valor de la distancia // convierte las variables String en Integer iAngle =int (angle); iDistance =int (distancia);} vacío drawRadar () {pushMatrix (); traducir (ancho / 2, alto-alto * 0.074); // mueve las coordenadas iniciales a la nueva ubicación noFill (); strokeWeight (2); accidente cerebrovascular (98,245,31); // dibuja las líneas del arco arc (0,0, (ancho-ancho * 0.0625), (ancho-ancho * 0.0625), PI, TWO_PI); arc (0,0, (ancho-ancho * 0.27), (ancho-ancho * 0.27), PI, TWO_PI); arc (0,0, (ancho-ancho * 0.479), (ancho-ancho * 0.479), PI, TWO_PI); arco (0,0, (ancho-ancho * 0.687), (ancho-ancho * 0.687), PI, TWO_PI); // dibuja la línea de las líneas angulares (-ancho / 2,0, ancho / 2,0); línea (0,0, (- ancho / 2) * cos (radianes (30)), (- ancho / 2) * sin (radianes (30))); línea (0,0, (- ancho / 2) * cos (radianes (60)), (- ancho / 2) * sin (radianes (60))); línea (0,0, (- ancho / 2) * cos (radianes (90)), (- ancho / 2) * sin (radianes (90))); línea (0,0, (- ancho / 2) * cos (radianes (120)), (- ancho / 2) * sin (radianes (120))); línea (0,0, (- ancho / 2) * cos (radianes (150)), (- ancho / 2) * sin (radianes (150))); línea ((- ancho / 2) * cos (radianes (30)), 0, ancho / 2,0); popMatrix ();} vacío drawObject () {pushMatrix (); traducir (ancho / 2, alto-alto * 0.074); // mueve las coordenadas iniciales a una nueva ubicación. strokeWeight (9); accidente cerebrovascular (255,10,10); // color rojo pixsDistance =iDistance * ((altura-altura * 0.1666) * 0.025); // cubre la distancia desde el sensor de cm a píxeles // limita el rango a 40 cm si (iDistance <10) {// dibuja el objeto de acuerdo con el ángulo y la línea de distancia (pixsDistance * cos (radianes (iAngle)) , -pixsDistance * sin (radianes (iAngle)), (ancho-ancho * 0.505) * cos (radianes (iAngle)), - (ancho-ancho * 0.505) * sin (radianes (iAngle))); } popMatrix ();} vacío drawLine () {pushMatrix (); strokeWeight (9); accidente cerebrovascular (30,250,60); traducir (ancho / 2, alto-alto * 0.074); // mueve las coordenadas iniciales a la nueva línea de ubicación (0,0, (altura-altura * 0.12) * cos (radianes (iAngle)), - (altura-altura * 0.12) * sin (radianes (iAngle))); // dibuja la línea según el ángulo popMatrix ();} void drawText () {// dibuja los textos en la pantalla pushMatrix (); if (iDistance> 10) {noObject ="Fuera de rango"; } else {noObject ="Dentro del rango"; } llenar (0,0,0); noStroke (); rect (0, alto-alto * 0.0648, ancho, alto); llenar (98,245,31); textSize (25); texto ("2cm", ancho-ancho * 0.3854, alto-alto * 0.0833); texto ("4 cm", ancho-ancho * 0,281, alto-alto * 0,0833); texto ("6cm", ancho-ancho * 0.177, alto-alto * 0.0833); texto ("10cm", ancho-ancho * 0.0729, alto-alto * 0.0833); textSize (40); text ("Akshay6766", ancho-ancho * 0.875, alto-alto * 0.0277); text ("Ángulo:" + iAngle + "", ancho-ancho * 0.48, alto-alto * 0.0277); texto ("Distancia:", ancho-ancho * 0.26, alto-alto * 0.0277); if (iDistance <40) {text ("" + iDistance + "cm", ancho-ancho * 0.225, alto-alto * 0.0277); } tamaño de texto (25); llenar (98,245,60); traducir ((ancho-ancho * 0.4994) + ancho / 2 * cos (radianes (30)), (alto-alto * 0.0907) -ancho / 2 * sin (radianes (30))); rotar (-radianes (-60)); texto ("30", 0,0); resetMatrix (); traducir ((ancho-ancho * 0.503) + ancho / 2 * cos (radianes (60)), (alto-alto * 0.0888) -ancho / 2 * sin (radianes (60))); rotar (-radianes (-30)); texto ("60", 0,0); resetMatrix (); traducir ((ancho-ancho * 0.507) + ancho / 2 * cos (radianes (90)), (alto-alto * 0.0833) -ancho / 2 * sin (radianes (90))); rotar (radianes (0)); texto ("90", 0,0); resetMatrix (); traducir (ancho-ancho * 0.513 + ancho / 2 * cos (radianes (120)), (alto-alto * 0.07129) -ancho / 2 * sin (radianes (120))); rotar (radianes (-30)); texto ("120", 0,0); resetMatrix (); traducir ((ancho-ancho * 0.5104) + ancho / 2 * cos (radianes (150)), (alto-alto * 0.0574) -ancho / 2 * sin (radianes (150))); rotar (radianes (-60)); texto ("150", 0,0); popMatrix (); } 

Esquemas


Proceso de manufactura

  1. TinyML-Language Detector basado en Edge Impulse y Arduino
  2. Juego de giroscopio Arduino con MPU-6050
  3. Dados digitales Arduino
  4. Iron Man
  5. Encuéntrame
  6. Control del humidificador Arduino
  7. Sonda usando arduino y visualización en procesamiento IDE
  8. MobBob:Robot Arduino DIY controlado por un teléfono inteligente Android
  9. Luz de escritorio reactiva de audio Arduino
  10. NeoMatrix Arduino Pong
  11. Joystick de Arduino