.NET can be used to build applications for IoT devices and scenarios. IoT applications typically interact with sensors, displays and input devices that require the use of GPIO pins, serial ports or similar hardware.
You might want to start with our official documentation.
This repository contains the System.Device.Gpio library and implementations for various boards like Raspberry Pi and Hummingboard.
The repository also contains Iot.Device.Bindings, a growing set of community-maintained device bindings for IoT components.
While most of the bindings and examples in this project require and are designed to support specific hardware (such as LCD displays, temperature sensors, single-board computers, microcontrollers, etc.), the library itself tries to be as hardware-independent as possible. Some bindings are even written to showcase the use of IOT interfaces with hardware that is already present in normal desktop computers (such as keyboards or CPU temperature sensors). So to get started, you do not need expensive hardware. Or you can start out with cheap stuff, such as an Arduino Uno. You can also use FT232H or FT4222 on a Windows, Linux or MAcOS traditional laptop or desktop.
Both libraries System.Device.Gpio
(this one) and Iot.Device.Bindings are cross-targeting .NET Standard 2.0, .NET Core 3.1, and .NET 6.0. They can be used from any project targeting .NET Core 2.0 or higher, and also from .NET Framework or mono. If you are looking at a Micro Controller Unit (MCU) support, check .NET nanoFramework.
The sample projects target the latest stable .NET Version. This applies to the sample projects with each device as well as the example projects.
From Visual Studio, you can just add a nuget by searching for System.Device.Gpio
and Iot.Device.Bindings
.
After installing, please see the following areas to learn more:
- Official Documentation - Concepts, quickstarts, tutorials, and API reference documentation.
- API Documentation - Direct link to API reference documentation for all public interfaces. Be sure to choose the library version you are using.
- Microsoft Learn interactive learning module
- Let's Learn .NET: IoT livestream (September 2021)
- .NET IoT 101 (Jan 2020) - An introduction series on how to create .NET IoT applications with a Raspberry Pi.
- Hardware Documentation - Resources related to electronics, devices, vendors, software and other IoT topics.
- Samples - Step-by-step instructions on building your first app.
All bindings (in src/devices
) contains a samples
folder where you will find examples on how to use each of the devices, sensor, displays and other components.
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.
We welcome PR and contributions. We are primarily interested in the following:
- Improving quality and capability of the drivers for supported boards.
- Implementations for additional boards.
- .NET device bindings for a wide variety of sensors, chips, displays and other components.
- Request a device binding or protocol that you need for your project (file an issue).
- Links to blog posts or tweets that showcase .NET Core being used for great IoT scenarios (file an issue).
.NET (including the iot repo) is licensed under the MIT license.