IoTESP32Impression 3DDIYÉlectronique

Fabriquer une balance RFID connectée pour mes bobines de filament

11/07/2026
11 minutes de lecture
Éric Philippe

Éric Philippe

Full-Stack Developer & Designer

De la zone de confort logicielle aux vapeurs de soudure

Ce projet est la suite directe de Filaventory, mon système d'inventaire de filaments auto-hébergé. Sur le papier, Filaventory était complet : une API Go, un client bureau, un compagnon mobile, tout ce qu'il faut pour suivre ma collection grandissante (inquiétante ?) de bobines de filament.

Mais il restait une étape que je faisais toujours à la main : peser les bobines et taper les chiffres. Et tout l'intérêt de l'API de Filaventory, c'était justement qu'un appareil IoT puisse le faire à ma place. Poser une bobine sur une balance, laisser un lecteur RFID la reconnaître, la peser, envoyer le tout au serveur. Entièrement automatique.

Petit détail : toute mon expérience en IoT se résumait à des kits débutants et des breadboards. Aucune soudure. Jamais.

Spoiler : l'électronique n'est pas ce qui a le plus cassé dans cette histoire.

Le plan

Avant de commander quoi que ce soit, j'ai dessiné ce à quoi je voulais que le produit final ressemble, en piochant dans mes différentes inspirations :

Le plan

Après quelques recherches, voici la liste de courses :

ComposantSpecsNotes
ESP32 DevKit30 broches, 4 Mo de flashPuce ESP32-WROOM-32
Lecteurs RFID RC522NFC 13,56 MHz, SPI2 nécessaires (support double tag)
HX711ADC 24 bits, ampli de celluleLes modules PCB verts font l'affaire
Cellule de charge5 kg ou 20 kgDemi-pont 4 fils
Écran OLEDSSD1306 128×64, I²C, 0,96" ou 1,3"Adresse I²C 0x3C
KY-040Encodeur rotatif, 360°L'interface humaine

Premier contact : le prototypage sur breadboard

Cette partie, c'était la maison. Câbler des composants sur une breadboard, c'est le « hello world » de l'électronique, exactement ce pour quoi mes kits débutants m'avaient préparé. Après un peu de bidouille et un premier brouillon imprimé en 3D pour tenir le tout, premier test concluant :

Premier test concluant

Le lecteur RFID voyait un tag, l'écran affichait des choses, l'ESP32 parlait à mon Wi-Fi. Parfait. Il ne restait plus qu'à connecter la cellule de charge à la carte HX711.

Ce qui demande de souder.

Le mur de la soudure

Je savais que ce moment arriverait. Les fils de la cellule de charge devaient être soudés à la carte HX711, et cette fois, pas de contournement possible avec une breadboard.

Me voilà donc, premier fer à souder en main, pas de flux, rien pour nettoyer la panne, et un niveau de confiance totalement déconnecté de mes compétences réelles. J'ai passé environ deux heures à essayer de faire tenir quatre points de soudure. Quatre points. Deux heures. L'étain qui fait des boules, qui refuse d'accrocher, qui colle au fer au lieu du pad... toutes les erreurs classiques de débutant, je les ai collectionnées.

Quand les points ont enfin eu l'air « acceptables » (le mot est généreux), j'avais littéralement peur de toucher quoi que ce soit, comme si toute la carte ne tenait que par l'espoir.

Calibration : une bombe de WD40 et une balance de cuisine

La cellule enfin connectée, il fallait la calibrer. La méthode propre implique des poids de référence certifiés. Ma méthode impliquait une bombe de WD40 et ma balance de cuisine comme source de vérité :

L'atelier

C'est là que j'ai découvert à quel point une cellule de charge est sensible. On s'appuie sur le bureau, la valeur bouge. On respire à côté, la valeur bouge. C'est honnêtement impressionnant, et légèrement exaspérant quand on essaie de déterminer si c'est la soudure ou le code qui est instable.

