8 · L'interface web¶
L'interface web est le centre de contrôle de ton ESPuino. Pratiquement tout ce qui peut être configuré se règle ici – des attributions de cartes au Wi-Fi, jusqu'aux mises à jour du firmware – et c'est aussi de là que tu contrôles la lecture en cours. Ce chapitre te fait parcourir une fois chaque section. Pas besoin de tout retenir d'un coup ; considère-le comme un ouvrage de référence où tu retrouves précisément l'onglet dont tu as besoin sur le moment.
L'interface web est accessible dans le navigateur – le plus simple étant via le nom d'hôte
(http://espuino.local avec mDNS actif), sinon via l'adresse IP. La façon d'y accéder pour la
première fois est décrite au chapitre 7 · Premier démarrage.
Ce qui s'applique partout¶
Quelques éléments apparaissent sur chaque page, d'où cette mise au point préalable :
- Une icône en forme de cœur pulse en haut à droite – l'indicateur de connexion, appelé « heartbeat » sur le forum (#4583, en allemand). Il surveille la connexion entre ton navigateur web et l'ESPuino : la page ouverte envoie une petite requête à l'appareil toutes les trois secondes ; si une réponse revient, le cœur pulse en vert, sinon il devient rouge. Tu sais ainsi à tout moment si la page est toujours en contact avec ton ESPuino.
- Un point d'interrogation se trouve près de nombreux champs de saisie. Un clic dessus ouvre un court texte d'aide – donc si tu ne sais pas ce que fait un réglage, la réponse n'est généralement qu'à un clic.
- L'icône en pile tout en haut à droite donne accès à un menu avec sélection de la langue (allemand, anglais, français), le mode sombre, les informations (version du firmware, mémoire, batterie), le journal (la sortie console directement dans le navigateur), ainsi que redémarrer et éteindre.
- L'enregistrement se fait toujours par section, via le bouton de la section concernée. Son libellé t'indique précisément ce qui sera enregistré.
Onglet Contrôle¶
L'onglet Contrôle est la télécommande dans le navigateur. Tu y vois – tant que le titre ou le flux web en fournit une – la pochette et les informations sur le titre en cours, et tu pilotes la lecture avec les boutons de transport habituels (premier titre, précédent, play/pause, suivant, dernier). Le curseur de volume agit immédiatement, et l'icône d'égaliseur ouvre trois curseurs pour les basses, médiums et aigus.
Deux petits détails sont particulièrement pratiques : la barre de progression est cliquable – un clic saute directement à l'endroit choisi dans le titre. Et via exécuter une modification, tu déclenches directement n'importe quelle modification (minuterie de sommeil, répétition, verrouillage des boutons…), sans poser aucune carte.
Onglet RFID¶
Cet onglet est le cœur de l'interface, car c'est là que tu associes des cartes à des contenus. Il se compose de deux zones superposées : l'explorateur de fichiers et l'attribution proprement dite.
L'explorateur de fichiers¶
L'explorateur de fichiers affiche le contenu de la carte SD. Le champ de recherche permet de filtrer, l'upload amène des fichiers individuels ou des répertoires entiers (avec leurs sous-dossiers) sur l'ESPuino, et un clic droit (sur téléphone : appui long) sur une entrée ouvre un menu contextuel pour créer, jouer, actualiser, renommer, supprimer et télécharger. Pour les fichiers audio s'y ajoute Définir comme alerte batterie – le raccourci vers l'annonce de batterie faible.
Attribuer une carte¶
Dans la section en dessous, tu attribues un contenu à une carte, en quatre étapes :
- Numéro de la puce RFID : si tu poses une carte, son numéro est renseigné automatiquement. Tu peux aussi le saisir à la main ou utiliser une carte virtuelle (forum en allemand).
- Dans l'onglet Musique, choisis un fichier ou un dossier dans l'explorateur de fichiers et
définis le mode de lecture (voir le tableau). En choisissant radio web, le champ du chemin
est pré-rempli avec
http://par commodité. - Dans l'onglet Modification, tu attribues plutôt une action à la carte.
- Enregistrer – terminé.
Modes de lecture¶
Le tableau suivant liste les modes dans l'ordre où ils apparaissent dans le menu déroulant. Les identifiants techniques correspondants figurent dans l'annexe.
| Mode | Signification |
|---|---|
| 🎵 Titre unique | Exactement un fichier, une fois. |
| 🎵🔁 Titre unique (boucle) | Répète un fichier indéfiniment. |
| 🎲💤 Titre aléatoire d'un dossier, puis sommeil | Un titre aléatoire, puis veille profonde – la carte idéale pour le coucher. |
| 📖 Livre audio | Titres d'un dossier, triés – ou même un seul fichier ; la dernière position est mémorisée. |
| 📚 Livre audio récursif | Comme livre audio, y compris les sous-dossiers ; la position est mémorisée. |
| 📖🔁 Livre audio (boucle) | Livre audio, redémarre depuis le début après le dernier titre. |
| 📁 Tous les titres (triés) | Dossier trié, sans mémorisation de position. |
| 🌳 Tous les titres + sous-dossiers (récursif, trié) | Comme ci-dessus, avec sous-dossiers, sans mémorisation de position. |
| 📁🔀 Tous les titres (aléatoire) | Dossier dans un ordre aléatoire. |
| 🌳🔀 Tous les titres + sous-dossiers (récursif, aléatoire) | Aléatoire sur le dossier et ses sous-dossiers. |
| 📁🔁 Tous les titres (triés, boucle) | Trié, en continu. |
| 📁🔀🔁 Tous les titres (aléatoire, boucle) | Aléatoire, en continu. |
| 🎲📁 Sous-dossier aléatoire (trié) | Un sous-dossier aléatoire, trié. |
| 🎲📁🔀 Sous-dossier aléatoire (aléatoire) | Un sous-dossier aléatoire, aléatoire. |
| 📻 Radio web | Une URL de flux au lieu d'un fichier. |
| 📃 Liste (.m3u) | Les entrées d'un fichier .m3u local – fichiers et flux web mélangés. |
| 🌐 MediaHub | Le contenu et le mode de lecture viennent du serveur MediaHub choisi. |
Cartes de modification – toutes les options¶
Au lieu de musique, une action peut être associée à une carte. Tu retrouves d'ailleurs le même catalogue dans l'onglet Contrôle, sous « exécuter une modification », où tu déclenches l'action directement sans carte. Les identifiants techniques figurent dans l'annexe.
Verrouillage & sommeil
| Action | Effet |
|---|---|
| 🔒 Verrouillage des boutons | Verrouille les boutons et la molette rotative sur l'appareil, pour qu'une pression accidentelle ne déclenche rien. |
| 💤 Dormir immédiatement | Met immédiatement l'ESPuino en veille profonde. |
| 💤 Dormir après 15 min / 30 min / 1 h / 2 h | Démarre une minuterie de sommeil ; ESPuino s'éteint après le délai choisi. |
| 💤 Dormir à la fin du titre | ESPuino s'endort dès que le titre en cours se termine. |
| 💤 Dormir à la fin de la playlist | ESPuino s'endort une fois la playlist actuelle terminée. |
| 💤 Dormir après cinq titres | ESPuino s'endort une fois cinq titres supplémentaires joués. |
Pour tous les modes de sommeil, ESPuino atténue les LED – tu vois ainsi en un coup d'œil qu'une minuterie de sommeil est active. À proprement parler, ils activent le mode nuit, qui limite en option également le volume – voir onglet Général.
Répétition
| Action | Effet |
|---|---|
| 🔁 Répéter la playlist | Répète l'ensemble de la playlist indéfiniment. |
| 🔂 Répéter le titre | Répète le titre en cours indéfiniment. |
Lumière, radio & services
| Action | Effet |
|---|---|
| 🌙 Atténuer les LED (mode nuit) | Atténue durablement les Neopixels – agréable par exemple dans une chambre d'enfant obscurcie. En option, le mode nuit limite en plus le volume (voir onglet Général). |
| 📶 Wi-Fi activer/désactiver | Active ou désactive le Wi-Fi (désactivé économise l'énergie et permet un fonctionnement purement hors ligne). |
| 💡 Éclairage d'ambiance | Bascule un éclairage d'ambiance permanent des LED. |
| 🔆 / 🔅 Luminosité des LED plus / moins | Modifie la luminosité des Neopixels d'un cran. |
| 📁 Activer le FTP | Démarre le service FTP (jusqu'au prochain redémarrage). |
| 🔊 Haut-parleur BT | Bascule ESPuino en mode haut-parleur Bluetooth (récepteur BT) : il reçoit l'audio d'un appareil appairé, par exemple le téléphone, et le restitue. |
| 🎧 Casque BT | Bascule ESPuino en mode casque Bluetooth (source BT) : il envoie son audio vers un casque ou un haut-parleur Bluetooth appairé. |
| 🔀 Changer de mode | Fait défiler les modes de fonctionnement dans l'ordre (normal ↔ Bluetooth). |
Les trois actions Bluetooth ne sont disponibles qu'avec un firmware compilé avec le support Bluetooth.
« Wi-Fi activer/désactiver » peut te bloquer l'accès
Désactiver le Wi-Fi emporte aussi l'interface web avec lui – et c'est justement là que tu le réactiverais normalement. Le seul moyen de revenir en arrière est alors d'utiliser le même canal que celui utilisé pour l'éteindre : la carte de modification (ou une combinaison de boutons ou un bouton auquel tu as attribué cette action). Range donc bien cette carte avant de désactiver le Wi-Fi.
Annonces
| Action | Effet |
|---|---|
| 🌐 Annoncer l'adresse IP | Annonce l'adresse IP actuelle par synthèse vocale – pratique pour retrouver l'adresse de l'interface web. |
| 🕒 Annoncer l'heure | Annonce l'heure actuelle. |
Les deux annonces nécessitent Internet
ESPuino ne génère pas la voix lui-même : il fait lire le texte par un service en ligne et en restitue le résultat. Aucune des deux annonces ne fonctionne donc sans connexion Internet – un réseau domestique sans accès à Internet ne suffit pas. Ce qui est vérifié au préalable, en revanche, c'est uniquement la présence du Wi-Fi : si ESPuino est sur le réseau mais n'atteint pas Internet, il reste tout simplement muet. Pour l'heure s'ajoute le fait qu'elle est réglée par NTP – ce qui réclame également Internet, au moins une fois après la mise en marche.
Contrôle de lecture en carte
| Action | Effet |
|---|---|
| ⏯ Play/Pause | Met en pause la lecture ou la reprend. |
| ⏮ / ⏭ Titre précédent / suivant | Passe au titre précédent ou suivant. |
| ⏪ / ⏩ Premier / dernier titre | Passe au premier ou au dernier titre de la playlist. |
| 📁 Dossier suivant / précédent | Passe un dossier en avant ou en arrière (modes récursifs uniquement). |
| » / « Avance / retour de quelques secondes | Avance ou recule de quelques secondes. |
| 🔊 / 🔉 Plus fort / moins fort | Modifie le volume d'un cran. |
Cartes virtuelles & divers
| Action | Effet |
|---|---|
| 🏷 Carte virtuelle 01–10 | Renvoie à l'une des dix cartes virtuelles – des associations qu'on peut déclencher sans carte physique (par exemple via une combinaison de boutons ou MQTT). |
| 🗑 Supprimer l'association | Si tu attribues cette action à une carte, la prochaine fois qu'elle est posée, son association existante est supprimée. |
Onglet Wi-Fi¶
Ici, tu gères tout ce qui concerne la connexion réseau. Sous réglages Wi-Fi, tu définis si ESPuino choisit le réseau le plus puissant parmi plusieurs réseaux connus au démarrage, quel est le nom d'hôte, et – pour le cas de la configuration – quel est le nom du point d'accès, s'il a un mot de passe et quand il se ferme automatiquement. Sous réseaux, tu enregistres tes réseaux Wi-Fi ; plusieurs peuvent être mémorisés, ce qui est pratique si l'ESPuino voyage parfois chez les grands-parents. Tu peux aussi définir en option une IP statique par réseau. Enfin, réseaux enregistrés liste tous les réseaux Wi-Fi mémorisés ; celui actuellement connecté est mis en évidence, et l'icône de corbeille supprime les entrées.
Délai du point d'accès : merci de ne pas le laisser à 0
Un peu de contexte : ESPuino n'ouvre le point d'accès de configuration que s'il n'a pas pu se connecter à un réseau Wi-Fi connu – c'est un pis-aller pour la configuration initiale. Ce point d'accès est non protégé par défaut, et tant qu'il est ouvert, n'importe qui peut s'y connecter et faire ce qu'il veut dans l'interface web. S'il n'est ouvert que brièvement, c'est acceptable. Un délai de 0, en revanche, signifie qu'ESPuino ne ferme jamais le point d'accès de lui-même – ce qui constitue une faille de sécurité permanente. Ne laisse donc pas cette valeur à 0 (ou définis au moins un mot de passe pour le point d'accès).
IP statique : à utiliser avec précaution
Ne définis une IP statique que si tu sais ce que tu fais. Si la configuration ne correspond pas à ton réseau, ESPuino peut devenir inaccessible.
Onglet MQTT¶
Le support MQTT est compilé par défaut, cet onglet est donc normalement présent – il ne manque que si le firmware a été volontairement compilé sans MQTT.
MQTT est un protocole de messagerie léger devenu la norme de fait en domotique. Les appareils
n'y dialoguent pas directement entre eux, mais passent par un relais central, le broker. Chaque
message est déposé sous un topic – un chemin comme espuino/state/volume – et parvient à
quiconque s'est abonné à ce topic. Qui a quelque chose à dire publie sous un topic ; qui veut
savoir quelque chose s'y abonne.
Pour ESPuino, cela signifie deux choses. Il transmet son état au broker en continu – volume, titre en cours, mode de lecture, niveau de batterie et bien d'autres – et il écoute en retour des topics de commande. Tout ce qui se déclenche par une carte ou un bouton se déclenche donc aussi depuis ta domotique. La condition : un broker en service sur ton réseau, soit autonome (Mosquitto étant le plus répandu), soit celui que ta domotique embarque déjà – Home Assistant, ioBroker ou openHAB, par exemple. Si tu n'en as pas et n'en veux pas, tu peux ignorer cet onglet sans crainte – ESPuino fonctionne parfaitement sans MQTT.
La connexion elle-même se configure dans cet onglet : active le MQTT, puis saisis un ClientId, un
topic de base optionnel, l'identifiant de l'appareil, le serveur, en option un nom d'utilisateur et
un mot de passe, ainsi que le port. Le ClientId est le nom sous lequel ESPuino s'annonce auprès
du broker. Le topic de base et l'identifiant de l'appareil, eux, forment le début de tous les
chemins de topics, car ceux-ci suivent le schéma topic-de-base/identifiant/mot-clé – et, sans topic
de base, simplement identifiant/mot-clé. Les topics par lesquels tu commandes ESPuino, au lieu de
seulement lire son état, y ajoutent un /set. C'est cette répartition qui permet de distinguer
proprement plusieurs appareils sur le même broker.
Dans le ClientId et l'identifiant de l'appareil, tu peux utiliser le paramètre <MAC>, remplacé
automatiquement par l'adresse MAC – précieux avec plusieurs ESPuinos, puisque chaque appareil obtient
alors de lui-même des topics uniques. Et tu n'as pas à deviner à quoi ressembleront les chemins :
sous les champs, tu vois un aperçu en direct des topics résultant de tes saisies. Lesquels
existent et ce qu'ils signifient, cela se trouve dans l'annexe.
Redémarrage nécessaire
Les modifications des réglages MQTT ne prennent effet qu'après un redémarrage – l'interface le propose directement après l'enregistrement.
Onglet FTP¶
Le support FTP est compilé par défaut, cet onglet est donc normalement présent – il ne manque que si le firmware a été volontairement compilé sans FTP.
Ici, tu définis le nom d'utilisateur et le mot de passe pour l'accès FTP. Pour des raisons de mémoire, le serveur FTP ne fonctionne pas en permanence : tu le démarres en cas de besoin via le bouton démarrer le serveur FTP (ou sur l'appareil via une combinaison de boutons), et après le prochain redémarrage, il est de nouveau désactivé.
Côté ordinateur, FileZilla est un bon choix – gratuit et disponible pour Windows, macOS et Linux. Tu y saisis comme serveur l'adresse IP de ton ESPuino, ainsi que le port 21 et les identifiants de cette page.
Pour de grandes quantités de données
Pour de grandes quantités de données, l'upload web est désormais le meilleur choix – il a été optimisé et est aujourd'hui plus rapide que le FTP (que presque plus personne n'utilise).
Onglet Bluetooth¶
Visible uniquement si le firmware a été compilé avec le support Bluetooth.
ESPuino gère le Bluetooth dans les deux sens : il peut envoyer son son vers un casque, et il peut à l'inverse devenir lui-même l'enceinte sur laquelle tu diffuses depuis ton téléphone. Les deux se pilotent depuis cet onglet, via un sélecteur de mode commun placé tout en haut.
Changer de mode¶
Les trois boutons Arrêt, Casque et Haut-parleur sont côte à côte ; celui qui est rempli indique le mode dans lequel ESPuino fonctionne actuellement. « Arrêt » n'est pas ici un état Bluetooth à part entière, mais simplement le fonctionnement normal depuis la carte SD.
Cliquer sur un autre mode redémarre l'ESPuino – la note sous les boutons le précise également. C'est inévitable : le mode choisi est enregistré durablement et n'est évalué qu'au démarrage. Après le basculement, il faut donc quelques secondes avant que l'interface web soit de nouveau joignable – et ESPuino redémarrera dans ce même mode à la prochaine mise en marche, tant que tu ne le remets pas en arrière.
Mode casque : ESPuino émet¶
Ce n'est que dans ce mode que l'onglet affiche les réglages situés sous le sélecteur – en fonctionnement normal et en mode haut-parleur, ils n'auraient rien à faire et restent donc masqués.
Tout en haut se trouve l'indicateur de connexion : une pastille colorée et, à côté, soit « Non connecté », soit « Connecté à : … » avec le nom de l'appareil. Il est interrogé directement auprès de l'ESPuino au chargement de la page, et non déduit d'événements que le navigateur aurait par hasard captés. Une interface web fraîchement chargée affiche donc le bon état, même si la connexion a été établie bien avant l'ouverture de la page.
En dessous, tu saisis le nom de ton casque. Le bouton Rechercher juste à côté est plus commode : ESPuino explore alors les environs pendant une bonne treizaine de secondes et liste tout ce qui se manifeste ; un clic sur la bonne entrée reprend l'appareil dans le champ du nom. La recherche ne fonctionne qu'en mode casque – si tu l'essaies dans un autre, un message te le signale. Si ton casque réclame un code PIN, saisis-le dans le champ en dessous. Et ensuite, n'oublie pas d'enregistrer.
Une fois un appareil enregistré, ESPuino s'y connecte tout seul au démarrage. Si tu en choisis un dans la liste des résultats, il réessaie jusqu'à trois fois à une seconde et demie d'intervalle avant d'abandonner – les casques Bluetooth ne répondent souvent qu'à la deuxième tentative après leur réveil.
Le volume se règle toujours sur l'ESPuino
La molette rotative, les boutons et l'interface web fonctionnent aussi en mode casque : ESPuino transmet le volume réglé au casque via Bluetooth. Le son, lui, sort en revanche sans traitement – l'égaliseur et la commutation mono ne valent que pour le haut-parleur intégré.
Mode haut-parleur : ESPuino reçoit¶
Il n'y a rien à régler ici. ESPuino s'annonce comme haut-parleur Bluetooth et tu l'appaires normalement depuis ton téléphone ou ta tablette ; tout ce qui y est joué sort ensuite de son haut-parleur.
Note toutefois que l'interface web ne peut pas piloter la lecture dans ce mode – la source est le téléphone, pas la carte SD. Si tu essaies quand même, ESPuino te propose dans une boîte de dialogue de revenir au mode normal.
Revenir au mode normal¶
Il y a trois chemins pour cela. Le plus évident est le bouton Arrêt de cet onglet. Une carte RFID inconnue fait tout aussi bien l'affaire : si tu poses, dans l'un des deux modes Bluetooth, une carte qu'ESPuino ne connaît pas, il revient au mode normal. C'est la porte de sortie lorsque tu n'as pas d'interface web sous la main. En mode haut-parleur, une carte musicale ordinaire suffit même : elle met fin au fonctionnement Bluetooth et lance son contenu. Le mode casque se comporte délibérément autrement – une carte connue y est simplement jouée dans le casque, ce qui est précisément la raison d'être de ce mode.
Le Bluetooth a besoin de mémoire
La pile Bluetooth occupe une part considérable de la mémoire vive interne – et sur l'ESP32, c'est elle, et non la PSRAM, qui constitue la ressource vraiment rare. ESPuino déporte donc ce qui peut l'être : le tampon de 256 Ko du mode casque, par exemple, n'est alloué qu'au besoin, et en PSRAM. Cela peut malgré tout devenir juste, et juste signifie ici : des connexions qui n'aboutissent pas, ou un ESPuino qui redémarre sans prévenir. À cela s'ajoute que le Bluetooth et le Wi-Fi fonctionnent en parallèle – c'est commode, mais cela n'arrange rien et reste peu testé. Plus de détails au chapitre 9 → Modes de fonctionnement.
Onglet Général¶
Les réglages généraux sont répartis visuellement en cinq sous-groupes (lecture, lecteur RFID, molette rotative & boutons, LED, énergie). Chacun a son propre bouton d'enregistrement et de réinitialisation, mais ne t'y trompe pas : les cinq appartiennent à un seul formulaire commun. Un clic sur enregistrer sauvegarde donc tous les réglages généraux en une fois – pas seulement le sous-groupe actuellement visible. Tu n'as donc pas besoin d'enregistrer chaque sous-groupe séparément.
Lecture¶
Ici, tu règles le comportement de lecture de base. Sous volume, tu définis le volume de démarrage et les valeurs maximales séparément pour le haut-parleur et le casque, ainsi qu'un volume minimal pour que la boîte ne puisse jamais être totalement coupée. Sous playlist, tu choisis le mode de tri et la profondeur de récursion maximale.
Un mot sur la mémorisation de position au préalable, car plusieurs options en dépendent : ESPuino ne mémorise la dernière position écoutée qu'en mode livre audio, et par défaut uniquement aux points naturels – lors de la mise en pause et du changement de titre. Les deux options « mémoriser… » suivantes ajoutent des points de sauvegarde supplémentaires.
La section options est un ensemble de commutateurs de comportement – chacun dispose en plus d'un texte d'aide accessible via le point d'interrogation :
| Option | Effet |
|---|---|
| Mémoriser la position à l'extinction | Sauvegarde en plus la position du livre audio à l'extinction. |
| Mémoriser la position au changement de carte | Sauvegarde en plus la position lors du passage à une autre carte. |
| Reprendre la dernière carte après redémarrage | Reprend automatiquement la dernière carte jouée après un redémarrage. |
| Pause au retrait de la carte | Met en pause quand la carte est retirée du lecteur (RC522 et PN5180 – voir l'avertissement ci-dessous). |
| Ne pas réaccepter la même carte | Ignore le fait de reposer la même carte ; option pause↔lecture au lieu d'un redémarrage. |
| Pause au volume minimal | Met en pause dès que le volume atteint le minimum. |
| Limiter le volume en mode nuit | Plafonne le volume tant que le mode nuit est actif – expliqué en détail juste sous ce tableau. |
| Restaurer le dernier volume | Restaure le dernier volume utilisé après un redémarrage. |
| Lecture mono | Pour les montages avec un seul haut-parleur. |
| Paliers plus fins à faible volume | Bascule sur un calcul de volume logarithmique – utile si les paliers te semblent trop grossiers dans le bas de la plage de volume. |
L'option « Limiter le volume en mode nuit » mérite une explication à part. Elle est pensée pour le cas où la boîte est emportée au lit et où le haut-parleur se retrouve juste contre l'oreille. Lorsque tu actives le mode nuit, ESPuino retient le volume réglé à cet instant précis et en fait une limite supérieure temporaire – avec un cran de marge en plus, pour qu'un livre audio un peu trop discret puisse encore être monté légèrement. Au-delà, ce n'est plus possible, que ce soit via la molette rotative, les boutons, l'interface web, MQTT ou le Bluetooth. Dès que tu quittes le mode nuit, la limite est levée.
L'avantage par rapport à un maximum fixe tient au fait que les livres audio n'ont pas tous le même niveau sonore : une valeur fixe devrait être réglée si bas qu'elle gênerait en permanence avec les enregistrements discrets. Une limite qui suit le volume s'adapte au contraire d'elle-même à ce qui est en cours de lecture.
Quand le mode nuit est actif
Pas seulement via la carte de modification 🌙 ou un bouton configuré en ce sens : chaque minuterie de sommeil l'active également, tout comme le mode de lecture 🎲💤 Titre aléatoire d'un dossier, puis sommeil. La limite s'applique donc aussi, par exemple, quand tu poses « sommeil après 30 min ». L'option prend effet à la prochaine activation du mode nuit – un mode nuit déjà en cours conserve la limite avec laquelle il a démarré.
Il existe en outre l'option « Sauvegarder automatiquement la position de lecture des livres audio longs toutes les n secondes », qui permet à ESPuino de sauvegarder la position en mode livre audio de façon périodique – pensée pour les longs chapitres (fichiers de 5 minutes ou plus), afin qu'une coupure de courant soudaine ne coûte pas une heure entière de progression. Elle est désactivée par défaut ; 30 à 60 secondes sont recommandées.
La sauvegarde périodique sollicite la mémoire flash
Chaque sauvegarde écrit dans la mémoire flash, qui s'use un peu à chaque écriture. Ne choisis donc pas un intervalle inutilement court, et n'utilise cette fonction que là où elle apporte vraiment quelque chose (longs livres audio). Pour des titres courts qui sauvegardent déjà à chaque changement de titre, elle n'apporte rien.
L'option « Pause au retrait de la carte » peut poser problème
Elle est appréciée (la carte est posée, la retirer met en pause), mais délicate : si la carte n'est momentanément pas détectée, la lecture se met en pause involontairement – une des causes les plus fréquentes de coupures sporadiques. Si cela se produit de façon peu fiable chez toi, réduis la distance carte-lecteur, augmente – si tu utilises un PN5180 – son délai de rebond (debounce), ou désactive l'option. (L'option elle-même fonctionne avec le RC522 et le PN5180 ; seul le réglage de rebond est réservé au PN5180.)
Lecteur RFID¶
Ce sous-groupe concerne le lecteur de carte :
| Réglage | Signification |
|---|---|
| LPCD PN5180 | Réveil depuis la veille profonde en posant une carte. Uniquement avec le PN5180 et les ponts de soudure correctement réglés – sur la Complete, il faut adapter les ponts JP1/JP8 pour cela (chapitre 5) ; avec le MFRC522, cette option est grisée. Limitations : chapitre 12. |
| Type de lecteur | Détection automatique (par défaut), MFRC522 (SPI ou I²C) ou PN5180. |
| Gain MFRC522 | Sensibilité du MFRC522 (0–7, valeur par défaut 7). |
| Intervalle de balayage MFRC522 | Temps entre deux interrogations du MFRC522, en millisecondes (valeur par défaut 100 ms). |
| Délai de rebond PN5180 | Combien de temps une carte doit rester non détectée en continu avant d'être considérée comme retirée (valeur par défaut 500 ms). |
| Mot de passe de confidentialité ICODE-SLIX2 | Mot de passe de quatre octets (valeurs hexadécimales 00–FF uniquement) pour désactiver le mode confidentialité des tags ICODE-SLIX2 protégés. |
Redémarrage nécessaire
Les modifications de ce sous-groupe ne prennent effet qu'après un redémarrage.
Molette rotative & boutons¶
Ici, tu définis ce que font les éléments de commande. Important à comprendre : tout ce que tu règles ici est stocké dans la mémoire interne (NVS) et remplace la disposition par défaut inscrite dans le firmware – tu peux donc adapter l'ensemble de la disposition sans recompiler le firmware.
Pour la molette rotative elle-même, il y a l'option inverser le sens de rotation, si chez
toi tourner vers la droite diminue le volume au lieu de l'augmenter – ainsi que, plus bas, les
distances de saut pour le défilement. En dessous, un tableau permet d'attribuer à chacun des six
boutons (Btn0–Btn5) une action pour une pression courte et une pression longue ; -- signifie
« aucune action ». Des actions peuvent en outre être attribuées à des paires de boutons pressés
simultanément (les 15 combinaisons possibles de 0+1 à 4+5, chacune avec une action) – pratique
pour des fonctions rarement utilisées comme le redémarrage ou le démarrage du FTP, sans sacrifier un
bouton dédié pour cela.
Moins, c'est souvent mieux
Techniquement, tu peux attribuer beaucoup de choses ici – mais personne ne retiendra une douzaine de combinaisons. Mieux vaut se limiter à une ou deux qui sont vraiment utiles. Pense aussi que les enfants, en particulier, appuient parfois joyeusement sur tous les boutons à la fois et déclenchent ainsi des actions à laquelle tu ne t'attends pas – ou que tu as depuis longtemps oubliées. Une disposition claire t'évitera bien des devinettes par la suite.
Piège du blocage : « désactiver le Wi-Fi » sur un bouton
L'une des actions sélectionnables désactive le Wi-Fi. Si tu l'attribues à un bouton ou à une combinaison de boutons et qu'elle se déclenche (peut-être accidentellement), tu te bloques l'accès à l'interface web – sans Wi-Fi, pas d'interface web, et sans interface web, plus aucun moyen de réactiver le Wi-Fi. La seule issue est alors d'effacer la mémoire flash, ce qui écrase le NVS et fait disparaître tous les réglages. C'est exactement pour cette raison que la combinaison de bascule Wi-Fi est désactivée par défaut. Si tu veux tout de même pouvoir basculer le Wi-Fi, mets plutôt cela sur une carte de modification – à condition de ne pas la perdre. 😄
Les actions disponibles correspondent largement au catalogue des cartes de modification – les deux listes ne diffèrent qu'à la marge. Uniquement en bouton : volume initial, afficher la tension de la batterie, arrêt, redémarrage et un affichage de débogage de la charge des tâches. À l'inverse, uniquement en carte : la suppression d'une affectation. Tout le reste – y compris plus fort / moins fort et dormir après cinq titres – peut être placé au choix sur un bouton ou sur une carte. La disposition par défaut avec laquelle ESPuino est livré est listée au chapitre 9 → Boutons.
Distances de saut pour le défilement¶
La distance que parcourt ESPuino en défilant dépend de ce avec quoi tu défiles – il y a donc deux blocs distincts pour cela sur cette page.
Défilement avec les boutons concerne les boutons auxquels tu as attribué l'action « avancer » ou « reculer ». Tu définis ici de combien de secondes une seule pression sur un bouton fait sauter la lecture (1–120, valeur par défaut 30).
Défilement avec la molette rotative concerne le geste « maintenir le bouton + tourner ». Il existe pour cela deux variantes qui s'excluent mutuellement – celle qui s'applique se décide dans le tableau des actions de rotation plus haut, en attribuant au geste soit « prévisualisation de position », soit « avancer »/« reculer » :
| Variante | Réglages | Par défaut |
|---|---|---|
| Prévisualisation de position (la plus confortable) | Délai avant validation – combien de temps ESPuino attend après la dernière rotation avant de sauter. Nombre de crans pour 0 à 100 % – combien de crans couvrent l'intégralité du titre. |
2000 ms 40 |
| Défilement direct (actif par défaut) | Distance de saut par cran – de combien de secondes chaque cran individuel saute immédiatement. | 10 s (1–60) |
La différence entre les deux variantes en pratique est décrite au chapitre 9. Toutes les valeurs prennent effet immédiatement après l'enregistrement – aucun redémarrage n'est nécessaire pour cela.
LED¶
Ici, tu configures les Neopixels. La luminosité peut être réglée séparément pour le fonctionnement normal, le mode nuit et l'éclairage d'ambiance. Sous réglages LED viennent les détails :
| Réglage | Signification |
|---|---|
| Nombre de LED d'affichage | Combien de LED affichent l'état et la progression. |
| Nombre de LED de contrôle | LED supplémentaires, chacune avec une couleur librement choisie. |
| Points en veille | Nombre de points dans l'animation de veille. |
| Dégradé de progression | Teinte pour le début et la fin de l'affichage de progression. |
| Éclairage d'ambiance | Teinte et saturation de l'éclairage d'ambiance. |
| Paliers de gradation | Finesse de la gradation de luminosité. |
| Décalage de la première LED | À partir de quelle LED physique l'affichage commence (voir l'astuce). |
| Centrage en pause | Centre l'affichage de pause. |
| Sens de rotation | Inverse le sens de rotation des effets. |
| Bref clignotement de toutes les LED à la reconnaissance d'une carte | Accuse réception d'une carte acceptée par un bref clignotement vert – voir ci-dessous. |
Cette dernière option mérite une phrase de plus, car elle laisse volontairement deux cas de côté. Quand elle est active, l'anneau clignote brièvement en vert pour chaque carte acceptée – une confirmation visible que seules les cartes de modification donnaient auparavant. Une carte inconnue reste signalée en rouge ; ensemble, les deux donnent donc une réponse sans ambiguïté à chaque carte posée. En revanche, une carte refusée par « Ne pas réaccepter la même carte » ne déclenche rien – il ne s'est de toute façon rien passé.
Pas de scintillement avec une carte laissée en place
Si tu utilises « Pause au retrait de la carte » et que la carte reste posée en permanence sur le lecteur, de mauvaises conditions radio peuvent la faire redétecter de temps à autre. C'est pourquoi le clignotement n'est pas lié à la détection par le lecteur, mais à une carte réellement acceptée – ces ratés restent ainsi invisibles.
Positionner le premier pixel
Si l'anneau est monté « décalé » dans le boîtier, le décalage de la première LED te permet de définir à partir de quelle LED physique l'affichage commence – tu alignes ainsi le point zéro de l'anneau sur ton montage, sans avoir à ressouder (forum #4670, en allemand).
Un nombre de LED modifié est, au passage, pris en compte par ESPuino via un redémarrage automatique.
Énergie¶
Ce sous-groupe rassemble tout ce qui touche à l'énergie : en haut, sous Veille profonde, le moment où ESPuino s'endort lorsqu'il ne fait rien, et en dessous, sous Batterie, la surveillance de l'accu – cette dernière uniquement si la mesure de batterie est activée dans le firmware. Les réglages dans l'ordre où ils apparaissent aussi dans l'interface web :
| Réglage | Signification |
|---|---|
| Après n minutes d'inactivité | Après combien de minutes sans manipulation ESPuino s'endort. |
| Intervalle entre les mesures (en minutes) | À quelle fréquence la tension de la batterie est mesurée. |
| Afficher un avertissement en dessous de ce seuil (en volt) | À partir d'ici, l'anneau Neopixel avertit d'une batterie faible – et, si elle est activée, l'annonce est jouée en plus. |
| Tension la plus basse (en volt), indiquée par une LED | Borne inférieure de l'affichage de charge : ici, une seule LED reste allumée (dépend du type de batterie). |
| Tension indiquée par toutes les LED (en volt) | Borne supérieure de l'affichage de charge : à partir d'ici, toutes les LED s'allument, la batterie est donc considérée comme pleine (dépend du type de batterie). |
| Valeur de correction pour la tension mesurée de la batterie | Correction fine de la tension mesurée (± en centièmes de volt). Si l'affichage diverge d'une mesure au multimètre, saisis ici la différence – y compris une valeur négative si ESPuino affiche une tension trop élevée. Détails au chapitre 5 · Réglage fin. |
| Éteindre automatiquement en cas de tension critique | Met ESPuino en veille de lui-même dès que l'accu passe sous une tension critique, ce qui le protège d'une décharge profonde. Si la case est cochée, le curseur En dessous de cette tension (en volt), ESPuino s'éteint apparaît en dessous, pour définir ce seuil. |
| Annoncer une batterie faible | Énonce l'avertissement en plus des LED – détaillé dans la section suivante : Annonce de batterie faible. |
Annonce de batterie faible¶
L'anneau Neopixel prévient bien d'une batterie vide, mais cela n'aide que si quelqu'un regarde – et en plein milieu d'une histoire, personne ne regarde, les enfants moins que quiconque. ESPuino peut donc aussi annoncer l'avertissement : il interrompt brièvement la lecture, joue un fichier audio de ton choix, puis reprend exactement là où il s'était arrêté.
La fonction est désactivée d'origine. Pour l'activer, coche ici Annoncer une batterie faible et saisis en dessous le chemin du fichier audio. L'explorateur de fichiers est plus commode : un clic droit sur le fichier, puis Définir comme alerte batterie – cela renseigne le chemin, coche la case et t'amène directement ici.
Des annonces toutes prêtes en allemand, en anglais et en français se trouvent dans le dépôt du
firmware, dans le dossier announcements/ ; il suffit de les téléverser sur la carte SD. Les deux
commandes qui ont servi à les produire y sont également documentées – si la voix de synthèse ne te
plaît pas, tu peux donc tout aussi bien enregistrer l'annonce toi-même.
N'annoncer qu'une fois détermine l'insistance de l'avertissement. Sans cette option, il revient à chaque mesure tant que la batterie reste sous le seuil d'alerte – donc au rythme de l'intervalle de mesure. Avec l'option, il ne survient qu'une fois, puis de nouveau seulement lorsque la tension est entre-temps repassée au-dessus du seuil avant de retomber en dessous. Il n'y a délibérément pas d'option « une fois par charge » : ESPuino ne peut pas du tout détecter s'il est en charge – une tension qui remonte peut tout aussi bien être une batterie qui se rétablit sous une charge plus légère.
Vue de l'extérieur, l'interruption reste invisible
Pendant l'annonce, le titre, la position et la progression restent figés, et la playlist, le numéro de piste et le mode de lecture ne sont même pas touchés. Ni l'interface web ni MQTT ne remarquent donc que quelque chose d'autre a été joué entre-temps.
Uniquement pendant une lecture en cours
L'annonce n'a lieu que si quelque chose est effectivement en train de jouer. Si ESPuino est posé sur une étagère sans être utilisé, ou s'il est en pause, rien ne se passe – il n'y aurait d'ailleurs aucun point de reprise. Et si le fichier indiqué est introuvable, la lecture se poursuit sans être dérangée ; il ne reste qu'une entrée dans le journal d'erreurs.
Avec la webradio, le retour fonctionne aussi, mais autrement : un flux en direct n'a pas de position, ESPuino se reconnecte donc après l'annonce. Cela prend un court instant – sa durée dépend de la station.
Onglet Mises à jour¶
Tu trouveras ici tout ce qui concerne la mise à jour du firmware. Tu peux soit envoyer manuellement
un fichier firmware.bin, soit – bien plus pratique – récupérer directement un build tout fait
depuis le dépôt via charger le firmware depuis GitHub. Cela est décrit en détail au
chapitre 13 · Mettre à jour le firmware. La section GitHub
n'apparaît qu'avec un firmware compatible OTA.
Onglet Outils¶
Cet onglet concerne les attributions RFID enregistrées, qui – rappelons-le – ne se trouvent pas sur
la carte SD, mais dans la mémoire interne (NVS). Tu peux afficher toutes les attributions (et en
supprimer individuellement), les exporter en backup.txt et les réimporter (l'import
ajoute et remplace seulement, il ne supprime jamais), ou utiliser le bouton rouge pour supprimer
toutes les attributions (avec confirmation de sécurité). La façon d'utiliser ces fonctions pour
sauvegarder et transférer des données est décrite au
chapitre 10 → Sauvegarde et restauration.
Ce que montre la liste¶
Chaque entrée commence par l'ID de carte à douze chiffres. En dessous figure ce que la carte déclenche – soit le mode de lecture avec son symbole, soit, pour une carte de modification, sa fonction. La ligne suivante donne le fichier, le dossier ou l'URL attribué. À droite, le bouton corbeille supprime cette seule entrée.
Une entrée est surlignée en bleu : celle dont le numéro se trouve actuellement dans le champ « Numéro RFID » de l'onglet RFID. Pose une carte sur le lecteur pendant que l'interface web est ouverte et l'ESPuino y inscrit son numéro automatiquement – la liste te montre ainsi d'un coup d'œil si cette carte est déjà connue et à quoi elle est attribuée.
Pour une carte en mode de lecture MediaHub, le serveur média prend la place du chemin – avec son nom d'affichage s'il est encore enregistré dans l'onglet MediaHub, sinon avec son adresse. La ligne grise en dessous résume ce que cet appareil sait de la carte : le nom issu du manifeste, s'il s'agit d'une webradio ou quel mode de lecture s'applique réellement, et à quel point la copie locale est à jour :
| Affichage | Signification |
|---|---|
| synchronisé | La copie locale correspond à ce que MediaHub a livré en dernier. |
| mise à jour en attente | Lors de la dernière pose, l'ESPuino a constaté qu'une version plus récente attend sur MediaHub. La pose suivante la télécharge, celle d'après la joue. |
| jamais lue sur cet appareil | La carte pointe vers un serveur média, mais n'a encore jamais été posée sur cet ESPuino – rien n'est donc encore stocké localement. |
Pour cet affichage, l'ESPuino n'interroge pas MediaHub – toutes ces indications proviennent du cache local. La liste reste donc parlante lorsque le serveur n'est momentanément pas joignable.
Onglet MediaHub¶
Cet onglet sert uniquement à gérer les adresses de serveurs – l'attribution de carte proprement dite se fait toujours dans l'onglet RFID. Sans serveur MediaHub en fonctionnement, cette page ne sert à rien ; ce qu'est MediaHub et comment configurer le serveur est décrit au chapitre 11 · MediaHub.
Sous ajouter un serveur de médias, tu attribues un nom d'affichage librement choisi (il
apparaîtra plus tard dans le menu déroulant lors de l'apprentissage d'une carte) ainsi que l'
adresse – protocole (http:// ou https://) via un menu déroulant, suivi de l'hôte ou de l'IP
et du port, par exemple 192.168.1.50:8080. Un clic sur « enregistrer le serveur de médias »
l'ajoute à la liste serveurs de médias enregistrés. Tu peux ensuite l'ouvrir directement dans sa
propre interface web via l'icône, ou le supprimer via l'icône de corbeille – les cartes déjà
apprises ne sont pas affectées et continuent de pointer vers le serveur précédent.
Avec plusieurs serveurs enregistrés, leur ordre dans la liste n'est pas qu'un détail : lorsqu'il doit se renseigner sur une carte, ESPuino les parcourt de haut en bas et retient le premier qui la connaît. Cet ordre correspond à celui dans lequel tu as saisi les serveurs.
Si un serveur ne répond pas du tout, ESPuino le retient et cesse de l'interroger jusqu'au prochain redémarrage. C'est voulu : sinon, chaque pose d'une carte inconnue resterait de nouveau bloquée sur le délai d'attente de ce serveur. Comme ESPuino s'endort de toute façon après quelques minutes d'inactivité et redémarre au réveil, cela se résout tout seul à l'usage. Si le serveur revient entre-temps et que tu ne veux pas attendre, un clic sur Enregistrer les options réinitialise cela.
Les deux options¶
Tout en haut de l'onglet se trouvent deux interrupteurs, tous deux désactivés d'origine.
Interroger directement le MediaHub sur les cartes inconnues, sans apprentissage préalable t'épargne une à deux étapes par carte et par appareil.
Sans cette option, cela se passe ainsi : tu poses une nouvelle carte, tu l'apprends à la main dans l'onglet RFID avec le mode de lecture MediaHub, puis tu la reposes. C'est seulement cette deuxième pose qui envoie une requête au serveur – et qui fait apparaître la carte là-bas, pour que tu puisses lui attribuer du contenu.
Avec l'option, l'apprentissage disparaît : toute carte inconnue fait immédiatement l'objet d'une demande auprès de tous les serveurs enregistrés. Il faut savoir qu'ensuite la carte reste malgré tout inconnue de l'ESPuino – si aucun serveur ne la connaît, le message « carte inconnue » subsiste et rien n'est enregistré sur l'appareil. Le serveur l'a toutefois notée comme carte en attente. Ce n'est qu'après lui avoir attribué du contenu là-bas et reposé la carte une nouvelle fois qu'un manifeste revient : ESPuino apprend alors la carte en arrière-plan, télécharge les fichiers, puis les joue. Ce téléchargement se fait au premier plan – l'anneau LED en montre la progression, et avec un gros livre audio, il faut un certain temps avant que le son ne démarre.
C'est avec plusieurs ESPuino que le gain devient réel. Pose la carte sur l'appareil A et attribue-lui du contenu dans MediaHub – en l'assignant du même coup à l'appareil B. Pose ensuite cette même carte sur l'appareil B : dès la toute première pose, un manifeste revient – apprentissage, téléchargement, lecture, sans que tu aies rien réglé sur l'appareil B.
Afficher le dossier interne MediaHub dans l'explorateur de fichiers rend visible le dossier
/.mediahub, normalement masqué. Il contient, pour chaque carte, le manifeste mis en cache et les
fichiers médias téléchargés – pratique pour vérifier ce qui est réellement arrivé pour une carte.
Ce dossier est fait pour être consulté
Le triangle d'avertissement orange à côté de cette option n'est pas là par hasard. Modifier quoi que ce soit dans ce répertoire peut avoir des effets indésirables – un fichier audio à toi déposé là serait par exemple simplement lu avec les modes de lecture par dossier, sans qu'ESPuino s'en aperçoive.
Privilégie http:// plutôt que https://
Connecte le MediaHub sans chiffrement dès que c'est possible. La poignée de main TLS réclame beaucoup de mémoire interne – sur l'ESP32 la ressource la plus rare de toutes –, et le chiffrement ralentit en outre considérablement le transfert des données. Comme le MediaHub tourne généralement sur ton propre réseau domestique, le gain de sécurité est faible tandis que le prix à payer se remarque nettement.
Onglet Aide¶
L'onglet Aide renvoie vers le forum et vers la documentation de l'API REST (Swagger) – cette dernière pour ceux qui souhaitent scripter ESPuino ou l'intégrer dans leur domotique.


















