Siempre vemos ejemplos de Python o Node.js en IoT, pero la verdad es que C# también es sorprendentemente sencillo, robusto y seguro. En este breve tutorial vamos a:
- Conectar nuestro cliente .NET a un broker público (HiveMQ).
- Suscribirnos a un tópico (
iot/puerta/estado
). - Mostrar en consola los mensajes que llegan.
¿Qué necesitás?
- .NET 8 SDK
- La librería MQTTnet
- Un broker MQTT público (usaremos
broker.hivemq.com:1883
) - ¡Ganas de automatizar y experimentar!
Código de ejemplo
using MQTTnet;
using MQTTnet.Client;
using MQTTnet.Client.Options;
using System;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
// 1. Configuramos las opciones del cliente
var options = new MqttClientOptionsBuilder()
.WithTcpServer("broker.hivemq.com", 1883)
.WithClientId("dotnet-iot-demo")
.Build();
// 2. Creamos el cliente y definimos handlers
var factory = new MqttFactory();
var client = factory.CreateMqttClient();
client.UseConnectedHandler(async _ =>
{
Console.WriteLine("Conectado a HiveMQ");
await client.SubscribeAsync("iot/puerta/estado");
Console.WriteLine("Suscrito a: iot/puerta/estado");
});
client.UseApplicationMessageReceivedHandler(e =>
{
var payload = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
Console.WriteLine($"Mensaje recibido: {payload}");
// Aquí podrías, por ejemplo:
// • Registrar un evento en tu base de datos
// • Activar una alerta por e-mail o SMS
// • Enviar la info a un dashboard web
});
// 3. Conectamos y esperamos mensajes
await client.ConnectAsync(options);
Console.WriteLine("Presioná ENTER para salir...");
Console.ReadLine();
}
}
¿Por qué C# + MQTTnet?
- Simplicidad: La API es intuitiva y con poco código ya tenés un cliente funcional.
- Rendimiento: .NET es rápido y ligero, ideal para apps que corran en Raspberry Pi o Windows IoT.
- Seguridad: MQTTnet soporta TLS y autenticación, clave para proteger tu proyect IoT.
¡En el siguiente post veremos como agregar autenticación básica a nuestro proyecto!
Top comments (0)