마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오 블루투스 데이터 통신문제

0 추천

지금 안드로이드 스튜디오에서 만든 앱에서 버튼을 눌러 아두이노에 통신이 가게 하고싶은데 제 아두이노 코드입니다.
여기서 myString 값으로 입력을 받는데 위의 코드에서 데이터 전송부분을 바꿔봐도 아두이노 센서에는 반응이 없네요 어떻게 해야 하나요?

#include <SoftwareSerial.h> //시리얼 통신 라이브러리 호출
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

int blueTx=2;   //Tx (블투 보내는핀 설정)
int blueRx=3;   //Rx (블투 받는핀 설정)
SoftwareSerial mySerial(blueTx, blueRx);
String myString=""; //받는 문자열

void setup() {
  mySerial.begin(9600); //블루투스 시리얼 개방


}

void loop() {

  
  while(mySerial.available())  //mySerial 값이 있으면
  {
    char myChar = (char)mySerial.read();  //mySerial int형식의 값을 char형식으로 변환
    myString+=myChar;   //수신되는 문자열을 myString에 모두 붙임 (1바이트씩 전송되는 것을 모두 붙임)
    delay(5);           //수신 문자열 끊김 방지
    pinMode(13, OUTPUT);
  }
 
  if(!myString.equals(""))  //myString 값이 있다면
  {
    Serial.println("input value: "+myString); //시리얼모니터에 myString값 출력

      if(myString=="1")  //myString 값이 '1' 이라면
      {
        tone(12, 600); // 도
        digitalWrite(13, HIGH);
        delay(700);
        noTone(12);
        digitalWrite(13, LOW);

        lcd.init();
        lcd.backlight();
        lcd.setCursor(1, 0);
        lcd.print("Delivery Order");
        lcd.setCursor(1, 1);
        lcd.print("Arrived");
        delay(3000);
        lcd.noBacklight();
        lcd.init();
      }
      
      }
      else {
      }
    myString="";  //myString 변수값 초기화
  }

 

안드로이드 부분입니다

public void setup() {
    Button btnSend = findViewById(R.id.btnSend); //데이터 전송
    btnSend.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            bt.send("Text", true);
        }
    });
}
infeee (120 포인트) 님이 2020년 12월 18일 질문
infeee님이 2020년 12월 18일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...