[아두이노#576] 스마트윈도우를 블루투스(bluetooth)통신으로 제어할 수 있는 전용앱을 앱인벤터(appinventor)로 만들어보기!(녹칸다의 아두이노)
프로그래밍/스마트윈도우(PDLC필름) 2023. 9. 7. 22:54https://youtube.com/live/Tmgz6V9iQxk
[아두이노#576] 스마트윈도우를 블루투스(bluetooth)통신으로 제어할 수 있는 전용앱을 앱인벤터(appinventor)로 만들어보기!(녹칸다의 아두이노)
녹칸다의 아두이노 575편에서 등장했던 스마트필름인 PDLC필름을 앱인벤터(appinventor)로 제어해보도록 함!
PDLC필름 4개를 4채널 릴레이를 이용해서 아두이노 우노에 연결하고 블루투스 모듈인 HC-06을 추가로 연결해서 블루투스로 제어해보도록 한다!
기존 녹칸다의 예제에서 블루투스 통신으로 4채널 릴레이를 제어하는것과 동일하기 때문에 크게 어려운 것은 없다!
이번 예제는 실전에서 사용하기 보다는 학생들 프로젝트 할때 영감을 얻으라고 만드는 것이기 때문에 가급적 쉽고 접근하기 좋은 형태로 구현해보도록 한다!
아두이노에 블루투스 모듈이 추가되었다면 블루투스 데이터를 전송할 수 있는 디바이스가 있어야한다!
가장 간단한 것은 앱인벤터(appinventor)를 활용하는 방법이다!
앱인벤터를 이용해서 만든 스마트폰앱으로 아두이노 우노와 블루투스 통신으로 스마트윈도우를 제어하도록 한다!
그것만 하면 방송분량이 안나올 것 같아서 아래와 같은 목차로 진행해보도록 한다!
1.블루투스 통신으로 4개의 PDLC필름을 개별/일괄 제어해보기!
2.마그네틱스위치를 연결하고 문이 열렸는지 닫혔는지를 감지해서 PDLC필름을 제어하되 자동으로 스마트윈도우를 아두이노가 제어할지 말지 여부를 결정할 수 있도록 해보기!
3.광센서(CDS)를 연결하고 광센서값에 따라서 PDLC필름을 제어하되 자동으로 제어를 할지 여부와 기준값을 스마트폰 앱에서 설정가능하도록 해보기!
(스마트폰에서 블루투스모듈 이름이 안나올때)
1.스마트폰에 블루투스모듈이 등록되어야한다!
2.스마트폰의 블루투스설정에서 주변 블루투스 디바이스를 검색한다음 비밀번호를 입력하고 페어링을 한 이력이 있어야한다!(이걸 해야 등록된다)
3.이때 비밀번호는 0000아니면 1234이다!
4.검색가능한기기, 등록된기기 둘중에서 등록된기기여야 스마트폰의 블루투스앱에서 접속할 수 있다!
(앱인벤터란?)
1.학생들 교육용으로 블록코딩으로 스마트폰앱을 구현할 수 있는 제작 툴!
2.앱인벤터의 최종결과물은 apk파일로 스마트폰에 설치할 수 있는 스마트폰 앱이다!
3.중간중간 작동이 잘되는지 테스트를 하는 환경과 최종적인 결과물을 출력하는 환경(=빌드한다)이 있다!
4.오픈소스, 공짜, 구글아이디만 있으면됨!
5.앱인벤터를 블록코딩하고 있는 PC와 테스트하려는 스마트폰은 같은 인터넷 공유기와 연결되어있어야한다!
6.스마트폰이 이동통신망(LTE)에 연결되어있으면 앱인벤터와 연결이 불가능함!
(예제)
1.아래 명령어 규칙에 의해서 블루투스통신으로 명령어를 전송하면 4채널 릴레이에 연결된 PDLC필름 4개가 제어되도록 하시오!
00 : 채널0의 필름 OFF
01 : 채널0의 필름 ON
10 : 채널1의 필름 OFF
11 : 채널1의 필름 ON
20 : 채널2의 필름 OFF
21 : 채널2의 필름 ON
30 : 채널3의 필름 OFF
31 : 채널3의 필름 ON
40 : 모든 필름 OFF
41 : 모든 필름 ON
2.현재 아두이노에 연결된 PDLC필름이 켜져있는지 꺼져있는지를 알 수 있도록하시오!(아두이노에서 스마트폰쪽으로 데이터를 전송하시오!)
0,0,0,0 : 모두다 OFF
0,0,0,1 : 채널3 ON 나머지는 OFF
1,1,0,0 : 채널0,1 ON, 2,3은 OFF
1,1,1,1 : 모두다 ON
------------3번예제부터는 채널0만 사용함----
3.아두이노의 8번핀에 마그네틱스위치를 연결하고 문이열렸는지 닫혔는지를 감지해서 PDLC필름을 제어하시오!(앱인벤터에서 수동모드와 자동모드를 결정할 수 있음, PDLC필름은 채널구분없이 동시에 ON/OFF된다)
앱인벤터 -> 아두이노쪽 : 수동이냐 자동이냐
문자 2를 보내면 수동모드, 문자 3을 보내면 자동모드
앱인벤터 -> 아두이노쪽 : (수동인경우) 제어명령
문자 0을 보내면 꺼짐, 문자 1을 보내면 켜짐
아두이노 -> 앱인벤터쪽 : 현재 켜짐과 꺼짐의 상태
0을 전송하면 꺼짐, 1을 전송하면 켜짐
(+)자동모드인데 수동으로 명령을 보내면 수동모드로 변환된다!
4.광센서(CDS)를 아두이노의 A0에 연결해서 자외선차단을 한다는 느낌의 예제를 만드시오!
앱인벤터 -> 아두이노쪽 : 수동이냐 자동이냐
앱인벤터 -> 아두이노쪽 : 수동인경우 제어명령
앱인벤터 -> 아두이노쪽 : 자동이라면 CDS값이 몇을 기준으로 작동할 것인가?
아두이노 -> 앱인벤터쪽 : 현재 필름의 상태, 자동이냐 수동이냐의 여부, 현재 설정된 광센서의 기준값
//필름을 수동으로 제어
"0,0\r" : 필름을 OFF
"0,1\r" : 필름을 ON
//수동이냐?자동이냐?
"1,0\r" : 수동설정
"1,1\r" : 자동설정
//CDS기준값 전송
"2,100\r" : 기준값을 100으로 설정
"2,600\r" : 기준값을 600으로 설정
'프로그래밍 > 스마트윈도우(PDLC필름)' 카테고리의 다른 글
[아두이노#575] 전원을 주면 투명해지고 안주면 안투명해지는 스마트윈도우를 PDLC필름으로 만들어보기!(녹칸다의 아두이노) (0) | 2023.09.06 |
---|