Retour aux projets
10 avr. 2026 Case Study

HeroLink : Hub Logistique IoT

Application desktop en C# pour automatiser la mesure et le pesage de colis via des capteurs laser et une balance connectée.

C#.NET 10AvaloniaUIIoTHardware
Représentation par IA de l'interface de HeroLink

Illustration générée par IA pour représenter le wireframe de l'interface, respectant le design réel

Le Défi

Dans la logistique e-commerce, saisir manuellement les dimensions et le poids des colis prend du temps et génère des erreurs de frappe, ce qui finit par coûter cher en surcharges d’expédition.

L’objectif de HeroLink était de créer une station “Plug-and-Play”. L’application gère 4 périphériques en simultané (1 balance + 3 lasers) pour récupérer les dimensions d’un colis dès qu’un code-barres est scanné, puis envoie les données à un ERP via une API.

Choix Techniques

Pourquoi .NET 10 & Avalonia UI ?

La Stack Matérielle

Tout repose sur System.IO.Ports pour la communication série (COM) :

Le Problème : Instabilité des ports série

Pendant les tests, la connexion avec la balance n’était pas stable. Après une dizaine de minutes, elle cessait de répondre. Cela bloquait parfois l’interface utilisateur, obligeant à redémarrer le logiciel.

La Solution : Gestion du multithread

Pour régler ça, j’ai revu la gestion des accès aux ports :

Zoom Technique : API

J’ai utilisé Refit pour transformer l’API en une interface C# simple à utiliser :

Ce que j’ai appris

Rétrospective

Le projet a été déployé récemment, mais si je devais le refaire, j’essaierais d’isoler la gestion hardware dans un Service Windows (Background Worker) séparé. L’interface ne ferait que l’affichage, ce qui rendrait le système encore plus robuste en cas de crash de l’interface graphique.