본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Sming Framework

0

Sming Framework은 ESP8266, ESP32, Raspberry Pi Pico 등 다양한 마이크로컨트롤러를 위한 비동기 임베디드 C++ 프레임워크입니다.

네트워크마이크로컨트롤러오픈소스임베디드

소개

Sming Framework은 ESP8266, ESP32, Raspberry Pi Pico 등 다양한 마이크로컨트롤러를 위한 비동기 임베디드 C++ 프레임워크입니다. anakod이 개발하고 오픈소스로 제공하며, 네트워크 기능과 모듈 설계를 통해 임베디드 애플리케이션 개발을 간소화합니다. LGPL-3.0 라이선스로 배포되며, WiFi, HTTP, OTA 업데이트, 이메일 클라이언트 등의 기능을 지원합니다. 개발자는 공식 문서와 예제를 통해 프레임워크를 학습하고 적용할 수 있습니다.

상세정보

비동기 네트워크 통신

Sming은 WiFi 연결, HTTP 클라이언트 및 서버, 이메일 전송(SMTP) 등을 비동기 방식으로 지원하여 네트워크 작업 중에도 다른 작업을 중단하지 않습니다.

OTA(Over-The-Air) 업데이트

네트워크를 통해 펌웨어를 무선으로 업데이트할 수 있는 OTA 기능을 제공하며, HttpUpgrader 클래스를 사용하여 ROM 파티션을 선택하고 업데이트 프로세스를 관리합니다.

라이브 디버깅 지원

ENABLE_GDB=1 디렉티브로 컴파일하여 GDB를 통한 라이브 디버깅이 가능하며, Eclipse CDT와의 연동을 통해 시각적 디버깅 세션을 지원합니다.

다운로드·설치 방법

Sming은 소스 코드 형태로 제공되며, GitHub 저장소를 클론하여 개발 환경을 구축합니다. 안정 버전은 릴리스 페이지에서 다운로드할 수 있으며, 최신 개발 버전은 develop 브랜치를 따라갈 수 있습니다.

개발 환경 설정

공식 문서에 따라 사용하려는 아키텍처(ESP8266, ESP32, Raspberry Pi Pico 등)에 맞는 개발 소프트웨어를 설치해야 합니다. 각 플랫폼별 도구 체인은 Sming 문서에서 안내합니다.

소스 코드 획득

git clone https://github.com/SmingHub/Sming.git

위 명령으로 저장소를 클론한 후, develop 브랜치를 추적하여 최신 개발 버전을 사용할 수 있습니다.

기본 사용법/명령어

Sming을 사용하여 임베디드 애플리케이션을 개발하는 기본 워크플로우는 샘플 프로젝트를 참조하는 것입니다. 각 기능별 샘플은 Makefile을 통해 컴플래시 및 플래시 작업을 수행합니다.

기본 예제: LED 블링크

가장 기본적인 “Hello World” 수준의 예제로, ESP8266의 GPIO2에 연결된 LED를 깜빡이는 코드를 통해 프레임워크 구조를 이해할 수 있습니다.

cd Sming/samples
cd Basic_Blink
make # -- compiles the application
make flash # -- tries to upload the application to your ESP8266 device.

시리얼 통신 시작

시리얼 포트를 초기화하고 메시지를 전송하는 기본 예제입니다. Serial.begin()으로 보드레이트를 설정한 후 println()으로 데이터를 보냅니다.

Serial.begin(9600);
Serial.println("Hello Sming! Let's do smart things.");

WiFi 연결

WiFi 스테이션 모드를 활성화하고 SSID 및 비밀번호를 설정하여 무선 네트워크에 연결합니다.

WifiStation.enable(true);
WifiStation.config("LOCAL-NETWORK", "123456789087"); // Put your SSID and password here

이런 경우에 유용합니다

IoT 기기 개발 시 네트워크 연결이 필요한 센서 노드, 원격 제어 시스템, 데이터 로거 등을 구축할 때 유용합니다. 특히 OTA 업데이트 기능이 필요한 현장 배치 장치나, 라이브 디버깅이 필요한 개발 단계에서 생산성을 높일 수 있습니다.

지원 환경·시스템 요구사항

Sming은 ESP8266, ESP32, Raspberry Pi Pico(RP2040 및 RP2350) 아키텍처를 지원합니다. 각 플랫폼에 맞는 도구 체인(컴파일러, 플래시 도구 등)이 필요하며, 공식 문서에서 설치 가이드를 제공합니다.

최신 버전·업데이트

현재 안정 버전은 Sming V6.2.0이며, 새로운 기능, 성능 향상 및 안정성 개선이 포함되어 있습니다. 개발 버전은 develop 브랜치를 따라가며, 최신 문서는 readthedocs.io에서 확인할 수 있습니다.

제한 사항·확인 사항

Sming은 임베디드 시스템용 프레임워크로, 일반적인 Windows 데스크톱 애플리케이션 개발에는 적합하지 않습니다. 마이크로컨트롤러 하드웨어와 관련된 개발에만 사용되며, PC에서 직접 실행할 수 있는 바이너리를 제공하지 않습니다.

FAQ

Sming은 무료로 사용할 수 있나요? 네, Sming은 LGPL-3.0 라이선스의 오픈소스 프로젝트로 무료로 사용, 수정, 배포할 수 있습니다.

Windows에서 개발할 수 있나요? 네, Windows에서 크로스 컴파일 도구 체인을 설치하여 ESP8266, ESP32 등의 타겟 보드용 펌웨어를 빌드할 수 있습니다. 다만, 생성된 바이너리는 마이크로컨트롤러에서 실행됩니다.

화면으로 보는 주요 기능

스마트 프레임워크 소스 코드 편집 화면

스마트 프레임워크 소스 코드 편집 화면

Eclipse IDE에서 열린 'overrides.c' 파일의 소스 코드 편집 화면입니다. 코드 에디터에는 'spiffs_get_storage_config()' 함수의 구현이 보이며, 'spiffs_config cfg = {0};'와 같은 C 코드가 표시됩니다. 왼쪽에는 디버거 스택 트레이스가 있으며, 현재 'spiffs_mount()' 함수에서 중단된 상태입니다. 오른쪽에는 'Quick Access' 패널이 열려 있고, 'cfg' 변수의 세부 정보가 표시되어 있습니다. 'Name'은 'hal_read_f'이며, 'Details', 'Default', 'Hex', 'Octal' 값이 각각 '0x3ffef1f8', '1073672696', '111111111111', '07777570770'로 표시됩니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.