Bonjour
Je débute sur Arduino, et je voudrais écrire sur un ESP32-C6-LCD des textes simples.
Ces textes seront écris sur un pc portable, ou un tél, ou une tablette, et seront transmis en wifi ou bluetooth, et seront affichés instantanément sur le mini écran ESP32-C6-LCD.
Les écrans ESP32-C6-LCD serons embarqués sur des trains et voitures miniatures roulant sur la maquette que nous construisons.
Jean-Marie Parrod membre du club de Modélisme Jouef-39 à Champagnole 06 07 51 80 87 mail parrodfavre@orange.fr
Merci de votre aide.
Copie écan.pdf (133,0 Ko)
Bonjour,
Je pense que vous avez sélectionné la mauvaise catégorie.
Aussi, dans votre poste vous ne présentez aucun travail, ne posez aucune question.
Le but du forum n'est pas de faire le projet à votre place (ou alors il y a une catégorie exprès où vous payez les personnes) mais de vous aider à le faire.
Avez-vous un avancement à présenter ? Quelque chose qui montre votre investissement ?
Bonjour jmparrod
Il y aura donc plusieurs trains, combien?
Sujet fort intéressant ![]()
A+
Cordialement
jpbbricole
Bonjour,
Votre projet est facilement réalisable, mais avez-vous un début de code ou des questions précises ? Un schéma serait aussi apprécié. ![]()
Comme dit @Anthony_P personne ici va faire le travail à votre place mais on est toujours là pour aider.
Je fais aussi du modélisme et ce genre de projet m'intéresse.
Vous travaillez à quelle échelle ? Car un ESP32-C6-LCD à une dimension non négligeable...
- Largeur : en général autour de 25 à 30 mm.
- Longueur : souvent entre 50 et 55 mm.
- Épaisseur (sans l’écran) : environ 7 à 10 mm
Avez-vous des photos, ou mieux un lien vers le projet de votre maquette ? ![]()
Bonjour axelmaux
Pourquoi pas?
Ce serai un sujet idéal pour jouer avec ChatGPT, "il adore ce genre de sujet" ![]()
Cordialement
jpbbricole
Ce projet est très simple, j'ai déjà fait des trucs similaires pour mes maquettes, La seule réserve est la dimension de la carte pour l'embarquer dans un train... Après ça depend l'échelle, j'ai plus l'habitude de l'echelle N et de l'échelle 1/144 pour mes gunplas. ![]()
Sinon chatgpt est plutôt locace;
- Le ESP32-C6 se connecte en Wi-Fi (le plus simple pour plusieurs appareils) ou en Bluetooth.
- Il lance un petit serveur web ou un serveur Bluetooth Serial.
- Le téléphone ou le PC envoie du texte via un navigateur (Wi-Fi) ou une appli type terminal Bluetooth.
- Le texte est affiché sur le petit écran LCD embarqué.
Edit: perso je le ferais plutôt en wifi, on pourrait tout contrôler à partir de n'importe quel matériel pourvu d'un navigateur internet.
Fil déplacé dans la partie principale du Forum Francophone
Bonjour axelmaux
Oui, en effet ![]()
Je me suis amusé à l'exercice.
Comme je n'ai pas l'ESP32 de @jmparrod pour tout faire "en vrai", j'ai simplifié l'approche dans le sens où j'ai simplement demandé un serveur WEB qui me fournisse le texte introduit dans le formulaire:
void handleTexte()
Il suffira d'aiguiller ce texte dans les fonctions propres à l'afficheur de l'EESP32-C6-LCD.
Le serveur WEB de l'ESP32 est atteignable par:
http://texteTrain1.local
Le programme ChatGPT légèrement modifié:
/*
Name: AF_jmparrod_ESP32texteSurTrain.ino
Created: 01.05.2025
Author: jpbbricoile/IA
Remarque: Affichage de textes sur train par affichage sur écran de l'ESP32
https://forum.arduino.cc/t/ecrire-sur-esp32-c6-lcd-en-wifi/1378027
*/
#include <WiFi.h>
#include <WebServer.h>
#include <ESPmDNS.h>
const char* ssid = "...............";
const char* password = "...............";
const char* serveurTitre = "Texte pour train 1";
const char* serveurDomaine = "texteTrain1";
WebServer server(80);
void setup()
{
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("Connexion au WiFi");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Connecté au WiFi.");
Serial.print("Adresse IP : ");
Serial.println(WiFi.localIP());
// Démarrer mDNS avec le nom de domaine dynamique
if (!MDNS.begin(serveurDomaine))
{
Serial.println("Erreur lors du démarrage de mDNS");
}
else
{
Serial.print("mDNS OK : http://");
Serial.print(serveurDomaine);
Serial.println(".local");
}
// Démarrer le serveur
server.on("/", handleRoot);
server.on("/envoyer", handleTexte);
server.begin();
Serial.println("Serveur web OK !");
}
void loop()
{
server.handleClient();
}
void esp32c6Affichage(String texte)
{
Serial.println("ESP32-C6-LCD");
Serial.println("\t" + texte);
}
//------------------------------------- Serveur WEB
// Génération dynamique de la page HTML
String generateHTML()
{
String html = R"rawliteral(
<!DOCTYPE html>
<html>
<head>
<title>)rawliteral";
html += serveurDomaine;
html += R"rawliteral(</title>
<meta charset="UTF-8">
<style>
body
{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-family: Arial, sans-serif;
}
h1
{
width: 50%;
text-align: center;
}
.input-container
{
width: 50%;
display: flex;
justify-content: center;
align-items: center;
margin-top: 20px;
}
.input-wrapper
{
position: relative;
width: 70%;
}
input[type="text"]
{
width: 100%;
padding: 10px 30px 10px 10px;
font-size: 16px;
box-sizing: border-box;
}
.clear-button
{
position: absolute;
top: 50%;
right: 8px;
transform: translateY(-50%);
background: none;
border: none;
font-size: 18px;
cursor: pointer;
color: #888;
}
button.envoi
{
padding: 10px 20px;
margin-left: 10px;
font-size: 16px;
cursor: pointer;
}
</style>
</head>
<body>
<h1>)rawliteral";
html += serveurTitre;
html += R"rawliteral(</h1>
<div class="input-container">
<div class="input-wrapper">
<input type="text" id="texteInput" placeholder="Entrez un texte">
<button type="button" class="clear-button" onclick="effacerTexte()">×</button>
</div>
<button class="envoi" onclick="envoyerTexte()">Envoi</button>
</div>
<script>
function envoyerTexte()
{
const texte = document.getElementById('texteInput').value;
fetch('/envoyer?texte=' + encodeURIComponent(texte));
}
function effacerTexte()
{
document.getElementById('texteInput').value = '';
}
</script>
</body>
</html>
)rawliteral";
return html;
}
// Gestion des requêtes
void handleRoot()
{
server.send(200, "text/html", generateHTML());
}
void handleTexte()
{
if (server.hasArg("texte"))
{
String texte = server.arg("texte");
esp32c6Affichage(server.arg("texte"));
server.send(200, "text/plain", "Texte recu");
}
else
{
server.send(400, "text/plain", "Argument texte manquant");
}
}
Cordialement
jpbbricole
Bonjour
Merci pour vos réponses.
L'échelle de notre maquette est HO, ce qui permet d'intégrer les écrans dans nos trains et voitures miniatures.
Notre club Jouef-39 est issu d'anciens salariés de l'entreprise Jouef fabriquant de trains miniatures à Champagnole (jura) et les environs avant les année 2000. Nous organisons régulièrement des salons du modélisme (le prochain Jouefissimo est prévu pour les 4-5 avril 2026 à Champagnole), avons écrit un livre "Jouef tout une Histoire", et avons le projet de monter un mini monde miniature ouvert aux visiteurs sur Champagnole.
Notre maquette présentera les atouts de Champagnole et de notre région et nous souhaitons faire plusieurs interactions modernes et sympathiques avec les visiteurs:
-caméras embarquées dans les trains et voitures.
-possibilité de mettre des messages personnalisés sur les trains et voitures circulant sur la maquette; voir sur ce lien https://photos.app.goo.gl/r6NPZFrX1ka2Rge56 ; le train vapeur passant sur le viaduc de Syam et la voiture sur la route juste en dessous; le visiteur aura la possibilité de mettre 1 message personnalisé sur un écran intégré au train, et la réponse sur un écran intégré à la voiture; par exemple "Brigitte" "Tu es la plus belle"; une photo permettra au visiteur de pérenniser son message.
Nous allons essayer avec votre aide et vos retours d'avancer dans notre projet, mais nous ne sommes pas informaticiens et découvrons l'ESP3-C6 et Arduino IDE ?
Jean-Marie Parrod Jouef-39
Bonjour
Pourquoi pas faire faire le projet en le payant, car je ne suis pas sûr que même avec de l'aide, on arrive à aboutir notre projet?.
Dans ce cas, c'est quelle cathégorie? ? Developpement To"?
Merci
Bonjour jmparrod
Je te fais ça gratuitement, pour le plaisir.
J'ai déjà "piloté" d'autres projets "à distance."
Donnes-moi un lien sur ton ESP32.
A+
Bonne soirée!
jpbbricole
Bonjour Jpbbricole
OK, merci de ton implication.
Qu'entends tu pas "Lien sur ton ESP32"? c'est pour les caractéristiques? où si tu veux te connecter à mon l'ESP32?
Jean-Marie
Bonjour Jean-Marie
Oui c'est pour les caractéristiques, donnes moi le lien sur le site d'achat.
Ton choix d'écran est définitif ou tu es ouvert à d'autres suggestions ?
Bonne journée
jpbbricole
Bonjour Jpbbricole
Voici le lien de les ecran que je possède: https://www.waveshare.com/wiki/ESP32-C6-LCD-1.47
Merci
Jean-Marie
Bonjour,
Je pense que la meilleure méthode n'est pas d'imposer le matériel à priori.
Il faut exposer le travail à faire.
Donner ses impositions et ses contraintes.
À partir de ces renseignements, il sera possible de choisir le meilleur matériel.
L'écriture du programme viendra en dernier.
Si tu ne l'as pas encore fait, précipite-toi sur le site https://www.locoduino.org/
Le site des amoureux des petits trains et d'électronique.
Ce site est d'une très grande qualité et réussi d'être abordable par les débutants et utile aux expérimentés.
Mes 5 cts.
................... Une contradiction en trois lignes ? Qui plus est s'il impose l'écran c'est sûrement qu'il possède déjà ce matériel et souhaite l'utiliser
Dire qu'il peut y avoir un meilleur matériel est un fait, mais de là à demander à l'OP de ne pas imposer ce qu'il veut utiliser dans son propre projet quand même.
Bonjour jmparrod
Super, on va partir avec cet écran.
Est ce dans tes cordes que de suivre le tutoriel de ton lien, jusqu'à Demo flashing?
Je vais me commander un de ces ESP pour pouvoir mieux te suivre.
A+
Bonne soirée
jpbbricole
Ou est la contradiction ?
Les contraintes ne se résument pas a un choix de materiel particulier.
Les contraintes sont, entre autres, aussi les dimensions de la place disponible pour placer ce matériel.
Ce n’est pas la première fois sur ce forum qu’on dit qu’il ne faut pas se précipiter pour acheter le matériel avant d’avoir faire le tour du sujet.
Les erreurs de debutants sont normales.
Que des expérimentés ne les signalent pas en prévision d’un autre projet serait anormal.