스마트디바이스실습 ‐ 2주차 - jiho0419/SmartDevice_2025-1 GitHub Wiki

1️⃣ IDE(Integrated Development Environment) - 통합 개발 환경

*️⃣ 정의

💠 IDE(Integrated Development Environment) 는 소프트웨어 개발을 보다 효율적으로 수행할 수 있도록 도와주는 도구를 의미한다.
💠 일반적으로 코드 편집기, 디버거, 컴파일러 또는 인터프리터, 그리고 다양한 개발 지원 도구들을 포함하여 하나의 통합된 환경에서 제공한다.

*️⃣ 주요 기능

💠 코드 편집기 (Code Editor)

🔸 코드 작성 및 편집 기능 제공
🔸 구문 강조(Syntax Highlighting) 기능으로 코드 가독성을 높임
🔸 자동 완성(Auto-completion) 및 코드 추천 기능 지원


💠 컴파일러 및 인터프리터

🔸 소스 코드를 기계어로 변환하여 실행 가능하게 만듦
🔸 일부 IDE는 다양한 언어의 컴파일러를 포함


💠 디버거(Debugger)

🔸 코드의 오류(Bug)를 찾고 수정하는 기능 제공
🔸 중단점(Breakpoint) 설정 및 코드 실행 흐름을 제어 가능
🔸 변수 값 실시간 확인 및 변경 가능


💠 빌드 자동화 (Build Automation)

🔸 코드를 자동으로 빌드하고 실행하는 기능
🔸 프로젝트 전체 컴파일 및 실행을 간편하게 수행


💠 버전 관리 시스템(Git 연동)

🔸 Git과 같은 형상 관리 도구를 통합하여 코드 변경 사항 추적
🔸 여러 개발자가 협업 가능


💠 패키지 관리자 및 라이브러리 지원

🔸 다양한 라이브러리와 플러그인을 쉽게 설치 및 사용 가능
🔸 패키지 관리 도구(Pip, Maven, npm 등)와 연동

*️⃣ 대표적인 IDE 종류

💠 VS Code (Visual Studio Code)

🔸 장 널리 사용되는 무료 IDE
🔸 가벼운 성능과 강력한 확장 기능 제공
🔸 다양한 프로그래밍 언어 지원


💠 JetBrains IntelliJ IDEA

🔸 주로 Java 개발을 위한 강력한 IDE
🔸 코드 자동 완성 및 리팩토링 기능이 우수함


💠 Eclipse

🔸 Java 기반 개발에 최적화된 오픈소스 IDE
🔸 다양한 플러그인을 활용하여 기능 확장 가능


💠 NetBeans

🔸 Java, PHP, C/C++ 등의 언어를 지원하는 IDE
🔸 GUI 개발을 위한 도구가 내장됨

2️⃣ Arduino IDE

*️⃣ 정의

💠 Arduino IDE(아두이노 IDE, Integrated Development Environment)아두이노(Arduino) 마이크로컨트롤러 보드 를 프로그래밍하는 데 사용되는 개발 환경을 말한.
💠 아두이노 보드는 **C++ 기반의 코드(Arduino 언어)**로 프로그래밍되며, 이를 쉽게 작성, 업로드 및 디버깅할 수 있도록 도와주는 소프트웨어를 말한다.

*️⃣ 특징 및 기능

💠 간단하고 직관적인 코드 편집기

🔸 아두이노 언어(기본적으로 C/C++ 기반)를 쉽게 작성할 수 있도록 설계됨
🔸 구문 강조(Syntax Highlighting) 기능 제공
🔸 자동 완성 및 코드 추천 기능 부족 (하지만 간단한 프로그래밍에는 적합)


💠 아두이노 보드와의 손쉬운 연결 및 업로드

🔸 USB 또는 시리얼 포트를 통해 아두이노 보드에 직접 코드 업로드 가능
🔸 다양한 아두이노 보드(Nano, Uno, Mega 등)와 호환


💠 내장 라이브러리 지원

🔸 센서, 모터, 디스플레이, 네트워크 모듈 등 다양한 하드웨어를 쉽게 제어할 수 있도록 기본 라이브러리 제공
🔸 추가 라이브러리 다운로드 가능 (라이브러리 관리자 활용)


💠 시리얼 모니터(Serial Monitor)

🔸 아두이노 보드와 PC 간의 데이터 통신 확인 가능
🔸 센서 값 출력 및 디버깅에 활용됨


