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

[재업,5일째..] 아두이노에서 String형을 받을때 어떻게 해야하나요?

0 추천

 

안녕하세요.

현재 아두이노 관련해서 공부를 하고 있는 대학생입니다.

제가 많이 부족한지라 모르는 부분에 있어서 도움을 얻고자 글을 올렸습니다.

 

한 5일동안을 내리 이부분을 해결하지 못해서 참 ㅜㅜ 고민입니다.

다름이 아니라, 안드로이드에서 아두이노 쪽으로, 1바이트의 문자 't'를 전송을 하고 아두이노는 

그 신호가 't'가 맞는지 확인함에 따라서 아래와 같이 digitalWrite을 High하고 Low를 신호입니다.

( 그리고 더 하고 싶은 이야기는 소스 아래에 적어보겠습니다 ㅠ ㅠ )

Kind카인드 (3,600 포인트) 님이 2017년 5월 24일 질문
void loop(void)

{

  Adafruit_CC3000_ClientRef client = testServer.available();

  if (client) {                                              

     if (client.available() > 0) {                           

       uint8_t ch = client.read();                                                        

       if(ch == 't')



       {                                       

          

        digitalWrite(7, HIGH);                                

        delay(100);                                           

        digitalWrite(7, LOW);                                 

        delay(100);                                           

        digitalWrite(7, HIGH);                                

        delay(100);                                           

        digitalWrite(7, LOW);                                 

        delay(100);                                           

   

   Serial.println(F("Door Open/Close"));     

       }

      

           if(ch == 'x')

           {

     digitalWrite(2, HIGH);                               

        delay(100);                                         

        digitalWrite(2, LOW);                                 

        delay(100);                                          

        digitalWrite(2, HIGH);                                

        delay(100);                                           

        digitalWrite(2, LOW);                                 

        delay(100);                                          

           

            Serial.println(F("Door Open/Close"));  

           }

           

           if(ch == 'y')

           {

        digitalWrite(8, HIGH);                                

        delay(100);                                         

        digitalWrite(8, LOW);                                

        delay(100);                                           

        digitalWrite(8, HIGH);                                

        delay(100);                                           

        digitalWrite(8 , LOW);                                

        delay(100);   

        

            Serial.println(F("Door Open/Close"));  

           }

     }

  }

}





그.런.데!!

제가 겪고있는 문제가, 위같은 경우는 안드로이드에서 아두이노쪽으로 1바이트의 't'문자를 보낼때가 아닌 예를들어 "unfx+ym0mrqaAYyDqMUNlg==" 라는 문자열과 "bDKukFFIaKRkW8+fex/Vbw==" 와 "MK8XawI9iLg5S6pKh08IcA==" 같은 문자열이 왔을때, 그것이 제데로 Serial.print로 찍어서 나오는것을 보고싶은데 그게 쉽지가 않습니다 ㅠ_ㅠ..

루프가 시작하고 난 이후의,  uint8_t ch = client.read(); 이부분부터 어떻게 좀 바꿔주면 될것 같은데 며칠간 엄청나게 시행착오만 겪고 난 이후 얻은 이후의 소득이 별로 없습니다..

String 형식으로 받아보기도 하고, char 배열 형식으로 받아본뒤 while 문으로 ch != '\n' 까지 비교한뒤 문자를 계속적으로 더해보기도 해보았지만.. 결론적으로는 실패했습니다.

if문으로 비교하는 부분 이전에, 시리얼모니터로 위의 문자열들을 나오도록 하고싶은데 도움을 여쭤보고 싶습니다. 흐흑흑

답변 달기

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