IOTHUB SOFTWARE · 03

Arduino 라이브러리 실무 관리

라이브러리는 설치만 하면 끝나는 것이 아닙니다. 같은 이름의 라이브러리, 예제와 버전 차이, 보드 호환성 때문에 컴파일 오류가 자주 생깁니다.

필수 라이브러리 설치 hero image
핵심 용어라이브러리TFT_eSPIUser_Setup.hPythonpip

라이브러리는 "미리 만들어진 코드 뭉치"다. 센서 데이터 읽기, 화면에 글씨 그리기 같은 복잡한 작업을 우리가 직접 코딩하지 않아도 되게 해준다.


설치 방법

Arduino IDE에서 Tools → Manage Libraries (또는 왼쪽 라이브러리 아이콘). 검색창에 이름을 입력하고 Install.


시리즈 전체에서 필요한 라이브러리

라이브러리검색어어디 편에 필요설치
Adafruit SSD1306Adafruit SSD13062~20편 (OLED)필수
Adafruit GFXAdafruit GFX2~20편 (OLED)필수
TFT_eSPITFT_eSPI21~22편 (TFT)TFT 쓸 때만
XPT2046_TouchscreenXPT2046_Touchscreen22편 (터치)터치 TFT 쓸 때만
DHT sensor libraryDHT sensor library3,6,7,19편DHT22 쓸 때만
OneWireOneWire5,8편DS18B20 쓸 때만
DallasTemperatureDallasTemperature5,8편DS18B20 쓸 때만
IRremoteESP8266IRremoteESP826617편IR 제어 쓸 때만
HX711HX71118편로드셀 쓸 때만
처음 시작한다면 Adafruit SSD1306 + Adafruit GFX 두 개만 설치해도 2편부터 진행할 수 있습니다. 나머지는 해당 편에서 필요할 때마다 추가 설치하면 됩니다.

Python 라이브러리

23~24편에서는 Python 라이브러리도 필요하다. 터미널(검은 창)에서 설치한다:

bash
pip install flask requests
라이브러리용도사용처
flask웹 서버24편 (AI 브로커)
requestsHTTP 통신 + TLS24편 (AI API 호출)

안 될 때

증상해결
라이브러리 검색 결과가 안 나옴철자 확인. Adafruit가 Adafruit인지 Adafruit_가 맞는지
설치 중 오류인터넷 연결 확인. Arduino IDE를 관리자 권한으로 실행(Windows)
다른 라이브러리와 충돌TFT_eSPI를 쓸 때 다른 TFT 라이브러리(Adafruit_ILI9341 등)가 깔려 있으면 충돌. 필요 없는 TFT 라이브러리는 삭제

라이브러리는 프로젝트 자산으로 기록한다

라이브러리는 한 번 설치하면 끝나는 부품처럼 보이지만, 실제로는 프로젝트의 중요한 의존성입니다. 오늘 컴파일되던 코드가 몇 달 뒤 새 PC에서 깨지는 이유는 대부분 라이브러리 버전이 달라졌기 때문입니다. 그래서 글을 따라 만든 장치가 정상 동작한 날의 라이브러리 이름과 버전을 기록해두는 것이 좋습니다.

본문 코드보다 예제를 먼저 컴파일한다

새 라이브러리를 설치한 뒤에는 본문 코드를 바로 올리지 말고, 라이브러리가 제공하는 가장 단순한 예제를 먼저 컴파일합니다. 예제가 깨지면 본문 코드를 고쳐도 소용이 없습니다. 예제가 성공한 뒤 핀 번호와 설정 파일만 프로젝트에 맞춰 옮기는 순서가 안전합니다.

특히 디스플레이 계열은 라이브러리 설치보다 설정 파일이 더 중요합니다. TFT_eSPI는 화면 드라이버, 해상도, 핀 연결을 맞춰야 하므로, 한 번 성공한 설정 파일을 프로젝트 폴더에 따로 보관하는 편이 좋습니다.

라이브러리 오류는 코드 오류처럼 보인다

초보자는 컴파일 오류가 나오면 본인이 쓴 코드가 틀렸다고 생각하기 쉽습니다. 하지만 실제로는 라이브러리 버전이 다르거나, 같은 이름의 라이브러리가 여러 개 설치되어 엉뚱한 파일을 참조하는 경우가 많습니다. 특히 디스플레이 라이브러리는 설정 파일까지 맞아야 해서 더 자주 막힙니다.

설치 원칙

컴파일 오류가 날 때 순서

  1. 오류 메시지의 첫 번째 라이브러리 이름을 확인합니다.
  2. Library Manager에서 해당 라이브러리가 설치되어 있는지 확인합니다.
  3. 예제 스케치가 컴파일되는지 확인합니다.
  4. 보드 종류를 바꿔 컴파일했는지 확인합니다.
  5. 필요하면 라이브러리 버전을 낮추거나 올려봅니다.