💠 크로스 플랫폼 지원

🔸 Windows, macOS, Linux 등 다양한 운영체제에서 사용 가능


💠 오픈소스 및 커뮤니티 지원

🔸 Arduino IDE는 완전 무료이며, 오픈소스로 제공
🔸 전 세계의 개발자들이 다양한 라이브러리와 샘플 코드를 공유

3️⃣ ESP32 실습

*️⃣ ESP 개발환경 설정

💠 Arduino IDE 2.3.4 설치

🔸 Arduino 사이트 접속
  🔺Arduino Download


🔸 자신의 PC에 버전으로 다운로드
  🔺window 11을 사용하므로 Windows - Win 10 and newer, 64 bits 다운로드
  🔺Just download 를 선택하여 진행


🔸 설치 파일 실행 후 동의함 버튼 선택
🔸 다음 버튼을 계속 클릭하여 설치
  🔺설치가 완료되면 Arduino IDE이 실행됨

💠 ESP32 환경 설정

🔸 상단에서 File 을 클릭하고 Preferences 을 선택
  🔺클릭하면 환경 설정 할 수 있는 화면이 나옴


🔸 Language 을 클릭하여 한국어 로 변경


🔸 추가 보드 관리자 URLhttps://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json 을 입력
  🔺입력 후 확인 버튼 클릭하여 설정 완료


💠 ESP32 보드 및 포트 설정

🔸 보드 설정하기 위해 다운로드 진행
🔸 사이 탭에서 보드매니저 를 클릭
🔸 검색 창에 esp32 를 입력
  🔺입력 후 esp32 by Espressif Systems 을 클릭하여 다운


🔸 포트를 설정하기 위해 다운로드 진행
🔸 포트를 설정하기 위해서 CP210x 드라이버를 다운로드해야 함
  🔺CP210x Download


🔸 DOWNLOADS을 클릭
🔸 클릭 후 자신의 PC에 맞는 드라이버 다운로드
  🔺window을 사용하므로 Cp210x VCP Windows 다운로드함


🔸 포트가 제대로 다운 받아졌는지 장치 관리자 에서 확인
🔸 장치 관리자에서 포트(COM & LPT) 에 포트가 다운 되어 있는 지 확인
  🔺Silicon Labs CP210x USB to UART Bridge(COM5) 확인 완료


🔸 보드, 포트 모두 다운 후 설정 시작
🔸 상단 툴바에서 보드 및 포트 선택 을 클릭


🔸 BOARDS에 DOIT ESP32 DEVKIT V1을 입력
  🔺DOIT ESP32 DEVKIT V1이 뜨면 클릭


🔸 PORTS에 COM5 Serial Port(USB)을 클릭
  🔺장치 관리자에서 확인한 다운로드한 포트를 클릭해야 함

*️⃣ ESP 기본 예제 실습 - Blink

💠 Blink 코드 정의

🔸 ESP32 보드의 내장 LED를 깜빡이게 하는 기본적인 코드
🔸 보드가 정상적으로 작동하는지 확인하는 첫 번째 실습

💠 Blink 코드 실행

🔸 파일 클릭 후 예제 를 클릭
🔸 01.Basics을 클릭
🔸 Blink 을 클릭


🔸 코드에 밑에 Blink 예제 코드를 입력
  🔺입력 후 업로드를 클릭

// 내장 LED가 연결된 핀 번호 설정
int ledPin = 2;

void setup() {
pinMode(ledPin, OUTPUT); // LED 핀을 출력 모드로 설정
}

void loop() {
digitalWrite(ledPin, HIGH); // LED 켜기
delay(1000); // 1초 대기
digitalWrite(ledPin, LOW); // LED 끄기
delay(1000); // 1초 대기
}

🔸 코드가 컴파일을 진행함
🔸 컴파일이 끝난 후 ESP32의 LED가 1초마다 점등함

🔸 ESP32 결과

https://github.com/user-attachments/assets/3d8a9b93-23c9-489c-9666-6ec74df91ee7


🔸 현재 코드에서 delay(500) 으로 변경하여 실습 진행
🔸 LED가 0.5초마다 점등하는 지 확인 진행
  🔺LED가 0.5초마다 점등하는 지 확인 완료

🔸 ESP32 결과

https://github.com/user-attachments/assets/0f7ef482-f051-4a67-97a9-3c2ee4404ac4