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 baseado em Arduino

Componentes e suprimentos

Arduino UNO
× 1
Sensor ultrassônico - HC-SR04 (genérico)
× 1
Servos (Tower Pro MG996R)
× 1
Buzzer
× 1
Breadboard (genérico)
× 1
Cabos de jumper masculino / feminino
× 1
Caixa de plástico
× 1

Ferramentas e máquinas necessárias

Faca

Aplicativos e serviços online

Arduino IDE
Processando IDE

Sobre este projeto









Introdução










Este projeto é um sistema de segurança baseado em Arduino que consiste em um Arduino Uno, um servo motor, um sensor ultrassônico e uma campainha piezoelétrica.

Aqui, o sensor ultrassônico detecta um objeto que está dentro de seu alcance, o que ativa a campainha. Esses dados do sensor também são alimentados em um software de IDE de processamento, que cria um mapa gráfico.

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

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





Aqui está o procedimento para o projeto -

  • Conecte o pino de disparo do sensor ao pino 2 do Arduino
  • Conecte o pino de eco do sensor ao pino 3 do Arduino
  • Conecte Vcc e GND da fonte do sensor e aterramento, respectivamente
  • Coloque a campainha na placa de ensaio
  • Conecte sua extremidade positiva ao pino 10 do Arduino e conecte a extremidade negativa ao aterramento
  • Conecte o fio preto e vermelho do servo motor ao aterramento e à alimentação, respectivamente
  • Conecte o fio amarelo do servo motor ao pino 9 do Arduino
  • Conecte o terminal 5V do Arduino ao fornecimento e o terminal GND do Arduino ao aterramento

Após finalizar essas conexões, coloque todo o circuito dentro da caixa conforme mostrado na figura.

Então é hora de codificar.

Código

  • Sistema de segurança_IDE
  • Processando
Sistema de segurança_IDE C9Search
 #include . int tPin =2; int ePin =3; int buz =10; int d1, d2; int i =0; int sdistance; Servo meuServo; void setup () {Serial.begin (9600); pinMode (tPin, OUTPUT); pinMode (ePin, INPUT); pinMode (buz, OUTPUT); myServo.attach (9); } void loop () {para (i =0; i <=180; i + =10) {myServo.write (i); atraso (30); d2 =calcular distância (); Serial.print (i); Serial.print (","); Serial.print (d2); Serial.print ("."); } para (i =180; i> 0; i- =10) {myServo.write (i); atraso (30); d2 =calcular distância (); Serial.print (i); Serial.print (","); Serial.print (d2); Serial.print ("."); }} int calculeDistance () {digitalWrite (tPin, HIGH); atraso (1000); digitalWrite (tPin, LOW); d1 =pulseIn (ePin, HIGH); d2 =d1 * 0,0171821306; if (d2 <10) {digitalWrite (buz, HIGH); } else {digitalWrite (buz, LOW); } return d2; } 
