본문 바로가기
PLC 자동제어 학습/아두이노 보드 수업

아두이노 보드를 블루투스 통신을 이용해서 스마트폰으로 원격조종하기 part2

by 인터넷떠돌이 2018. 1. 30.
반응형

안녕하세요?


아침 시간에 올린 포스팅에서는 아두이노 보드에 어떻게 해서 블루투스 모듈을 설치하며, 어떻게 해서 스마트폰과 연결을 할 수 있는지에 대해서 올려졌다면, 이제부터는 어떻게 해서 아두이노 보드를 컨트롤 하는지에 대해서 포스팅 하고자 합니다.



먼저 위 ㅣ그림에 나와있는 회로도 대로, 아두이노 Uno보드의 8번 핀을 저항과 LED와 함께 연결을 하도록 합니다.



그리고 위 사진처럼 결선을 하도록 합니다. 여기서 부터가 이제 본격적인 시작입니다.



일단 관련된 코딩을 합니다. 블루투스 통신으로 문자 a가 들어오면 8번 핀을 ON하고, d가 들어오면 8번 핀을 OFF한다는 내용입니다.



먼저 BT chat을 통해서 a라고 입력을 합니다.



여기는 동영상으로 찍지는 않았지만, 여기서는 LED에 불이 들어오는 것을 볼 수 있었습니다.



이제 스마트폰의 BT chat에서 d를 입력해 보겠습니다.




LED의 불이 꺼지는 것을 확인할 수 있었습니다.



단순히 BT chat에서 컨트롤 하기 보다는, 이제는 좀 더 나은 환경에서 컨트롤 하기 위해서, Bluetooth Controller라는 앱을 플레이 스토어에서 다운로드 받아서 설치하도록 합니다.



그리고 앱을 처음 실행시키면, 아무것도 설정이 되어 있지 않은데, 맨 위에 있는 Setup을 눌러서 세팅에 들어가도록 합니다.



먼저 할일은 일단 버튼을 설정하는 것입니다. 위 스크린샷을 보시면, ledon과 ledoff라고 되어 있습니다.



이런 식으로 버튼이 나오는 것을 확인할 수 있습니다. 하지만 아직 블루투스 연결을 위한 블루투스 모듈 이름 등을 입력하지 않았기 때문에 Connect가 되지 않습니다.



먼저 Module Name란에는 블루투스 모듈의 이름을 적어 놓도록 하고, Module Mac이라는 것에서는 일단은 몰라서 비밀번호를 적어 보았습니다만, 결과는 신통치 않았습니다.




Module Mac에 적어야 하는 것은 실제로는 블루투스 모듈의 Mac주소라고 해서, 모듈 하드웨어 고유의 주소라는 것이 있습니다. 이걸 적어 주는 것이였습니다.



이제 스마트폰의 스크린샷에서는 제대로 블루투스 모듈과 연결이 되었다는 것을 보여주고 있습니다. 그럼 이것이 제대로 작동이 되는 것인지 확인해 볼 필요가 있습니다.



위에 올려진 유튜브 동영상을 보시면, 제가 스마트폰에서 버튼을 누르는 상황에 따라서, 아두이노 우노보드에 연결이 된 LED가 켜지고 꺼지는 것을 확인할 수 있으실 것입니다.



이제 과제라면 과제로, 브레드 보드에 스위치 2개를 놓아서, 2번 핀과 3번 핀에 입력이 들어오게 하는 것입니다.



다음은 아두이노 스케치 IDE툴에서 위 스크린샷과 같이 코딩을 하도록 합니다. 이 코드에서 특별히 중요한 것이라고는 2번과 3번 핀을 digitalRead(핀번호); 라는 함수가 사용된 것이라는 게 특이점입니다. 일단 완성된 결선을 완성한 사진을 찍지는 못했지만, 지난번 수업시간에 배웠는 전자식 릴레이를 이용해서, 이를 켜고 끄는 것을 할 수 있었습니다.


링크 : 오랫만의 아두이노 수업-아두이노 보드를 이용한 단상 모터의 정,역회전 제어



실제로 버튼을 눌렀을 때, 전자식 릴레이가 켜지고 꺼지는 것을 확인할 수 있었습니다.




실제로 이걸로 단상 유도 전동기-모터의 정회전 역회전을 제어할 수 있는 것을 보여주고 있습니다. 이제 오늘의 제대로 된 과제입니다. 다른 게 아니고, 이 버튼의 역할을 블루투스 모듈을 가지고서 하는 것입니다. 즉, 블루투스 통신을 이용해서 스마트폰에서 모터를 제어하는 것입니다.



먼저 아두이노 uno보드에다가 블루투스 모듈을 장착하고, 위 스크린샷과 같이 스마트폰에서 a라는 문자가 입력이 되면 정회전, d가 들어오면 역회전, s가 입력이 되면 정지가 되는 것으로 만들었습니다.



그리고 스마트폰에 설치되어 있는 앱에서도 버튼의 설정을 하도록 합니다.



1차 시도는 실패였는데, 왜 이런고 하는, if(BTSerial.available()) 이라는 조건문이 없어서 생기는 오류였습니다. 즉, 블루투스 모듈이 가능한지 여부를 체크해 주어야만 진짜로 블루투스 모듈에 입력되는 데이터 등을 다 가지고 올 수 있다는 것입니다.



1차로 전자식 릴레이를 제어할 수있는지 여부를 알아보았습니다. 그리고 제가 스마트폰에서 입력하는 대로 제대로 작동을 하는 것을 확인할 수 있었습니다.



이제 오늘의 마지막 과제를 하기 위한 작업에 들어갔습니다. 앞서 연결된 전자식 릴레이에 이어서 모터를 연결해서 작동시킬 차례가 된 것입니다.



그리고 이제 제대로 모터를 스마트폰을 통해서 제어할 수 있다는 것을 보여주고 있습니다. 지금은 단순히 모터지만, 이 모터가 어떤 작업을 해서, 어떤 실용적인 작업을 하게 될지는 지금으로서는 알 수 없습니다. 하지만 아두이노 보드를 이렇게 블루투스 통신을 이용해서 제대로 통제할 수있다는 것만 해도 엄청난 내용이라는 생각이 듭니다.

반응형