산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino 기반 보안 시스템

구성품 및 소모품

Arduino UNO
× 1
초음파 센서 - HC-SR04(일반)
× 1
서보(타워 프로 MG996R)
× 1
부저
× 1
브레드보드(일반)
× 1
남성/여성 점퍼 와이어
× 1
플라스틱 상자
× 1

필요한 도구 및 기계

앱 및 온라인 서비스

Arduino IDE
IDE 처리

이 프로젝트 정보

소개

이 프로젝트는 Arduino Uno, 서보 모터, 초음파 센서 및 압전 부저로 구성된 Arduino 기반 보안 시스템입니다.

여기서 초음파 센서는 범위 내에 있는 물체를 감지하여 부저를 작동시킵니다. 이 센서 데이터는 그래픽 지도를 생성하는 Processing IDE 소프트웨어에도 제공됩니다.

서보 모터는 초음파 센서를 회전시켜 넓은 영역을 커버하는 데 사용됩니다.

이것은 매우 간단한 프로젝트이며 1시간 이내에 완료할 수 있습니다.

다음은 프로젝트 절차입니다 -

<울>
  • 센서의 트리거 핀을 Arduino의 핀 2에 연결
  • <울>
  • 센서의 에코 핀을 Arduino의 핀 3에 연결
  • <울>
  • 센서 전원의 Vcc와 GND를 각각 연결하고 접지
  • <울>
  • 브레드보드에 버저 배치
  • <울>
  • 양극을 Arduino의 10번 핀에 연결하고 음극을 접지에 연결합니다.
  • <울>
  • 서보 모터의 검정색과 빨간색 선을 각각 접지에 연결하고 전원을 공급합니다.
  • <울>
  • 서보 모터의 노란색 선을 Arduino의 핀 9에 연결
  • <울>
  • Arduino의 5V 단자를 전원에 연결하고 Arduino의 GND 단자를 접지에 연결합니다.
  • 이러한 연결이 끝나면 전체 회로를 그림과 같이 상자 안에 넣습니다.

    이제 코딩할 시간입니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 보안 시스템_IDE
  • 처리
  • 보안 시스템_IDEC9검색
    #include . int tPin =2, int ePin =3, int buz =10, int d1,d2, int i =0, int 거리, 서보 myServo, 무효 설정() { Serial.begin(9600); 핀모드(t핀, 출력); 핀모드(e핀, 입력); 핀모드(버즈, 출력); myServo.attach(9); } 무효 루프() { for(i=0;i<=180;i +=10) { myServo.write(i); 지연(30); d2 =계산 거리(); Serial.print(i); Serial.print(","); Serial.print(d2); Serial.print("."); } for(i=180;i>0; i-=10){ myServo.write(i); 지연(30); d2 =계산 거리(); Serial.print(i); Serial.print(","); Serial.print(d2); Serial.print("."); }}int 계산 거리(){ digitalWrite(tPin,HIGH); 지연(1000); digitalWrite(tPin, LOW); d1 =펄스 입력(ePin, HIGH); d2 =d1 * 0.0171821306; if (d2 <10) { digitalWrite(buz,HIGH); } else { 디지털 쓰기(부즈,낮음); } 리턴 d2; }
    처리자바
    <사전>가져오기 processing.serial.*; // 직렬 통신을 위한 라이브러리 가져오기import java.awt.event.KeyEvent; // 직렬 포트에서 데이터를 읽기 위한 라이브러리 가져오기 import java.io.IOException;Serial myPort; // 객체 정의 직렬// defube variablesString angle="";String distance="";String data="";String noObject;float pixsDistance;int iAngle, iDistance;int index1=0;int index2=0;PFont orcFont; 무효 설정() { 크기(1366, 768); // ***이것을 화면 해상도로 변경*** smooth(); myPort =new Serial(this,"COM3", 9600); // 직렬 통신 시작 myPort.bufferUntil('.'); // 직렬 포트에서 문자 '.'까지 데이터를 읽습니다. 따라서 실제로 다음과 같이 읽습니다. angle,distance.}void draw() { fill(98,245,31); // 움직이는 라인의 모션 블러 및 느린 페이드 시뮬레이션 noStroke(); 채우기(0,4); rect(0, 0, 너비, 높이-높이*0.065); 채우기(98,245,31); // 녹색 // 레이더를 그리기 위한 함수를 호출합니다. drawRadar(); 그리기선(); 그리기 개체(); drawText();}void serialEvent(Serial myPort) { // 직렬 포트에서 데이터 읽기 시작 // 직렬 포트에서 문자 '.'까지 데이터를 읽습니다. 문자열 변수 "data"에 넣습니다. 데이터 =myPort.readStringUntil('.'); 데이터 =data.substring(0,data.length()-1); index1 =data.indexOf(","); // ',' 문자를 찾아 변수 "index1"에 넣습니다. angle=data.substring(0, index1); // 위치 "0"에서 변수 index1의 위치까지 데이터를 읽거나 Arduino 보드가 직렬 포트로 보낸 각도 값 distance=data.substring(index1+1, data.length()); // "index1" 위치에서 데이터 끝까지 데이터 읽기 pr thats the distance of the distance // String 변수를 Integer로 변환 iAngle =int(angle); iDistance =int(distance);} 무효 drawRadar() { pushMatrix(); 번역(너비/2, 높이-높이*0.074); // 시작 좌표를 새 위치로 이동합니다. noFill(); 스트로크 무게(2); 뇌졸중(98,245,31); // 호 선을 그립니다. arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI); 호(0,0,(너비-너비*0.27),(너비-너비*0.27),PI,TWO_PI); 호(0,0,(너비-너비*0.479),(너비-너비*0.479),PI,TWO_PI); 호(0,0,(너비 너비*0.687),(너비 너비*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))); 라인((-너비/2)*cos(라디안(30)),0,너비/2,0); popMatrix();}무효 drawObject() { pushMatrix(); 번역(너비/2, 높이-높이*0.074); // 시작 좌표를 새 위치로 이동합니다. strokeWeight(9); 뇌졸중(255,10,10); // 빨간색 pixsDistance =iDistance*((height-height*0.1666)*0.025); // 센서에서 cm에서 픽셀까지의 거리를 커버 // 범위를 40 cms로 제한 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();}무효 drawLine() { pushMatrix(); 스트로크 무게(9); 뇌졸중(30,250,60); 번역(너비/2, 높이-높이*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 ="범위를 벗어남"; } else { noObject ="범위 내"; } 채우기(0,0,0); 노스트로크(); rect(0, 높이-높이*0.0648, 너비, 높이); 채우기(98,245,31); 텍스트 크기(25); text("2cm",너비-너비*0.3854,높이-높이*0.0833); text("4cm",너비-너비*0.281,높이-높이*0.0833); text("6cm",너비-너비*0.177,높이-높이*0.0833); text("10cm",너비-너비*0.0729,높이-높이*0.0833); 텍스트 크기(40); text("Akshay6766 ", 너비-너비*0.875, 높이-높이*0.0277); text("각도:" + iAngle +" ", 너비-너비*0.48, 높이-높이*0.0277); text("거리:", 너비-너비*0.26, 높이-높이*0.0277); if(iDistance<40) { text(" " + iDistance +" cm", 너비-너비*0.225, 높이-높이*0.0277); } 텍스트 크기(25); 채우기(98,245,60); 번역((너비-너비*0.4994)+너비/2*cos(라디안(30)),(높이-높이*0.0907)-너비/2*sin(라디안(30))); 회전(-라디안(-60)); 텍스트("30",0,0); 리셋매트릭스(); 번역((너비-너비*0.503)+너비/2*cos(라디안(60)),(높이-높이*0.0888)-너비/2*sin(라디안(60))); 회전(-라디안(-30)); 텍스트("60",0,0); 리셋매트릭스(); 번역((너비-너비*0.507)+너비/2*cos(라디안(90)),(높이-높이*0.0833)-너비/2*sin(라디안(90))); 회전(라디안(0)); 텍스트("90",0,0); 리셋매트릭스(); 번역(너비-너비*0.513+너비/2*cos(라디안(120)),(높이-높이*0.07129)-너비/2*sin(라디안(120))); 회전(라디안(-30)); 텍스트("120",0,0); 리셋매트릭스(); 번역((폭-너비*0.5104)+너비/2*cos(라디안(150)),(높이-높이*0.0574)-너비/2*sin(라디안(150))); 회전(라디안(-60)); 텍스트("150",0,0); 팝매트릭스(); }

    회로도


    제조공정

    1. TinyML-Language Detector 기반 Edge Impulse 및 Arduino
    2. MPU-6050을 사용한 Arduino 자이로스코프 게임
    3. Arduino 디지털 주사위
    4. 아이언맨
    5. 나를 찾기
    6. Arduino 가습기 제어
    7. arduino를 사용한 소나 및 IDE 처리 시 표시
    8. MobBob:Android 스마트폰으로 제어되는 DIY Arduino 로봇
    9. Arduino Audio Reactive Desk Light
    10. NeoMatrix Arduino Pong