ESP32 + ARDUINO 실습해 보기

하겅 ·2025년 3월 23일

Capstone

목록 보기
4/14
  1. 아두이노 설치

    • ESP32에 프로그래밍을 하기 위해 필요 (아두이노 보드는 기본적으로 코드를 업로드 할 때 컴퓨터와 통신을 하게 됨)
  2. CP210x USB 드라이버 설치

    • ESP32를 컴퓨터와 연결하기 위해 필요한 드라이버
    • 컴퓨터 간 데이터 통신을 가능하게 함 (데이터 전송에 필수)
      CP210x Windows Drivers 설치했습니다


    압축 해제 후 사진 속 파일 실행 후 설치

    설치 후 장치 관리자에서 포트를 확인해 보면 위와 같이 뜨는 것을 알 수 있습니다

    > (단! ESP32와 컴퓨터를 연결하고 있는 케이블이 데이터 송/수신이 가능한 케이블이어야 합니다 특히 노트북에 USB 타입이 C Type으로 있다면 꼭 케이블 구입 시 확인하시길 바랍니다)  



1️⃣ CODE1

첫 번째 코드로 테스트를 진행해 봤습니다

void setup() {
  Serial.begin(9600);
}



void loop() {
  Serial.println(millis());
  delay(100);
 
}
  • 출력 결과
    왼쪽 화면을 시리얼 모니터라 합니다 (shift + ctrl + m : 시리얼 통신으로 주고받는 신호 확인)

code 해석

  • setup 블록 : 아두이노 전원이 들어왔을 때 한 번 실행
  • Serial.begin() : 통신을 begin 시작하겠다
  • 9600 : 1초에 9600비트를 보냄 (즉 9600 보드레이트 속도로 시리얼 통신을 시작하겠다)
  • loop 블록 : setup 블록 실행 후 loop 블록이 계속 실행
  • millis() : 아두이노 보드가 현재 프로그램을 돌리기 시작한 후 지난 밀리 초 숫자를 반환
  • delay() : 동작을 멈추고 기다리게 함

(보드는 펌웨어이기 때문에 end가 없을 수 Oo == loop 블록이 실행되는 근본적인 이유)


▶️ Serial이란?

  • 아두이노 보드가 코드를 업로드 할 때 컴퓨터와 통신하게 되는데, 이때 통신에 사용되는 게 TX, RX 핀입니다
UARTTX 핀RX 핀역할
UART0TX0RX0USB 연결용 - Serial
UART1TX1RX1보드에 따라 다름
UART2TX2RX2보드에 따라 다름, 다른 시리얼 장비와의 통신
  • RX: Receive Data
  • TX: Transmit Data
    → 데이터를 주고받는 곳을 말합니다 컴퓨터에서 보내는 신호를 RX로 받고 컴퓨터로 신호를 보내는 때에는 TX로 보냅니다 따라서 0번과 1번 핀에 무언가를 연결해서 사용하면 오류가 발생할 수 있으니 주의!!
  • 직렬 통신인가? 병렬 통신인가?
    • 직렬 통신은 하나씩 전달하지만 더 멀리 보낼 수 있고, 병렬은 한꺼번에 보내지만 전달할 수 있는 거리가 짧습니다 아두이노는 이 통신 방법 중 USART (UART)라고 불리는 직렬 통신을 사용합니다 == 직렬 통신의 다른 이름이 바로 Serial 통신!



2️⃣ CODE2


void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);
  delay(1000);

  digitalWrite(2, LOW);
  delay(1000);

}
  • 출력 결과

(파란 불이 깜빡입니다)

  • BOOT 버튼을 꼭 눌러 줘야 함!!

CODE 해석

  • pinMode() : 특정 핀을 입력 또는 출력으로 동작하도록 설정 (위에서는 출력으로 설정)
    == pinMode(2, OUTPUT); 디지털 핀 2번을 OUTPUT(출력)으로 하겠다
  • digitalWrite() : 주어진 핀 번호에 대해 값을 기록하는 기능 (HIGH 또는 LOW 값을 디지털 핀에 출력)
    == digitalWrite(2, HIGH); 2번 핀이 pinMode() 를 통해 OUTPUT 으로 설정되었음 해당 핀을 HIGH일 때 5V (또는 3.3V)로 설정
    == digitalWrite(2, LOW); LOW일 때는 0V로 설정



CODE3 (실패)

아두이노와 브로커 연결은 성공한 걸로 보이지만 브로커에서 Node-RED의 mqtt in 노드까지 전송이 안 되는 상황


위 화면과 같이 esp32 플로우의 mqtt-broker는 test.mosquitto.org로 잘 설정되어 있는 상태입니다 text 노드는 대쉬보드에서 보다 편한 ui로 보고자 한 것이라 중요한 건 debug2 노드에 위도, 경도 텍스트가 도착하는 것입니다

체크 사항
Node-RED와 ESP32 주제 일치 ⭕
Node-RED와 ESP32 서버 일치 ⭕

Node-RED에 수신되지 못 하는 이유를 조금 더 공부해 본 후 성공 시 다시 작성을 수정하도록 하겠습니다 ㅜㅜ

profile
건강합시다

0개의 댓글