목표
조도 (빛의 밝기)에 따라 블라인드의 열림 각도를 조절합니다. 그리고 측정된 조도를 대시보드 게이지 위젯에 표시합니다.
- 100 lux 미만이면 블라인드를 연다. (서보모터 각도 0도)
- 300 ~ 700 lux 이면 블라인드를 절반만 닫는다. (서보모터 각도 45도)
- 900 lux 이상이면 블라이드를 최대로 닫는다. (서보모터 각도 90도)
하드웨어
부품
부품 | 갯수 |
---|---|
조도센서 (BH1750) | 1 |
RC서보모터 (180도 타입) | 1 |
연결
아래의 핀을 가로 방향으로 서로 연결해줍니다.
BH1750 | DC Power Supply | 서보모터 | GPIO |
---|---|---|---|
VIN | | | 3.3V |
GND | | | GND |
SCL ¹ | | | 3 (I2C1 SCL) |
SDA ¹ | | | 2 (I2C1 SDA) |
ADDR ² | | | GND |
| + | VIN (빨간색) | |
| – | GND (검은색) | GND |
| | SIGNAL (주황색 또는 노란색) ³ | 23 |
¹ 하드웨어 I2C 핀 (GPIO 2,3)에 연결합니다. 소프트웨어 (bit-bang) 인터페이스 사용시 임의의 핀을 사용할 수도 있습니다.
² GND에 연결하면 I2C주소는 0x23, 3.3V에 연결하면 0x5C 입니다. (모듈 제조사에 따라 다를 수 있습니다.)
³ 임의의 GPIO핀에 연결할 수 있습니다.
² GND에 연결하면 I2C주소는 0x23, 3.3V에 연결하면 0x5C 입니다. (모듈 제조사에 따라 다를 수 있습니다.)
³ 임의의 GPIO핀에 연결할 수 있습니다.
I/O장치
조도센서와 서보모터를 I/O장치에 추가합니다.
변수
조도센서의 값을 저장할 변수를 추가합니다.
- “밝기” (숫자)
로직
조도센서에 밝기를 읽어와서 밝기에 따라 서보모터의 각도를 다르게 설정합니다.
이를 알고리즘 블록으로 나타내면 아래와 같습니다.
[로직]
로직을 추가합니다. 실행주기는 기본값으로 설정합니다.
[제어] 조도센서에서 밝기 읽어오기
제어를 추가합니다. 모든 설정은 기본값을 사용합니다.
[조건] 항상
항상 만족하는 조건을 추가합니다.
- 타입: 항상유효
[동작] 조도센서에서 밝기를 읽어온다
조도센서에서 읽어온 값을 “밝기” 변수에 저장하는 동작을 추가합니다.
- 타입: I/O장치
- 장치선택: 조도센서
- 명령: READ_LIGHT_LEVEL
- 값: “밝기” 변수 선택
[제어] 밝기가 100 미만이면 서보모터를 0도로 설정한다.
제어를 추가합니다. 모든 설정은 기본값을 사용합니다.
[조건] 밝기가 100미만 이면
앞서, 조도센서로 부터 읽은 값을 “밝기”라는 변수에 저장하였습니다. 그러므로 해당 변수의 값을 비교하는 조건을 추가합니다.
- 타입: 비교
- 변수: “밝기”
- 연산자: < (작다)
- 값: 100
[동작] 서보모터를 0도로 설정한다.
동작을 추가합니다.
- 타입: I/O장치
- 장치선택: 서보모터
- 명령: SET_POS
- 값: 0
[제어] 밝기가 300 ~700 이면 서보모터를 45도로 설정한다.
조건 연산자가 AND (그리고)인 제어를 추가합니다.
[조건] 밝기가 300이상 이면
“밝기” 변수의 값을 비교하는 조건을 추가합니다.
- 타입: 비교
- 변수: “밝기”
- 연산자: >= (크거나 같다)
- 값: 300
[조건] 밝기가 700미만 이면
“밝기” 변수의 값을 비교하는 조건을 추가합니다.
- 타입: 비교
- 변수: “밝기”
- 연산자: < (작다)
- 값: 700
[동작] 서보모터를 45도로 설정한다.
동작을 추가합니다.
- 타입: I/O장치
- 장치선택: 서보모터
- 명령: SET_POS
- 값: 45
[제어] 밝기가 900 이상이면 서보모터를 90도로 설정한다.
제어를 추가합니다. 모든 설정은 기본값을 사용합니다.
[조건] 밝기가 900이상 이면
“밝기” 변수의 값을 비교하는 조건을 추가합니다.
- 타입: 비교
- 변수: “밝기”
- 연산자: >= (크거나 같다)
- 값: 900
[동작] 서보모터를 90도로 설정한다.
동작을 추가합니다.
- 타입: I/O장치
- 장치선택: 서보모터
- 명령: SET_POS
- 값: 90
대시보드
대시보드를 추가합니다.
읽기 위젯을 추가합니다.
- 변수: “밝기”
- 타입: 게이지
실행
버튼을 눌러서 RUN모드로 진입합니다.