Journal De l'IoT dans la poche

Posté par  (site web personnel) . Licence CC By‑SA.
18
17
juil.
2026

Sommaire

Introduction

Je m'intéresse depuis quelques temps à des microcontrôleurs comme le Raspberry Pico (2) W, l'ESP8266, l'ESP32… surtout pour voir ce qu'on l'on pouvait tirer du Wi-Fi dont ils sont équipés.

De fil en aiguille, je me suis retrouvé avec un kit mécatronique de poche, alimenté par batterie, et qui, grâce au Wi-Fi, est pilotable à distance, notamment avec un smartphone.

J'ai animé quelques ateliers de programmation centrés sur ces kits, majoritairement à destination de collégiens, qui ont connus un franc succès.

C'est de l'électronique tout ce qu'il y a de plus basique et s'appuyant sur des composants très faciles à trouver. Si vous ne savez pas quoi faire lors de vos longues soirées d'hiver journées de canicule…

NOTA : en cliquant sur les photos ci-dessous, vous aurez accès à leur version agrandie.

Présentation du kit

En cliquant sur l'image ci-dessous, vous aurez accès à une petit vidéo (hébergé sur une instance PeerTube) qui montre les différents composants du kit en action.

Le kit est animé par une application Python qui tourne sur mon smartphone grâce à Termux. Bien entendu, ce type d'application tourne sans problème sur un ordinateur de type PC avec un environnement de développement Python tout ce qu'il y de plus classique.
À noter que l'on peut également faire tourner ce type d'application sous iOS, grâce à iSH.

Voici une photo avec presque tous les composants constituant ce kit. Il manque tout ce qui est relatif aux servomoteurs, qui sont un ajout de dernière minute (pour rappel, cliquer sur une photo vous donne accès à sa version agrandie).

Voyons maintenant les composants en détails.

Le microcontrôleur

Le microcontrôleur est un ESP32-C3 SuperMini. En plus du firmware MicroPython, il y a un programme maison qui sera abordé plus bas.

Le buzzer

Le buzzer est un buzzer passif, dont on peut modifier la fréquence du son émis, contrairement au buzzer actif. Il sera piloté par un signal PWM. Accessoirement, on peut influer dans une certaine mesure sur le timbre et le volume du son émis en jouant sur le ratio du signal PWM.

L'anneau RGB

L'anneau utilisé est constitué de 8 DELs RVB WS2812. Attention : il en existe deux tailles, comme on peut le voir ci-dessous :

Le plus petit à l'avantage d'avoir un diamètre intérieur qui correspond pile poil au diamètre d'un buzzer. On va donc pouvoir enfiler l'anneau sur le buzzer et assurer son maintien en le coinçant légèrement contre l'ESP32.

L'anneau vient généralement soudé avec deux câbles (en-haut sur la photo). Ces deux câbles sont trop longs et trop rigides pour pouvoir être utilisés avec ce kit. Le câble de sortie, qui permet de brancher un autre anneau, est, de plus, inutile. Il convient donc de les dessouder et de remplacer celui d'entrée par un autre modèle (en-bas sur la photo).

Le câble est figé par de la résine UV pour limiter les risques de rupture lors de sa manipulation.

Chacune des couleurs (RVB) peut prendre une valeur de 0 à 255, mais seules les valeurs les plus basses sont intéressantes car, plus les valeurs sont élevées, plus la différence de luminosité perçue entre deux valeurs consécutives est faible. Au final, je n'utilise que la plage des valeurs de 0 à 31.

L'écran OLED

Il s'agit d'un SSD1106, d'une taille de 0,96 pouces et d'une définition de 128 par 64. Il se pilote par I2C.

L'afficheur LCD

Il s'agit d'un afficheur LCD1602 de 2 lignes de 16 caractères. Il existe en plusieurs couleurs d'affichage, par exemple noir sur fond vert, ou encore blanc sur fond bleu…

On lui adjoint un PCF8574, ce qui permet de le piloter avec I2C. Ce composant n'est pas placé sur un support, mais soudé directement sur le PCB pour des questions d'encombrement. Pour ce faire, ses pattes sont redressées (en-bas sur la photo) et soudées directement sur le PCB.

Pour pouvoir régler le contraste de l'afficheur une fois le composant soudé, il faut percer le PCB au niveau du potentiomètre du module PCF8574.

Les servomoteurs

J'utilise des servomoteurs de 180° référencé SG90 qui ont un plage de tension de fonctionnement acceptant le 5V.

