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

아두이노와 LSM303 나침반으로 만드는 DIY 백팩 도난 경보기

부품 및 소모품

아두이노 우노 (Arduino UNO) 1개
아다프루트 LSM303 트리플 축 가속도계+자력계 (나침반) 보드 1개
스파크펀 대형 피에조 알람 - 3kHz 1개
9V 배터리 (일반) 1개
6.35mm 암 오디오 잭 (스위치 내장형) 1개 (선택)
6.35mm 오디오 플러그 1개 (선택)
수/암 점퍼 와이어 1세트
9V 배럴 잭 커넥터 1개

앱 및 온라인 서비스

아두이노 IDE 링크

프로젝트 개요

공공장소에 백팩을 두고 자리를 비울 때 도난이 걱정된 적 있으신가요? 이 프로젝트가 해결책입니다!

LSM303 나침반/가속도계를 사용해 백팩이 움직이면 알람을 울립니다. 나침반으로 방향을 모니터링하다가 10도 이상 회전이 감지되면 경보음이 울립니다.

1단계: 아두이노 배선

LSM303 브레이크아웃 보드 연결:

상세 내용은 아다프루트 가이드 참조.

피에조 부저 연결:

아두이노와 LSM303 나침반으로 만드는 DIY 백팩 도난 경보기

2단계: 라이브러리 설치

  1. Adafruit_LSM303DLHC 라이브러리와 Adafruit_Sensor 라이브러리를 ZIP 파일로 다운로드
  2. 아두이노 IDE 열기 (없으면 여기서 다운로드)
  3. 스케치 → 라이브러리 포함 → .ZIP 라이브러리 추가... 클릭
  4. 아두이노와 LSM303 나침반으로 만드는 DIY 백팩 도난 경보기
  5. 다운로드한 ZIP 파일 2개 선택
  6. 아두이노와 LSM303 나침반으로 만드는 DIY 백팩 도난 경보기

3단계: 아두이노 프로그래밍

아두이노 IDE 새 파일에 아래 코드 붙여넣기 후 컴파일/업로드:

// 라이브러리 포함
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM303_U.h>
#include <Adafruit_LSM303.h>

// 감도 조절 (도 단위)
const int sens = 10;

// 센서 고유 ID 부여
Adafruit_LSM303_Mag_Unified mag = Adafruit_LSM303_Mag_Unified(12345);

void setup(void) {
  // 디버깅용 시리얼 (주석 처리됨)
  // Serial.begin(9600);
  // Serial.println("Starting...");

  // 핀 13 설정 (부저 겸용)
  pinMode(13, OUTPUT);

  // 센서 초기화
  if(!mag.begin()) {
    // LSM303 감지 실패 시 LED 점멸 후 정지
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    while(1);
  }

  // 5초 대기 (센서 안정화)
  delay(5000);

  // 시작 알림 비프
  digitalWrite(13, HIGH); delay(500);
  digitalWrite(13, LOW);
}

// 방향 각도 읽기 (0-360도)
int getDeg(void) {
  sensors_event_t event;
  mag.getEvent(&event);
  float Pi = 3.14159;
  // 자력계 Y, X 성분으로 방위각 계산
  float heading = int((atan2(event.magnetic.y, event.magnetic.x) * 180) / Pi);
  // 0-360 정규화
  if (heading < 0) heading = 360 + heading;
  return heading;
}

void loop(void) {
  int oldDeg = getDeg();
  delay(1000);
  int newDeg = getDeg();

  // 10도 이상 변화 감지 시 알람
  if (newDeg < (oldDeg - sens) && oldDeg != 0 && newDeg != 0) {
    digitalWrite(13, HIGH); // 알람 ON
    // Serial.println("Triggered");
  } else if (newDeg > (oldDeg + sens) && oldDeg != 0 && newDeg != 0) {
    digitalWrite(13, HIGH); // 알람 ON
    // Serial.println("Triggered");
  }

  // 디버깅용 출력 (주석 처리됨)
  // Serial.print("New:"); Serial.println(newDeg);
  // Serial.print("Old:"); Serial.println(oldDeg);
  // Serial.println();
}

4단계: 테스트

리셋 버튼 누르면 비프음 → 3초 정적 → 긴 비프음 순으로 울립니다. LSM303 보드를 돌리면 알람이 울려야 합니다. 너무 예민하면 sens 값 증가, 둔하면 감소시키세요.

