메뉴 전체보기

회원메뉴

Arduino 스마트 홈 시스템 > 게시판

본문 바로가기

쇼핑몰 검색

NO. 3211
제목 : Arduino 스마트 홈 시스템
2026-09-10 10:57

소개: Arduino 스마트 홈 시스템


이 프로젝트에서는 움직임을 감지하고 휴대폰으로 알림을 보내며, 자동문과 자동 조명도 작동시킬 수 있는 Arduino 기반 스마트 홈 시스템을 설계하고 제작했습니다. 목표는 전자공학, 코딩 및 회로 제작 능력을 키우면서 실용적인 시스템을 만드는 것이었습니다. Arduino와 센서, LED, 서보 및 코딩을 조합하여 이 시스템은 특정 영역을 모니터링하고 활동이 감지되면 명확한 경고를 제공할 수 있습니다. 이 페이지에서는 부품, 배선, 코드 및 최종 조립을 포함하여 시스템을 설계하고 제작하고 프로그래밍하고 테스트한 과정을 설명합니다.


학생인 관계로 자원에 대한 접근이 제한되어 실제로 사용될 만한 적절한 부품을 사용할 수 없었습니다. 서보는 자동문을, LED는 조명을 나타냅니다. 이것은 단지 프로젝트일 뿐이며, LED는 방을 밝히기에는 너무 어둡고 서보는 문을 움직이기에는 너무 약하기 때문에 집에 적용해도 작동하지 않습니다.


안전

이 프로젝트의 안전을 위해 개인정보 보호에 주의해야 합니다. Blynk 인증 토큰이나 템플릿 이름 및 ID(이 내용은 뒤에서 설명합니다)를 공유하면 다른 사람이 시스템에 접근할 수 있기 때문입니다. 또 다른 안전상의 우려 사항은 LED를 연결할 때 저항을 사용하지 않으면 단락이 발생하여 LED가 깨질 수 있고 매우 높은 온도에 도달할 수 있다는 것입니다.




STEP 1. 준비물


재료 목록

전자 부품

  1. Arduino ESP32 (1개)
  2. ESP32 브레이크아웃 보드 (1개)
  3. 점퍼 와이어(암-암) (8개)
  4. 저항(220Ω 1개, 10KΩ 1개)
  5. LDR(광 의존성 저항) (1개)
  6. LED (1개)
  7. PIR 센서 (1개)
  8. 서보 모터 (1개)
  9. USB C 타입 데이터 케이블(컴퓨터 연결용) (1개)
  10. USB 어댑터(필요한 경우) (1개)

도구

  1. Arduino IDE 소프트웨어가 설치된 컴퓨터




STEP 2. ESP32 연결


ESP32 연결


ESP32를 브레이크아웃 보드에 장착하고 USB 데이터 케이블을 사용하여 컴퓨터에 연결하세요.

ESP32는 스마트 홈 보안 시스템의 주요 컨트롤러로 작동하며 Wi-Fi를 통해 휴대폰 또는 노트북의 Blynk 앱과 통신합니다(작동하려면 두 장치가 모두 같은 네트워크에 연결되어 있어야 합니다).




STEP 3. PIR 모션 센서 연결


PIR 모션 센서 연결


(PIR 핀>ESP32 핀)

VCC>5V

GND>GND

OUT>GPIO 4

PIR 센서는 움직임을 감지하고 GPIO 4로 신호를 보냅니다.




STEP 4. 서보 모터 연결


서보 모터 연결


(서보 와이어>ESP32 핀)

빨간색(전원)>5V

갈색/검은색(접지)>GND

주황색/노란색(신호)>GPIO 13

시스템이 홈 모드에 있을 때 움직임이 감지되면 서보가 90º 회전하여 문을 열고, 더 이상 움직임이 감지되지 않으면 잠시 후 원래 위치로 돌아옵니다.




STEP 5. LDR(광 센서) 연결


LDR(광 센서) 연결


(부품>ESP32 핀)

LDR 출력>GPIO 34

LDR 출력>3.3V 또는 5V(회로에 따라 다름)

LDR 출력>10KΩ 저항>GND

LDR은 ESP32가 LDR에서 전달되는 저항을 계산하도록 하여 집 안의 빛의 세기를 측정합니다.

ESP32는 GPIO 34에서 빛(저항) 값을 지속적으로 읽습니다.




STEP 6. LED 연결


LED 연결


(LED 연결>ESP32 핀)

양극 다리>220Ω 저항>GPIO 26

음극 다리>GND

방이 어두워지면 LED가 자동으로 켜집니다.




STEP 7. 최종 핀 구성


최종 핀 구성


(부품>ESP32 핀)

PIR 센서 출력>GPIO 4

서보 신호>GPIO 13

LED>220Ω 저항>GPIO 26

LDR 출력>GPIO 34

PIR VCC>5V

서보 VCC>5V

LDR 출력>5V

PIR GND>GND

서보 GND>GND

LED GND>GND

