.NET IoT 라이브러리의 이해

완료됨

본 단원에서는 디바이스와의 상호 작용을 지원하는 .NET IoT 라이브러리에 대해 알아봅니다.

라이브러리

.NET IoT 라이브러리는 두 개의 오픈 소스 NuGet 패키지로 구성되어 있습니다.

System.Device.Gpio

System.Device.Gpio 패키지는 하위 수준 하드웨어 핀과 상호 작용하여 디바이스를 제어하기 위한 다양한 프로토콜을 구현합니다. 이러한 프로토콜은 다음과 같습니다.

  • 범용 I/O(GPIO)
  • I2C(Inter-Integrated Circuit)
  • SPI(직렬 주변 디바이스 인터페이스)
  • PWM(펄스 폭 변조)
  • 직렬 포트

System.Device.Gpio 에서는 디바이스별 기능을 제공하지 않습니다. 지원되는 프로토콜을 사용하여 통신하기 위한 기초만 제공합니다. 예를 들어 이 모듈에서 사용하는 BME280 센서는 I2C 버스를 사용하여 통신합니다. System.Device.Gpio는 I2C를 통해 상호 작용하는 추상화를 제공하지만 BME280의 기능과 관련된 기능을 제공하지 않습니다. BME280 System.Device.Gpio과 상호 작용하는 코드를 작성하는 경우 코드는 BME280의 함수를 이해해야 합니다. 여기에는 I2C 버스를 통해 센서에서 메시지를 직렬화/역직렬화하는 방법이 포함됩니다.

Iot.Device.Bindings

Iot.Device.Bindings 패키지에는 System.Device.Gpio 래핑을 통해 앱 개발을 간소화하는 디바이스 바인딩이 포함됩니다. 여기에는 다양한 일반적인 IoT 센서 및 기타 디바이스를 나타내는 클래스가 포함됩니다. 커뮤니티 중심의 오픈 소스 프로젝트이며, 누구나 새로운 디바이스 지원을 추가할 수 있습니다.

이를 통해 Iot.Device.Bindings 개발자는 낮은 수준의 통신을 걱정하지 않고 디바이스 추상화 작업을 직접 수행할 수 있습니다. BME280 센서의 예를 살펴보겠습니다. 센서와 통신하기 위해 앱은 I2C 버스에서 메시지를 이진으로 보내고 받아야 합니다. Iot.Device.Bindings의 클래스는 System.Device.Gpio의 클래스를 사용하여 이진 통신을 처리하는 추상화를 제공합니다. 이 라이브러리를 사용하면 낮은 수준의 통신이 아니라 센서로 수행하려는 작업을 집중할 수 있습니다.

지원되는 운영 체제

.NET IoT 라이브러리는 ARM/ARM64 및 Windows 10 IoT Core를 지원하는 대부분의 Linux 버전을 비롯하여 .NET이 지원되는 어디서나 실행됩니다. 대부분의 Raspberry Pi 프로젝트에는 Raspberry Pi OS가 권장됩니다.

지원되는 하드웨어 플랫폼

.NET IoT 라이브러리는 대부분의 단일 보드 플랫폼과 호환됩니다. 권장되는 플랫폼은 Raspberry Pi(2 이상) 및 Hummingboard입니다. 호환이 확인된 다른 플랫폼은 BeagleBoard 및 ODROID입니다.

PC 플랫폼은 USB-SPI/I2C 브리지를 사용하여 지원됩니다.

참고

Raspberry Pi 0와 Raspberry Pi 2 이전의 Raspberry Pi 디바이스를 포함한 ARMv6 아키텍처 디바이스에서는 .NET이 지원되지 않습니다.

다음 단원에서는 .NET IoT 라이브러리를 사용하여 BME280 센서를 읽고 팬 릴레이를 나타내는 LED를 트리거합니다.

지식 점검

1.

.NET IoT 라이브러리는 어떤 운영 체제를 지원하나요?

2.

참인 문이 아닌 것은 무엇인가요?