brunch

You can make anything
by writing

C.S.Lewis

by Cylogic Oct 05. 2020

39.스마트폰으로 블루투스 보드(HC-06)연결, 조종

안드로이드 스마트폰으로 아두이노 조종하기

여러분들 손에 쥐고 있는 스마트폰은 가장 좋은 블루투스 시험 장비이다. 


이 시험장비에 여러분의 아두이노 장비와 커뮤니케이션할 어플을 하나 설치하고 이를 통해서 아두이노에 연결된 다양한 장비들을 어떻게 조종할 수 있을지 확인해 보자.


앞 서 꾸민 회로에 LED한개와 저항을 8번 핀에 추가해 보자.


연결된 LED를 여러분의 휴대폰으로 켜고 끄는 프로그램은 아래의 프로그램이다.


이 프로그램을 실행하고 나서 이제 휴대폰에서 간단한 준비를 해야 한다.


내가 가진 스마트폰이 안드로이드 폰이어서 구글의 "play 스토어"에서 Serial Blootooth Terninal이라는 어플을 다운로드했다. 아래의 그림과 같은 어플을 설치하면 된다. 


아이폰을 사용하신다면 앱스토어에서  bluetooth terminal을 검색해 보면 여러 개의 관련 앱들이 있을 것이니 잘 살펴보시고 설치하면  비슷한 기능을 가지고 있을 것이니 아래의 내용을 참고하시면 된다.



앞 선 이야기에서 스마트폰과 아두이노 블루투스를 연결한 상황이라면 바로 이 어플을 실행해 보자.

이러한 화면이 나타날 것이다.

이제 상단의 왼쪽에 있는 3줄짜리 버튼을 누르고 "Devices"를 선택하여, 블루투스 보드가 잘 연결(페어링)되어 있는지 확인해 보고(초록색으로 연결되었음을 보인다) 메인 메뉴의 다음 버튼을 눌러 연결한다.


별문제가 없다면 

Connecting to BLT_Board(또는 본인이 선택한 이름)...

Connected 

로 표시될 것이다.


연결이 완료된 이후에 하단의 입력창에 

on이라고 입력하고 전송을 하면 LED의 불이 켜지고,

off라고 입력하고 전송을 하면 LED의 불이 꺼지게 된다.


동영상으로 확인해 보면...


이러한 결과가 어떻게 나오게 되었는지를 위에 있는 코드를 확인하며 이해해 보자.

코드의 앞부분은 앞 선 이야기와 동일하고 on, off 명령이 전송되어 이를 해석하는 부분만을 이해하면 될 것이다.


line 17부터 22까지의 내용은


 while(mySerial.available())  //mySerial의 데이터가 들어오면

  {

    char ch = (char)mySerial.read();  //mySerial의 값을 캐릭터로 바꾸어서

    str+=ch;       //한 글자씩 스트링 str에 추가

    delay(5);      

  }


스마트폰의 어플에서 타이핑되는 명령어를 한 글자씩 str에 추가하고 이 명령어가 전송이 되는 순간 이 while 루프를 빠져나오게 된다.

mySerial은 위의 line 7의 

SoftwareSerial mySerial(Tx, Rx);

에서 정의되었고 블루투스로 연결된 상대편과 데이터를 주고받는 모든 역할을 관장한다.

이를 통하여 받아들여진 str을 가지고 이것이 어떤 명령어인지를 알아내고 실행하는 것은 line 23에서 36까지에 기술되어 있다.

  if(!str.equals(""))  //str 값이 있다면

  {

    if (str.equals("on")){

      digitalWrite(led, HIGH);

      Serial.println("LED On");

    }

    else if (str.equals("off")){

      digitalWrite(led, LOW);

      Serial.println("LED Off");

    }    

    Serial.println("string : "+str); //시리얼 모니터에 str값 출력

    str="";                          //str 지우기

  }


str.equals는 str이 괄호 안의 내용과 동일한지를 확인한다.

만일 같을 경우 {} 안의 내용을 실행하게 된다.

on 일 경우에는 digitalWrite(led, HIGH)로 LED를 켜고

off 일 경우에는 끄게 되는 것이다.

LED 뿐만 아니라 시리얼 모니터에도 LED On, LED Off와 같이 실행되는 내용이 표시되게 코딩되어 있다.


사물 인터넷을 위한 첫걸음


이제 한 가지 부품을 이용하는 방법을 배웠으니 이제 IOT에 한번 도전해 볼 차례이다.

가장 먼저 위의 코드를 변경하지 않고, 릴레이를 이용하여 전구를 켜고 꺼 보겠다.

이때 사용할 부품은 이전에 릴레이 공부를 할 때 사용했던 전구가 연결된 릴레이다.


LED와 저항이 연결된 8번 핀에 릴레이의 데이터 핀을 연결하고 같은 프로그램을 실행한 화면을 보면 IOT의 구현이 어렵지 않음을 알 수 있을 것이다.


이제 사물인터넷(IOT)의 첫걸음에 들어섰다. 블루투스로 확인된 무선 연결을 인터넷과 다양한 다른 무선 장비로 확장시키면 된다.


다음 이야기부터는 지금까지 배웠던 다양한 부품을 조종하는 것을 블루투스와 다른 무선 디바이스를 이용하여 진행해 보자.




매거진의 이전글 38. 아두이노에서 블루투스 모듈(HC-06) 사용준비
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari