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

아두이노에서, String을 받아서 모니터에 출력하는 방법 질문있습니다. [closed]

0 추천
안녕하세요.

 

아두이노 공부를 공부하고있는 새내기 입니다.

혼자서 간단한 프로젝트를 하고 있는데 쉽지가 않아서 글을 올렸습니다.

 

아두이노에서 다른 부분은 오류하나없이 말끔하게 잘 진행이 되지만, 아래의 Loop 부분에서 제가 원하는 동작과똑같은 진행이 되지 않기에 질문을 올립니다.

 

아래의 루프문을 돌리게 된다면, uint8_tch가 읽어들이는 1바이트의 내용을 계속적으로 mystring에 추가시킴으로써그 값이, mystring과 encrypt1과 같다면 도어락이 동작하도록 하게 만들려고 하는데 동작이 잘 안됩니다 ㅜ

 

뭔가 코드가 잘못된것 같아서 시리얼 모니터에, Serial.print(mystring)을 아래의 Loop 부분의 strcmp를 비교하기전에덩그러니 써보았지만 따로 시리얼모니터에 추가되는 부분이 없기에 아무래도 처음에 mystring에 문자열이추가가 잘 되지 않는것 같은데 도움이 필요합니다.

소스를 아래의 답글에 달아보았습니다 ㅜ
질문을 종료한 이유: 답이 안달리네요 ..
Kind카인드 (3,600 포인트) 님이 2017년 5월 23일 질문
Kind카인드님이 2017년 5월 24일 closed
void loop(void)

{

  Adafruit_CC3000_ClientRef client = testServer.available();  // 서버 대기 상태

 

  String mystring;

  int i=0;

 

  if (client) {                                               // client 접속이 있으면

     if (client.available() > 0) {                            // 읽어올 데이터가 있는지 확인

       uint8_t ch = client.read();                            // byte로 데이터 읽음

       mystring += ch;

       

       mystring[i] = 0;



       while(ch != '\n')

       {

         uint8_t ch = client.read();

         mystring[i] = ch;

         i++;

       }



       char encrypt1[30];

       strcpy(encrypt1,"unfx+ym0mrqaAYyDqMUNlg==");



       char encrypt2[30];

       strcpy(encrypt2,"bDKukFFIaKRkW8+fex/Vbw==");

 

       char encrypt3[30];

       strcpy(encrypt3,"MK8XawI9iLg5S6pKh08IcA==");

       

       if(mystring == encrypt1) {                                        // 클라이언트에서 't' 가 입력되면

             

        //

        digitalWrite(7, HIGH);                                // 2번 포트 출력 HIGH 에서

        delay(100);                                           // 휴식( 안정화 )

        digitalWrite(7, LOW);                                 // 2번 포트 출력 LOW - 도어락 동작!

        delay(100);                                           // 휴식( 안정화 )

        digitalWrite(7, HIGH);                                // 2번 포트 출력 HIGH 에서

        delay(100);                                           // 휴식( 안정화 )

        digitalWrite(7, LOW);                                 // 2번 포트 출력 LOW - 도어락 동작!

        delay(100);                                           // 휴식( 안정화 )

        

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

   //

       }

      

           if(mystring == encrypt2)

           {

     digitalWrite(2, HIGH);                                // 2번 포트 출력 HIGH 에서

        delay(100);                                           // 휴식( 안정화 )

        digitalWrite(2, LOW);                                 // 2번 포트 출력 LOW - 도어락 동작!

        delay(100);                                           // 휴식( 안정화 )

        digitalWrite(2, HIGH);                                // 2번 포트 출력 HIGH 에서

        delay(100);                                           // 휴식( 안정화 )

        digitalWrite(2, LOW);                                 // 2번 포트 출력 LOW - 도어락 동작!

        delay(100);                                           // 휴식( 안정화 )

           //

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

           }

           

            if(mystring == encrypt3)

           {

        digitalWrite(8, HIGH);                                // 2번 포트 출력 HIGH 에서

        delay(100);                                           // 휴식( 안정화 )

        digitalWrite(8, LOW);                                 // 2번 포트 출력 LOW - 도어락 동작!

        delay(100);                                           // 휴식( 안정화 )

        digitalWrite(8, HIGH);                                // 2번 포트 출력 HIGH 에서

        delay(100);                                           // 휴식( 안정화 )

        digitalWrite(8 , LOW);                                 // 2번 포트 출력 LOW - 도어락 동작!

        delay(100);   

        

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

           }

     }

  }

}
...