블루투스 연결로 스마트 홈 자동화 구현
부품 및 소모품
| 부품 | 비고 | 수량 |
| 아두이노 우노 | | 1 |
| 릴레이 모듈 (일반) | | 1 |
| 블루투스 저전력 (BLE) 모듈 (일반) | | 1 |
| 전구 | | 1 |
필요한 도구 및 기계
앱 및 온라인 서비스
프로젝트 소개
회로 설계
아두이노와 블루투스 기반 홈 오토메이션 회로 설계는 매우 간단하며 아래와 같이 설명됩니다. 블루투스 모듈은 VCC, TX, RX, GND 4핀을 가집니다. VCC와 GND는 아두이노 우노의 5V와 그라운드에 연결됩니다. 블루투스 모듈은 3.3V로 작동하며 온보드 5V→3.3V 레귤레이터가 있습니다. 블루투스 모듈의 TX와 RX 핀은 아두이노의 RX와 TX 핀에 연결해야 합니다. 블루투스 RX를 아두이노 TX에 연결할 때(또는 어떤 마이크로컨트롤러든) 주의할 점은 이 핀이 3.3V만 견딘다는 것입니다. 아두이노 TX에서 나오는 전압은 5V입니다. 따라서 10K와 20K 저항으로 구성된 전압 분배 네트워크를 사용하여 전압을 약 3.3V로 낮춥니다.
작동 원리
전원을 켜면 블루투스 모듈의 연결 LED가 깜빡입니다. 스마트폰에서 "Bluetooth Controller" 앱을 시작하고 블루투스 모듈과 연결합니다. 페어링이 성공하면 LED가 안정적으로 켜집니다. 이제 앱에서 각 부하에 대한 다른 키와 키 누름 시 전송할 해당 값을 설정합니다. 다음 이미지는 4개 부하를 제어하는 키 세트와 모든 부하를 끄는 추가 키를 보여줍니다.
앱 다운로드 링크: Google Drive
코드
코드 (아두이노)
#include <SoftwareSerial.h>
SoftwareSerial BT(0, 1); // 아두이노 TX, RX 핀
String command;
void setup() {
BT.begin(9600);
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
while (BT.available()) {
delay(10); // 안정화 지연
char c = BT.read();
command += c; // 문자열 구성
}
if (command.length() > 0) {
Serial.println(command);
if (command == "light on") { // 조명 1 켜기
digitalWrite(2, HIGH);
} else if (command == "light off") { // 조명 1 끄기
digitalWrite(2, LOW);
} else if (command == "lamp on") { // 램프 켜기
digitalWrite(3, HIGH);
} else if (command == "lamp off") { // 램프 끄기
digitalWrite(3, LOW);
} else if (command == "fan on") { // 선풍기 켜기
digitalWrite(4, HIGH);
} else if (command == "fan off") { // 선풍기 끄기
digitalWrite(4, LOW);
} else if (command == "open") { // 열기 (릴레이 4)
digitalWrite(4, HIGH);
} else if (command == "lock") { // 잠금 (릴레이 4)
digitalWrite(4, LOW);
} else if (command == "all on") { // 모든 장치 켜기
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
} else if (command == "off") { // 모든 장치 끄기
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
command = ""; // 변수 초기화
}
}
회로도