콘텐츠로 건너뛰기

아두이노 시리얼 통신, 시리얼 모니터 사용하기

    들어가며

    아두이노와 컴퓨터 간의 데이터 전송을 위해 시리얼 통신을 사용하는데요. 아두이노를 초기에 접하셨다면, 시리얼 통신이라는 금방 듣게 됩니다. 많은 예제에서 시리얼 통신을 사용하기 때문이죠. 시리얼 통신은 데이터를 하나씩 순차적으로 전송하는 방식으로, 간단하고 효율적인 데이터 전송 방법입니다. 시리얼 모니터는 아두이노 IDE에서 제공하는 도구로, 시리얼 통신을 통해 전송되는 데이터를 실시간으로 확인할 수 있습니다.

    이러한 시리얼 통신을 이용하면 아두이노와 컴퓨터가 서로 데이터를 주고받을 수 있어서 센서 데이터 모니터링, 원격 제어 등 다양한 프로젝트를 수행할 수 있습니다.

    이 글에서는 아두이노의 시리얼 통신 기능을 이해하고, 시리얼 모니터를 통해 데이터를 송수신하는 방법을 알아보려고 합니다. 간단한 예제를 통해 시리얼 통신을 실제로 사용하는 과정까지 한번 풀어보도록 하겠습니다.

    준비물

    이 프로젝트를 위해 필요한 준비물은 다음과 같습니다:

    • 아두이노 보드 (예: 아두이노 Uno)
    • 아두이노 IDE
    • 아두이노 IDE 설치 및 기본 사용법

    시리얼 통신, 시리얼 모니터 사용하는 방법

    시리얼 모니터를 켜는법은 간단하지만 그림을 통해 한번 알아 보고, 시리얼 통신을 설정하고, 시리얼 모니터를 사용하는 방법을 이어서 알아보겠습니다.

    시리얼 모니터 켜는 방법

    아두이노 IDE를 실하고 시리얼 모니터를 켜는 방법은 아주 간단합니다. 아래 두가지 방법을 사용할 수 있는데요. 둘 중 편한 방법을 사용하시면 됩니다. IDE 레거시 버전을 사용하시는 분은 아이콘의 위치가 다를 수 있으니, 메뉴를 사용하시는게 더욱 정확하겠네요.

    • 상단 메뉴에서 Tools ➡️ Serial Monitor를 선택합니다.
    • 또는, 우측 상단에 있는 시리얼 모니터 버튼을 눌러 시리얼 모니터를 켜기

    시리얼 통신 예제 코드

    아래 예제 코드는 아두이노가 시리얼 모니터로 데이터를 전송하고, 시리얼 모니터에서 입력된 데이터를 다시 받아오는 간단한 예제입니다. 이를 통해 시리얼 모니터를 사용하는 방법을 좀 더 직관적으로 익히실 수 있을 것으로 생각됩니다.

    예제 코드:

      void setup() {
        Serial.begin(9600); // 시리얼 통신 속도 설정 (9600 bps)
      }
    
      void loop() {
        Serial.println("Hello, World!"); // 시리얼 모니터로 메시지 전송
        delay(1000); // 1초 대기
    
        if (Serial.available() > 0) { // 시리얼 모니터로부터 데이터가 들어온 경우
          String input = Serial.readString(); // 데이터 읽기
          Serial.print("You entered: ");
          Serial.println(input); // 입력된 데이터 다시 출력
        }
      }

    코드 실행 결과 확인:

    1. 아두이노 보드를 컴퓨터에 연결하고, 아두이노 IDE를 실행합니다.
    2. 위의 코드를 복사하여 아두이노 IDE에 붙여넣고, 업로드합니다.
    3. 시리얼 모니터를 엽니다 (우측 상단 돋보기 아이콘 클릭).
    4. 시리얼 모니터의 우측 보드레이트를 확인합니다. 셋업에 사용한 9600과 일치하도록 설정합니다.
    1. 시리얼 모니터에서 “Hello, World!” 메시지가 1초 간격으로 출력되는 것을 확인할 수 있습니다.
    2. 시리얼 모니터 입력창에 텍스트를 입력하고 엔터를 누르면, 입력한 텍스트가 다시 출력되는 것을 확인할 수 있습니다.
    시리얼 통신 모습, 시리얼모니터에 hello world 문자열이 1초간격으로 표시되며, 사용자가 시리얼 모니터를 통해 전송한 글자가 출력된다.

    시리얼 통신시 주의점

    시리얼 통신 속도(Serial.begin(9600)) 설정 시, 시리얼 모니터의 통신 속도와 일치하지 않으면 데이터가 제대로 전송되지 않습니다. IDE 의 보드레이트와 시리얼 통신 시작시 보드레이트를 일치시켜 주세요.

    텍스트를 주고받는 경우, 시리얼 모니터에서 엔터키를 누르면 줄바꿈 문자가 함께 전송됩니다. 이 문자열을 처리하기 위해 처리하기 위해 readString() 대신 readStringUntil('\n')을 사용할 수 있습니다.

    시리얼 통신을 사용하는 다른 프로그램이 실행 중이면 충돌이 발생할 수 있으므로, 가급적 하나의 프로그램만 사용합니다.

    마무리

    이 포스팅에서는 아두이노의 시리얼 통신 기능과 시리얼 모니터 사용법에 대해 배웠습니다. 간단한 예제를 통해 시리얼 통신을 설정하고, 데이터를 송수신하는 방법을 익혀 봤습니다. 통신이라길래 엄청 어려울것 같지만 별거 아니었죠? 이제 통신에 적합한 프로토콜 만들고, 다대다 통신이 시작되는순간 지옥이 펼쳐질 수도 있습니다. (초보자에겐)

    시리얼 통신은 아두이노 프로젝트의 기본이 되는 중요한 기능입니다. 이번 튜토리얼을 통해 익힌 내용을 바탕으로 더 복잡하고 흥미로운 프로젝트에 도전해 보세요!