Ces servomoteurs peuvent être à l'origine de pics de courant qui occasionnent des chutes de tensions provoquant l'extinction du kit ou le redémarrage du microcontrôleur. Pour éviter cela, un condensateur électrolytique de 2200µF/10V est placé entre le 5V et le GND. Ce condensateur a un diamètre de 1 cm, ce qui permet de le glisser sous l'afficheur LCD. Les condensateurs de plus de 2200µF et/ou 16V sont moins pratiques avec ce kit de par leur diamètre de minimum 13 mm.

Le booster

Le booster prend en entrée les 3.7 V de la batterie Li-Po et sort du 5V (2A). Le modèle utilisé a, de plus, une entrée K qui permet de piloter la mise sous/hors tension du kit. Ce booster est équipé d'une prise USB-C qui permet de recharger la batterie. En option, il y a une prise USB-A (non visible sur la photo, car placée en-dessous du booster) qui peut servir d'alimentation.

Là aussi, les câbles seront figés par de la résine UV.

Autres composants

Voici les autres composants également visible sur la photo d'ensemble.

Il y a une batterie Li-Po 3.7 V de 2500mAH, Elle tient facilement plusieurs jours.

Il y a un bouton poussoir (j'ai pris un modèle pour souris, à la fois pour sa taille réduite et sa durabilité) qui est placé entre l'entrée K du booster et le GND. Un appui met le kit sous tension, deux appuis le met hors tension.

Il y a également un interrupteur à bascule qui est placé sur la sortie 5V du booster, avant le condensateur. Utile pour éviter que le kit ne demeure sous tension lorsque l'on met la batterie en charge.

Les dimensions du PCB sont de 8 cm par 6 cm.

La pochette est une pochette pour cartes Uno.

À titre indicatif, pour relier les différents composants, j'ai utilisé un fil monobrin AWG26.

Vues d'ensemble

Voici le PCB avec les supports pour les différents composants. Notez l'orifice pour accéder au potentiomètre permettant de régler le contraste de l'afficheur LCD.

Même photo avec, en plus, les différents composants qui sont soudés directement sur le PCB, plus les câbles des servomoteurs et le condensateur compensant les chutes de tension occasionnés par les servomoteurs.

Et enfin, le kit entièrement peuplé.

Câblage

Voici le schéma électronique du kit.

Ce schéma et les indications ci-dessus devrait permettre la réalisation du kit, si l'on est un tant soit peu familier avec l'électronique et la manipulation d'un fer à souder.
On peut également utiliser des breadboard : les différents composants s'enfichent parfaitement dessus et on peut alimenter le circuit via la prise USB-C du microcontrôleur…

La partie logicielle

Le dépôt https://github.com/epeios-q37/ucuq-python contient à la fois le programme à installer sur le microcontrôleur et le module Python permettant de piloter à distance ce kit. Vous y trouverez également le code source de différentes applications pilotant ce kit, notamment celle ayant servi pour les vidéos. Ce dépôt détaille également comment installer et configurer le logiciel destiné au microcontrôleur.
Le kit et la module Python se connectent tous deux à un daemon dont le code source est dans le dépôt https://github.com/epeios-q37/ucuq. Ce dépôt n'est utile que pour ceux qui veulent utiliser leur propre serveur en lieu et place de celui mis à disposition en libre accès.

La description de l'API se trouve à l'adresse https://zelbinium.org/fr/ucuq/api/. Pour simplifier son utilisation, cette API cache volontairement tous les aspects liés au matériel (protocoles de communication, broches utilisées…). Cette API s'appuie sur des classes et des fonctions avec lesquelles on spécifie les paramètres matériels, ce qui donne la possibilité de créer ultérieurement ses propres montages.
Vous trouverez d'autres renseignements à propos du kit à https://zelbinium.org/fr/ucuq.

Bonus

Deux vidéos supplémentaires sur ce kit :

  • # de la terminologie

    Posté par  . Évalué à 3 (+0/-0).

    du coup est-ce encore de l'IoT (internet des objets)
    ou est-ce de la mecatronique, mais IoT est plus vendeur ?

  • # ESP32-C3 en access point

    Posté par  . Évalué à 3 (+1/-0).

    Salut,

    au vu de la photo j'ai reconnu un ESP32 que j'ai testé (puis abandonné pour d'autres modèles un peu plus chers mais fonctionnant comme souhaité)

    Ces cartes à antenne céramique m'ont causé du tracas sur la partie wifi : pas très stable en client d'une box ou du réseau wifi de mon collège (même à moins de 2 mètres de la box ou d'une borne) et pas du tout fonctionnel en access point

    Mauvaise série, erreur de conception de cette génération de carte ou je ne sais quoi, toujours est-il que le même code sur une carte mieux (?) conçue (capotage métal sur la puce, antenne imprimée sur le circuit imprimé) ne pose aucun problème.

    As-tu rencontré des difficultés semblables ?

    • [^] # Re: ESP32-C3 en access point

      Posté par  (Mastodon) . Évalué à 4 (+1/-0).

      Je mise sur le manque de chance : j'ai la maison remplie (prsque littéralement) de ESP8266 et ESP32, tous avec antenne intégrée (souvent sur une simple piste sur le PCB, même pas la petite antenne céramique) et j'ai vraiment aucun soucis de connectivité WiFi.

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: ESP32-C3 en access point

        Posté par  . Évalué à 2 (+1/-0).

        idem, j'utilise massivement des ESP32 et ESP8266 (de moins en moins ESP8266 cependant depuis l'arrivée des ESP32, plus puissants, plus de mémoire, plus d'entrées/sorties, …).
        J'ai eu des problèmes de wifi, dans le temps il y a eu des versions de firmware pas optimaux, et des correctifs apportés par Espressif.
        Sur l'ESP8266 il est raisonnable de ne pas régler la puissance du wifi au maximum, cela génère des reboot. Du coup j'y fait attention.
        Ce problème était documenté dans les changelog de Tasmota, mais pas documenté coté Esphome.

        Pas le même soucis sur l'ESP32. En fait je ne me souviens pas de soucis wifi avec ESP32. Uniquement avec ESP8266 (mais j'en ai plus que des ESP32).
        en 2018 espressif a abandonné le code firmware esp8266 et utilise la branche ESP-IDF (celle déjà utilisée pour ESP32).
        J'ai vu que plus récemment par exemple ils ont amélioré le roaming pour passer de bornes en bornes (esp en tant que client wifi).

        Bref ça vaut peut-être le coup de ré-éssayer, l'instabilité a peut-être été corrigée.

        Récemment j'ai acheté deux ESP32 avec possibilité de déporter une antenne, mais je n'ai pas encore testé.

        • [^] # Re: ESP32-C3 en access point

          Posté par  . Évalué à 2 (+0/-0).

          En tout cas, à quelques mètres de distance, ça marche (peut être le débit est pourri, peut être la liaison est hasardeuse, mais pour envoyer même pas 1ko de données toutes les 5 min ça le fait).
          Après, pour faire de la vidéo surveillance / protection / espionnage (sous les jupes des filles ?) c'est une autre histoire.

          "Si tous les cons volaient, il ferait nuit" F. Dard

      • [^] # Re: ESP32-C3 en access point

        Posté par  . Évalué à 3 (+1/-0).

        Effectivement, à quelques mètres les uns des autres, je n'ai jamais rencontré de pbs de wifi avec les ESP32 (comme j'ai un petit appart, je n'ai pas vraiment testé de plus longues portées).
        Je n'ai pas fait non plus de mesures irréfutables (de débit, de stabilité etc), qu'on pourrait éventuellement comparer avec d'autres installations moins bricolées à l'arraché.

        Mais comme j'ai lu aussi à droite à gauche que certains de ces modules étaient justement mal conçus à ce niveau là (l'antenne, je n'y comprends rien au passage), c'est pas impossible d'être tombé sur le mauvais cheval.

        "Si tous les cons volaient, il ferait nuit" F. Dard

        • [^] # Re: ESP32-C3 en access point

          Posté par  (Mastodon) . Évalué à 5 (+2/-0). Dernière modification le 17 juillet 2026 à 15:54.

          Je n'ai pas fait non plus de mesures irréfutables

          Moi j'en ai une : mes éclairages de salon sont pilotés, et ma femme m'a jamais pété la gueule. Donc ça marche, c'est même plutôt fiable dans le temps long (10 ans peut-être pour les plus anciens ?).

          En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: ESP32-C3 en access point

        Posté par  . Évalué à 2 (+1/-0). Dernière modification le 20 juillet 2026 à 13:47.

        Idem. Zéro problème.

        J'ai suis même surpris de la fiabilité dans des conditions très moyenne où un ordi portable ou smartphone ne capte pas à 100%.

    • [^] # Re: ESP32-C3 en access point

      Posté par  (site web personnel) . Évalué à 5 (+3/-0). Dernière modification le 17 juillet 2026 à 15:40.

      J'ai acheté plusieurs lots d'ESP32 en passant par des boutiques différentes.
      J'ai eu certains exemplaires qui refusaient catégoriquement de se connecter au Wi-Fi lorsqu'ils étaient enfichés sur un breadboard, mais un WLAN.config(txpower=8) a définitivement résolu le problème.
      J'ai testé les montages utilisés dans les vidéos avec une connexion à mon smartphone en point d'accès à une distance de plus de 15 mètres en champs libre, et ils ont fonctionné sans soucis.

      J'ai eu d'autres bizarreries. Avec les servomoteurs, je n'avais absolument aucun souci de chute de tension avec certains exemplaires d'ESP32, alors qu'avec d'autres, un simple frémissement d'un servomoteur redémarrait le microcontrôleur ou mettait le kit hors tension (exactement le même montage, j'ai juste interverti les ESP32). Le condensateur a définitivement résolu ce problème là aussi.

      Zelbinium: pour la génération qui crée, pas celle qui scrolle…

  • # J'aime beaucoup

    Posté par  . Évalué à 3 (+1/-0).

    ce genre de bricolage un peu à l'arrache.

    Là, tout tient dans une petite pochette. Dommage de ne pas avoir mis des broches (au format Qwick par ex, ou au pas 2.54mm) pour utiliser les derniers GPIO restant, l'I2C et les moult puces qui parlent ce langage. Mais ce n'est pas trop compliqué à hacker.

    Cela étant dit, je suppose que l'essentiel de ton travail a porté sur ta lib ucuq. Je vais voir à essayer tout ça, j'ai un ESP32C3 qui traine dans le tiroir et c'est bientôt les vacances ;)

    Pour finir: tu as une ref qui va bien pour le booster 5V/2A+chargeur de LiPo 3,7V ?

    "Si tous les cons volaient, il ferait nuit" F. Dard

    • [^] # Re: J'aime beaucoup

      Posté par  (site web personnel) . Évalué à 3 (+1/-0).

      Pour finir: tu as une ref qui va bien pour le booster 5V/2A+chargeur de LiPo 3,7V ?

      Hélas non. J'ai fait moult recherches mais le module que j'utilise n'a juste pas de référence précise. Il est juste désigné par des termes génériques. Si ça ne pose pas de problèmes, je peux mettre ici le lien de la boutique où je l'ai acheté. Sinon, une recherche sur l'image fournit également la réponse.

      J'avais effectivement pensé exposer les broches inutilisées, mais repoussé cela à une future version du kit. Avec une petite réorganisation, je devrais pouvoir faire cohabiter un autre connecteur avec celui des servomoteurs. Il suffirait d'enlever l'afficheur OLED pour y accéder.

      C'est quoi le format Qwick ? Mes recherches n'ont rien données…

      En tout cas, n'hésite pas à me faire des retours de tes expérimentations…

      Zelbinium: pour la génération qui crée, pas celle qui scrolle…

      • [^] # Re: J'aime beaucoup

        Posté par  . Évalué à 3 (+1/-0).

        Qwiic pardon, un format de connecteur pour tous les accessoires i2c SparkFun

        Pour le booster, en agrandissant la photo, je vois que c'est un Analog Device AD822.
        Tu en es content ?

        "Si tous les cons volaient, il ferait nuit" F. Dard

        • [^] # Re: J'aime beaucoup

          Posté par  (site web personnel) . Évalué à 3 (+1/-0).

          J'ai finalement trouvé une référence : CKCS 5V2A. Ceux que j'utilise n'ont pas le même marquage (cf la photo), mais sinon ils sont identiques. Je pense que c'est l'original et que j'ai des copies…
          En tous cas, ils fonctionnent mieux que je ne l’espérais. L'entrée K est vraiment pratique : ça permet d'utiliser un bouton poussoir plutôt qu'un interrupteur à bascule pour la mise sous/hors tension.
          Lors de la charge, il n'y a que la dernière led qui clignote jusqu'à la charge complète. À la décharge, le nombre de led allumées diminue bien pour refléter l'état de charge de la batterie.

          Zelbinium: pour la génération qui crée, pas celle qui scrolle…

          • [^] # Re: J'aime beaucoup

            Posté par  . Évalué à 3 (+1/-0).

            Trouvé: Module CKCS A Ma Zone ou B0KF PB0A chez Ali.

            Titre de l’image

            puce FM FM5324GA, ou HICHON SM5308 des trucs en Chinois pour les Chinois de Chine, j'imagine (vu les datasheet).

            Ce pad K, mis à la terre, permet de désactiver la fonction Boost 3,7V -> 5V ?
            J'ai vu une vidéo sur YT (en espagnol, donc je ne suis pas sur d'avoir compris correctement et je ne sais plus à quel moment il en parle) qui disait que, s'il y a moins de 5O mA de tirés sur la sortie 5V, le convertisseur se mettait en veille tout seul.

            "Si tous les cons volaient, il ferait nuit" F. Dard

            • [^] # Re: J'aime beaucoup

              Posté par  (site web personnel) . Évalué à 3 (+1/-0). Dernière modification le 20 juillet 2026 à 17:07.

              La broche K, je l'ai reliée à GND via le bouton poussoir : un appui met le kit sous tension, deux appuis le mettent hors tension.

              Effectivement, s'il n'y a pas assez de jus qui est tiré, l'alimentation se coupe. J'ai eu le problème avec un montage qui se coupait au bout d'un certains temps lorsque seul l'ESP32-C3 était actif. Je ne sais plus ce que j'ai fait, mais je n'ai plus le problème ; peut-être suite à l'augmentation de la puissance du Wi-Fi de tous mes ESP32-C3…

              Zelbinium: pour la génération qui crée, pas celle qui scrolle…

            • [^] # Re: J'aime beaucoup

              Posté par  (site web personnel) . Évalué à 3 (+1/-0).

              J'ai oublie d'ajouter que le CKCS PBOA, ce n'est pas le même modèle : il a des broches DATA qu'il n'y a pas sur mon modèle…

              Zelbinium: pour la génération qui crée, pas celle qui scrolle…

  • # I/O

    Posté par  (Mastodon) . Évalué à 5 (+2/-0).

    C'est vraiment mignon ce kit, bravo.

    Une remarque, dans les périphériques je trouve qu'il y a un certain déséquilibre entre les entrées (un bouton ?) et les sorties (2 écrans, l'anneau de LED, les servomoteurs…)

    Quelques idées que tu peux ajouter à petit prix et petit encombrement :
    - encodeur rotatif (c'est top pour faire des interfaces : tourner + cliquer)
    - capteur température/pression/atm
    - capteur luminosité

    Ça donnera facilement plein d'idées d'appli à toi comme à tes collégiens :)

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: I/O

      Posté par  (site web personnel) . Évalué à 4 (+2/-0).

      Merci ! J'avoue que je ne suis pas mécontent du résultat, surtout vu l'allure du premier prototype !

      Actuellement, il n'y a effectivement aucune entrée (le bouton, c'est pour allumer/éteindre le kit). Les entrées sont prévues pour une future version du kit. En attendant, l'ordinateur à partir duquel est lancée l'application peut servir d'entrée.

      Par exemple, à titre de preuve de concept, j'ai développé une application qui illumine l'anneau avec la couleur énoncée dans le microphone de l'ordinateur.

      Une autre application, si elle est lancée à partir d'un smartphone, reproduit, en temps réel, l'orientation de ce dernier sur l'écran OLED sous forme de cube en fil de fer. Cette application est disponible en tant que démonstration en ligne (application Orientation) et peut être testée avec le simulateur.

      Bref, le kit en l'état a déjà de quoi largement occuper les participants à mes ateliers, mais, tôt ou tard, le sujet des capteurs devra effectivement être abordé…

      Zelbinium: pour la génération qui crée, pas celle qui scrolle…

  • # Nouvelle vidéo servomoteurs

    Posté par  (site web personnel) . Évalué à 4 (+2/-0). Dernière modification le 20 juillet 2026 à 12:32.

    Vidéo mettant les servomoteurs à l'honneur. L'OLED et le LCD reflètent la position (aléatoire) des servomoteurs, l'anneau leur vitesse de rotation.

    Vidéo sans son (cliquer sur l'image pour l'ouvrir).

    Cette application est visible en tant que démonstration en ligne (application Servomoteurs) où vous pourrez consulter et modifier le code source et le tester avec le simulateur.

    Les autres vidéos :
    - https://tubefree.org/w/wbgcbQz3wo6KVVyvGRsk9N (un peu de son) ;
    - https://tubefree.org/w/3MzzYFV25snQos4XmV7RuJ (pas de son) ;
    - https://tubefree.org/w/a1e1CoT1W4EqEKHkfB7GLL (son essentiel).

    Zelbinium: pour la génération qui crée, pas celle qui scrolle…

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.