한 걸음 두 걸음
android - arduino bluetooth 통신으로 앱에서 LED 제어하기 && 앱에서 LED 상태값 실시간 확인하기 본문
android - arduino bluetooth 통신으로 앱에서 LED 제어하기 && 앱에서 LED 상태값 실시간 확인하기
언제나 변함없이 2019. 7. 9. 19:05이전에 블루투스 통신을 하는 안드로이드 앱을 만드는 포스팅을 남겼었는데
모든 분들이 안드로이드 스튜디오를 사용하는 것이 아니므로,
플레이스토어에서 손쉽게 다운받을 수 있는 앱 'arduino bluetooth controller'를 활용하여
LED를 제어해보겠습니다.
(tip : HC-06이 깜박이고 있는 것은 아직 페어링 되지 않았다는 뜻, 계속 켜져있는 것은 페어링이 된 상태라는 뜻)
01. 앱에서 LED 제어하기
이렇게 생겼으니 다운받아서 들어가주세요. 그러면 HC-06이 잡혀있는 것을 보실 수 있는데, 연결시켜서 Terminal mode로 들어가겠습니다.
그러면 블루투스로 다음과 같이 데이터를 전달할 수 있는데
이번엔 LED제어만 할 것이므로, 간단하게 a, b만 써서 on/off 해주겠습니다.
스케치는 아래 코드를 업로드해주시고,
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
pinMode(2,OUTPUT);
}
void loop() {
if (Serial1.available()) {
byte readDate = Serial1.read();
Serial.write(readDate);
if(readDate == 'a')
digitalWrite(2,HIGH);
if(readDate == 'b')
digitalWrite(2,LOW);
}
}
HC-06연결과 LED(2번핀)연결 해주세요~
그러면 이렇게
LED제어가 되는 모습을 확인하실 수 있습니다.
02. 앱에서 LED 상태값 확인하기
이제는 LED상태값(0 =off / 1 = on)을 핸드폰에서 읽어오도록 하겠습니다.
앱은 터미널 기능이 있는 위의 앱을 사용했습니다.
<결과>
앱으로 들어가서 블루투스 모듈과 페어링해준 후, 터미널 모드에서 들어오는 값 0, 1을 확인할 수 있고, a,b를 입력하여 LED를 제어한 결과까지 확인할 수 있었습니다.
<방법>
저는 android mega 2560을 사용하고 있기 때문에 다음과 같이 코드를 짰습니다.
#include <SoftwareSerial.h>
SoftwareSerial BTserial(19, 18); // RX | TX
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
pinMode(2,OUTPUT);
}
void loop() {
if (Serial1.available()) {
//앱에서 받아온 값 가지고 제어하기
byte readDate = Serial1.read();
Serial.write(readDate);
Serial.println();
if(readDate == 'a')
digitalWrite(2,HIGH);
if(readDate == 'b')
digitalWrite(2,LOW);
}
//빵판에서 읽은 값 앱으로 보내기
int LedState = digitalRead(2);
Serial1.print(LedState);
Serial1.print(";");
delay(2000);
}
mega 2560의 경우 UART가 3개(Serial, Serial1, Serial2) 있습니다.
저는 rx1, tx1(19, 18)을 사용하였기 때문에 Serial1을 사용했고 다른 분들은 어떤 핀을 사용하시느냐에 따라 달라질 수 있습니다.
우노의 경우 UART는 1개(BTSerial) (rx, tx (0,1)) 로 쓰입니다. 참고부탁드립니다.
블루투스의 기본 Baudrate(보드레이트, 통신속도)는 9600을 사용합니다.
참고 : https://www.instructables.com/id/How-to-Receive-Arduino-Sensor-Data-on-Your-Android/
'Arduino' 카테고리의 다른 글
arduino ] 간단한 시리얼통신 (0) | 2019.07.17 |
---|---|
arduino - mobile간 실시간 인터넷 통신 참고자료 (0) | 2019.07.10 |
android - arduino bluetooth 통신 #02 HC-06 연결 및 스케치 프로그램 업로드 (0) | 2019.07.09 |
Arduino PHPoC Shield Library (0) | 2019.07.02 |
Arduino PHPoC Web Communication 통신하기 - 간단한 LED 원격제어 (0) | 2019.07.01 |