구글 플레이 스토어에서 다운 받을 수 있는 블루투스 터미널 앱을 사용하지 말고 자신이 코딩한 앱인벤터로 아두이노 우노에 설치된 DHT11 온습도 센서 데이터를 HC-06 블루투스 센서 보드에 의해서 안드로이드 폰에서 수신해 보자. 필요한 준비물은 아래와 같다. #아두이노 우노 블루투스 배선 클라스 선언을 통해 BTSerial (2,3)으로 선언한다. 블루투스 센서 보드의 TXD 가 아두이노 우노에서는 RX 역할을 맡는 2번으로 매칭된다. 마찬가지로 블루투스 센서 보드의 RXD는아두이노 우노에서 TX 역할인 3번으로 매칭된다. DHT11 온습도 센서는 디지털 데이터 핀 5번에 설치하기로 한다. PC와의 통신은 9600 블루투스 통신속도 또한 9600 으로 설정한다. HC-06 의 default 통신 속도는 9600 으로 설정되어 있다. #스마트폰 블루투스 보드 등록 #앱 인벤터 코딩 디자인 팔레트의 User Interface에서 ListPicker 1개, 수평배열용 레이아웃 1개, 라벨 1개, Connectivity에서 BluetoothClient 1개, Clock 1개를 사용하기로 한다. ListPicker 란 앞에서 블루투스 보드 찾기 작업을 하면 사용가능한 디바이스 리스트가 뜨는데 이 중에서 여러개의 블루투스 보드를 등록하게 되면 결국 앱인벤터에서도 그 리스트 중에서 하나를 선택해야 한다. 그런 이유로 ListPiking 이란 명칭이 사용되는 듯하다. ListPicker를 Viewer Screen1 에 드래그한 후 속성 창에서 Text 입력 박스에 DHT11을 입력한다. center, bold를 포함하는 폰트 세부 정보를 입력 하고 Width 항목에서 Fill parent를 선택하면 화면에서 자동적으로 수평 한 줄을 차지하게 된다. Layout의 HorizontalArrangement를 드래그 하고 라벨 1개를 선택해 드래그 해 넣고 텍스트 명을 Temp & Humidity 로 해 둔다. Clock은 DHT11의 샘플링 시간 간격을 2초로 설정하므로 Timeinterval 을 2000 으로 입력한다. 아두이노의 delay(2000)에 해당한다. #앱 인벤터 블록 편집 DHT11 이라는 이름의 ListPicker1은 픽(Pick) 전(Before)에 블루투스 클라이언트로서 주소와 이름을 갖는다. Pick 후(After)에는 그 주소와 이름으로 블루투스를 통해 외부 아두이노 우노의 HC_06과 연결(Connect) 한다. 이때 필요한 주소와 이름을 ListPicker1로부터 제공 받는다. #아두이노 앱인벤터 실행 블루투스가 연결되면 ListPicker1의 DHT11 이 Connected with DHT11 로 바뀐다. 연결된 상태에서 타이머가 작동하며 아두이노 우노에서 2초에 한번씩 샘플된 온습도 데이터가 다수의 바이트 데이터를 한 묶음으로 구성하여 수신된다. 묶음 데이터 구성 방식은 “temperature”+측정된 온도 값+“ C deg” 까지를 블루투스에 출력한 후 줄 바꿈 한다. 이어서 “Humidity: ”+측정된 습도 값+“ %” 까지를 출력한다. 이 2개의 데이터를 합한 정보가 안드로이드 폰에서 다수의 바이트들로 구성된 1개 단위의 정보로 수신되어 2줄로 출력된다. 앱인벤터를 실행해 보자. 한편 SoftwareSerial.h 라이브러리를 사용하지 않고 아두이노 보드의 (0,1)을 사용할 때에는 다음 점을 주의해야 한다. 아두이노 코드를 업로딩할 때에는 HC-06 블루투스 보드의 RXD, TXD 점퍼선을 반드시 빼 놓아야 한다. LED가 지속적으로 껌뻑이는 상태를 확인하자. 컴파일 업로딩이 끝나면 USB 케이블을 제거한 후 RXD, TXD 점퍼선을 다시 끼운다. DC어댑터에 9V 전지가 연결된 잭을 끼우고 스마트폰 앱인벤터 코드에서 페어링 작업을 수행한다. 다소 불편하게 느껴질 수 있다. 단 별도로 클라스 선언을 할 필요가 없으며 시리얼 모니터가 사용하던 Serial.⦁⦁⦁명령들을 그대로 블루투스가 점유하여 사용하게 된다. ■ 준비물 휴몬랩 메이커 미세먼지 키트 : 아두이노, 온습도 센서, 블루투스, 점퍼선, 앱인벤터 ■ 회로 구성 아래의 그림을 보고 따라서 회로를 구성해 주세요! ※참고※ 여기서 사용된 온습도 센서 모듈은 단자가 총 3개입니다. 따로 저항이 필요 없는 모델입니다. * 온습도 모듈마다 핀 구성이 다를 수 있으니 모듈에 적혀진 GND(-)와 신호(S) 기호를 잘 확인하세요! #include안녕하세요~ 인투피온입니다. 디자인은 블루투스 버튼 - 이미지 - 측정값 - 끄기 버튼 이렇게 구성해 봤어요. 앱을 실행하게 되면 먼저 블루투스의 주소와 이름을 가져옵니다. 그리고 '블루투스 연결 버튼'을 누르면 아래 사진처럼 연결 가능한 블루투스의 주소와 이름을 가져와요. 그리고 타이머를 이용해 블루투스가 연결되고 블루투스를 통해 받을 수 있는 바이트 크기가 '0' 이상이라면 블루투스의 텍스트를 가져오게 돼요. 마지막으로 '블루투스 끄기'를 누르게 되면 아래 사진처럼 텍스트가 출력돼요. 위의 회로도를 참고해 주세요 HC-06과 DHT-11의 접지는 서로 다른 핀에 해주셔야 됩니다!!
이렇게 온습도의 변화를 어플을 통해 모니터링할 수 있어요. 온도나 습도 관리가 필요한 곳에서 쓸 수 있겠죠? 여기까지 '아두이노와 앱인벤터를 통한 온습도 출력하기'를 해보았습니다~
▶ 홈페이지: http://intopion.com/ |