Parce que oui, c'était le thème récurrent de la journée : écrire un firmware de plus en plus complet, le voir planter, remettre en question mon code, et finir par découvrir qu'un point de soudure avait lâché. Puis ressouder, reflasher, recommencer. Sans m'en rendre compte, cinq heures s'étaient évaporées, et mon bureau documentait la descente :

Le bureau en chantier

Le câblage

Pour référence future (la mienne, probablement, quand je rouvrirai inévitablement cette bête), voici les tables de câblage complètes :

Lecteur RFID RC522 n°1

Broche RC522FonctionBroche ESP32
VCC3,3 V3V3
GNDMasseGND
SCKHorloge SPIGPIO 18
MOSISPI master outGPIO 23
MISOSPI master inGPIO 19
SDA / SSChip selectGPIO 5
RSTResetGPIO 27
IRQ(non utilisé)

Lecteur RFID RC522 n°2

Broche RC522FonctionBroche ESP32
VCC3,3 V3V3
GNDMasseGND
SCKHorloge SPIGPIO 18 (partagé)
MOSISPI master outGPIO 23 (partagé)
MISOSPI master inGPIO 19 (partagé)
SDA / SSChip selectGPIO 14 (différent)
RSTResetGPIO 25 (différent)
IRQ(non utilisé)

Amplificateur HX711

Broche HX711FonctionBroche ESP32
VCCAlimentation3V3 (ou 5 V si supporté)
GNDMasseGND
DT (DOUT)DonnéesGPIO 32
SCKHorlogeGPIO 33
E+Excitation +Fil rouge de la cellule
E−Excitation −Fil noir de la cellule
A+Canal A +Fil vert ou blanc de la cellule
A−Canal A −Fil blanc ou vert de la cellule

Écran OLED SSD1306 (I²C)

Broche OLEDFonctionBroche ESP32
VCC3,3 V3V3
GNDMasseGND
SDADonnées I²CGPIO 21
SCLHorloge I²CGPIO 22

Budget de consommation

ComposantTensionCourant typiqueCourant de pointe
ESP32 (repos, Wi-Fi off)3,3 V50 mA80 mA
ESP32 (Wi-Fi TX)3,3 V160 mA240 mA
RC522 ×23,3 V50 mA chacun200 mA total en lecture
HX711 + cellule3,3-5 V5 mA15 mA
OLED3,3 V15 mA25 mA
Servo FS90R (repos)5 V100 mA
Servo FS90R (en marche)5 V500 mA900 mA (blocage)
Total estimé~750 mA~1,5 A

Le firmware complet est disponible dans ce gist.

Une leçon de logiciel, apprise à la dure via le matériel

À un moment, mon écran OLED est devenu terriblement lent à se rafraîchir, sans que je comprenne pourquoi. Les lectures RFID fonctionnaient, le Wi-Fi fonctionnait, mais l'interface donnait l'impression de tourner sous l'eau.

Le coupable : la routine de pesée. La lecture du HX711 était plantée en plein milieu de la boucle principale, bloquant tout le reste en attendant une mesure stable. Chaque rafraîchissement d'écran, chaque entrée utilisateur, tout attendait la balance.

Venant du monde logiciel où je lance des tâches asynchrones sans y réfléchir, c'était une belle claque d'humilité : sur un microcontrôleur, tout ce qui se trouve dans la boucle peut bloquer toute la boucle. J'ai retravaillé le code pour que la pesée ne prenne plus tout en otage, et d'un coup, l'affichage était fluide.

Et une fois ça corrigé... tout fonctionnait !!

La conception de la coque

Il était temps de donner un vrai corps à ce tas de cartes et de câbles. J'ai mesuré chaque carte, chaque trou de fixation, prévu assez de dégagement pour les câbles, et modélisé une coque imprimée en 3D dans Fusion 360.

