목차
1. 목표
2. 전체 구성도
3. 하드웨어 구성하기
4. 하드웨어에 제어를 위해 소프트웨어 올리기
5. 앱으로 연동하기
6. 블루투스를 이용해 앱으로 연동하기
7. 동작 확인 하기
8. 추후 해볼것
1. 목표
모션 센서 앞에 물체가 감지되면 스마트폰에서 인지가 되도록 한다.
2. 전체 구성도
3. 하드웨어 구성하기
블루투스 연결
빨주노초
전원
빨 주
tx rx
2 3
아두이노와 모션 센서, 인체감지센서 PIR 연결하기
1) 3개의 핀이 있다.
GND(노랑)- SGI(신호) - VCC (빨강)
2) 센서와 아두이노를 연결하자
Vcc 빨
주황 GND그라운드
흰색 감지센서
빨강 ㅡ 주황
VCC ㅡ GND그라운드
아래는 참고만.
케이블 색 틀림.번호는 7번
- 검은선 GND
- 가운데 파란색 SGI(신호) : 아래 그림에서 2번을 7번으로 연결
- 빨간색 5V
4. 하드웨어에 제어를 위해 소프트웨어 올리기
Arduino IDC (스케치) 프로그램 실행 >
PIR 스케치 소스
센서에 감지가 되면 아두이노 보드에 불이 들어오도록 한다.
#define PIR_SENSOR 7
int pre_val = LOW; // previous value
int cur_val; // current value
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(PIR_SENSOR, INPUT);
Serial.begin(19200);
}
void loop() {
cur_val = digitalRead(PIR_SENSOR);
digitalWrite(LED_BUILTIN, cur_val);
delay(1000);
if(pre_val != cur_val) {
if(cur_val == HIGH)
Serial.println("Motion Detected");
else
Serial.println("End");
pre_val = cur_val;
}
}
동작확인
5. 블루투스코드 추가한 버전 올리기
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2, 3); // HC-06:TXD, HC-06:RXD
#define PIR_SENSOR 7
int pre_val = LOW; // previous value
int cur_val = LOW;
bool bReady = false;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(PIR_SENSOR, INPUT);
bluetooth.begin(9600);
Serial.begin(19200);
}
void loop() {
delay(1000);
if(bluetooth.available()) {
char cmd = bluetooth.read();
switch(cmd) {
case '1':
bReady = true;
break;
case '2':
bReady = false;
break;
}
}
if(bReady) {
cur_val = digitalRead(PIR_SENSOR);
digitalWrite(LED_BUILTIN, cur_val);
if(pre_val != cur_val) {
if(cur_val == HIGH) {
Serial.println("Motion Detected");
bluetooth.write('a'); // Motion Detected
}
else {
Serial.println("Ended");
bluetooth.write('b'); // Motion Ended
pre_val = cur_val;
}
}
}
}
하드웨어 블루투스 연결은 여기
6. 블루투스를 이용해 앱으로 연동하기
앱 인벤터 설치하기
7. 동작 확인 하기
8. 추후 해볼것
센서 앞에 가면 선풍기가 자동으로 돌아가게 해보자 ~
https://brunch.co.kr/@topasvga/2022
감사합니다.