본문 바로가기

개발 이야기/IoT 이야기

IoT디바이스를 위한 다양한 프레임워크 소개

728x90

아두이노 덕에 마이크로컨트롤러 다루기가 참 쉬워졌습니다. ESP 시리즈를 통해 IoT 제품들이 홍수처럼 쏟아져 나온지도 이미 몇 년이 지났는데, 이에 더해 다양한 언어들의 IoT 프로젝트를 살펴 보는 것도 꽤 재미 있습니다.

 

- C/C++은 당연히 전통의 강자인데, 요즘 각 메이저 IaaS 회사들이 IoT를 위한 플랫폼을 내놓고 있네요.

  아마존의 FreeRTOS가 아무래도 잘 나가는 편인 것 같은데,

  STM32에 잘 쓰이는 치비OS라는 것도 있고,

 모질라의 MyNewt,

  리눅스 재단의 ZephyrRTOS 등등등등... 아예 베어메탈로 가는 경우도 많겠죠.

 

아두이노가 2년 전에 내놓은 Nano33은 MBED를 런타임으로 사용하고 Pro IDE에서는 디버깅도 가능한가 봅니다. 하지만 취미 프로젝트에 까지 굳이 C/C++을 쓰고 싶지는 않기에 패쓰!

 

- Rust는 TockOS가 있는데, 지원 하드웨어 범위가 아직은 제한적인 것 같습니다.

  RTOS가 굳이 필요치 않다면, Interop이 좋은 편이니 조금만 손 보면 어디든지 잘 붙겠지만요.

 

- Lua를 기반으로 하는 NodeMCU가 의외로 많이 쓰이는 것 같습니다. ESP 시리즈와 궁합이 좋은가 봅니다.

  런타임은 NodeMCU인데, 최종 사용자 입장에서는 아두이노처럼 사용하는가 봅니다.  

 

- MicroPython도 좋아 보입니다. 동작 중에 데이터 타입 때문에 에러가 나면 어떻게 되는지 궁금 하네요 ㅎㅎ

 

- Go는 TinyGo를 조금 써봤는데, nRF52로 BLE 프로토타입 만들기가 생각 보다 쉬웠습니다.

  디버깅도 GDB로 가능 합니다.

 

- C#도 Nano framework이 있는데, VS2019를 이용하면 디버깅도 꽤나 용이 하다고 하네요. 

 

- JS도 역시 빠질 수 없죠. 긱뉴스를 둘러보다 보니 JerryScript가 있네요.

  풋프린트가 작아서 (160kB) 꽤나 이식성이 좋을 것 같습니다. 

 

이 외에도 꽤나 다양한 시도들이 있는데, 성능이나 정확한 타이밍이 중요한게 아니라면 이런 프레임웍들의 힘을 빌리는 것도 나쁘지 않은 것 같습니다. 특히 고수준 언어를 저사양 장치에 적용하면서 다양한 아이디어와 실험을 볼 수 있는 것도 말이죠.

 

 

(추가업데이트)

    덧붙여, 몽구스OS 라는 것도 있습니다. TI, STM, ESP32 등등을 지원하고 별도의 IoT클라우드도 제공하여 연동할 수 있고요. 참고로 mongoose OS 특징은 IoT디바이스를 기존의 AWS, 구글 클라우드, Azure IoT, IBM클라우드 에 연결성이 좋은 프레임워크를 가지고 있습니다. IoT디바이스의 클라우드 연동을 주목적으로 한다면 강추합니다.

 해당링크는 여기를 참고하시면 ==> cafe.daum.net/opensupport.xyz/qiAM

 

(추가업데이트2)

여기서 언급되지 않은 것중에,

TizenRT 와 RIOT 라는 RTOS도 있는데 지금 확인하고 업데이트합니다.

부언하면, 

  TizenRT는 삼성전자가 주도하는 RTOS이고,

  RIOT는 Zephyr RTOS처럼 리눅스 코딩 스킴과 구조를 가지는 OS입니다.

 

그럼!

728x90