LDR 출력>10KΩ 저항>GND




STEP 8. Blynk 구성


Blynk 구성


Blynk 구성


  1. 컴퓨터나 휴대폰에서 Blynk의 새 템플릿을 만드세요(개인적으로는 컴퓨터가 훨씬 편했습니다).
  2. V0에 정수 범위가 0–1인 Virtual Pin 데이터 스트림을 만드세요.
  3. 대시보드에 Switch 위젯을 추가하고 V0에 연결하세요. OFF = 홈 모드, ON = 외출 모드로 설정하세요.
  4. motion_alert라는 Blynk 이벤트를 만들고 해당 이벤트의 알림을 활성화하세요(이 단계에서는 Blynk의 알림을 허용해야 하므로 휴대폰이 필요할 수 있습니다).
  5. Security System 템플릿을 사용해 디바이스를 만든 다음, Blynk Authority Token, Template Name, Template ID를 복사하여 Arduino 코드의 해당 항목에 붙여 넣으세요.



ESP32에 코드를 업로드하면 Blynk 대시보드에서 홈 모드와 외출 모드 사이를 전환할 수 있습니다. 외출 모드에서는 PIR이 움직임을 감지할 경우 ESP32가 Blynk를 통해 움직임 알림을 전송하고, 홈 모드에서는 서보가 감지된 움직임에 반응합니다.




STEP 9. 프로그램 업로드


다음 코드를 ESP32에 업로드하세요:

Blynk template ID, name, Auth Token과 WiFi SSID 및 이름을 붙여 넣었는지 확인하세요.

#define BLYNK_TEMPLATE_ID "paste template id"
#define BLYNK_TEMPLATE_NAME "paste template name"
#define BLYNK_AUTH_TOKEN "paste auth-token"
#define BLYNK_PRINT Serial

#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <ESP32Servo.h>

Servo myServo;

int pirPin = 4;
int ledPin = 26;
int ldrPin = 34;
int lightThreshold = 3500;

char ssid[] = "enter wifi ssid";
char pass[] = "enter wifi password";
char auth[] = BLYNK_AUTH_TOKEN;

#define AWAY_MODE_VPIN V0
bool awayMode = false;

BLYNK_CONNECTED() {
Serial.println(">>> Blynk connected!");
}

BLYNK_WRITE(AWAY_MODE_VPIN) {
awayMode = param.asInt();
Serial.print(">>> Away mode changed to: ");
Serial.println(awayMode ? "ON" : "OFF");
}

void setup() {
Serial.begin(9600);

pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);

myServo.attach(13);
myServo.write(0);

Serial.println(">>> Connecting to Blynk...");
Blynk.begin(auth, ssid, pass);

Serial.println(">>> Warming up PIR...");
delay(30000);
Serial.println(">>> Ready!");
}

void loop() {
if (!Blynk.connected()) {
Blynk.connect();
}

Blynk.run();

int motion = digitalRead(pirPin);

if (motion == HIGH) {
Serial.println(">>> MOTION DETECTED");

if (awayMode) {
Serial.println(">>> Away mode is ON - sending notification...");
Blynk.logEvent("motion_alert", "Motion detected while you're away!");
Serial.println(">>> logEvent called!");
delay(10000);
} else {
myServo.write(90);
}

} else {
myServo.write(0);
}

int lightValue = analogRead(ldrPin);

Serial.print("Light: ");
Serial.println(lightValue);

if (lightValue < lightThreshold) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}

delay(100);
}





STEP 10. 시스템 작동


시스템 작동


시스템 작동


홈 모드

  1. PIR 센서가 움직임을 감지합니다.
  2. ESP32가 GPIO 4를 읽습니다.
  3. GPIO 13에 연결된 서보가 90° 회전합니다.
  4. 움직임이 감지되지 않으면 서보가 0°로 돌아갑니다.
  5. 알림은 전송되지 않습니다.

외출 모드

  1. PIR 센서가 움직임을 감지합니다.
  2. ESP32가 GPIO 4를 읽습니다.
  3. 다음을 사용하여 Blynk 알림이 전송됩니다:
Blynk.logEvent("motion_alert", "Motion detected while you're away!");
  1. 서보는 움직이지 않습니다.

자동 조명

  1. GPIO 34에 연결된 LDR이 광도를 측정합니다.
  2. ESP32가 측정값을 임계값 3500과 비교합니다.
  3. 측정값이 3500 미만이면 GPIO 26의 LED가 켜집니다.
  4. 측정값이 3500 초과이면 LED가 꺼집니다.

원문: https://www.instructables.com/Arduino-Smart-Home-System-1/

좋아요 0
게시판

회사명 공방유니언 주소 각 공방 주소 참조
사업자 등록번호 0000 대표 공방유니언 전화 019-60105846 팩스 0000 이메일 gongbangunion@gmail.com
통신판매업신고번호 0000 개인정보관리책임자 공방유니언
Copyright © 2017 공방유니언. All Rights Reserved.