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)