시작 시 긴 비프 2번이면 배선 문제. 연결 확인하세요. 작동 안 하면 라이브러리 이름 문제일 수 있습니다. #include 줄 지우고 스케치 → 라이브러리 포함에서 'Wire', 'Adafruit LSM303DLHC', 'Adafruit Unified Sensor' 직접 선택해보세요. 강한 자기장 근처면 다른 장소로 이동, 보드가 수평/지면과 평행한지 확인하세요.

5단계: 키(무장/해제 스위치) 추가

9V 배터리를 매번 꽂다 빼는 건 번거로우니 6.35mm 오디오 잭을 키로 활용합니다. 3.5mm 잭은 이어폰 플러그로 해제 가능해 보안상 취약하지만 6.35mm는 전용 플러그 필요로 보안성 향상. 키드 스위치나 리드 스위치+자석, RFID, 스마트폰 앱 등 창의적 대체도 가능.

배터리와 DC 배럴 잭 사이에 스위치/잭을 직렬 연결하세요.

아두이노와 LSM303 나침반으로 만드는 DIY 백팩 도난 경보기

터미널 블록 배럴 잭 사용 시 한 선 잘라 연장선 연결 후 스위치 삽입. 저는 간단히 토글 스위치 사용했지만 원하는 방식 적용하세요.

6단계: 백팩 장착

축하합니다! 이제 완전히 작동하는 키 방식 경보기가 완성되었습니다. 9V 배터리 연결해 백팩에 장착하세요. 부저 구멍과 키홀 구멍 뚫고 케이블 타이나 영구 고정 방식으로 장착. 센서는 지면과 평행하게, 부저 구멍은 막히지 않게 주의.

아두이노와 LSM303 나침반으로 만드는 DIY 백팩 도난 경보기
아두이노와 LSM303 나침반으로 만드는 DIY 백팩 도난 경보기
아두이노와 LSM303 나침반으로 만드는 DIY 백팩 도난 경보기

더 나아가기

이 알람은 백팩뿐 아니라 문, 쿠키 항아리, 냉장고 등 지키고 싶은 모든 것에 적용 가능합니다. 가능성은 무한합니다!

코드

아두이노 코드
// Include Libraries
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM303_U.h>
#include <Adafruit_LSM303.h>

// Adjust the sensitivity
const int sens = 10;

// Assign a unique ID to this sensor at the same time
Adafruit_LSM303_Mag_Unified mag = Adafruit_LSM303_Mag_Unified(12345);

void setup(void) {
  pinMode(13, OUTPUT);
  if(!mag.begin()) {
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    while(1);
  }
  delay(5000);
  digitalWrite(13, HIGH); delay(500);
  digitalWrite(13, LOW);
}

int getDeg(void){
  sensors_event_t event;
  mag.getEvent(&event);
  float Pi = 3.14159;
  float heading = int((atan2(event.magnetic.y,event.magnetic.x) * 180) / Pi);
  if (heading < 0) { heading = 360 + heading; }
  return heading;
}

void loop(void) {
  int oldDeg = getDeg();
  delay(1000);
  int newDeg = getDeg();
  if (newDeg < (oldDeg-sens) && oldDeg != 0 && newDeg != 0) {
    digitalWrite(13, HIGH);
  }else if (newDeg > (oldDeg+sens) && oldDeg!= 0 && newDeg != 0) {
    digitalWrite(13, HIGH);
  }
}

회로도

나침반 연결:
파랑 - SDA
노랑 - SCL
검정 - GND
빨강 - VIN

아두이노와 LSM303 나침반으로 만드는 DIY 백팩 도난 경보기

제조공정

  1. 안전성과 신뢰성을 위한 페일-세이프 제어 시스템 설계
  2. 라즈베리 파이 Home Assistant로 안전한 홈 모니터링: 모션, 알람, 비디오 캡처
  3. Adafruit T-코블러 플러스로 헤드리스 라즈베리 파이 2 물 감지 알람 만들기
  4. 자바 & Reactive Blocks로 모션 감지 알람 시스템 – 라즈베리 파이 배포 및 SMS 전송
  5. 구르는 알람 로봇: 라즈베리 파이와 구글 캘린더 연동 스마트 모바일 기상 시스템
  6. 스마트 식물 갈증 알림기 – DIY 토양 수분 센서로 최적의 수분 관리
  7. SERENA: TFT LCD 터치스크린 탑재 아두이노 메가 2560 커스텀 알람 시스템
  8. 아두이노와 RF 모듈로 경보 시스템 보안 평가하기
  9. 아두이노 초음파 거리 & 온도 모니터링 LCD 알람 시스템
  10. DS1302 RTC와 아두이노 우노로 만드는 신뢰할 수 있는 알람 시계