본문 바로가기

아두이노

블루투스 센서와 터치 센서를 결합한 스마트 데스크 램프

반응형

블루투스 센서와 터치 센서를 결합한 스마트 데스크 램프를 만들기 위한 아두이노 코딩 가이드를 아래와 같이 제공합니다. 이 프로젝트는 블루투스를 통해 스마트폰 앱에서 램프를 제어하고, 터치 센서로 램프를 켜고 끄는 기능을 포함합니다.

 

1. 이론 소개:

이 프로젝트의 목표는 블루투스 통신을 사용하여 스마트폰 앱을 통해 아두이노로 데스크 램프를 켜고 끌 수 있도록 하는 것입니다. 터치 센서를 사용하여 손으로도 제어할 수 있습니다.

 

2. 준비물:

  • 아두이노 보드 (예: Arduino Uno 또는 Arduino Nano)
  • 블루투스 모듈 (HC-05 또는 HC-06)
  • 터치 센서 모듈 (예: TTP223)
  • LED 데스크 램프 또는 LED 스트립
  • 저항 (220 옴)
  • 브레드보드 및 점퍼 와이어
  • 스마트폰에 블루투스를 사용할 수 있는 애플리케이션 (예: Bluetooth Terminal)

3. 회로 구성:

터치 센서 모듈의 VCC 핀을 아두이노 5V에 연결하고, GND 핀을 아두이노 GND에 연결합니다. OUT 핀은 아두이노 디지털 핀 2에 연결합니다. 블루투스 모듈은 시리얼 통신용으로 아두이노의 RX와 TX 핀에 연결합니다.

 

4. 코딩 내용:

아래는 아두이노 코드 예제입니다. 코드에는 주석을 포함하여 자세한 설명이 있습니다.

 

#include <SoftwareSerial.h>

// 블루투스 모듈 RX, TX 핀 설정
SoftwareSerial bluetooth(2, 3); // RX, TX

// 터치 센서 핀 설정
const int touchSensorPin = 2;

// LED 램프 핀 설정
const int lampPin = 13; // 내장 LED 핀

bool lampState = false; // 램프 상태

void setup() {
  pinMode(lampPin, OUTPUT);
  pinMode(touchSensorPin, INPUT);
  digitalWrite(lampPin, LOW); // 램프 초기 상태: 꺼짐
  bluetooth.begin(9600); // 블루투스 모듈 초기화
}

void loop() {
  // 터치 센서 감지
  if (digitalRead(touchSensorPin) == HIGH) {
    // 터치 센서를 터치하면 램프 상태 변경
    lampState = !lampState;
    if (lampState) {
      digitalWrite(lampPin, HIGH); // 램프 켜기
    } else {
      digitalWrite(lampPin, LOW); // 램프 끄기
    }
  }

  // 블루투스 통신을 통해 램프 제어
  if (bluetooth.available() > 0) {
    char command = bluetooth.read();
    if (command == '1') {
      digitalWrite(lampPin, HIGH); // 램프 켜기
      lampState = true;
    } else if (command == '0') {
      digitalWrite(lampPin, LOW); // 램프 끄기
      lampState = false;
    }
  }
}

 

 

5. 코드 업로드 및 테스트:

  • 위의 코드를 아두이노 IDE에 복사하고 아두이노에 업로드합니다.
  • 스마트폰 앱을 사용하여 블루투스 모듈과 연결하고, 램프를 터치 또는 앱을 통해 제어합니다.

6. 응용 업그레이드:

  • 프로젝트를 확장하여 더 많은 램프나 LED 스트립을 제어하거나, 더 복잡한 블루투스 기능을 추가할 수 있습니다.

7. 전문용어 및 설명:

  • 블루투스 모듈: 무선 통신을 위한 모듈로, 블루투스 기기 간 데이터 통신을 가능하게 합니다.
  • 터치 센서: 손 또는 다른 물체의 접촉을 감지하여 신호를 출력하는 센서입니다.
  • 시리얼 통신: 데이터를 비트 단위로 직렬로 전송하는 통신 방식입니다.
반응형