Pelatihan
Jalur pembelajaran
Jalur pembelajaran ini bertujuan untuk menjelaskan kepada peserta cara menyebarkan AI di edge menggunakan layanan Azure.
Browser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
Pustaka .NET IoT umumnya digunakan untuk mengembangkan kode untuk Raspberry Pi dan perangkat IoT lainnya. Namun, Anda juga dapat menggunakannya untuk mengembangkan kode untuk PC Windows, Linux, dan macOS menggunakan adaptor USB-ke-serial seperti FTDI FT232H. Artikel ini memperlihatkan kepada Anda cara menggunakan pustaka .NET IoT untuk berkomunikasi dengan perangkat yang terhubung ke adaptor FT232H.
Tip
Artikel ini menggunakan adaptor FTDI FT232H, tetapi Anda dapat menggunakan adaptor USB-ke-seri yang didukung oleh pustaka .NET IoT, seperti FT2232H, FT4232H, dan FT4222. Periksa daftar pengikatan perangkat yang didukung untuk informasi selengkapnya.
Pastikan Anda telah menginstal driver D2XX untuk adaptor USB-ke-serial Anda, yang ditemukan di situs web FTDI.
Catatan
Perangkat Windows bisa otomatis menginstal pengandar ketika Anda mencolokkan adapter. Periksa Device Manager untuk perangkat bernama USB Serial Converter yang tercantum di bawah pengontrol Universal Serial Bus. Penyedia driver perangkat harus FTDI.
Sebelum Anda dapat membuat perangkat GPIO, I2C, atau SPI, Anda harus mengidentifikasi adaptor USB-ke-serial yang terhubung. Kode berikut mencantumkan perangkat FTDI yang tersambung:
using Iot.Device.FtCommon;
var devices = FtCommon.GetDevices();
Console.WriteLine($"{devices.Count} available device(s)");
foreach (var device in devices)
{
Console.WriteLine($" {device.Description}");
Console.WriteLine($" Flags: {device.Flags}");
Console.WriteLine($" Id: {device.Id}");
Console.WriteLine($" LocId: {device.LocId}");
Console.WriteLine($" Serial number: {device.SerialNumber}");
Console.WriteLine($" Type: {device.Type}");
}
if (devices.Count == 0)
{
Console.WriteLine("No device connected");
return;
}
Dalam kode sebelumnya, FtCommon.GetDevices()
metode mengembalikan daftar semua perangkat FTDI yang terhubung.
Berikut adalah implementasi perangkat keras dari tutorial Blink led yang menggunakan adaptor FTDI FT232H untuk mengontrol LED:
Pada gambar sebelumnya, sirkuit LED sangat mirip dengan tutorial asli. Satu-satunya perbedaan adalah BAHWA LED terhubung ke pin D7 pada adaptor FT232H alih-alih menyematkan 18 pada Raspberry Pi.
Kode untuk tutorial ini juga mirip dengan tutorial asli:
using System.Device.Gpio;
using Iot.Device.Ft232H;
using Iot.Device.FtCommon;
Console.WriteLine("Blinking LED. Press Ctrl+C to end.");
Ft232HDevice ft232h = new Ft232HDevice(FtCommon.GetDevices()[0]);
GpioController controller = ft232h.CreateGpioController();
int pin = Ft232HDevice.GetPinNumberFromString("D7");
controller.OpenPin(pin, PinMode.Output);
bool ledOn = true;
while (true)
{
controller.Write(pin, ledOn ? PinValue.High : PinValue.Low);
Thread.Sleep(1000);
ledOn = !ledOn;
}
Dalam kode sebelumnya:
Ft232HDevice
dibuat dengan meneruskan ID perangkat pertama yang dikembalikan oleh FtCommon.GetDevices()
ke konstruktor.GpioController
pengontrol bernama dibuat dengan memanggil CreateGpioController()
instansFt232HDevice
. Instans ini GpioController
melakukan fungsi yang sama dengan GpioController
instans dalam tutorial asli.GetPinNumberFromString()
instans Ft232HDevice
dan meneruskan nama pin alfanumerik D7.Untuk komunikasi I2C, pin D0 dan D1 pada adaptor FT232H masing-masing digunakan untuk garis SDL dan SCA. Sakelar pemilih I2C pada adaptor FT232H harus diatur ke Aktif.
Berikut adalah implementasi perangkat keras dari tutorial Membaca kondisi lingkungan dari sensor yang menggunakan adaptor FTDI FT232H untuk membaca suhu, kelembaban, dan tekanan barometrik dari sensor BME280:
Pada gambar sebelumnya:
using System.Device.I2c;
using Iot.Device.Bmxx80;
using Iot.Device.Bmxx80.PowerMode;
using Iot.Device.Ft232H;
using Iot.Device.FtCommon;
Ft232HDevice ft232h = new Ft232HDevice(FtCommon.GetDevices()[0]);
I2cConnectionSettings i2cSettings = new I2cConnectionSettings(0, Bme280.SecondaryI2cAddress);
using I2cDevice i2cDevice = ft232h.CreateI2cDevice(i2cSettings);
using Bme280 bme280 = new Bme280(i2cDevice);
int measurementTime = bme280.GetMeasurementDuration();
while (true)
{
Console.Clear();
bme280.SetPowerMode(Bmx280PowerMode.Forced);
Thread.Sleep(measurementTime);
bme280.TryReadTemperature(out var tempValue);
bme280.TryReadPressure(out var preValue);
bme280.TryReadHumidity(out var humValue);
bme280.TryReadAltitude(out var altValue);
Console.WriteLine($"Temperature: {tempValue.DegreesCelsius:0.#}\u00B0C");
Console.WriteLine($"Pressure: {preValue.Hectopascals:#.##} hPa");
Console.WriteLine($"Relative humidity: {humValue.Percent:#.##}%");
Console.WriteLine($"Estimated altitude: {altValue.Meters:#} m");
Thread.Sleep(1000);
}
Dalam kode sebelumnya:
Ft232HDevice
dibuat dengan meneruskan ID perangkat pertama yang dikembalikan oleh FtCommon.GetDevices()
ke konstruktor.I2cDevice
dibuat dengan memanggil CreateI2cDevice()
instans Ft232HDevice
. Instans ini I2cDevice
melakukan fungsi yang sama dengan I2cDevice
instans dalam tutorial asli.Untuk komunikasi SPI, pin D0, D1, D2, dan D3 pada adaptor FT232H digunakan untuk garis SCK, MOSI, MISO, dan CS. Sakelar pemilih I2C pada adaptor FT232H harus diatur ke Nonaktif.
Berikut adalah implementasi perangkat keras dari nilai Baca dari tutorial konverter analog-ke-digital yang menggunakan adaptor FTDI FT232H untuk membaca nilai dari MCP3008 ADC:
Pada gambar sebelumnya:
using System.Device.Gpio;
using System.Device.Spi;
using Iot.Device.Adc;
using Iot.Device.Ft232H;
using Iot.Device.FtCommon;
var devices = FtCommon.GetDevices();
var ft232h = new Ft232HDevice(devices[0]);
var hardwareSpiSettings = new SpiConnectionSettings(0, 3) { ClockFrequency = 1_000_000, DataBitLength = 8, ChipSelectLineActiveState = PinValue.Low };
using SpiDevice spi = ft232h.CreateSpiDevice(hardwareSpiSettings);
using var mcp = new Mcp3008(spi);
while (true)
{
Console.Clear();
double value = mcp.Read(0);
Console.WriteLine($"{value}");
Console.WriteLine($"{Math.Round(value/10.23, 1)}%");
Thread.Sleep(500);
}
Dalam kode sebelumnya:
Ft232HDevice
dibuat dengan meneruskan ID perangkat pertama yang dikembalikan oleh FtCommon.GetDevices()
ke konstruktor.SpiDevice
dibuat dengan memanggil CreateSpiDevice()
instans Ft232HDevice
. Instans ini SpiDevice
melakukan fungsi yang sama dengan SpiDevice
instans dalam tutorial asli.Kode untuk tutorial ini tersedia di GitHub.
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik:
Pelatihan
Jalur pembelajaran
Jalur pembelajaran ini bertujuan untuk menjelaskan kepada peserta cara menyebarkan AI di edge menggunakan layanan Azure.