Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Las bibliotecas de IoT de .NET se usan normalmente para desarrollar código para Raspberry Pi y otros dispositivos IoT. Sin embargo, también puede usarlos para desarrollar código para equipos Windows, Linux y macOS mediante un adaptador USB a serie, como FTDI FT232H. En este artículo se muestra cómo usar las bibliotecas de IoT de .NET para comunicarse con dispositivos conectados al adaptador FT232H.
Sugerencia
En este artículo se usa un adaptador FTDI FT232H, pero puede usar cualquier adaptador USB a serie compatible con las bibliotecas de IoT de .NET, como el FT2232H, FT4232H y FT4222. Consulte la lista de enlaces de dispositivos admitidos para obtener más información.
Asegúrese de que ha instalado los controladores D2XX para el adaptador USB a serie, que se encuentra en el sitio web de FTDI.
Nota
Los dispositivos Windows pueden instalar automáticamente los controladores al conectar el adaptador. Compruebe el Administrador de dispositivos para ver un dispositivo denominado Convertidor de serie USB que aparece en Controladores de bus serie universales. El proveedor de controladores del dispositivo debe ser FTDI.
Para poder crear un dispositivo GPIO, I2C o SPI, debe identificar el adaptador USB a serie conectado. En el código siguiente se enumeran los dispositivos FTDI conectados:
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;
}
En el código anterior, el método FtCommon.GetDevices()
devuelve una lista de todos los dispositivos FTDI conectados.
Esta es una implementación de hardware del tutorial de Blink un LED que usa el adaptador FTDI FT232H para controlar un LED:
En la imagen anterior, el circuito LED es muy similar al tutorial original. La única diferencia es que el LED está conectado al pin D7 en el adaptador FT232H en lugar del pin 18 en Raspberry Pi.
El código del tutorial también es similar al tutorial original:
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;
}
En el código anterior:
Ft232HDevice
, pase el primer identificador de dispositivo devuelto por FtCommon.GetDevices()
al constructor.GpioController
denominada controlador llamando a CreateGpioController()
en la instancia Ft232HDevice
. Esta instancia GpioController
realiza las mismas funciones que la instancia GpioController
del tutorial original.GetPinNumberFromString()
en la instancia Ft232HDevice
y pasando el nombre de pin alfanumérico D7.Para la comunicación I2C, los pines D0 y D1 del adaptador FT232H se usan para las líneas SDL y SCA, respectivamente. El conmutador del selector I2C en el adaptador FT232H debe establecerse en Activado.
Esta es una implementación de hardware del tutorial de Lectura de condiciones ambientales de un sensor que usa el adaptador FTDI FT232H para leer la temperatura, la humedad y la presión barométrica desde un sensor BME280:
En la imagen anterior:
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);
}
En el código anterior:
Ft232HDevice
, pase el primer identificador de dispositivo devuelto por FtCommon.GetDevices()
al constructor.I2cDevice
mediante una llamada a CreateI2cDevice()
en la instancia Ft232HDevice
. Esta instancia I2cDevice
realiza las mismas funciones que la instancia I2cDevice
del tutorial original.Para la comunicación SPI, los pines D0, D1, D2y D3 del adaptador FT232H se usan para las líneas SCK, MOSI, MISO y CS, respectivamente. El conmutador del selector I2C en el adaptador FT232H debe establecerse en Desactivado.
Esta es una implementación de hardware del tutorial de Lectura de los valores de lectura de un convertidor analógico a digital que usa el adaptador FTDI FT232H para leer valores de un ADC MCP3008:
En la imagen anterior:
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);
}
En el código anterior:
Ft232HDevice
, pase el primer identificador de dispositivo devuelto por FtCommon.GetDevices()
al constructor.SpiDevice
mediante una llamada a CreateSpiDevice()
en la instancia Ft232HDevice
. Esta instancia SpiDevice
realiza las mismas funciones que la instancia SpiDevice
del tutorial original.El código de este tutorial está disponible en GitHub.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraDocumentación
Desarrollo de aplicaciones para dispositivos IoT con las bibliotecas .NET IoT - .NET
Obtenga información sobre cómo .NET puede usarse para compilar aplicaciones de IoT para escenarios y dispositivos IoT.
Documentación de bibliotecas .NET IoT
Obtenga información sobre cómo .NET puede usarse para compilar aplicaciones de IoT para escenarios y dispositivos IoT.
Obtenga información sobre cómo hacer parpadear un LED con las bibliotecas de IoT de .NET.