Pendant que le premier brouillon s'imprimait, une idée s'est glissée dans ma tête : et si la balance avait une vraie interface physique ? Un encodeur rotatif comme contrôle principal pour les opérations locales : tarer la balance, sélectionner la marque de la bobine pour soustraire le poids de la bobine vide de la mesure, ce genre de choses.

Donc, retour sur Fusion 360. J'ai mis à jour la coque avec un trou pour l'encodeur, et tant qu'à faire, modélisé une sorte de petit support, une coque autour de l'écran et de l'encodeur. Modélisé, tout imprimé, début du montage.

J'ai mis les vis autour de la coque de l'écran... et entendu un crac dramatique.

Le massacre des OLED

Sans savoir d'où venait le bruit, j'ai quand même fini de monter la coque supérieure (l'optimisme est une drogue redoutable), et évidemment, l'écran OLED était mort.

Pas de problème, ils venaient par pack de trois. Deuxième écran, même montage, même crac. C'est là que j'ai compris : je serrais trop les vis, et au lieu de plaquer correctement l'écran contre la coque, elles faisaient plier et fissuraient le verre.

Fort de cette découverte, le troisième écran allait forcément survivre. Alors j'ai vissé délicatement, doucement, avec la précaution d'un démineur. Et ça a marché ! Mais ensuite j'ai vu qu'il restait un petit espace entre la coque de l'écran et la coque supérieure de la balance... Trop perfectionniste, j'ai donné un coup de tournevis en trop...

Crac.

Trois écrans. J'avais tué les trois écrans.

J'ai dû en commander trois autres, mettre le projet en pause une journée, et prendre plusieurs jours pour pleurer mon manque de délicatesse.

Le montage, pour de vrai cette fois

À la réception des nouveaux écrans, j'ai tout monté correctement (vis à peine serrées, espace accepté, ego rangé), et la balance a enfin pris forme :

La balance de face

La balance de dos

La balance de côté

On pose une bobine dessus, le lecteur RFID l'identifie, la cellule de charge la pèse, et le résultat atterrit dans Filaventory sans que je tape le moindre chiffre. L'encodeur rotatif gère les opérations locales : le tarage, et la sélection du profil de bobine pour que le poids de la bobine vide soit correctement soustrait.

Ce que j'en retire

Ce que je veux vraiment souligner avec ce projet, c'est l'expérience d'apprendre un domaine qui m'est réellement éloigné. Mon quotidien, c'est le logiciel : des abstractions, des boucles d'itération rapides, des boutons « annuler » partout. Le matériel, lui, est patient, physique, et complètement indifférent à votre niveau de confiance. Chaque erreur coûte du vrai temps, de vrais composants, et occasionnellement de vrais écrans OLED.

Beaucoup d'essais, beaucoup d'erreurs, beaucoup d'apprentissage :

  • La soudure est une compétence, pas une case à cocher. La mienne est encore loin d'être idéale, mais elle existe maintenant
  • Les cellules de charge sont absurdement sensibles, et la calibration à la bombe de WD40 est une méthodologie d'ingénierie légitime (ne me citez pas là-dessus)
  • Sur un microcontrôleur, la boucle est sacrée ; bloquez-la et tout en souffre
  • Les vis ont une limite de serrage bien, bien inférieure à votre perfectionnisme

Et au bout du compte, j'ai un produit final que je trouve aussi chouette visuellement que poli fonctionnellement. Une balance qui reconnaît mes bobines, les pèse, et maintient mon inventaire à jour toute seule.

Alors oui, mes soudures ne sont toujours pas idéales. Mais j'en ressors avec plein de connaissances que je n'avais pas avant, et honnêtement, c'était tout l'intérêt.

Un projet similaire en tête ? N'hésitez pas à me contacter. J'adorerais entendre parler de vos aventures matérielles, ou vous aider à débloquer une situation comme celle-ci.

Tous les articles
Merci de votre lecture ! 🚀