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

백팩 알람

구성품 및 소모품

Arduino UNO
× 1
Adafruit 3축 가속도계+자력계(나침반) 보드 - LSM303
× 1
SparkFun 대형 피에조 알람 - 3kHz
× 1
9V 배터리(일반)
× 1
6.35mm 암 오디오 잭(전환됨)
선택 사항
× 1
6.35mm 오디오 플러그
선택 사항
× 1
남성/여성 점퍼 와이어
× 1
9V 대 배럴 잭 커넥터
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

배낭 알람의 필요성을 느낀 적이 있습니까? 배낭을 메고 공공 장소에 앉아 누군가가 가방을 훔칠까 두려웠던 적이 있습니까? 그렇다면 이것이 바로 당신을 위한 프로젝트입니다!

이 프로젝트는 LSM303 나침반/가속도계를 사용하여 배낭이 움직일 때 경보를 울립니다. 나침반을 이용하여 방향을 모니터링하고, 10도 이상의 움직임이 있을 때 알람을 울립니다.

1단계:Arduino 연결

다음과 같이 LSM303 브레이크아웃 보드를 Arduino에 연결합니다.

<울>
  • SDA - SDA
  • SDL - SDL
  • VIN - 5v
  • GND - GND
  • 자세한 내용은 Adafruit의 가이드를 확인하세요.

    다음과 같이 피에조 부저를 Arduino에 연결합니다.

    <울>
  • 13번 핀에 +
  • - GND로
  • 2단계:라이브러리 설치

    Adafruit_LSM303DLHC 라이브러리 및 Adafruit_Sensor 라이브러리를 zip 파일로 다운로드합니다.

    아두이노 IDE를 엽니다. 없으시다면 여기에서 다운로드하세요.

    스케치> 라이브러리 포함> 추가.ZIP 라이브러리...

    로 이동합니다.

    그런 다음 이전에 다운로드한 .ZIP 파일을 찾아 선택합니다.

    3단계:Arduino 프로그래밍

    Arduino IDE를 열고 새 파일을 만듭니다. 이미 있는 모든 것을 삭제하고 다음 코드를 붙여넣습니다.

    // 라이브러리 포함 #include #include #include #include // 감도 조정 const int sens =10;/ / 동시에 이 센서에 고유 ID 할당 Adafruit_LSM303_Mag_Unified mag =Adafruit_LSM303_Mag_Unified(12345);void setup(void) { //디버깅용 //Serial.begin(9600); //Serial.println("시작 중..."); // 13번 핀 설정 pinMode(13, OUTPUT); // 센서 초기화 if(!mag.begin()) { // LSM303을 감지하는 데 문제가 있었습니다 ... 연결을 확인하십시오 digitalWrite(13, HIGH); 지연(500); 디지털 쓰기(13, 낮음); 지연(500); 디지털 쓰기(13, 높음); 지연(500); 디지털 쓰기(13, 낮음); 지연(500); 동안(1); } // 5초 기다림 delay(5000); // 시작 시 경고 digitalWrite(13, HIGH); 지연(500); digitalWrite(13, LOW);}// 센서 값을 가져오는 함수 int getDeg(void){ // 새 센서 이벤트 가져오기 sensor_event_t event; mag.getEvent(&event); 부동 파이 =3.14159; // 벡터 y,x의 각도 계산 float 헤딩 =int((atan2(event.magnetic.y,event.magnetic.x) * 180) / Pi); // 0-360으로 정규화 if (heading <0) { 제목 =360 + 제목; } return header;}void loop(void) { // 센서 값 가져오기 int oldDeg =getDeg(); 지연(1000); int newDeg =getDeg(); if (newDeg <(oldDeg-sens) &&oldDeg !=0 &&newDeg !=0) { // 알람을 울립니다. digitalWrite(13, HIGH); // 디버깅용 //Serial.println("Triggered"); //Serial.println(""); }else if (newDeg> (oldDeg+sens) &&oldDeg!=0 &&newDeg !=0) { // 알람을 울립니다. digitalWrite(13, HIGH); // 디버깅용 //Serial.println("Triggered"); //Serial.println(""); } // 디버깅용 //Serial.print("New:"); //Serial.println(newDeg); //Serial.print("이전:"); //Serial.println(oldDeg); //Serial.println("");} 

    Arduino를 연결한 다음 코드를 컴파일하고 업로드하세요.

    4단계:테스트해 보세요!

    모든 작업을 올바르게 수행했다면 Arduino의 재설정 버튼을 누른 후 경고음이 몇 번 울리고 3초 동안 침묵이 흐른 다음 더 긴 경고음이 울릴 것입니다. LSM303 브레이크아웃을 돌리면 알람이 켜지는 소리가 들릴 것입니다. 센서가 너무 민감한 경우 상단 근처의 코드에서 'sens' 변수를 늘리십시오. 감도를 높이려면 'sens' 변수를 줄이십시오.

    3초가 지연되기 전에 긴 경고음이 2번 울리면 배선에 문제가 있는 것입니다. 모든 연결을 확인하십시오.

    작동하지 않는 것 같으면 라이브러리 이름이 제대로 지정되지 않았을 수 있습니다. 코드에서 처음에 '#include' 문을 제거합니다. 그런 다음 Sketch> Include Library로 이동하여 'Wire', 'Adafruit LSM303DLHC' 및 'Adafruit Unified Sensor' 라이브러리를 선택합니다. 그래도 작동하지 않으면 근처에 강한 자기장이 없는지 확인하십시오. 다른 방으로 가거나 바깥으로 가십시오. 또한 브레이크아웃 보드가 어느 정도 수평을 이루고 지면과 평행을 이루는지 확인합니다.

    5단계:키 추가

    이제 작업 중인 프로젝트가 있어야 합니다. Arduino의 배럴 잭에 9v 배터리를 꽂고 배낭에 장착하기만 하면 됩니다. 그러나 알람을 활성화/해제할 때마다 배터리를 뽑았다가 다시 꽂는 것은 다소 성가신 일입니다. 6.35mm 오디오 잭이 작동하는 곳입니다. 대부분의 사람들이 헤드폰에 사용하는 3.5mm 잭 대신 6.35mm 잭을 사용하면 보안이 강화됩니다. 그러나 대신 사용하려는 키 스위치나 다른 스위치가 있는 경우 자유롭게 사용하십시오.

    어쨌든 키를 추가하려면 배터리와 DC 배럴 잭 사이에 스위치/키를 연결하십시오.

    이 중 하나가 있으면 와이어 중 하나를 자르고 필요한 경우 연장 와이어를 추가하고 스위치를 추가하십시오. 제 경우에는 단자대 배럴 잭이 있어서 그걸로 배선을 했습니다. 나는 보안에 대해 크게 걱정하지 않기 때문에 내 키는 단순한 토글 스위치이지만 창의력을 발휘할 수 있습니다. 리드 스위치와 마그넷, RFID, 어쩌면 스마트폰 앱도 사용해보세요!

    6단계:마운트!

    축하 해요! 이제 키가 있는 완벽하게 작동하는 알람이 있습니다. 이제 배낭에 장착하기만 하면 됩니다. 측면에 부저용 구멍과 열쇠 구멍용 구멍을 하나씩 자릅니다. 집타이를 사용했지만 더 영구적인 솔루션을 사용할 수 있습니다. 센서가 지면과 다소 평행하게 장착되고 부저의 구멍이 막히지 않도록 하십시오.

    더 나아가기

    이 알람은 배낭에만 국한되지 않습니다. 문, 쿠키 병, 냉장고 또는 보호하려는 모든 것에 추가하십시오. 가능성은 무한합니다!

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

    코드

    <울>
  • 코드
  • 코드Arduino
    Arduino 코드
    // 라이브러리 포함 #include #include #include #include // 감도 조정 const int sens =10;// 동시에 이 센서에 고유 ID를 할당합니다. Adafruit_LSM303_Mag_Unified mag =Adafruit_LSM303_Mag_Unified(12345);void setup(void) { //디버깅용 //Serial.begin(9600); //Serial.println("시작 중..."); // 13번 핀 설정 pinMode(13, OUTPUT); // 센서 초기화 if(!mag.begin()) { // LSM303을 감지하는 데 문제가 있었습니다 ... 연결을 확인하십시오 digitalWrite(13, HIGH); 지연(500); 디지털 쓰기(13, 낮음); 지연(500); 디지털 쓰기(13, 높음); 지연(500); 디지털 쓰기(13, 낮음); 지연(500); 동안(1); } // 5초 기다림 delay(5000); // 시작 시 경고 digitalWrite(13, HIGH); 지연(500); digitalWrite(13, LOW);}// 센서 값을 가져오는 함수 int getDeg(void){ // 새 센서 이벤트 가져오기 sensor_event_t event; mag.getEvent(&event); 플로트 파이 =3.14159; // 벡터 y,x의 각도 계산 float 헤딩 =int((atan2(event.magnetic.y,event.magnetic.x) * 180) / Pi); // 0-360으로 정규화 if (heading <0) { 제목 =360 + 제목; } return header;}void loop(void) { // 센서 값 가져오기 int oldDeg =getDeg(); 지연(1000); 정수 newDeg =getDeg(); if (newDeg <(oldDeg-sens) &&oldDeg !=0 &&newDeg !=0) { // 알람을 울립니다. digitalWrite(13, HIGH); //디버깅용 //Serial.println("Triggered"); //Serial.println(""); }else if (newDeg> (oldDeg+sens) &&oldDeg!=0 &&newDeg !=0) { // 알람을 울립니다. digitalWrite(13, HIGH); //디버깅용 //Serial.println("Triggered"); //Serial.println(""); } //디버깅용 //Serial.print("New:"); //Serial.println(newDeg); //Serial.print("이전:"); //Serial.println(oldDeg); //Serial.println("");}

    회로도

    나침반:
    파란색 - SDA
    노란색 - SDL
    블랙 - 접지
    레드 - VIN

    제조공정

    1. 고장 방지 설계
    2. 동작 센서, 알람, Raspberry Pi의 HA에서 비디오 녹화
    3. t cobbler plus가 포함된 라즈베리 파이 2 물 경보기
    4. 움직임 감지 경보 시스템
    5. 구르는 알람 로봇
    6. 갈증 경보 식물 알람
    7. Arduino 알람 시스템:SERENA
    8. 경보 시스템 보안 테스트
    9. 알람, LCD 및 온도가 있는 초음파 센서
    10. DS1302 RTC가 있는 간단한 알람 시계