Processando Java
 import processing.serial. *; // importa biblioteca para comunicação serialimport java.awt.event.KeyEvent; // importa a biblioteca para ler os dados da porta serial java.io.IOException; Serial myPort; // define Serial do Objeto // remove o tubo de variablesString angle =""; String distance =""; String data =""; String noObject; float pixsDistance; int iAngle, iDistance; int index1 =0; int index2 =0; PFont orcFont; configuração vazia () {tamanho (1366, 768); // *** ALTERE ISSO PARA SUA RESOLUÇÃO DE TELA *** smooth (); myPort =novo Serial (este, "COM3", 9600); // inicia a comunicação serial myPort.bufferUntil ('.'); // lê os dados da porta serial até o caractere '.'. Então, na verdade, lê-se o seguinte:ângulo, distância.} Void draw () {fill (98,245,31); // simula o borrão de movimento e o desvanecimento lento da linha em movimento noStroke (); encher (0,4); rect (0, 0, largura, altura-altura * 0,065); preencher (98.245,31); // cor verde // chama as funções para desenhar o radar drawRadar (); desenhar linha(); drawObject (); drawText ();} void serialEvent (Serial myPort) {// começa a ler dados da porta serial // lê os dados da porta serial até o caractere '.' e o coloca na variável String "data". data =myPort.readStringUntil ('.'); data =data.substring (0, data.length () - 1); index1 =data.indexOf (","); // encontre o caractere ',' e o coloque na variável "index1" angle =data.substring (0, index1); // lê os dados da posição "0" para a posição da variável index1 ou esse é o valor do ângulo que a placa Arduino enviou para a porta serial distance =data.substring (index1 + 1, data.length ()); // lê os dados da posição "index1" até o final dos dados antes do valor da distância // converte as variáveis ​​String em Inteiro iAngle =int (ângulo); iDistance =int (distância);} void drawRadar () {pushMatrix (); traduzir (largura / 2, altura-altura * 0,074); // move as coordenadas iniciais para o novo local noFill (); strokeWeight (2); acidente vascular cerebral (98.245,31); // desenha as linhas do arco arc (0,0, (largura-largura * 0,0625), (largura-largura * 0,0625), PI, TWO_PI); arco (0,0, (largura-largura * 0,27), (largura-largura * 0,27), PI, TWO_PI); arco (0,0, (largura-largura * 0,479), (largura-largura * 0,479), PI, TWO_PI); arco (0,0, (largura-largura * 0,687), (largura-largura * 0,687), PI, TWO_PI); // desenha a linha das linhas angulares (-largura / 2,0, largura / 2,0); linha (0,0, (- largura / 2) * cos (radianos (30)), (- largura / 2) * sin (radianos (30))); linha (0,0, (- largura / 2) * cos (radianos (60)), (- largura / 2) * sen (radianos (60))); linha (0,0, (- largura / 2) * cos (radianos (90)), (- largura / 2) * sin (radianos (90))); linha (0,0, (- largura / 2) * cos (radianos (120)), (- largura / 2) * sen (radianos (120))); linha (0,0, (- largura / 2) * cos (radianos (150)), (- largura / 2) * sin (radianos (150))); linha ((- largura / 2) * cos (radianos (30)), 0, largura / 2,0); popMatrix ();} void drawObject () {pushMatrix (); traduzir (largura / 2, altura-altura * 0,074); // move as coordenadas iniciais para o novo local strokeWeight (9); curso (255,10,10); // cor vermelha pixsDistance =iDistance * ((height-height * 0.1666) * 0.025); // cobre a distância do sensor de cm a pixels // limitando o intervalo a 40 cms se (iDistance <10) {// desenha o objeto de acordo com o ângulo e a linha de distância (pixsDistance * cos (radianos (iAngle)) , -pixsDistance * sin (radianos (iAngle)), (largura-largura * 0,505) * cos (radianos (iAngle)), - (largura-largura * 0,505) * sin (radianos (iAngle))); } popMatrix ();} void drawLine () {pushMatrix (); strokeWeight (9); curso (30.250,60); traduzir (largura / 2, altura-altura * 0,074); // move as coordenadas iniciais para a nova linha de localização (0,0, (altura-altura * 0,12) * cos (radianos (iAngle)), - (altura-altura * 0,12) * sin (radianos (iAngle))); // desenha a linha de acordo com o ângulo popMatrix ();} void drawText () {// desenha os textos na tela pushMatrix (); if (iDistance> 10) {noObject ="Fora do intervalo"; } else {noObject ="No intervalo"; } preencher (0,0,0); noStroke (); rect (0, altura-altura * 0,0648, largura, altura); preencher (98.245,31); textSize (25); texto ("2 cm", largura-largura * 0,3854, altura-altura * 0,0833); texto ("4cm", largura-largura * 0,281, altura-altura * 0,0833); texto ("6 cm", largura-largura * 0,177, altura-altura * 0,0833); texto ("10 cm", largura-largura * 0,0729, altura-altura * 0,0833); textSize (40); texto ("Akshay6766", largura-largura * 0,875, altura-altura * 0,0277); texto ("Ângulo:" + iAngle + "", largura-largura * 0,48, altura-altura * 0,0277); texto ("Distância:", largura-largura * 0,26, altura-altura * 0,0277); if (iDistance <40) {text ("" + iDistance + "cm", largura-largura * 0,225, altura-altura * 0,0277); } textSize (25); encher (98.245,60); translação ((largura-largura * 0,4994) + largura / 2 * cos (radianos (30)), (altura-altura * 0,0907) -largura / 2 * sin (radianos (30))); girar (-radianos (-60)); texto ("30", 0,0); resetMatrix (); translação ((largura-largura * 0,503) + largura / 2 * cos (radianos (60)), (altura-altura * 0,0888) -largura / 2 * sin (radianos (60))); girar (-radianos (-30)); texto ("60", 0,0); resetMatrix (); translação ((largura-largura * 0,507) + largura / 2 * cos (radianos (90)), (altura-altura * 0,0833) -largura / 2 * sin (radianos (90))); girar (radianos (0)); texto ("90", 0,0); resetMatrix (); translação (largura-largura * 0,513 + largura / 2 * cos (radianos (120)), (altura-altura * 0,07129) -largura / 2 * sin (radianos (120))); girar (radianos (-30)); texto ("120", 0,0); resetMatrix (); translação ((largura-largura * 0,5104) + largura / 2 * cos (radianos (150)), (altura-altura * 0,0574) -largura / 2 * sin (radianos (150))); girar (radianos (-60)); texto ("150", 0,0); popMatrix (); } 

Esquemas


Processo de manufatura

  1. Detector de linguagem TinyML baseado em Edge Impulse e Arduino
  2. Jogo Arduino Gyroscope com MPU-6050
  3. Dados digitais Arduino
  4. Homem de Ferro
  5. Encontre-me
  6. Controle do umidificador Arduino
  7. Sonar usando arduino e exibição no IDE de processamento
  8. MobBob:DIY Arduino Robot Controlado por Smartphone Android
  9. Arduino Audio Reactive Desk Light
  10. NeoMatrix Arduino Pong