[아두이노] 아이폰과 아두이노 블루투스 연결하기
아이폰과 아두이노를 블루투스로 연결해보겠습니다. 아이폰은 BLE(Bluetooth Low Energy)을 지원하기 때문에 아두이노 블루투스 모듈을 고르실 때 확인해야 합니다. 앱에디터에서 어플을 만들어서 아두이노와 바로 연결했던 안드로이드 보다는 사용에 제한이 있는 것 같지만, 아이폰으로도 아두이노와 연결할 수 있습니다.
BLE(블루투스 저전력 프로토콜, Bluetooth Low Energy)는 4.0(Bluetooth Smart) 스펙이 2010년 채택된 이후로 배포되는 저전력 블루투스입니다. 기존의 블루투스 통신 프로토콜은 '클래식 블루투스'라는 명칭으로 구별됩니다. 따라서 BLE만 지원하는 아이폰은 ‘클래식 블루투스’를 사용할 수 없습니다.
<그림 1> HM-10 블루투스 모듈과 아두이노 우노
아이폰에서 신호를 주고 아두이노는 블루투스 모듈을 통해 그 신호를 받아 LED를 켜고 끄는 회로를 만들어 보겠습니다. 아두이노와 블루투스 통신을 할 수 있는 어플리케이션을 앱스토어에서 다운로드 받아 사용하도록 하겠습니다.
<그림 2> 블루투스로 아두이노 연결하기
완성된 회로도
<그림 3> 블루투스로 LED 켜기 회로도
LED (+)는 아두이노의 디지털 8번 핀에 연결하겠습니다. 그리고 LED (-)는 아두이노 GND에 연결해줍니다. HM-10 블루투스 모듈의 전원을 연결해줍니다. 그리고 RXD는 디지털 3번, TXD는 디지털 2번에 연결합니다.
완성된 코드
#include <SoftwareSerial.h> SoftwareSerial BTSerial(2, 3); int LED = 8; void setup() { pinMode(LED,OUTPUT); Serial.begin(9600); Serial.println("Hello!"); BTSerial.begin(9600); // set the data rate for the BT port } void loop() { if (BTSerial.available()) { int data = BTSerial.read(); Serial.println(data); if(data == 49) { // BT 로 1 이 오면 (1==49) 로 치환됨 digitalWrite(LED,HIGH); }else{ digitalWrite(LED,LOW); } } if (Serial.available()) { BTSerial.write(Serial.read()); } }
아이폰으로 LED 켜고 끄기
아이폰으로 HM-10 모듈을 통해 아두이노로 신호를 보내겠습니다. 그 신호로 LED를 켜고 끄는 아주 간단한 제어를 하겠습니다. 우선 아이폰에 신호를 주고 받을 수 있는 통신 어플리케이션을 설치해야 합니다. 앱 스토어에서 Serial로 검색하면 아래 어플리케이션을 찾을 수 있습니다. 간단한 신호만 주고 받기 때문에 Lite 버전으로 사용하겠습니다.
<그림 4> 앱스토어에서 찾은 HM10 Bluetooth Serial 애플리케이션
애플리케이션을 실행 후 왼쪽 위에 있는 Connect 버튼을 누릅니다. 아두이노와 HM-10 모듈에 전원이 들어와 있으면 "HM Soft"로 뜨는 블루투스가 있습니다. 이것을 눌러 블루투스로 연결해줍니다. 그 다음 메세지에 "1"을 치면 LED가 켜지고, 다른 문자를 치면 LED가 꺼지는 것을 볼 수 있습니다.
아두이노 IDE에서 시리얼 모니터에 문자를 입력해서 아이폰으로 출력할 수 있습니다. 시리얼 모니터에 "text from lap top"이라고 치면 아래와 같이 아이폰 화면에 출력됩니다.
<그림 5> 시리얼 모니터로 입력한 텍스트가 아이폰에 출력된 모습