외부 라이브러리 써야 할 때.
Arduino IDE는 전역 설치인데, PlatformIO는 프로젝트별 관리.
라이브러리 검색
방법 1: PIO Home
- PlatformIO 아이콘 → PIO Home
- Libraries 탭
- 검색창에 라이브러리 이름
예: ArduinoJson 검색.
방법 2: 웹사이트
https://registry.platformio.org/
더 상세한 정보 있음.
방법 3: 터미널
pio pkg search "json"
라이브러리 설치
방법 1: platformio.ini
가장 추천하는 방법!
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps =
bblanchon/ArduinoJson @ ^6.21.0
저장하면 자동 설치.
방법 2: PIO Home에서
- Libraries → 검색
- 라이브러리 클릭
- Add to Project 버튼
- 프로젝트 선택
자동으로 platformio.ini에 추가됨.
방법 3: 터미널
pio pkg install --library "bblanchon/ArduinoJson@^6.21.0"
lib_deps 문법
기본 형식
lib_deps =
라이브러리이름
버전 지정
lib_deps =
ArduinoJson @ 6.21.0 ; 정확히 이 버전
ArduinoJson @ ^6.21.0 ; 6.21.0 이상, 7.0.0 미만
ArduinoJson @ ~6.21.0 ; 6.21.0 이상, 6.22.0 미만
ArduinoJson @ >=6.0.0 ; 6.0.0 이상
소유자/이름 형식
lib_deps =
bblanchon/ArduinoJson ; 정확한 라이브러리 지정
이름만 쓰면 동명의 다른 라이브러리 설치될 수 있음.
여러 라이브러리
lib_deps =
bblanchon/ArduinoJson @ ^6.21.0
adafruit/Adafruit SSD1306 @ ^2.5.0
adafruit/Adafruit GFX Library @ ^1.11.0
Wire ; Arduino 내장
GitHub에서 직접
공개 라이브러리가 아니거나, 최신 버전 필요할 때:
lib_deps =
; GitHub 저장소
https://github.com/me-no-dev/ESPAsyncWebServer.git
; 특정 브랜치
https://github.com/user/repo.git#develop
; 특정 태그
https://github.com/user/repo.git#v1.2.3
; 특정 커밋
https://github.com/user/repo.git#abc1234
설치 위치
.pio/
└── libdeps/
└── esp32dev/
├── ArduinoJson/
├── Adafruit SSD1306/
└── ...
프로젝트 폴더 안에 설치됨.
프로젝트별로 독립적!
A 프로젝트: ArduinoJson 6.21.0 B 프로젝트: ArduinoJson 7.0.0
충돌 없음.
라이브러리 사용
설치했으면 바로 include:
#include <ArduinoJson.h>
void setup() {
Serial.begin(115200);
StaticJsonDocument<200> doc;
doc["sensor"] = "temperature";
doc["value"] = 25.5;
serializeJson(doc, Serial);
}
void loop() {
}
빌드하면 자동으로 링크됨.
의존성 자동 해결
Adafruit SSD1306 설치하면:
lib_deps =
adafruit/Adafruit SSD1306
의존하는 라이브러리 자동 설치:
- Adafruit GFX Library
- Adafruit BusIO
직접 안 써도 됨.
프로젝트 전용 라이브러리
직접 만들거나 수정한 라이브러리:
lib/
└── MyDriver/
├── MyDriver.h
└── MyDriver.cpp
lib/ 폴더에 넣으면 자동 인식.
#include <MyDriver.h>
라이브러리 업데이트
확인
pio pkg outdated
업데이트
pio pkg update
특정 라이브러리만
pio pkg update --library "ArduinoJson"
라이브러리 삭제
platformio.ini에서 제거
lib_deps에서 해당 줄 삭제 → 저장.
다음 빌드 시 안 쓰는 건 남아있긴 함.
완전 삭제
pio pkg uninstall --library "ArduinoJson"
또는 .pio/libdeps/ 폴더 삭제.
Arduino IDE 라이브러리와 호환
대부분 호환됨.
Arduino Library Manager에 있는 건 PlatformIO Registry에도 있음.
Arduino: 라이브러리 관리자 → DHT sensor library
PlatformIO: adafruit/DHT sensor library
주의사항
라이브러리 이름 정확히
; ❌ 틀림
lib_deps = ArduinoJSON
; ✅ 맞음
lib_deps = ArduinoJson
대소문자 주의.
버전 호환성
; 너무 오래된 버전
lib_deps = ArduinoJson @ 5.0.0
; 호환 안 될 수 있음
가능하면 최신 버전 사용.
다음 글에서 멀티 환경 설정.