<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PlaisirArduino</title>
	<atom:link href="https://plaisirarduino.fr/feed/" rel="self" type="application/rss+xml" />
	<link>https://plaisirarduino.fr/</link>
	<description></description>
	<lastBuildDate>Sun, 01 Feb 2026 06:09:58 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Cours Complet : Arduino + MQTT + Web &#8211; Contrôle tes LEDs depuis ton téléphone &#x1f680;</title>
		<link>https://plaisirarduino.fr/arduino-et-rabbitm-dans-une-infra-docker-mamp/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Sun, 01 Feb 2026 05:11:15 +0000</pubDate>
				<category><![CDATA[Intermédiaire]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=4973</guid>

					<description><![CDATA[<p>PARTIE 1 — INTRODUCTION : Pourquoi ce projet est magique ? Objectif : Découvrir l’architecture globale (Arduino + MQTT + Web) et son utilité. Ce que tu vas apprendre Tu vas découvrir comment faire discuter ton Arduino avec une page web, comme si tu envoyais des SMS à tes LEDs &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/arduino-et-rabbitm-dans-une-infra-docker-mamp/">Cours Complet : Arduino + MQTT + Web &#8211; Contrôle tes LEDs depuis ton téléphone &#x1f680;</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="La puissance de RabbitMQ avec Arduino" width="660" height="371" src="https://www.youtube.com/embed/mYyOmvtbU9g?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading"><strong>PARTIE 1 — INTRODUCTION : Pourquoi ce projet est magique ?</strong></h2>



<p><strong>Objectif</strong> : Découvrir l’architecture globale (Arduino + MQTT + Web) et son utilité.</p>



<h3 class="wp-block-heading"><strong>Ce que tu vas apprendre</strong></h3>



<p>Tu vas découvrir comment faire <strong>discuter ton Arduino avec une page web</strong>, comme si tu envoyais des SMS à tes LEDs ! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> On va utiliser <strong>RabbitMQ</strong> (un "standardiste" qui transmet les messages) pour que ton téléphone puisse :</p>



<ul class="wp-block-list">
<li>Allumer une LED à distance.</li>



<li>Lire la valeur d’un potentiomètre en temps réel.</li>
</ul>



<h3 class="wp-block-heading"><strong>Pourquoi c’est utile (et amusant)</strong></h3>



<p>Imagine :</p>



<ul class="wp-block-list">
<li>Allumer la lumière de ta chambre depuis ton canapé, juste avec ton téléphone. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6cb.png" alt="🛋" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/27a1.png" alt="➡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>



<li>Voir en direct le niveau d’humidité de tes plantes sur ton écran. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f331.png" alt="🌱" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ca.png" alt="📊" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>



<li>Piloter un robot ou une station météo depuis l’autre bout de la maison. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f326.png" alt="🌦" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>



<p>Avec ce projet, tu poses les <strong>bases de la domotique</strong> sans te prendre la tête. Et le meilleur ? Tu peux tout adapter à tes idées !</p>



<h3 class="wp-block-heading"><strong>Le plan du projet</strong></h3>



<p>Voici comment on va s’y prendre, étape par étape :</p>



<p> 1&#x20e3; <strong>Prépare ton matériel</strong> : LEDs, potentiomètre, et ton Arduino R4 WiFi (ton "chef d’orchestre"). </p>



<p>2&#x20e3; <strong>Installe RabbitMQ</strong> (le "standardiste") dans Docker, comme une appli sur ton ordi. </p>



<p>3&#x20e3; <strong>Configure MAMP</strong> (un serveur web tout simple) pour afficher une jolie page de contrôle sur ton téléphone. </p>



<p>4&#x20e3; <strong>Code l’Arduino</strong> pour qu’il écoute les ordres (ex : "Allume la LED 13 !") et renvoie des infos (ex : "Le potentiomètre est à 36%"). </p>



<p>5&#x20e3; <strong>Teste tout</strong> : tu cliques sur ton téléphone, et pouf ! La LED s’allume. Magique, non ? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2728.png" alt="✨" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>À la fin, tu auras une <strong>interface web</strong> qui ressemble à un tableau de bord de vaisseau spatial… mais en version Arduino ! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>PARTIE 2 — PRÉPARE TON MATÉRIEL COMME UN PRO</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6d2.png" alt="🛒" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p><strong>Objectif</strong> : Vérifier et organiser les composants avant de commencer.</p>



<h3 class="wp-block-heading"><strong>Liste de courses</strong></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Composant</th><th>Quantité</th><th>Où l'acheter</th><th>Prix estimé</th></tr></thead><tbody><tr><td>Arduino R4 WiFi</td><td>1</td><td>Amazon / Mouser</td><td>30€</td></tr><tr><td>LEDs (rouge + verte)</td><td>2</td><td>Gotronic / Amazon</td><td>1€</td></tr><tr><td>Résistances 220Ω</td><td>2</td><td>Kit de résistances (Amazon)</td><td>0,50€</td></tr><tr><td>Potentiomètre 10kΩ</td><td>1</td><td>SparkFun / ElectroDragon</td><td>2€</td></tr><tr><td>Breadboard</td><td>1</td><td>Kit de démarrage (Amazon)</td><td>5€</td></tr><tr><td>Câbles de connexion</td><td>6</td><td>Kit de câbles dupont (Amazon)</td><td>3€</td></tr><tr><td><strong>Budget total</strong></td><td></td><td></td><td><strong>~41,50€</strong></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><strong>Avant de commencer, vérifie :</strong></h3>



<ul class="wp-block-list">
<li><strong>Tu as tous les composants</strong> : Sors-les de leur emballage et pose-les devant toi comme un chef étoilé prépare ses ingrédients. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f468-200d-1f373.png" alt="👨‍🍳" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>



<li><strong>Ton Arduino est reconnu par ton PC</strong> :
<ul class="wp-block-list">
<li>Branche-le en USB et ouvre l’IDE Arduino.</li>



<li>Va dans <em>Outils > Port</em> et sélectionne le port COM correspondant (ex: <code class="" data-line="">COM3</code> ou <code class="" data-line="">/dev/ttyACM0</code>).</li>



<li><em>Pas de port ?</em> Suis ce <a href="https://plaisirarduino.fr/installation-arduino">tutoriel d’installation</a>.</li>
</ul>
</li>



<li><strong>Tu as 30 minutes devant toi sans interruption</strong> : Éteins les notifications, c’est l’heure de coder ! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/23f3.png" alt="⏳" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>



<h3 class="wp-block-heading"><strong>Astuces de pro</strong></h3>



<ul class="wp-block-list">
<li>Range tes composants dans des <strong>boîtes à compartiments</strong> (comme celles pour les vis) pour ne plus jamais perdre une résistance.</li>



<li>Prends une <strong>photo de ton montage</strong> avant de débrancher : ça sauve des vies quand tu veux le refaire plus tard !</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>PARTIE 3 — LE SCHÉMA DE CÂBLAGE : TON PLAN DE BATAILLE</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50c.png" alt="🔌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p><strong>Objectif</strong> : Brancher correctement LEDs et potentiomètre sur l’Arduino.</p>



<h3 class="wp-block-heading"><strong>Vue d'ensemble</strong></h3>



<p>On va brancher <strong>2 LEDs et un potentiomètre</strong> à ton Arduino R4 WiFi, comme si tu connectais des enceintes à une chaîne hi-fi. L’ordre est important :</p>



<ol class="wp-block-list">
<li>D’abord les LEDs (pour vérifier que le courant passe).</li>



<li>Puis le potentiomètre (pour lire des valeurs analogiques).</li>
</ol>



<h3 class="wp-block-heading"><strong>Tableau des connexions</strong></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Composant</th><th>Broche composant</th><th>➜</th><th>Arduino</th><th>Raison (facultatif)</th></tr></thead><tbody><tr><td><strong>LED 13</strong></td><td>Patte longue (+)</td><td>➜</td><td>Pin 13</td><td>Signal numérique (ON/OFF)</td></tr><tr><td><strong>LED 13</strong></td><td>Patte courte (-)</td><td>➜</td><td>GND via résistance</td><td>Protection contre le court-circuit</td></tr><tr><td><strong>LED 12</strong></td><td>Patte longue (+)</td><td>➜</td><td>Pin 12</td><td>Signal numérique (ON/OFF)</td></tr><tr><td><strong>LED 12</strong></td><td>Patte courte (-)</td><td>➜</td><td>GND via résistance</td><td>Protection contre le court-circuit</td></tr><tr><td><strong>Potentiomètre</strong></td><td>Broche du milieu</td><td>➜</td><td>A0</td><td>Lecture de la valeur analogique (0-1023)</td></tr><tr><td><strong>Potentiomètre</strong></td><td>Broche de gauche</td><td>➜</td><td>5V</td><td>Alimentation pour créer une tension variable</td></tr><tr><td><strong>Potentiomètre</strong></td><td>Broche de droite</td><td>➜</td><td>GND</td><td>Référence de masse</td></tr></tbody></table></figure>



<p><strong>Note :</strong></p>



<ul class="wp-block-list">
<li><strong>Les résistances (220Ω)</strong> sont obligatoires pour les LEDs : sans elles, le courant serait trop fort et grillerait la LED (comme un tuyau d’arrosage sous trop de pression).</li>



<li><strong>Le potentiomètre</strong> se branche comme un robinet : la broche du milieu est la sortie (comme le bec du robinet), et les deux autres sont l’entrée (5V) et la sortie (GND).</li>
</ul>



<h3 class="wp-block-heading"><strong>Les 3 erreurs à ne JAMAIS faire</strong></h3>



<ol class="wp-block-list">
<li><strong>Inverser les pattes de la LED</strong> → Risque : La LED ne s’allumera pas (comme une pile branchée à l’envers dans une lampe).
<ul class="wp-block-list">
<li><em>Astuce</em> : La patte longue (+) va toujours vers la broche Arduino, la courte (-) vers la résistance et la masse.</li>
</ul>
</li>



<li><strong>Oublier la résistance pour les LEDs</strong> → Risque : La LED va griller en quelques secondes (comme une ampoule sans variateur de lumière).
<ul class="wp-block-list">
<li><em>Astuce</em> : Une résistance de 220Ω est idéale pour les LEDs classiques (rouge, verte, jaune).</li>
</ul>
</li>



<li><strong>Brancher le potentiomètre à l’envers</strong> → Risque : La valeur lue sera toujours à 0 ou 1023 (comme un robinet qui ne laisse passer que de l’eau froide ou chaude).
<ul class="wp-block-list">
<li><em>Astuce</em> : La broche du milieu (A0) doit toujours être connectée à la sortie du potentiomètre.</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>PARTIE 4 — MQTT &amp; WEBSOCKET : LES SUPER-POUVOIRS DE LA COMMUNICATION</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p><strong>Objectif</strong> : Comprendre comment Arduino parle au web (broker, topics, messages).</p>



<h3 class="wp-block-heading"><strong>L'analogie pour tout comprendre</strong></h3>



<p>Imagine ton <strong>Arduino comme un chef d’orchestre</strong> qui dirige une petite troupe de musiciens :</p>



<ul class="wp-block-list">
<li><strong>Les LEDs</strong> sont des percussionnistes : elles ne savent faire que deux choses, jouer (allumées) ou se taire (éteintes).</li>



<li><strong>Le potentiomètre</strong> est un violoniste : il peut jouer toutes les notes entre 0 et 100% (comme un volume de musique).</li>



<li><strong>RabbitMQ</strong> est le chef d’orchestre adjoint : il transmet les ordres du public (ton téléphone) aux musiciens (Arduino) et vice versa.</li>
</ul>



<p>Quand tu cliques sur un bouton dans ton navigateur :</p>



<ol class="wp-block-list">
<li>Ton téléphone envoie un message <em>"Allume la LED 13 !"</em> à RabbitMQ.</li>



<li>RabbitMQ le transmet à l’Arduino.</li>



<li>L’Arduino exécute l’ordre et répond <em>"C’est fait !"</em>.</li>



<li>RabbitMQ renvoie la confirmation à ton téléphone.</li>
</ol>



<h3 class="wp-block-heading"><strong>Comment ça marche techniquement</strong></h3>



<p><strong>Étape 1 : Connexion au broker</strong></p>



<ul class="wp-block-list">
<li>L’Arduino se connecte à <strong>RabbitMQ</strong> (le "standardiste") via WiFi, comme tu te connectes à ta box internet.</li>
</ul>



<p><strong>Étape 2 : Abonnement aux topics</strong></p>



<ul class="wp-block-list">
<li>L’Arduino s’abonne à des <strong>"topics"</strong> (comme des chaînes de discussion) :
<ul class="wp-block-list">
<li><code class="" data-line="">arduino/led13</code> pour recevoir les ordres de la LED 13.</li>



<li><code class="" data-line="">arduino/pot</code> pour envoyer la valeur du potentiomètre.</li>
</ul>
</li>
</ul>



<p><strong>Étape 3 : Envoi/réception des messages</strong></p>



<ul class="wp-block-list">
<li>Quand tu cliques sur un bouton dans ton navigateur, un message est envoyé au topic <code class="" data-line="">arduino/led13</code>.</li>



<li>L’Arduino reçoit le message, allume la LED, et envoie une confirmation au topic <code class="" data-line="">arduino/feedback</code>.</li>
</ul>



<h3 class="wp-block-heading"><strong>À retenir</strong></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>"MQTT, c’est comme des SMS pour objets connectés : léger, rapide, et sans fil."</strong></p>



<p>Exemple concret : Une station météo qui envoie la température toutes les 5 minutes à ton téléphone.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>PARTIE 5 — CODE PARTIE 1 : CONFIGURATION DE L'ARDUINO</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p><strong>Objectif</strong> : Configurer les broches, le WiFi et MQTT.</p>



<h3 class="wp-block-heading"><strong>Ce que fait cette partie du code</strong></h3>



<p>Ici, on configure l’Arduino comme un <strong>chef d’orchestre qui se présente à son public</strong> :</p>



<ul class="wp-block-list">
<li>On déclare les <strong>broches</strong> (où brancher les LEDs et le potentiomètre).</li>



<li>On initialise les <strong>variables</strong> (comme des post-it pour se souvenir de l’état des LEDs).</li>



<li>On prépare la <strong>connexion WiFi et MQTT</strong> (pour que l’Arduino puisse discuter avec ton téléphone).</li>
</ul>



<h3 class="wp-block-heading"><strong>Code commenté ligne par ligne</strong></h3>



<pre class="wp-block-code"><code class="" data-line="">// ---- Inclusion des bibliothèques ----
#include &lt;WiFiS3.h&gt;     // Pour gérer le WiFi de l&#039;Arduino R4
#include &lt;MQTT.h&gt;       // Pour communiquer en MQTT (comme des SMS)
#include &quot;secrets.h&quot;    // Fichier externe qui contient tes identifiants WiFi (SSID + mot de passe)

// ---- Configuration IP fixe ----
// Comme une adresse postale pour ton Arduino sur le réseau
IPAddress localIP(192, 168, 1, 165);  // Adresse IP de l&#039;Arduino (modifiable si conflit)
IPAddress gateway(192, 168, 1, 1);    // Adresse de ta box (généralement 192.168.1.1)
IPAddress subnet(255, 255, 255, 0);   // Masque de sous-réseau (ne change pas)
IPAddress dns(8, 8, 8, 8);            // DNS de Google (pour résoudre les noms de domaine)

// ---- Initialisation des clients ----
WiFiClient net;          // Client WiFi (comme un câble réseau virtuel)
MQTTClient client;       // Client MQTT (pour envoyer/recevoir des messages)

// ---- Déclaration des broches ----
const int ledPin13 = 13; // Broche pour la LED 13 (celle intégrée à l&#039;Arduino R4)
const int ledPin12 = 12; // Broche pour la LED 12 (externe)
const int potPin = A0;   // Broche analogique pour le potentiomètre (A0 = entrée analogique)

// ---- Variables d&#039;état ----
bool ledState13 = false; // État de la LED 13 (false = éteinte, true = allumée)
bool ledState12 = false; // État de la LED 12
unsigned long lastPublishTime = 0; // Dernier moment où on a envoyé des données
const long publishInterval = 1000; // Délai entre chaque envoi (1000 ms = 1 seconde)

// ---- Fonction pour se connecter au WiFi ----
void connectWiFi() {
  Serial.print(&quot;Connexion au WiFi...&quot;); // Message dans le moniteur série

  // On configure l&#039;IP fixe (comme une adresse postale fixe)
  WiFi.config(localIP, dns, gateway, subnet);

  // On se connecte avec les identifiants du fichier &quot;secrets.h&quot;
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

  // Tant qu&#039;on n&#039;est pas connecté, on attend et on affiche des points
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(&quot;.&quot;);
    delay(1000); // On attend 1 seconde avant de réessayer
  }

  Serial.println(&quot;\nConnecté au WiFi !&quot;); // Message de confirmation
  Serial.print(&quot;Adresse IP : &quot;);
  Serial.println(WiFi.localIP()); // Affiche l&#039;IP de l&#039;Arduino
}

// ---- Fonction pour se connecter à MQTT ----
void connectMQTT() {
  Serial.print(&quot;Connexion à MQTT...&quot;);

  // On se connecte au broker MQTT (RabbitMQ)
  client.begin(&quot;192.168.1.XX&quot;, net); // Remplace XX par l&#039;IP de ton ordinateur
  client.onMessage(messageReceived); // Fonction appelée quand un message arrive

  // Tant qu&#039;on n&#039;est pas connecté, on attend
  while (!client.connect(&quot;arduinoClient&quot;, &quot;user&quot;, &quot;password&quot;)) { // Remplace user/password
    Serial.print(&quot;.&quot;);
    delay(1000);
  }

  Serial.println(&quot;\nConnecté au MQTT !&quot;);

  // On s&#039;abonne aux topics pour recevoir les ordres
  client.subscribe(&quot;arduino/led13&quot;);
  client.subscribe(&quot;arduino/led12&quot;);
}

// ---- Fonction appelée quand un message MQTT arrive ----
void messageReceived(String &amp;topic, String &amp;payload) {
  Serial.print(&quot;Message reçu sur topic : &quot;);
  Serial.println(topic);
  Serial.print(&quot;Contenu : &quot;);
  Serial.println(payload);

  // Si le message est pour la LED 13
  if (topic == &quot;arduino/led13&quot;) {
    if (payload == &quot;on&quot;) {
      digitalWrite(ledPin13, HIGH); // Allume la LED
      ledState13 = true;
    } else if (payload == &quot;off&quot;) {
      digitalWrite(ledPin13, LOW); // Éteint la LED
      ledState13 = false;
    }
  }

  // Si le message est pour la LED 12
  if (topic == &quot;arduino/led12&quot;) {
    if (payload == &quot;on&quot;) {
      digitalWrite(ledPin12, HIGH);
      ledState12 = true;
    } else if (payload == &quot;off&quot;) {
      digitalWrite(ledPin12, LOW);
      ledState12 = false;
    }
  }
}

// ---- Configuration initiale (setup) ----
void setup() {
  Serial.begin(115200); // Initialise la communication série
  pinMode(ledPin13, OUTPUT); // Configure la broche 13 en sortie
  pinMode(ledPin12, OUTPUT); // Configure la broche 12 en sortie

  connectWiFi(); // Se connecte au WiFi
  connectMQTT(); // Se connecte à MQTT
}

// ---- Boucle principale (loop) ----
void loop() {
  client.loop(); // Garde la connexion MQTT active

  // Envoie les données toutes les X secondes
  if (millis() - lastPublishTime &gt; publishInterval) {
    lastPublishTime = millis();

    // Lit la valeur du potentiomètre (0-1023)
    int potValue = analogRead(potPin);
    // Convertit en pourcentage (0-100%)
    int potPercentage = map(potValue, 0, 1023, 0, 100);

    // Envoie la valeur du potentiomètre au topic &quot;arduino/pot&quot;
    client.publish(&quot;arduino/pot&quot;, String(potPercentage));

    // Envoie l&#039;état des LEDs
    client.publish(&quot;arduino/led13/state&quot;, ledState13 ? &quot;on&quot; : &quot;off&quot;);
    client.publish(&quot;arduino/led12/state&quot;, ledState12 ? &quot;on&quot; : &quot;off&quot;);
  }
}
</code></pre>



<h3 class="wp-block-heading"><strong>Exercice rapide</strong></h3>



<p><strong>Mission</strong> : Modifie la variable <code class="" data-line="">publishInterval</code> à la ligne 25 et passe de <code class="" data-line="">1000</code> à <code class="" data-line="">5000</code>.</p>



<ul class="wp-block-list">
<li><strong>Valeur initiale</strong> : 1000 ms (1 seconde).</li>



<li><strong>Valeur modifiée</strong> : 5000 ms (5 secondes).</li>
</ul>



<p><strong>Résultat attendu</strong> :</p>



<ul class="wp-block-list">
<li>Les données du potentiomètre seront envoyées <strong>toutes les 5 secondes</strong> au lieu de 1 seconde.</li>



<li><em>Pourquoi ?</em> Pour réduire la fréquence d’envoi et économiser de la bande passante.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>PARTIE 6 — CODE PARTIE 2 : INTERFACE WEB EN HTML/JS</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p><strong>Objectif</strong> : Créer une page web pour contrôler l’Arduino.</p>



<h3 class="wp-block-heading"><strong>Ce que fait cette partie du code</strong></h3>



<p>Ici, on crée une <strong>interface web</strong> qui envoie des ordres à l’Arduino via MQTT :</p>



<ul class="wp-block-list">
<li>Des <strong>boutons</strong> pour allumer/éteindre les LEDs.</li>



<li>Une <strong>jauge</strong> pour afficher la valeur du potentiomètre en temps réel.</li>



<li>Une <strong>connexion MQTT</strong> pour communiquer avec l’Arduino.</li>
</ul>



<h3 class="wp-block-heading"><strong>Code commenté ligne par ligne</strong></h3>



<pre class="wp-block-code"><code class="" data-line="">&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;fr&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Contrôle Arduino depuis ton téléphone&lt;/title&gt;
    &lt;style&gt;
        /* ---- Styles CSS ---- */
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            margin: 20px;
            background-color: #f0f0f0;
        }
        h1 {
            color: #333;
        }
        .button {
            background-color: #4CAF50;
            border: none;
            color: white;
            padding: 15px 32px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 16px;
            margin: 10px;
            cursor: pointer;
            border-radius: 8px;
        }
        .button.off {
            background-color: #f44336;
        }
        #potValue {
            font-size: 24px;
            margin: 20px;
        }
        #connectionStatus {
            padding: 10px;
            border-radius: 5px;
            margin: 10px;
        }
        .connected {
            background-color: #4CAF50;
            color: white;
        }
        .disconnected {
            background-color: #f44336;
            color: white;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;Contrôle ton Arduino depuis ton téléphone&lt;/h1&gt;

    &lt;!-- Boutons pour les LEDs --&gt;
    &lt;button id=&quot;toggleButton13&quot; class=&quot;button&quot;&gt;Allumer LED 13&lt;/button&gt;
    &lt;button id=&quot;toggleButton12&quot; class=&quot;button&quot;&gt;Allumer LED 12&lt;/button&gt;

    &lt;!-- Jauge pour le potentiomètre --&gt;
    &lt;div id=&quot;potValue&quot;&gt;Potentiomètre : 0%&lt;/div&gt;
    &lt;progress id=&quot;potProgress&quot; value=&quot;0&quot; max=&quot;100&quot; style=&quot;width: 80%; height: 30px;&quot;&gt;&lt;/progress&gt;

    &lt;!-- Statut de la connexion --&gt;
    &lt;div id=&quot;connectionStatus&quot; class=&quot;disconnected&quot;&gt;Déconnecté&lt;/div&gt;

    &lt;!-- Bibliothèque MQTT --&gt;
    &lt;script src=&quot;https://unpkg.com/mqtt/dist/mqtt.min.js&quot;&gt;&lt;/script&gt;
    &lt;script&gt;
        // ---- Configuration MQTT ----
        const mqttConfig = {
            host: &#039;192.168.1.XX&#039;, // Remplace XX par l&#039;IP de ton ordinateur
            port: 1983, // Port WebSocket de RabbitMQ
            username: &#039;user&#039;, // Remplace par ton username MQTT
            password: &#039;password&#039; // Remplace par ton password MQTT
        };

        // ---- Connexion au broker MQTT ----
        const client = mqtt.connect(`ws://${mqttConfig.host}:${mqttConfig.port}`, {
            username: mqttConfig.username,
            password: mqttConfig.password
        });

        // ---- Éléments du DOM ----
        const toggleButton13 = document.getElementById(&#039;toggleButton13&#039;);
        const toggleButton12 = document.getElementById(&#039;toggleButton12&#039;);
        const potValue = document.getElementById(&#039;potValue&#039;);
        const potProgress = document.getElementById(&#039;potProgress&#039;);
        const connectionStatus = document.getElementById(&#039;connectionStatus&#039;);

        // ---- Mise à jour du statut de connexion ----
        function updateConnectionStatus(status, message) {
            connectionStatus.textContent = message;
            connectionStatus.className = status;
        }

        // ---- Connexion MQTT ----
        client.on(&#039;connect&#039;, () =&gt; {
            updateConnectionStatus(&#039;connected&#039;, &#039;Connecté au broker MQTT !&#039;);
            console.log(&#039;Connecté au broker MQTT&#039;);

            // On s&#039;abonne aux topics pour recevoir les mises à jour
            client.subscribe(&#039;arduino/pot&#039;);
            client.subscribe(&#039;arduino/led13/state&#039;);
            client.subscribe(&#039;arduino/led12/state&#039;);
        });

        // ---- Réception des messages MQTT ----
        client.on(&#039;message&#039;, (topic, message) =&gt; {
            console.log(`Message reçu sur ${topic}: ${message}`);

            // Met à jour la jauge du potentiomètre
            if (topic === &#039;arduino/pot&#039;) {
                const value = parseInt(message.toString());
                potValue.textContent = `Potentiomètre : ${value}%`;
                potProgress.value = value;
            }

            // Met à jour l&#039;état des LEDs
            if (topic === &#039;arduino/led13/state&#039;) {
                toggleButton13.textContent = message.toString() === &#039;on&#039; ? &#039;Éteindre LED 13&#039; : &#039;Allumer LED 13&#039;;
                toggleButton13.className = message.toString() === &#039;on&#039; ? &#039;button off&#039; : &#039;button&#039;;
            }

            if (topic === &#039;arduino/led12/state&#039;) {
                toggleButton12.textContent = message.toString() === &#039;on&#039; ? &#039;Éteindre LED 12&#039; : &#039;Allumer LED 12&#039;;
                toggleButton12.className = message.toString() === &#039;on&#039; ? &#039;button off&#039; : &#039;button&#039;;
            }
        });

        // ---- Envoi d&#039;une commande MQTT ----
        function toggleLed(ledNumber) {
            if (client.connected) {
                const topic = `arduino/led${ledNumber}`;
                const currentState = document.getElementById(`toggleButton${ledNumber}`).textContent;
                const newState = currentState.includes(&#039;Allumer&#039;) ? &#039;on&#039; : &#039;off&#039;;

                client.publish(topic, newState);
                console.log(`Commande envoyée : ${topic} ${newState}`);
            } else {
                updateConnectionStatus(&#039;disconnected&#039;, &#039;Impossible d\&#039;envoyer la commande: non connecté&#039;);
            }
        }

        // ---- Événements des boutons ----
        toggleButton13.addEventListener(&#039;click&#039;, () =&gt; toggleLed(13));
        toggleButton12.addEventListener(&#039;click&#039;, () =&gt; toggleLed(12));
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>



<h3 class="wp-block-heading"><strong>Exercice rapide</strong></h3>



<p><strong>Mission</strong> : Change le délai de rafraîchissement de la jauge en modifiant la fréquence d’envoi des données dans le code Arduino (Partie 5).</p>



<ul class="wp-block-list">
<li><strong>Valeur initiale</strong> : 1000 ms (1 seconde).</li>



<li><strong>Valeur modifiée</strong> : 200 ms (0,2 seconde).</li>
</ul>



<p><strong>Résultat attendu</strong> :</p>



<ul class="wp-block-list">
<li>La jauge du potentiomètre se mettra à jour <strong>5 fois plus vite</strong>.</li>



<li><em>Pourquoi ça marche ?</em> Parce que l’Arduino envoie les données plus fréquemment, donc l’interface web les reçoit plus souvent.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>PARTIE 7 — TEST : VÉRIFIE QUE TOUT FONCTIONNE</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9ea.png" alt="🧪" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p><strong>Objectif</strong> : Tester le projet et valider son fonctionnement.</p>



<h3 class="wp-block-heading"><strong>Mise sous tension</strong></h3>



<ol class="wp-block-list">
<li><strong>Branche ton Arduino</strong> au port USB de ton ordinateur.
<ul class="wp-block-list">
<li><em>Vérifie</em> : La LED orange "ON" doit s’allumer sur l’Arduino.</li>
</ul>
</li>



<li><strong>Ouvre l’IDE Arduino</strong> et sélectionne le bon port COM.</li>



<li><strong>Téléverse le code</strong> (Partie 5) sur l’Arduino.
<ul class="wp-block-list">
<li><em>Vérifie</em> : La LED intégrée (broche 13) doit clignoter rapidement pendant le téléversement, puis s’éteindre.</li>
</ul>
</li>



<li><strong>Ouvre le moniteur série</strong> (Outils > Moniteur série, vitesse 115200 bauds).
<ul class="wp-block-list">
<li><em>Vérifie</em> : Tu dois voir les messages <code class="" data-line="">&quot;Connecté au WiFi !&quot;</code> et <code class="" data-line="">&quot;Connecté au MQTT !&quot;</code>.</li>
</ul>
</li>



<li><strong>Ouvre le fichier HTML</strong> (Partie 6) dans ton navigateur.
<ul class="wp-block-list">
<li><em>Vérifie</em> : La page doit afficher <code class="" data-line="">&quot;Connecté au broker MQTT !&quot;</code>.</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading"><strong>Comportement attendu</strong></h3>



<p><strong>Ce que tu dois voir :</strong></p>



<ol class="wp-block-list">
<li><strong>Sur l’interface web</strong> :
<ul class="wp-block-list">
<li>Les boutons "Allumer LED 13" et "Allumer LED 12" doivent être actifs.</li>



<li>La jauge du potentiomètre doit bouger quand tu tournes le bouton.</li>
</ul>
</li>



<li><strong>Sur l’Arduino</strong> :
<ul class="wp-block-list">
<li>La LED 13 doit s’allumer quand tu cliques sur le bouton correspondant.</li>



<li>La LED 12 doit réagir de la même façon.</li>
</ul>
</li>



<li><strong>Dans le moniteur série</strong> :
<ul class="wp-block-list">
<li>Des messages comme <code class="" data-line="">&quot;Led13 on&quot;</code>, <code class="" data-line="">&quot;Led12 off&quot;</code>, et <code class="" data-line="">&quot;pot XX&quot;</code> doivent défiler toutes les secondes.</li>
</ul>
</li>
</ol>



<p><strong>Timing</strong> :</p>



<ul class="wp-block-list">
<li>Les messages MQTT doivent s’afficher <strong>toutes les secondes</strong> (ou selon ton <code class="" data-line="">publishInterval</code>).</li>



<li>Les LEDs doivent s’allumer/éteindre <strong>instantanément</strong> quand tu cliques sur les boutons.</li>
</ul>



<h3 class="wp-block-heading"><strong>Ça marche ?</strong></h3>



<p><strong>Bravo !</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Tu viens de :</p>



<ul class="wp-block-list">
<li>Faire communiquer ton Arduino avec une page web comme un pro.</li>



<li>Créer une interface de contrôle à distance pour tes LEDs et ton potentiomètre.</li>



<li>Poser les bases de la domotique (tu peux maintenant contrôler n’importe quel composant depuis ton téléphone !).</li>
</ul>



<p><strong>Partage ta victoire !</strong> :</p>



<ul class="wp-block-list">
<li>Prends une photo de ton montage et poste-la sur <a href="https://www.facebook.com/groups/plaisirarduino">notre groupe Facebook</a> avec le hashtag <strong>#PlaisirArduino</strong>.</li>



<li>Enregistre une courte vidéo de l’interface web en action et envoie-la à un ami pour lui montrer ta création !</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Ça ne marche pas ?</strong></h3>



<p>Pas de panique, c’est normal ! Direction la <strong>Partie 8 — Dépannage</strong> pour trouver la solution.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>PARTIE 8 — DÉPANNAGE : LES SOLUTIONS À TES PROBLÈMES</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p><strong>Objectif</strong> : Résoudre les problèmes courants.</p>



<h3 class="wp-block-heading"><strong>Problème 1 : Les LEDs ne s’allument pas</strong></h3>



<p><strong>Symptôme</strong> : Les LEDs restent éteintes même quand tu cliques sur les boutons.</p>



<p><strong>Cause probable</strong> :</p>



<ul class="wp-block-list">
<li>Câblage incorrect (inversion des pattes de la LED ou oubli de la résistance).</li>



<li>Broches mal déclarées dans le code Arduino.</li>
</ul>



<p><strong>Solution</strong> :</p>



<ol class="wp-block-list">
<li>Vérifie que la <strong>patte longue de la LED</strong> est branchée sur la broche Arduino (13 ou 12) et la <strong>patte courte</strong> sur la masse (GND) via une résistance.</li>



<li>Vérifie que les broches sont bien déclarées dans le code :<code class="" data-line="">const int ledPin13 = 13; const int ledPin12 = 12;</code></li>



<li>Teste les LEDs <strong>manuellement</strong> en branchant directement la patte longue sur le 5V (avec résistance).</li>
</ol>



<p><strong>Comment vérifier</strong> :</p>



<ul class="wp-block-list">
<li>Ouvre le moniteur série et cherche les messages <code class="" data-line="">&quot;Led13 on&quot;</code> ou <code class="" data-line="">&quot;Led12 on&quot;</code>. Si tu les vois mais que les LEDs ne s’allument pas, c’est un problème de câblage.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Problème 2 : La jauge du potentiomètre ne bouge pas</strong></h3>



<p><strong>Symptôme</strong> : La jauge reste à 0% même quand tu tournes le potentiomètre.</p>



<p><strong>Cause probable</strong> :</p>



<ul class="wp-block-list">
<li>Câblage incorrect du potentiomètre (broche du milieu non connectée à A0).</li>



<li>Code Arduino mal configuré pour lire la valeur analogique.</li>
</ul>



<p><strong>Solution</strong> :</p>



<ol class="wp-block-list">
<li>Vérifie que la <strong>broche du milieu du potentiomètre</strong> est branchée sur A0.</li>



<li>Vérifie que les autres broches sont branchées sur 5V et GND.</li>



<li>Dans le code Arduino, vérifie que la broche est bien déclarée :<code class="" data-line="">const int potPin = A0;</code></li>



<li>Teste le potentiomètre <strong>manuellement</strong> en affichant sa valeur dans le moniteur série :<code class="" data-line="">Serial.println(analogRead(A0));</code></li>
</ol>



<p><strong>Comment vérifier</strong> :</p>



<ul class="wp-block-list">
<li>Tourne le potentiomètre et observe le moniteur série. Si la valeur change, c’est un problème avec l’interface web (vérifie la connexion MQTT).</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Problème 3 : L’interface web affiche "Déconnecté"</strong></h3>



<p><strong>Symptôme</strong> : La page web affiche "Déconnecté" et les boutons ne fonctionnent pas.</p>



<p><strong>Cause probable</strong> :</p>



<ul class="wp-block-list">
<li>RabbitMQ n’est pas lancé ou l’IP est incorrecte.</li>



<li>Le port WebSocket (1883) est bloqué par un pare-feu.</li>
</ul>



<p><strong>Solution</strong> :</p>



<ol class="wp-block-list">
<li>Vérifie que <strong>RabbitMQ est lancé</strong> dans Docker :
<ul class="wp-block-list">
<li>Ouvre Docker Desktop et vérifie que le conteneur <code class="" data-line="">rabbitmq</code> est en cours d’exécution.</li>



<li>Si ce n’est pas le cas, lance-le avec : <code class="" data-line="">docker run --name rabbitmqWeb -p 5672:5672 -p 15672:15672 -p 15675:15675 -p 1883:1883 rabbitmq:3.13-management</code></li>
</ul>
</li>



<li>Vérifie que l’<strong>IP du broker MQTT</strong> est correcte dans le code HTML :<code class="" data-line="">host: &#039;192.168.1.XX&#039;, // Remplace XX par l&#039;IP de ton ordinateur</code></li>



<li>Vérifie que le <strong>port </strong>1883 est ouvert :
<ul class="wp-block-list">
<li>Sur Windows : Ouvre le pare-feu et autorise le port 1883.</li>



<li>Sur Mac/Linux : Vérifie avec <code class="" data-line="">netstat -tuln | grep 1883</code>.</li>
</ul>
</li>
</ol>



<p><strong>Comment vérifier</strong> :</p>



<ul class="wp-block-list">
<li>Ouvre MQTT Explorer et essaie de te connecter au broker avec les mêmes identifiants que dans le code HTML. Si ça ne marche pas, c’est un problème de broker.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Toujours bloqué ?</strong></h3>



<p>Pas de panique ! Voici ce que tu peux faire :</p>



<ol class="wp-block-list">
<li><strong>Relis les étapes</strong> : Vérifie que tu n’as pas sauté une étape du câblage ou du code.</li>



<li><strong>Cherche des indices</strong> : Les messages dans le moniteur série sont tes meilleurs amis.</li>



<li><strong>Demande de l’aide</strong> :
<ul class="wp-block-list">
<li>Poste une photo de ton montage et une capture d’écran du moniteur série dans <a href="https://www.facebook.com/groups/plaisirarduino">notre groupe Facebook</a>.</li>



<li>Décris précisément ce qui ne marche pas (ex : "La LED 13 s’allume mais ne s’éteint pas quand je clique").</li>



<li>On est là pour t’aider ! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>PARTIE 9 — RÉSUMÉ : CE QU’ON A FAIT ENSEMBLE</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p><strong>Objectif</strong> : Faire le bilan des compétences acquises.</p>



<h3 class="wp-block-heading"><strong>Ce qu’on a accompli</strong></h3>



<p>On a construit un <strong>système malin</strong> où ton Arduino discute avec ton téléphone comme deux potes qui s’envoient des messages. Voici ce qu’on a fait : </p>



<p>1&#x20e3; <strong>On a branché les composants</strong> : deux LEDs et un potentiomètre sur l’Arduino, comme des musiciens prêts à jouer. </p>



<p>2&#x20e3; <strong>On a installé RabbitMQ</strong> (le "standardiste") dans Docker pour qu’il transmette les ordres entre ton téléphone et l’Arduino. </p>



<p>3&#x20e3; <strong>On a configuré MAMP</strong> pour afficher une page web sur ton téléphone, avec des boutons pour contrôler les LEDs et une jauge pour le potentiomètre. </p>



<p>4&#x20e3; <strong>On a codé l’Arduino</strong> pour qu’il :</p>



<ul class="wp-block-list">
<li>Se connecte au WiFi (comme quand tu te connectes à ta box).</li>



<li>Écoute les messages MQTT (les "SMS" du projet).</li>



<li>Allume/éteint les LEDs ou renvoie la valeur du potentiomètre. 5&#x20e3; <strong>On a testé et débogué</strong> : on a vérifié que tout fonctionnait et corrigé les erreurs.</li>
</ul>



<h3 class="wp-block-heading"><strong>Ce que tu peux faire maintenant</strong></h3>



<p>Avec ce projet, tu as <strong>toutes les clés</strong> pour créer tes propres systèmes connectés :</p>



<ul class="wp-block-list">
<li><strong>Une station météo</strong> : Ajoute un capteur de température et affiche les données sur ton téléphone.</li>



<li><strong>Un système d’arrosage automatique</strong> : Utilise un relais pour contrôler une pompe à eau.</li>



<li><strong>Un robot télécommandé</strong> : Ajoute des moteurs et contrôle-les depuis ton navigateur.</li>
</ul>



<p><strong>Le plus beau ?</strong> Tu peux tout adapter à tes idées !</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>PARTIE 10 — ALLER PLUS LOIN : ET MAINTENANT ?</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p><strong>Objectif</strong> : Donner des idées pour aller plus loin.</p>



<h3 class="wp-block-heading"><strong>3 projets pour continuer</strong></h3>



<ol class="wp-block-list">
<li><strong>Station météo connectée</strong>
<ul class="wp-block-list">
<li>Ajoute un <strong>capteur DHT11</strong> pour mesurer la température et l’humidité.</li>



<li>Affiche les données sur ton interface web avec des graphiques.</li>



<li><em>Matériel</em> : DHT11 (5€), câbles.</li>
</ul>
</li>



<li><strong>Système d’arrosage automatique</strong>
<ul class="wp-block-list">
<li>Utilise un <strong>relais</strong> pour contrôler une pompe à eau.</li>



<li>Programme l’arrosage en fonction de l’humidité du sol (capteur FC-28).</li>



<li><em>Matériel</em> : Relais (3€), pompe à eau (10€), capteur FC-28 (5€).</li>
</ul>
</li>



<li><strong>Robot télécommandé</strong>
<ul class="wp-block-list">
<li>Ajoute des <strong>moteurs</strong> et un <strong>module L298N</strong> pour les contrôler.</li>



<li>Contrôle le robot depuis ton téléphone avec des boutons directionnels.</li>



<li><em>Matériel</em> : 2 moteurs DC (10€), module L298N (5€), châssis (15€).</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading"><strong>Ressources pour aller plus loin</strong></h3>



<ul class="wp-block-list">
<li><strong>Tutoriels</strong> :
<ul class="wp-block-list">
<li><a href="https://plaisirarduino.fr/station-meteo">Créer une station météo avec Arduino</a></li>



<li><a href="https://plaisirarduino.fr/robot-mqtt">Contrôler un robot avec MQTT</a></li>
</ul>
</li>



<li><strong>Communauté</strong> :
<ul class="wp-block-list">
<li>Rejoins notre <a href="https://www.facebook.com/groups/plaisirarduino">groupe Facebook</a> pour poser tes questions.</li>



<li>Participe à nos <a href="https://www.youtube.com/c/PlaisirArduino">live YouTube</a> pour des projets en direct.</li>
</ul>
</li>



<li><strong>Outils</strong> :
<ul class="wp-block-list">
<li><a href="http://mqtt-explorer.com/">MQTT Explorer</a> : Pour visualiser les messages MQTT.</li>



<li><a href="https://platformio.org/">PlatformIO</a> : Un IDE plus puissant que l’IDE Arduino.</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><strong>Ton prochain défi</strong></h3>



<p><strong>Mission</strong> : Ajoute une <strong>troisième LED</strong> à ton projet et contrôle-la depuis ton interface web.</p>



<ul class="wp-block-list">
<li><em>Indice</em> : Il suffit de dupliquer le code pour la LED 13 ou 12 et de modifier les broches.</li>
</ul>



<p><strong>Partage ton résultat</strong> avec le hashtag <strong>#PlaisirArduino</strong> – on a hâte de voir tes créations ! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f60a.png" alt="😊" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>5. VOCABULAIRE CLÉS</strong></h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Terme</th><th>Définition ultra-simple (max 15 mots)</th><th>Analogie du quotidien</th></tr></thead><tbody><tr><td><strong>MQTT</strong></td><td>Protocole de messagerie léger pour objets connectés.</td><td>Comme des SMS entre ton Arduino et ton téléphone.</td></tr><tr><td><strong>Broker</strong></td><td>Serveur qui transmet les messages entre appareils.</td><td>Comme un standardiste qui transmet les appels.</td></tr><tr><td><strong>Topic</strong></td><td>Canal de discussion pour envoyer/recevoir des messages.</td><td>Comme une chaîne de discussion WhatsApp.</td></tr><tr><td><strong>WebSocket</strong></td><td>Connexion permanente entre un navigateur et un serveur.</td><td>Comme un appel téléphonique en continu.</td></tr><tr><td><strong>Potentiomètre</strong></td><td>Composant qui ajuste une valeur (ex : volume).</td><td>Comme le bouton de volume de ta chaîne hi-fi.</td></tr><tr><td><strong>Breadboard</strong></td><td>Plaque pour brancher des composants sans souder.</td><td>Comme une planche à pain pour l’électronique.</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>6. POINTS D'ATTENTION PÉDAGOGIQUE</strong></h2>



<ul class="wp-block-list">
<li><strong>Pour les débutants</strong> :
<ul class="wp-block-list">
<li>Insiste sur l’importance de <strong>vérifier le câblage</strong> avant de coder.</li>



<li>Explique que les <strong>résistances sont obligatoires</strong> pour les LEDs (risque de griller le composant).</li>



<li>Montre comment utiliser le <strong>moniteur série</strong> pour déboguer.</li>
</ul>
</li>



<li><strong>Pour les intermédiaires</strong> :
<ul class="wp-block-list">
<li>Encourage à <strong>modifier le code</strong> pour comprendre comment ça marche.</li>



<li>Propose des <strong>exercices rapides</strong> (ex : changer la fréquence d’envoi des données).</li>



<li>Montre comment <strong>adapter le projet</strong> (ajouter des capteurs, des moteurs, etc.).</li>
</ul>
</li>



<li><strong>Pour tous</strong> :
<ul class="wp-block-list">
<li><strong>Rassure</strong> : Les erreurs sont normales, même les pros en font !</li>



<li><strong>Encourage</strong> : Partage tes résultats et pose des questions.</li>



<li><strong>Inspire</strong> : Montre des exemples de projets réalisés par la communauté.</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>Félicitations !</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Tu as maintenant toutes les clés pour créer des projets Arduino connectés. À toi de jouer ! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Cet article <a href="https://plaisirarduino.fr/arduino-et-rabbitm-dans-une-infra-docker-mamp/">Cours Complet : Arduino + MQTT + Web &#8211; Contrôle tes LEDs depuis ton téléphone &#x1f680;</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>La persistance des données EEPROM</title>
		<link>https://plaisirarduino.fr/la-persistance-des-donnees-eeprom/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Sun, 10 Aug 2025 09:54:10 +0000</pubDate>
				<category><![CDATA[Débutant Arduino]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=4913</guid>

					<description><![CDATA[<p>1. Objectif pédagogique À la fin de ce cours, vous saurez : Précaution à prendre En quelque minutes les cellules EEPROM peuvent se détérioré et altéré votre carte. 2. Présentation de L'EEPROM Qu’est‑ce que l’EEPROM ?L’EEPROM (Electrically Erasable Programmable Read-Only Memory) est une mémoire&#160;non volatile&#160;: elle garde les données même &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/la-persistance-des-donnees-eeprom/">La persistance des données EEPROM</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="EEPROM Arduino : Gardez vos données au redémarrage !" width="660" height="371" src="https://www.youtube.com/embed/BSWSgJ5_AOc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">1. Objectif pédagogique</h2>



<p>À la fin de ce cours, vous saurez :</p>



<ul class="wp-block-list">
<li>Comprendre le rôle et les limites de l’EEPROM interne d’un Arduino.</li>



<li>Lire et écrire des données persistantes avec&nbsp;<code class="" data-line="">EEPROM.read()</code>&nbsp;et&nbsp;<code class="" data-line="">EEPROM.write()</code>.</li>



<li>Optimiser les écritures avec&nbsp;<code class="" data-line="">EEPROM.update()</code>.</li>



<li>Sauvegarder et relire des variables complètes avec&nbsp;<code class="" data-line="">EEPROM.put()</code>&nbsp;et&nbsp;<code class="" data-line="">EEPROM.get()</code>.</li>



<li>Créer un projet simple qui conserve ses paramètres après extinction.</li>
</ul>



<h2 class="wp-block-heading">Précaution à prendre</h2>



<p>En quelque minutes les cellules EEPROM peuvent se détérioré et altéré votre carte.</p>



<h2 class="wp-block-heading">2. Présentation de L'EEPROM</h2>



<p><strong>Qu’est‑ce que l’EEPROM ?</strong><br>L’EEPROM (Electrically Erasable Programmable Read-Only Memory) est une mémoire&nbsp;<em>non volatile</em>&nbsp;: elle garde les données même sans alimentation. </p>



<p><strong>Caractéristiques :</strong></p>



<ul class="wp-block-list">
<li>Capacité limitée : ex. 1024 octets sur un Arduino Uno.</li>



<li>Accès octet par octet ou via des variables complètes.</li>



<li>Durée de vie ~100 000 écritures par cellule (éviter les écritures inutiles).</li>
</ul>



<p><strong>Applications :</strong>&nbsp;sauvegarde de paramètres, compteurs, scores, restauration d’état après redémarrage.</p>



<h2 class="wp-block-heading">3. Matériel nécessaire</h2>



<ul class="wp-block-list">
<li>Arduino Uno (ou Nano, Mega…)</li>



<li>Câble USB</li>



<li>(Optionnel) Bouton poussoir + résistance 10 kΩ</li>



<li>(Optionnel) LED + résistance 220 Ω</li>
</ul>



<p><strong>Schéma minimaliste :</strong>&nbsp;pour les premiers exemples, aucun câblage n’est requis.</p>



<h2 class="wp-block-heading">4. Explication du fonctionnement</h2>



<p>L’EEPROM est organisée en cases numérotées (adresses). Chaque case stocke un octet (0–255). Imaginez un meuble avec 1024 tiroirs : chaque tiroir peut contenir un petit papier avec un nombre. Quand vous éteignez l’Arduino, les papiers restent en place.</p>



<h2 class="wp-block-heading">5. Premier code minimaliste</h2>



<p>Exemple simple : écrire puis lire un octet à l’adresse 0.</p>



<pre class="wp-block-code"><code class="" data-line="">#include &lt;EEPROM.h&gt;

void setup() {
  Serial.begin(9600);

  // Écrire 42 à l&#039;adresse 0
  EEPROM.write(0, 42);

  // Lire la valeur stockée à l&#039;adresse 0
  byte valeur = EEPROM.read(0);

  Serial.print(&quot;Valeur lue : &quot;);
  Serial.println(valeur);
}

void loop() {
  // Vide
}
</code></pre>



<p><strong>Ce que fait ce code :</strong>&nbsp;écrit le nombre 42 à l'adresse 0, puis le relit et l'affiche sur le moniteur série.</p>



<h2 class="wp-block-heading">6. Décryptage du code</h2>



<ul class="wp-block-list">
<li><code class="" data-line="">#include &lt;EEPROM.h&gt;</code>&nbsp;: active la bibliothèque EEPROM.</li>



<li><code class="" data-line="">EEPROM.write(adresse, valeur)</code>&nbsp;: écrit un octet.</li>



<li><code class="" data-line="">EEPROM.read(adresse)</code>&nbsp;: lit un octet.</li>



<li>Les adresses vont de&nbsp;<code class="" data-line="">0</code>&nbsp;à&nbsp;<code class="" data-line="">EEPROM.length()-1</code>.</li>



<li>Erreur fréquente : écrire trop souvent (surtout dans&nbsp;<code class="" data-line="">loop()</code>) use la mémoire.</li>
</ul>



<h2 class="wp-block-heading">7. Expérimentation guidée</h2>



<p>Propositions faciles :</p>



<ul class="wp-block-list">
<li>Changer la valeur écrite (ex.&nbsp;<code class="" data-line="">EEPROM.write(0, 100)</code>).</li>



<li>Utiliser une autre adresse (ex. adresse 10).</li>



<li>Écrire plusieurs valeurs et les relire.</li>
</ul>



<h2 class="wp-block-heading">8. Fonctions avancées</h2>



<p>En complément de&nbsp;<code class="" data-line="">read()</code>&nbsp;et&nbsp;<code class="" data-line="">write()</code>, Arduino fournit :</p>



<h3 class="wp-block-heading">EEPROM.update(adresse, valeur)</h3>



<p>Écrit seulement si la valeur est différente de celle déjà stockée — utile pour économiser les cycles d'écriture.</p>



<pre class="wp-block-code"><code class="" data-line="">#include &lt;EEPROM.h&gt;

void setup() {
  Serial.begin(9600);
  EEPROM.update(0, 42); // Écrit seulement si nécessaire
  Serial.println(&quot;Valeur mise à jour !&quot;);
}

void loop() {}
</code></pre>



<h3 class="wp-block-heading">EEPROM.put(adresse, variable)</h3>



<p>Permet d'enregistrer une variable complète (int, float, struct...) en une seule instruction.</p>



<pre class="wp-block-code"><code class="" data-line="">#include &lt;EEPROM.h&gt;

struct Donnees {
  int compteur;
  float temperature;
};

Donnees info;

void setup() {
  Serial.begin(9600);
  info.compteur = 123;
  info.temperature = 24.5;
  EEPROM.put(0, info);
  Serial.println(&quot;Données sauvegardées !&quot;);
}

void loop() {}
</code></pre>



<h3 class="wp-block-heading">EEPROM.get(adresse, variable)</h3>



<p>Lit directement une variable complète depuis l'EEPROM (complément de&nbsp;<code class="" data-line="">put</code>).</p>



<pre class="wp-block-code"><code class="" data-line="">#include &lt;EEPROM.h&gt;

struct Donnees {
  int compteur;
  float temperature;
};

Donnees info;

void setup() {
  Serial.begin(9600);
  EEPROM.get(0, info);
  Serial.print(&quot;Compteur : &quot;);
  Serial.println(info.compteur);
  Serial.print(&quot;Température : &quot;);
  Serial.println(info.temperature);
}

void loop() {}
</code></pre>



<p>Astuce :&nbsp;<code class="" data-line="">put()</code>&nbsp;et&nbsp;<code class="" data-line="">get()</code>&nbsp;gèrent automatiquement la taille en octets — attention à la place restante dans l'EEPROM.</p>



<h2 class="wp-block-heading">9. Vérification avant écriture dans l’EEPROM</h2>



<p>Avant d’enregistrer une donnée en mémoire EEPROM, il est essentiel de vérifier que sa valeur a réellement changé. En effet, si la donnée est identique à celle déjà stockée, une réécriture inutile détériorera prématurément la cellule mémoire, qui ne supporte qu’un nombre limité de cycles d’écriture. Pour protéger la durée de vie de l’EEPROM, il faut donc ajouter systématiquement une étape de vérification avant d’écrire.</p>



<p>Voici un exemple fiable et simple, utilisable pour tout type de donnée basique (comme un octet) :</p>



<pre class="wp-block-code"><code class="" data-line="">
#include &lt;EEPROM.h&gt;

int adresse = 0;         // Adresse mémoire EEPROM
byte nouvelleValeur = 42; // Valeur à écrire

void setup() {
  Serial.begin(9600);

  // Lire la valeur actuelle dans l’EEPROM
  byte ancienneValeur = EEPROM.read(adresse);

  // Vérifier si la valeur a changé avant d’écrire
  if (ancienneValeur != nouvelleValeur) {
    EEPROM.write(adresse, nouvelleValeur);
    Serial.println(&quot;Valeur mise à jour dans l’EEPROM.&quot;);
  } else {
    Serial.println(&quot;Valeur identique, écriture évitée pour préserver l’EEPROM.&quot;);
  }
}

void loop() {
  // Rien ici
}
</code></pre>



<p>Cette méthode simple protège efficacement l’EEPROM contre les écritures redondantes et prolonge sa durée de vie.</p>



<h2 class="wp-block-heading">Exemple fiable de vérification avant écriture avec EEPROM.get() et EEPROM.put()</h2>



<p>Pour éviter d’écrire inutilement dans l’EEPROM une structure&nbsp;<code class="" data-line="">Donnees</code>, on peut comparer la donnée à écrire avec celle déjà stockée, puis n’écrire que si elles diffèrent.</p>



<pre class="wp-block-code"><code class="" data-line="">#include &lt;EEPROM.h&gt;

struct Donnees {
  int compteur;
  float temperature;
};

Donnees infoNew;  // Nouvelle donnée à sauvegarder
Donnees infoOld;  // Donnée lue depuis EEPROM

void setup() {
  Serial.begin(9600);
  delay(1000); // Attente pour le moniteur série

  // Initialisation des nouvelles données
  infoNew.compteur = 123;
  infoNew.temperature = 24.5;

  // Lire la donnée existante dans EEPROM à l&#039;adresse 0
  EEPROM.get(0, infoOld);

  // Comparer byte à byte pour vérifier si les données ont changé
  if (memcmp(&amp;infoNew, &amp;infoOld, sizeof(Donnees)) != 0) {
    EEPROM.put(0, infoNew);
    Serial.println(&quot;Données mises à jour dans l’EEPROM.&quot;);
  } else {
    Serial.println(&quot;Données identiques, écriture évitée.&quot;);
  }
}

void loop() {
  // Rien ici
}
</code></pre>



<h2 class="wp-block-heading">10. Résumé</h2>



<ul class="wp-block-list">
<li>Lecture/écriture d'octets :&nbsp;<code class="" data-line="">read()</code>&nbsp;/&nbsp;<code class="" data-line="">write()</code>.</li>



<li>Éviter les écritures inutiles :&nbsp;<code class="" data-line="">update()</code>.</li>



<li>Stocker/charger des variables complètes :&nbsp;<code class="" data-line="">put()</code>&nbsp;/&nbsp;<code class="" data-line="">get()</code>.</li>



<li>Penser à la taille disponible et à l'usure des cellules.</li>
</ul>



<h2 class="wp-block-heading">Ressources complémentaires</h2>



<ul class="wp-block-list">
<li>Documentation officielle :&nbsp;<a href="https://www.arduino.cc/en/Reference/EEPROM" target="_blank" rel="noreferrer noopener">arduino.cc — EEPROM</a></li>



<li>Bibliothèque&nbsp;<code class="" data-line="">EEPROM.h</code>&nbsp;incluse par défaut</li>



<li>Conseil pratique : limiter les écritures inutiles pour préserver la mémoire</li>
</ul>
<p>Cet article <a href="https://plaisirarduino.fr/la-persistance-des-donnees-eeprom/">La persistance des données EEPROM</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ruban à l&#8217;LED adressable</title>
		<link>https://plaisirarduino.fr/ruban-a-led-adressable/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Tue, 30 Jan 2024 21:46:14 +0000</pubDate>
				<category><![CDATA[Débutant Arduino]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=4805</guid>

					<description><![CDATA[<p>Caractéristiques du ruban à LED adressage Type: WS2812B Alimentation: 18 mA/LED 5V ne supporte pas les surtensions, une alimentation stable est recommandée. La bibliothèque de gestion des LEDs que j'ai utilisée est "Adafruit_NeoPixel.h". Le projet est relativement simple à mettre en oeuvre sur un petit nombre de LEDs. J'ai pris &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/ruban-a-led-adressable/">Ruban à l&rsquo;LED adressable</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Ruban à led addressable avec arduino" width="660" height="371" src="https://www.youtube.com/embed/w8bx2bhkvsw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading has-text-align-center">Caractéristiques du ruban à LED adressage</h2>



<p> Type:  WS2812B</p>



<p>Alimentation: 18 mA/LED 5V ne supporte pas les surtensions, une alimentation stable est recommandée.</p>



<figure class="wp-block-image size-large"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2024/01/schema-ruban-a-led.png"><img loading="lazy" decoding="async" width="1024" height="476" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2024/01/schema-ruban-a-led-1024x476.png" alt="" class="wp-image-4806" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2024/01/schema-ruban-a-led-1024x476.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2024/01/schema-ruban-a-led-300x139.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2024/01/schema-ruban-a-led-768x357.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2024/01/schema-ruban-a-led-1536x714.png 1536w, https://plaisirarduino.fr/arduino/wp-content/uploads/2024/01/schema-ruban-a-led-2048x951.png 2048w, https://plaisirarduino.fr/arduino/wp-content/uploads/2024/01/schema-ruban-a-led-700x325.png 700w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>La bibliothèque de gestion des LEDs  que j'ai utilisée est "Adafruit_NeoPixel.h".</p>



<p>Le projet est relativement simple à mettre en oeuvre sur un petit nombre de LEDs. J'ai pris comme point de départ l'exemple "simple" que j'ai retravaillé. </p>



<p class="has-text-align-left">La bibliothèque Adafruit NeoPixel pour Arduino est conçue pour faciliter la gestion des LED RGB individuelles ou des bandes de LED RGB, telles que les populaires LED WS2812 ou WS2812B. Voici quelques-unes des fonctions natives de cette bibliothèque :</p>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">Adafruit_NeoPixel pixels(nombre de pixels, branche de sortie, neoPixelType type)</code></strong></li>
</ol>



<ul class="wp-block-list">
<li>Initialise la bibliothèque en spécifiant le nombre total de pixels, le numéro de broche à laquelle les pixels sont connectés et le type de pixels (par exemple, <code class="" data-line="">NEO_GRB</code> ou <code class="" data-line="">NEO_RGB</code>).</li>
</ul>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">begin()</code></strong></li>
</ol>



<ul class="wp-block-list">
<li>Initialise la communication avec les pixels. Cette fonction doit être appelée une fois dans le programme, généralement dans la fonction <code class="" data-line="">setup()</code>.</li>
</ul>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">show()</code></strong></li>
</ol>



<ul class="wp-block-list">
<li>Envoie les données de couleur aux pixels. Vous devez appeler cette fonction après avoir modifié les couleurs des pixels pour les rendre effectives.</li>
</ul>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">setPixelColor(numéro de la LED adressable, couleur rouge de 0 à 255, couleur vert de 0 à 255, &lt;strong&gt;&lt;code&gt;couleur bleu de 0 à 255</code></strong>)</code></strong></li>
</ol>



<ul class="wp-block-list">
<li>Définit la couleur d'un pixel spécifique en spécifiant les valeurs des composants rouge, vert et bleu (RVB). Les valeurs des composants RVB vont de 0 à 255.</li>
</ul>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">setPixelColor(uint16_t n, uint32_t color)</code></strong></li>
</ol>



<ul class="wp-block-list">
<li>Version alternative de <code class="" data-line="">setPixelColor</code> où vous spécifiez directement la couleur sous forme d'un entier 32 bits, où les 8 premiers bits représentent le rouge, les 8 suivants le vert et les 8 derniers le bleu.</li>
</ul>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">setBrightness(intensité de 0 à 255)</code></strong></li>
</ol>



<ul class="wp-block-list">
<li>Ajuste la luminosité de tous les pixels. La valeur de luminosité varie de 0 (éteint) à 255 (pleine luminosité).</li>
</ul>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">Color(uint8_t red, uint8_t green, uint8_t blue)</code></strong></li>
</ol>



<ul class="wp-block-list">
<li>Fonction utilitaire qui renvoie une couleur sous forme d'entier 32 bits à partir des composants RVB spécifiés.</li>
</ul>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">ColorHSV(uint16_t hue, uint8_t saturation, uint8_t value)</code></strong></li>
</ol>



<ul class="wp-block-list">
<li>Fonction utilitaire qui renvoie une couleur sous forme d'entier 32 bits à partir des composants HSV (teinte, saturation, valeur) spécifiés.</li>
</ul>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">getPixelColor(uint16_t n)</code></strong></li>
</ol>



<ul class="wp-block-list">
<li>Récupère la couleur d'un pixel spécifique sous forme d'entier 32 bits.</li>
</ul>



<ol class="wp-block-list">
<li><strong><code class="" data-line="">clear()</code></strong>
<ul class="wp-block-list">
<li>Éteint tous les pixels en les mettant à la couleur noire (0, 0, 0).</li>
</ul>
</li>
</ol>



<p>Ces fonctions de base devraient vous aider à démarrer avec la gestion des LEDs à l'aide de la bibliothèque Adafruit NeoPixel dans vos projets Arduino. N'oubliez pas de consulter la documentation officielle pour des détails plus approfondis sur chaque fonction : https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library.</p>



<p>Merci pour votre intérêt, vous pouvez revoir toutes les vidéos sur la chaine Youtube <a href="https://www.youtube.com/@plaisirarduino6659">plaisirarduino</a></p>



<p></p>
<p>Cet article <a href="https://plaisirarduino.fr/ruban-a-led-adressable/">Ruban à l&rsquo;LED adressable</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Clavier d&#8217;écran tactile NEXTION.</title>
		<link>https://plaisirarduino.fr/clavier-ecran-tactile-nextion/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Mon, 06 Sep 2021 08:10:45 +0000</pubDate>
				<category><![CDATA[Intermédiaire]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=3750</guid>

					<description><![CDATA[<p>Le but de ce projet est de vous donner les outils utiles afin de réaliser de la saisi de données sur un écran tactile NEXTION. Nous aborderons également la construction et programmation d'un clavier d'écran tactile avec l'éditeur NEXTION. Avant propos - Clavier d'écran tactile. L’intérêt principale d'un écran tactile &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/clavier-ecran-tactile-nextion/">Clavier d&rsquo;écran tactile NEXTION.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Le but de ce projet est de vous donner les outils utiles afin de <strong>réaliser de la saisi de données s</strong>ur <strong>un écran tactile NEXTION.</strong> Nous aborderons également la <strong>construction </strong>et <strong>programmation </strong>d'un clavier d'écran tactile avec l'éditeur <strong>NEXTION</strong>.</p>



<h2 class="wp-block-heading" id="h-avant-propos-clavier-d-cran-tactile">Avant propos - <strong>Clavier d'écran tactile</strong>.</h2>



<p>L’intérêt principale d'un écran tactile est de <strong>retourner</strong>,<strong> par un visuel graphique</strong>, <strong>des données système sur son état actuel</strong> de marche, arrêt, température, vitesse, niveau, débit et bien d'autres.<br>Mais également, <strong>d'offrir aussi</strong> <strong>la possibilité</strong> à l'utilisateur lambda <strong>d'agir sur le système en</strong> <strong>appuyant sur un bouton</strong>, en faisan un <strong>slide curseur </strong>ou bien de <strong>saisir </strong>puis <strong>charger </strong>des valeurs de données.<br><br>Sur un écran tactile il existe, à première vue, plusieurs façons d'<strong>agir ou transmettre des données à un système.</strong><br>Mais ce qui nous intéresse ici c'est la <strong>saisie </strong>puis le <strong>chargement </strong>de <strong>données</strong>. <br>Nous allons donc <strong>concevoir un petit formulaire doté d'un clavier d'écran tactile alphanumérique </strong>capable de <strong>saisir des données pour ensuite les charger </strong>à l'endroit de notre choix.</p>



<p><em>Nous ne nous attarderons pas sur comment <strong>crée un  projet</strong>, l<strong>e mettre en forme </strong>et les divers manipulations des <strong>composants , variables </strong>et <strong>événement tactiles&nbsp;</strong>au cours du tutoriel étant donné que nous l'avons fait au tutoriel "<strong><span class="has-inline-color has-vivid-cyan-blue-color"><span style="text-decoration: underline;">NEXTION editor "</span></span></strong>.<br>Par ailleurs pour ceux qui n’aurait pas chargé l'éditeur vous le trouverez via le lien ci-dessous.<br><a href="https://nextion.itead.cc/resources/download/nextion-editor/">https://nextion.itead.cc/resources/download/nextion-editor/</a><a href="https://plaisirarduino.fr/telechargement-des-codes-de-plaisirarduino/">https:</a></em></p>



<h2 class="wp-block-heading" id="h-le-projet-du-clavier-d-cran-tactile"><span style="text-decoration: underline;"><strong>Le projet</strong> du clavier d'écran tactile</span>.</h2>



<p>Dans un premier temps nous <strong>affichons une page d'accueil nommée "<strong>Données</strong>"</strong> <strong>qui présente deux données</strong>. L'une de type "<strong>numérique</strong>" et l'autre de type "<strong>texte</strong>"<strong>.</strong><br>Puis dans le second temps nous <strong>affichons</strong> <strong>une seconde page nommée "Clavier" </strong>qui permettra la <strong>saisie </strong>et le <strong>chargement </strong>des données.</p>



<p>Pour commencer <strong>créons la première page</strong> avec les <strong>deux composants utiles à nos données</strong> avec un <strong>bouton </strong>nommée "<strong>SAISI</strong>" permettant de passer au formulaire de saisi.</p>



<figure class="wp-block-image size-large"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-accueil.png"><img loading="lazy" decoding="async" width="802" height="485" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-accueil.png" alt="Aperçu de la page d'accueil avec les composant en place.
Clavier d'écran tactile" class="wp-image-4702" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-accueil.png 802w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-accueil-300x181.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-accueil-768x464.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-accueil-700x423.png 700w" sizes="auto, (max-width: 802px) 100vw, 802px" /></a><figcaption>Page d'accueil</figcaption></figure>



<p>Ensuite <strong>créons la seconde page</strong> qui vas contenir notre <strong>formulaire </strong>de saisi avec le <strong>clavier d'écran tactile</strong> <strong>NEXTION</strong>.<br>Mais tout d'abord attardons nous aux <strong>fonctionnalités attendus lors d'une saisi de données.</strong></p>



<h4 class="wp-block-heading" id="h-les-fonctionnalit-s-souhait-d-une-saisi"><span style="text-decoration: underline;"><strong>Les fonctionnalités</strong> souhaité d'une saisi.</span></h4>



<p>Premièrement, la possibilité de <strong>visionner la valeur</strong> <strong>en cours de saisi.</strong><br>Deuxièmement, de <strong>saisir une donnée</strong> ce qui implique l'emploie d'un <strong><strong>Clavier</strong></strong> <strong>alphanumérique</strong>.<br>Troisièmement, la possibilité d'<strong>effacer tour à tour la dernière saisi ou les saisis complète.</strong><br>Quatrièmement, avoir la possibilité de <strong>sélectionner la saisi</strong> <strong>souhaité à charger.</strong></p>



<h5 class="wp-block-heading" id="h-les-composants-utiles-la-saisi-tactile"><span style="text-decoration: underline;"><strong>Les composants utiles </strong>à la saisi tactile.</span></h5>



<p>Pour <strong>visualiser les données</strong> à saisir plaçons <strong>deux composants d'affichages</strong>. L'un de <strong>texte </strong>et l'autre <strong>numérique</strong>.<br>Ajoutons également <strong>deux boutons</strong> nommée "<strong>&lt;= Eff</strong>" pour <strong>effacer la saisi en cours</strong>.<br>En plus de cela ajoutons aussi <strong>deux boutons radio</strong> pour <strong>valider au choix le chargement des données</strong> renseignées.<br>Et pour finir un <strong>bouton "OK"</strong> qui <strong>charge le ou les données</strong> et passe à l'<strong>action suivante</strong> de retour à la page d'accueil.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="512" height="93" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Clavier-NEXTION-Zone-de-saisi.png" alt="Aperçu de la zone de saisi avec les composants en place.
Clavier d'écran tactile." class="wp-image-3873" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Clavier-NEXTION-Zone-de-saisi.png 512w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Clavier-NEXTION-Zone-de-saisi-300x54.png 300w" sizes="auto, (max-width: 512px) 100vw, 512px" /></figure></div>



<p>Pour saisir des données il nous faut donc un <strong>clavier alphanumérique. Ce dernier </strong>on vas le créer <strong>à l'aide de composants boutons.</strong></p>



<h5 class="wp-block-heading" id="h-les-composants-utiles-au-clavier-d-cran-tactile"><span style="text-decoration: underline;"><strong>Les composants utiles</strong> au clavier d'écran tactile.</span></h5>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="800" height="343" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Clavier-NEXTION-Clavier.png" alt="Aperçu du clavier d'écran tactile. Clavier alphanumérique azerty créer avec des composant boutons." class="wp-image-3872" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Clavier-NEXTION-Clavier.png 800w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Clavier-NEXTION-Clavier-300x129.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Clavier-NEXTION-Clavier-768x329.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Clavier-NEXTION-Clavier-700x300.png 700w" sizes="auto, (max-width: 800px) 100vw, 800px" /><figcaption>Clavier alphanumérique</figcaption></figure></div>



<h6 class="wp-block-heading" id="h-la-mise-en-forme-du-clavier-d-cran-tactile"><strong><span style="text-decoration: underline;">La mise en forme du clavier d'écran tactile</span>.</strong></h6>



<p>Premièrement <strong>dimensionnons </strong>à notre convenance <strong>un boutons</strong> <strong>standard puis ensuite </strong>par un copié collé <strong>dupliquons le</strong>.</p>



<div class="wp-block-image"><figure class="alignleft"><img loading="lazy" decoding="async" width="205" height="71" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/05-Clavier-NEXTION-Boutons-alignement-attribute-1.png" alt="Aperçu du volet &quot;ATTRIBUTE&quot; et des paramètres  X et Y." class="wp-image-3900"/></figure></div>



<p>Deuxièmement<strong>, </strong>grâce aux paramètres de positionnements "<strong>X</strong>" et "<strong>Y</strong>" du volet "<strong>Attribute</strong>" <strong>alignons les boutons</strong> entres eux.</p>



<p>Pour cela, en fonction la <strong>largeur "A"</strong> du bouton standard et de <strong>l'écart "B" </strong>souhaité nous <strong>obtenons le pas "C" de positions</strong> sur l'axe "X".<br>Donc en<strong> ajoutant l'écart total mesuré </strong>nous obtenons le positionnement de chaque bouton<strong> sur l'axe "X".</strong><br>Suivant l'exemple ci dessous le prochain bouton (1) se positionnera à 78. Et ainsi de  suite pour les autres. (0+78 = 78 +78 = 156 + 78 =234 + ...)</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/04-Clavier-NEXTION-Boutons-alignement-1.png" alt="Aperçu des espaces de positionnement de deux boutons entre eux." class="wp-image-3958" width="302" height="299" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/04-Clavier-NEXTION-Boutons-alignement-1.png 535w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/04-Clavier-NEXTION-Boutons-alignement-1-150x150.png 150w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/04-Clavier-NEXTION-Boutons-alignement-1-300x298.png 300w" sizes="auto, (max-width: 302px) 100vw, 302px" /></figure></div>



<p>Nous obtenons ainsi une <strong>ligne de boutons</strong> parfaitement aligné que nous pouvons a son tour <strong>copier et coller plus bas pour la réalisation de chaque ligne </strong>de notre clavier alphabétique.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="782" height="74" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Clavier-NEXTION-alignement-ligne-boutons.png" alt="Aperçu d'une ligne de boutons de 0 à 9. Clavier d'écran tactile." class="wp-image-3899" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Clavier-NEXTION-alignement-ligne-boutons.png 782w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Clavier-NEXTION-alignement-ligne-boutons-300x28.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Clavier-NEXTION-alignement-ligne-boutons-768x73.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Clavier-NEXTION-alignement-ligne-boutons-700x66.png 700w" sizes="auto, (max-width: 782px) 100vw, 782px" /></figure></div>



<p>Pour <strong>l'alignement en hauteur</strong> de nos ligne de boutons répétons l'opération précédente mais<strong> sur l'axe "Y" avec une ligne de boutons.</strong><br>Nous faisons ensuite l<strong>'identification des boutons</strong> suivant leurs fonctions.<br>Pour finir<strong> plaçons les boutons "Espace" et "clear"</strong>.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="816" height="498" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/03-Clavier-NEXTION-Clavier-totale.png" alt="Aperçu du clavier d'écran tactile. Notre interface de saisi." class="wp-image-3889" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/03-Clavier-NEXTION-Clavier-totale.png 816w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/03-Clavier-NEXTION-Clavier-totale-300x183.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/03-Clavier-NEXTION-Clavier-totale-768x469.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/03-Clavier-NEXTION-Clavier-totale-268x164.png 268w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/03-Clavier-NEXTION-Clavier-totale-700x427.png 700w" sizes="auto, (max-width: 816px) 100vw, 816px" /></figure></div>



<p>Notre clavier d'écran tactile de saisis est graphiquement prête et nous pouvons à présent passer à la programmation de la saisi.</p>



<h4 class="wp-block-heading" id="h-gestion-de-la-saisi"><strong><span style="text-decoration: underline;">Gestion de la saisi.</span></strong></h4>



<p>Avant toute choses il faut penser à <strong>la grandeur numérique ou alphabétique des données</strong> utiles à saisir dans notre systèmes.<br>"<strong>t0</strong>" est <strong>configuré </strong>pour n'accepter que <strong>10 caractères</strong>. "<strong>n0</strong>" ne peut pas dépasser -2147483648 à 2147483647 bits par conséquent de <strong>ne pas dépasser la valeur de 999 999 999</strong>.<br>Il faut donc <strong>conditionner le composant de lettres&nbsp;</strong>sur <strong>dix </strong>(10) lettres et <strong>le composant</strong> <strong>de nombre</strong> <strong>sur neuf </strong>(9) <strong>chiffres</strong>.</p>



<h5 class="wp-block-heading" id="h-saisis-des-caract-res-alphab-tiques"><span style="text-decoration: underline;">Saisis des caractères alphabétiques.</span></h5>



<p>En toute logique <strong>les chaines de caractères saisis se succèdent</strong> ce qui reviens donc à faire de la<em> <a href="https://fr.wikipedia.org/wiki/Concat%C3%A9nation">concaténation</a>.</em><br>Pour la programmation nous utilisons la <strong>Variables système numériques</strong> <strong>"sys1"</strong>, de nature <strong>globale</strong>, <strong>temporaires </strong>et <strong>fourni par l'éditeur</strong>. Elles n’ont <strong>pas besoin d’être déclaré </strong>et peuvent être <strong>lus ou écrits de n’importe quelle page.</strong> Entiers signés 32 bits. </p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="486" height="71" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/09-Clavier-NEXTION-Programme-sys.png" alt="Aperçu des Variables système numériques du clavier d'écran tactile." class="wp-image-3930" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/09-Clavier-NEXTION-Programme-sys.png 486w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/09-Clavier-NEXTION-Programme-sys-300x44.png 300w" sizes="auto, (max-width: 486px) 100vw, 486px" /></figure></div>



<p>Nous <strong>conditionnons </strong>donc <strong>l'exécutions </strong>de la saisi alphabétique avec cette variable "<strong>sys1</strong>".<br>voyez l'exemple ci dessous avec la lettre "a".</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-a.png"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-a.png" alt="Aperçu du programme du bouton &quot;A&quot;' du clavier d'écran tactile." class="wp-image-4713" width="791" height="121" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-a.png 517w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-a-300x46.png 300w" sizes="auto, (max-width: 791px) 100vw, 791px" /></a></figure></div>



<p>Finalement il ne reste plus qu'a <strong>copier puis ajuster ce programme pour les autres boutons alphabétiques.</strong><br>Une fois cela fait passons à la <strong>saisi des chiffres</strong> avec le<strong> clavier</strong> d'écran tactile </p>



<h5 class="wp-block-heading" id="h-saisi-des-caract-res-num-riques"><strong><span style="text-decoration: underline;">Saisi des caractères numériques.</span></strong></h5>



<p>Pour la saisi des <strong>caractères numériques</strong> ou chiffres c'est différent. <br>Effectivement si on exécute le même principe de programmation que pour les lettres.<br>Le compilateur vas plutôt additionner les chiffres et notre<strong> </strong>saisi ne sera pas fidèle.<br><br>Nous partons donc du principe que <strong>chaque saisi de chiffres correspond tour à tour à une unité, dizaine, centaine, millier et ainsi de suite.</strong> Ce qui reviens à <strong>multiplier par dix la valeur <strong>de saisis</strong> actuelle</strong> pour <strong>l'additionner la prochaine saisi.</strong></p>



<p>Pour la programmation nous utilisons la <strong>Variables système numériques</strong> <strong>"sys0"</strong>.<br>Voyez cela dans l'exemple ci dessous avec le chiffre un (1).</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-1.png"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-1.png" alt="Aperçu du programme d'une saisi numérique du clavier d'écran tactile." class="wp-image-4717" width="792" height="167" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-1.png 542w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-1-300x63.png 300w" sizes="auto, (max-width: 792px) 100vw, 792px" /></a></figure></div>



<p>Bravos, à ce stade vous êtes <strong>en mesure de saisir des valeurs de données</strong> numériques et alphabétiques.<br>Mais qu'en est il en cas d'erreur ? </p>



<h5 class="wp-block-heading" id="h-effacement-d-une-saisi-alphab-tique"><strong><span style="text-decoration: underline;">Effacement d'une saisi alphabétique.</span></strong></h5>



<p>Tout comme pour ajouter une lettre, <strong>pour en effacer une</strong>, il suffis de la <strong>retirer en faisant une soustraction</strong> par "<strong>-1</strong>" à la valeur actuel.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-eff_text.png"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-eff_text.png" alt="Aperçu du programme du bouton &quot;EFF&quot; des saisi alphabétique. Clavier d'écran tactile." class="wp-image-4719" width="648" height="164" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-eff_text.png 312w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-eff_text-300x76.png 300w" sizes="auto, (max-width: 648px) 100vw, 648px" /></a></figure></div>



<h5 class="wp-block-heading" id="h-effacement-d-une-saisi-num-rique"><strong><span style="text-decoration: underline;">Effacement d'une saisi numérique.</span></strong></h5>



<p>Ensuite pour les chiffres nous exploitons le fait que <strong>la zone de saisi numérique n'admet pas les nombre décimale.</strong> Par conséquent en faisant <strong>une division par 10</strong> de la valeur actuelle elle vas <strong>retirer la dernier saisi </strong>.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-Efface-chiffre.png"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-Efface-chiffre.png" alt="Aperçu du bouton effacement de saisi numérique nommée &quot;EFF&quot;." class="wp-image-4720" width="757" height="168" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-Efface-chiffre.png 383w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-Efface-chiffre-300x67.png 300w" sizes="auto, (max-width: 757px) 100vw, 757px" /></a></figure></div>



<h5 class="wp-block-heading" id="h-effacer-toutes-les-saisis"><strong><span style="text-decoration: underline;">Effacer toutes les saisis.</span></strong></h5>



<p>Maintenant pour <strong>effacer toutes les saisis</strong> nous utilisons bien-sur le <strong>boutons </strong>"<strong>Clear</strong>". <br>Sa programmation consiste donc à <strong>initialiser à </strong>zéro (0) toutes les donnée des <strong>variables utiles </strong>aux traitement de la saisi.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="774" height="124" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/12-Clavier-NEXTION-Programme-Clear-1.png" alt="Aperçu de la programmation du bouton effacement générale nommée &quot;CLEAR&quot;." class="wp-image-3942" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/12-Clavier-NEXTION-Programme-Clear-1.png 774w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/12-Clavier-NEXTION-Programme-Clear-1-300x48.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/12-Clavier-NEXTION-Programme-Clear-1-768x123.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/12-Clavier-NEXTION-Programme-Clear-1-700x112.png 700w" sizes="auto, (max-width: 774px) 100vw, 774px" /></figure></div>



<p>A cette étape de notre projet, nous pouvons corriger nos saisis à volonté. Voyons donc la possibilité de les sélectionner pour valider leurs chargement vers le système.</p>



<h4 class="wp-block-heading" id="h-s-lection-d-une-zone-de-saisis"><strong><span style="text-decoration: underline;">Sélection d'une zone de saisis.</span></strong></h4>



<p>Pour <strong>sélectionner la donnée</strong> que l'on souhaite charger nous avons intégrons deux <strong>boutons radio. Paramétrés à</strong> <strong>zéro </strong>(0) depuis le volet "Attribue" sur en "val" = 0 .</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/13-Clavier-NEXTION-Programme-bouton-radio.png" alt="Aperçu d'un bouton radio." class="wp-image-3943" width="80" height="85"/></figure></div>



<p>Ils nous permettent de <strong>sélection la ou les données souhaitées </strong>dans notre système.<br>Chaque <strong>bouton radio est affecté à une zone de saisi</strong>. La validation de nos saisis est donc conditionné par l'<strong>état zéro, faux ou un, vrais du bouton radio</strong>.</p>



<p>La <strong>saisis de nos données faites,</strong> nous pouvons finalement les <strong>valider</strong>. C'est la fin de notre saisis.</p>



<h4 class="wp-block-heading" id="h-fin-de-saisi"><strong><span style="text-decoration: underline;">Fin de saisi.</span></strong></h4>



<p>Comme vous le comprenez déjà c'est <strong>Lors d'un appuie sur le boutons "OK"</strong> <strong>que l'on charge la ou les valeurs saisi</strong> vers les composants de la page d'accueil pour ensuite l'afficher.<br>Mais n’oublions pas aussi d'<strong>initialiser les variables, systèmes "<strong>sys0</strong>" et "<strong>sys1</strong>"</strong>, <strong>de traitement</strong> de la saisi.<br>Voyez l'exemple ci dessous.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-OK-2.png"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-OK-2.png" alt="Aperçu du programme au bouton &quot;OK&quot;" class="wp-image-4726" width="751" height="311" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-OK-2.png 502w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Clavier-bouton-OK-2-300x124.png 300w" sizes="auto, (max-width: 751px) 100vw, 751px" /></a></figure></div>



<p>Nous y voila la saisis est terminé. Nous sommes<strong> capable de saisir des données grâce à un clavier d'écran tactile NEXTION <strong>alphanumérique</strong>.</strong><br><br>Mais nous souhaitons aller plus loin.<br>Maintenant que l'aspect fonctionnel du <strong>clavier d'écran tactile NEXTION</strong> est en place. Nous lui avons apporté une <strong>mise en style plus agréable au visuel.</strong></p>



<h2 class="wp-block-heading" id="h-mise-en-style-de-cran-tactile-nextion"><strong><span style="text-decoration: underline;">Mise en style de <strong>écran tactile NEXTION</strong>.</span></strong></h2>



<p>En vous aidant du tutoriel <span style="text-decoration: underline;"><span class="has-inline-color has-vivid-cyan-blue-color">"Écran tactile NEXTION" </span></span>et d'un logiciel de dessin, voyez l'aperçus de ce qu'il vous est <strong>possible de réaliser.</strong></p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="810" height="488" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/15-Clavier-NEXTION-Clavier-aperçu-finale-2.png" alt="Aperçu de l'écran tactile NEXTION stylisé." class="wp-image-3950" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/15-Clavier-NEXTION-Clavier-aperçu-finale-2.png 810w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/15-Clavier-NEXTION-Clavier-aperçu-finale-2-300x181.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/15-Clavier-NEXTION-Clavier-aperçu-finale-2-768x463.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/15-Clavier-NEXTION-Clavier-aperçu-finale-2-700x422.png 700w" sizes="auto, (max-width: 810px) 100vw, 810px" /><figcaption>Trouvez ce clavier en bonus dans le programme "Clavierv2"</figcaption></figure></div>



<p class="has-text-align-center"><strong>Votre imagination est sans limites</strong> ! Avec des images graphiques ou photos vous <strong>pouvez réaliser bien plus que cela</strong> !<br>Pour notre projet exemple nous utilisons des composants NEXTION en <strong>exploitation de saisi</strong>. Mais finalement, comme par exemple, le but est d<strong>'envoyer la donnée saisi vers </strong>une carte ARDUINO qui pilote une système.</p>



<h3 class="has-text-align-center wp-block-heading" id="h-bravos"><strong>BRAVOS!</strong></h3>



<p class="has-text-align-center">Vous connaissez les bases pour <strong>réaliser une interface de saisi </strong>de données. <br><em><a aria-label="Téléchargez le programme (opens in a new tab)" rel="noreferrer noopener" href="https://plaisirarduino.fr/telechargement/" target="_blank">Téléchargez le programme</a></em> et <strong>amusez vous</strong> à l'intégrer à vos projets et à en <strong>améliorer ces fonctionnalités</strong>.<br><br>Merci de votre lecture et à bientôt !<br><br><a href="https://plaisirarduino.fr/"><em>PLAISIR ARDUINO.</em>fr</a></p>
<p>Cet article <a href="https://plaisirarduino.fr/clavier-ecran-tactile-nextion/">Clavier d&rsquo;écran tactile NEXTION.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>NEXTION EDITOR l&#8217;éditeur pour écran tactile.</title>
		<link>https://plaisirarduino.fr/nextion-ecran-tactile-editeur/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Mon, 06 Sep 2021 08:09:48 +0000</pubDate>
				<category><![CDATA[Intermédiaire]]></category>
		<category><![CDATA[NEXTION EDITOR]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=3598</guid>

					<description><![CDATA[<p>Le but de ce tutoriel est de vous aiguiller étape après étapes dans l'utilisation de l'éditeur NEXTION et de ses composants pour la mise en forme de pages d'écran tactile. Le matériel. Écran tactile NEXTION et son alimentation 5V.Avoir une carte micro SD formaté en FAT32.Télécharger et installer l'éditeur logiciel &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/nextion-ecran-tactile-editeur/">NEXTION EDITOR l&rsquo;éditeur pour écran tactile.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-accueil-resized.png"><img loading="lazy" decoding="async" width="488" height="308" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-accueil-resized.png" alt="Vue de face d'un écran tactile de marque NEXTION." class="wp-image-4601" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-accueil-resized.png 488w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-accueil-resized-300x189.png 300w" sizes="auto, (max-width: 488px) 100vw, 488px" /></a><figcaption>Écran tactile NEXTION</figcaption></figure></div>



<p>Le but de ce tutoriel est de vous aiguiller étape après étapes dans l'utilisation de l'éditeur NEXTION et de ses composants pour la mise en forme de pages d'écran tactile. </p>



<h4 class="wp-block-heading" id="h-le-mat-riel"><span style="text-decoration: underline;">Le matériel.</span></h4>



<p><strong>Écran tactile NEXTION </strong>et son alimentation 5V.<br>Avoir une carte <strong>micro SD formaté en FAT32</strong>.<br>Télécharger et installer <strong>l'éditeur logiciel </strong><a href="https://nextion.itead.cc/resources/download/nextion-editor/">NEXION</a> sur votre PC.</p>



<h4 class="wp-block-heading" id="h-l-diteur-nextion"><span style="text-decoration: underline;">L'éditeur NEXTION.</span></h4>



<p>Ouvrons l'éditeur NEXTION. ( En anglais)<br>Au centre de l'éditeur se trouve deux volets. "<strong>Recent projects</strong>" pour les <strong>récent projets</strong> et "<strong>About</strong>" qui nous informe sur la version utilisé et donne la possibilité de faire une <strong>mise à jour</strong> (latest version).<br>Commençons par observer son aspect. En plus de la <strong>barres de menus et de la barre d'outils fonctionnels </strong>l'éditeur est composé de <strong>sept (7) volets de travail</strong> détaillés dans le tableau qui suit. <br>A ce stade <strong>les volets de travail ne sont pas actifs </strong>car il nous faut <strong>crée un projet</strong>.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="576" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Editeur-NEXTION-présentation-1024x576.png" alt="Vue globale de l'éditeur NEXTION." class="wp-image-3759" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Editeur-NEXTION-présentation-1024x576.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Editeur-NEXTION-présentation-300x169.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Editeur-NEXTION-présentation-768x432.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Editeur-NEXTION-présentation-700x393.png 700w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/01-Editeur-NEXTION-présentation.png 1919w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<table id="tablepress-6" class="tablepress tablepress-id-6">
<thead>
<tr class="row-1">
	<th class="column-1">Volets.</th><th class="column-2">Fonctions.</th><th class="column-3">Outils.</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1">Display.<br />
 (centre)</td><td class="column-2">Aperçu.</td><td class="column-3">Affiche l'aperçu de la pages projet sélectionné.</td>
</tr>
<tr class="row-3">
	<td class="column-1">Toolbox.<br />
(gauche)</td><td class="column-2">Composants <br />
d'affichages</td><td class="column-3">Texte                       / Zone de texte.<br />
Scrolling text           / Texte défilant.<br />
Number                  / Zone de nombre.<br />
Button                    / Commande Bouton.<br />
Progresse bar         / Bar de progression.<br />
Picture                    / Zone d'image.<br />
Crop                       / Couper une zone d'image par une autre.<br />
Hotspot                  / ????<br />
Gauge                     / jauge de niveaux ou seuils.<br />
Weveform               / Zone de tracé graphiques.<br />
Slider                       / Commande par glissement.<br />
Timer                       / Bloc d'appel de la fonction RTC exploitation de l'horodatage.<br />
Variable                   / Créé une variable.<br />
Dual-state button    / Commande bouton à deux états fixe.<br />
Checkbox                 / Commande de validation.<br />
Radio                       / Commande de validation.<br />
QRcode                    / QRcode.<br />
</td>
</tr>
<tr class="row-4">
	<td class="column-1">Picture.<br />
(gauche)</td><td class="column-2">Images.</td><td class="column-3">Ajouter une image.<br />
Supprimer une image.<br />
Remplacer une image par une autre.<br />
Insérer une image depuis nos fichiers.<br />
Déplacer de haut en bas parmi les images existantes.<br />
Supprimer toutes les images.</td>
</tr>
<tr class="row-5">
	<td class="column-1">Font<br />
(onglet sous "picture")</td><td class="column-2">Polices.</td><td class="column-3">Ajouter une Police.<br />
Supprimer une Police.<br />
Remplacer une Police par une autre.<br />
Insérer une Police depuis nos fichiers.<br />
Déplacer de haut en bas parmi les polices existantes.<br />
Aperçu de la Police sélectionnée.</td>
</tr>
<tr class="row-6">
	<td class="column-1">Page.<br />
(droite)</td><td class="column-2">Pages.</td><td class="column-3">Ajouter une page.<br />
Supprimer une page.<br />
Insérer une page depuis nos fichiers.<br />
Déplacer de haut en bas parmi les pages existantes.<br />
Faire une copie de page.<br />
Importer une page.<br />
Exporter une page.</td>
</tr>
<tr class="row-7">
	<td class="column-1">Atrribute.<br />
(droite)</td><td class="column-2">Paramétrages <br />
objets.</td><td class="column-3">Modifier l'apparence, le style ou les spécificités dynamique et visuel de l'objets sélectionné.<br />
Voire le tableau paramètres objets. (fin de tutoriels)</td>
</tr>
<tr class="row-8">
	<td class="column-1">Output.<br />
(bas)</td><td class="column-2">Résultats <br />
compilations</td><td class="column-3">Aucun.</td>
</tr>
<tr class="row-9">
	<td class="column-1">Event.<br />
(bas)</td><td class="column-2">Événements<br />
d'activation<br />
objet.</td><td class="column-3">Onglet "Touch Press Event(0)" / Appuis sur l'objet.<br />
Onglet "Touch Release Event(0)" / Relâchement d'appuis sur objet.<br />
Onglet "Preinitialize Event(0)" initialisation page à son appel.<br />
Onglet "Postinitialize Event(0)". Initialisation des positions d'objets.<br />
Checkbox "Send Component" ID Envoie l' ID de l'objet activé.<br />
Zone de saisi "User Code" Programmation.</td>
</tr>
</tbody>
</table>




<h4 class="wp-block-heading" id="h-cr-er-un-projet-avec-l-diteur-nextion"><span style="text-decoration: underline;">Créer un projet avec l'éditeur NEXTION.</span></h4>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/02-Editeur-NEXTION-nouveau-projet.png" alt="" class="wp-image-3760" width="87" height="144"/></figure></div>



<p>Pour commencer créons un<strong> nouveau projet</strong>.<br>Dans la barres des menu "<strong>file</strong>" (= Fichier) puis "<strong>new</strong>" (= Nouveau).<br>L'utilitaire d'enregistrement s'ouvre puis à l'emplacement de notre choix <strong>créons un fichier</strong> repérable "<strong>NEXTION projet</strong>".<br>Nommons le "<strong>Tuto NEXTION</strong> <strong>Éditeur</strong>" -ou différemment si vous le souhaitez-, enregistrons et l'éditeur nous aiguille ensuite vers l'<strong>étape de configurations </strong>en ouvrant<strong> la fenêtre "Setting".</strong></p>



<h5 class="wp-block-heading" id="h-configurations-de-l-diteur-nextion"><span style="text-decoration: underline;">Configurations de l'éditeur NEXTION.</span></h5>



<p>L'éditeur à besoins de <strong>connaitre le profil </strong>de votre écran tactile pour s'y adapter. Nous comprendrons cela plus tard lors de la mise en forme de nos pages.<br> <br>Recherchons et sélectionnons notre <strong>modèle d'écran</strong> suivant sa catégorie "<strong>BASIC</strong>", "<strong>ENHANCED</strong>" ou "<strong>INTELLIGENT</strong>" .<br>Dans notre cas pour le modèle <strong>NX8048K070</strong> la catégorie est "<strong>ENHANCED</strong>".<br><strong>N'appuyons pas encore sur OK!</strong>.</p>



<figure class="wp-block-image size-large"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/04-Editeur-NEXTION-Configurations.png"><img loading="lazy" decoding="async" width="881" height="661" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/04-Editeur-NEXTION-Configurations.png" alt="Vue de la fenêtre de configuration. Sélection du modèle d'écran tactile utilisé." class="wp-image-3762" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/04-Editeur-NEXTION-Configurations.png 881w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/04-Editeur-NEXTION-Configurations-300x225.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/04-Editeur-NEXTION-Configurations-768x576.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/04-Editeur-NEXTION-Configurations-700x525.png 700w" sizes="auto, (max-width: 881px) 100vw, 881px" /></a></figure>



<p>Sélectionnons d'abord <strong>l'orientation de l'écran</strong> <strong>souhaité</strong> en fonction de l'exploitation de notre projet<strong>. </strong>Dans "<strong>Display</strong>" (= Affichage) à gauche de la fenêtre de configuration.<br><br>Divers choix d'orientations sont proposés <strong>Horizontale à 0° ou 180°&nbsp;</strong>ou <strong>verticale à 0° ou 180°.</strong>  Pour notre exemple nous faisons le choix  <br><strong>Horizontale à 0°</strong> puis validons sur "<strong>OK</strong>".<br>Note : l'orientation  à 180° est équivalent à un retournement de l'écran.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="882" height="658" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/05-Editeur-NEXTION-Configurations-Display.png" alt="Vue des configurations d'écran tactile.
Choix de la disposition Horizontale, vertical à 90°, Horizontale à 180° ou  vertical à 270°." class="wp-image-3763" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/05-Editeur-NEXTION-Configurations-Display.png 882w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/05-Editeur-NEXTION-Configurations-Display-300x224.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/05-Editeur-NEXTION-Configurations-Display-768x573.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/05-Editeur-NEXTION-Configurations-Display-700x522.png 700w" sizes="auto, (max-width: 882px) 100vw, 882px" /><figcaption>Fenêtre de configuration d'orientation</figcaption></figure></div>



<p>Nous retournons systématiquement <strong>vers l'éditeur</strong>, les <strong>volets de travail</strong> sont à présent <strong>actifs </strong>et l'on a au centre <strong>l'onglet d'aperçu de notre écran.</strong><br></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="576" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Editeur-NEXTION-Editeur-prêt-1024x576.png" alt="Vue de l'éditeur NEXTION.
Les volets de travail sur les cotées, au centre l'onglet d'aperçu de notre écran tactile." class="wp-image-3764" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Editeur-NEXTION-Editeur-prêt-1024x576.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Editeur-NEXTION-Editeur-prêt-300x169.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Editeur-NEXTION-Editeur-prêt-768x432.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Editeur-NEXTION-Editeur-prêt-700x393.png 700w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/06-Editeur-NEXTION-Editeur-prêt.png 1917w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>Nous sommes prêt à la réalisation de notre écran tactile NEXTION.</p>



<h5 class="wp-block-heading" id="h-la-police-d-affichage"><span style="text-decoration: underline;">La police d'affichage.</span></h5>



<p>Premièrement <strong>choisissons et configurons une police d'affichage</strong> utilisé à l'écran.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/07-Editeur-NEXTION-Police.png" alt="Vue des onglets de menu. 
Tools, Setting, Help.
Tools est sélectionné en sous sélection active Font Générator." class="wp-image-3765" width="182" height="72"/></figure></div>



<p>Dans "<strong>Tools</strong>" (= Outils<strong>) </strong>puis "<strong>Font&nbsp;generator</strong>" (=générateur de police) la fenêtre "<strong>Font&nbsp;generator</strong>" s'ouvre.<br>Puis choisissons <strong>une taille et un style de police</strong> via la liste "<strong>Height</strong>" et  celle qui se situe dans la zone d'aperçu "<strong>Preview Aréa</strong>". <br>Le caractère <strong>"X" donne un aperçu de sa taille</strong> <strong>et sa forme par rapport à l'écran.</strong><br>Pour démarrer notre exemple nous choisirons "<strong>56</strong>" et "<strong>Source code pro</strong>"</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="442" height="436" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/08-Editeur-NEXTION-Police-configuration.png" alt="Vue de la Pop-up Font générator. Mise en évidence des zone de paramétrage. Taille de police, Type de police et Zone de texte pour nommer la police d'écriture utilisé dans l'aperçu de l'éditeur NEXTION.
" class="wp-image-3766" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/08-Editeur-NEXTION-Police-configuration.png 442w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/08-Editeur-NEXTION-Police-configuration-300x296.png 300w" sizes="auto, (max-width: 442px) 100vw, 442px" /></figure></div>



<p>Finalement, <strong>saisissons  le nom de notre police</strong> personnel "<strong>Source code pro_56</strong>" et validons sur "<strong>Generate font</strong>" <strong>générer une police.</strong><br>Enfin enregistrons celle ci dans le même fichier que notre projet "<strong>NEXTION projets</strong>" dans un fichier nommé "<strong>NEXTION polices</strong>".<br>Puis comme demandé par la pop-up qui suit <strong>ajoutons la police générée à notre projet en cliquant sur "OK".</strong><br>Nous retrouvons nos<strong> polices personnalisé dans le volet "Font</strong>" situé sous le volet<strong> "Picture</strong>". </p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="219" height="72" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/23-Editeur-NEXTION-fonts.png" alt="Vue du volet &quot;Font&quot; situé sous le volet &quot;Picture&quot;. Mise en évidence de la nouvelle police enregistré." class="wp-image-3782"/></figure></div>



<p>Avant de passer à la réalisation de notre page d'accueil nous devons avant tout nous intéresser à la <strong>résolution de nos écrans</strong> et des <strong>images</strong> qui vont alimenter notre projet d'interface graphique.</p>



<h5 class="wp-block-heading" id="h-images-et-r-solutions"><span style="text-decoration: underline;">Images et résolutions.</span></h5>



<p><strong>Un projet d'affichage graphique sur un écran tactile </strong>implique un travail d'apparence sur images.<br>l’aspect le plus important du <strong>traitement des images</strong> est basé sur la <strong>résolutions.</strong><br><br>Pour ces raisons il nous faut souligner <strong>l'importance de leurs dimensionnement </strong>car elles risqueraient de ne pas <strong>être afficher de manière optimale</strong> donc prenons garde à faire une <strong>adéquation entre la résolution écran et celle de l'image.</strong><br>Étant donnée que les caractéristiques des écrans tactiles ne sont pas modifiables nous <strong>dimensionnons les images en fonction de la résolution</strong> indiqué par la <strong>référence de notre écran.</strong><br><br>Prenons le cas de notre écran NX8048 K070. Le chiffre <strong>8048 indique</strong> une résolution de <strong>800 pixels</strong> de largeur par <strong>480 pixels</strong> de hauteur. (80/48)<br><strong>Les images ne doivent donc pas dépasser les dimensions de résolution de l'écran que nous exploitons.</strong><br>Mais pour faire plus simple il suffis de regarder dans la barres d'informations système (écran) au bas de l'éditeur . </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="575" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/12-Editeur-NEXTION-Resolution-1024x575.png" alt="Vue de la barres d'information système en bas de l'éditeur NEXTION.
Affiche les données écran.
Référence de l'écran NX8048 K070.
La résolution de 800 pixels de largeur et 480 pixels de hauteur. " class="wp-image-3770" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/12-Editeur-NEXTION-Resolution-1024x575.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/12-Editeur-NEXTION-Resolution-300x168.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/12-Editeur-NEXTION-Resolution-768x431.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/12-Editeur-NEXTION-Resolution-700x393.png 700w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/12-Editeur-NEXTION-Resolution.png 1923w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Mais en réalité nos <strong>images n'aurons jamais une résolution identique aux écrans tactiles</strong>. Par conséquent à chaque fois que l'on souhaite ajouter une image <strong>il nous faudra la dimensionner.</strong></p>



<h5 class="wp-block-heading" id="h-dimensionner-l-image-de-votre-choix"><span style="text-decoration: underline;">Dimensionner l'image de votre choix.</span></h5>



<p>Pour la suite du projet nous vous proposons et invitons à suivre cette méthode -Parmi d'autre- pour dimensionner l'image de votre choix.<br>Ouvrez là sous "<strong>PAINT</strong>".<br>Passez en mode "sélection".<br>Faites un clic droit sur celle ci.<br>Sélectionnez "Redimensionner".</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/14-Editeur-NEXTION-Resolution-PAINT.png" alt="Sous PAINT. Vue de la Pop-up de redimensionnement d'image." class="wp-image-3772" width="296" height="426" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/14-Editeur-NEXTION-Resolution-PAINT.png 282w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/14-Editeur-NEXTION-Resolution-PAINT-208x300.png 208w" sizes="auto, (max-width: 296px) 100vw, 296px" /></figure></div>



<p>Choisissez le mode "Pixel".<br>Décochez "conserver les proportions".<br>Entrez vos valeurs de résolutions horizontale et verticale.<br>Validez par "OK".<br>Si besoins ajustez la planche "paint" (blanc) à votre image.<br><strong>L'image et à présent dimensionné pour un affichage en fond d'écran. </strong><br><em>Pour d'autres dimensionnements plus  petit  qui vous seront utiles faite la même.</em><br>Faites<strong> </strong>tout de même<strong> attention à la qualité de l'image.</strong><br> <br>Afin de <strong>ne pas perdre l'image originale faite </strong>"<strong>enregistrer sous</strong>"  puis renommez la nouvelle image avec <strong>un nom qui lui est propre</strong> et pour une exploitation via l'éditeur créez un  <strong>fichier repérable "image NEXTION" dans le ficher "NEXTION projet" </strong>. <br><br>Après cela, l'image sélectionné est prête à être <strong>ajouter au projet. </strong><br><br>Cela vu, nous pouvons passer à la <strong>création de notre projet.</strong></p>



<h2 class="wp-block-heading" id="h-d-buter-un-projet-nextion"><strong><span style="text-decoration: underline;">Débuter un projet NEXTION.</span></strong></h2>



<p>Lors de la création du projet "<strong>Etape NEXTION</strong>" l'éditeur à d'office inséré une <strong>page vierge</strong>, nommé "<strong>page0</strong>", que l'on trouve dans le volet "<strong>Page</strong>".<br>De toute évidence ce volet représente la <strong>structure de classement des pages</strong> de notre projet. </p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="218" height="99" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/15-Editeur-NEXTION-PAGE.png" alt="Vue du volet PAGE de l'éditeur NEXTION.
Ce volet représente la structure de classement des pages de notre projet. " class="wp-image-3773"/></figure></div>



<p>Par simplicité de repérages à notre projet, <strong>renommons la page</strong> "<strong>accueil</strong>" en faisant un <strong>double clic </strong>dessus<strong>.</strong> Attention toutefois à <strong>ne pas dépasser les quatorze (14) caractères maximum.</strong><br><br>Nous sommes prêt pour la <strong>mise en forme d'une page d'accueil.</strong></p>



<h5 class="wp-block-heading" id="h-cr-e-une-page-d-accueil-l-cran-tactile"><strong><span style="text-decoration: underline;">Crée une page d’accueil à l'écran tactile.</span></strong></h5>



<p>En premier lieu, Plaçons y un <strong>fond d'écran.</strong><br><strong>Cliquons sur notre page d'aperçu</strong> qui s'encadre en bleu et complète alors les volets "<strong>Event</strong>" et "<strong>Attribute</strong>".<br>Concentrons nous plus précisément sur le volet "<strong>Attribute</strong>".<br>Observons le tableau qui s'y trouve car en fonction des objets sélectionnés il contient <strong>les paramètres et données</strong> utiles à modifier pour<strong> l'aspect et les caractéristiques des composants</strong> que nous verrons plus tard.<br>Comme illustré ci dessous, notre page "<strong>accueil</strong>" fait partie de ces <strong>composants</strong>.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/16-Editeur-NEXTION-ATTRIBUTE.png" alt="Vue du volet Attribute de l'éditeur NEXTION.
Contient les paramètres et données." class="wp-image-3774" width="150" height="332" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/16-Editeur-NEXTION-ATTRIBUTE.png 218w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/16-Editeur-NEXTION-ATTRIBUTE-135x300.png 135w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>



<p><em>Trouvez en fin de tutoriel un tableau qui décrit les différentes fonctions de chaque paramètres que l'on peut y trouver en fonction des composants.</em><br><br><strong>Suivant les paramètres </strong>choisis nous pouvons<strong> crée un fond d'écran</strong> <strong>de couleur uni</strong> ou <strong>insérer une image.</strong><br><br>Pour donner plus d’intérêt à notre exemple nous choisissons d'insérer une image en modifiant le <strong>paramètre </strong>"<strong>sta</strong>" en mode "<strong>image</strong>".</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="206" height="48" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/18-Editeur-NEXTION-ATTRIBUTE-IMAGE.png" alt="Vue des paramètres &quot;sta&quot; en mode &quot;image&quot;." class="wp-image-3776"/></figure></div>



<p>Cette action active le <strong>paramètre </strong>"<strong>pic</strong>" qui doit obligatoirement être complété par un double clic à son emplacement.<br><br>La<strong> fenêtre de sélection d'images</strong> s'ouvre mais à ce stade du projet elle est <strong>vide</strong>.<br>Il faut donc préalablement<strong> ajouter une image.</strong></p>



<h5 class="wp-block-heading" id="h-ajouter-une-image"><strong><span style="text-decoration: underline;">Ajouter une image</span></strong></h5>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/19-Editeur-NEXTION-PICTURE.png" alt="Vue du volet PICTURE de l'éditeur NEXTION.
" class="wp-image-3777" width="164" height="368" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/19-Editeur-NEXTION-PICTURE.png 217w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/19-Editeur-NEXTION-PICTURE-134x300.png 134w" sizes="auto, (max-width: 164px) 100vw, 164px" /></figure></div>



<p>Utilisons <strong>le volet</strong> "<strong>Picture</strong>" (= Image). <br>La zone blanche sous la barre d'outils affichera de toute évidence les <strong>images contenus dans nôtre projets.</strong> <br><br>Cliquons sur <strong>plus "+" (Add)</strong> qui aura pour effet d'<strong>ouvrir l'utilitaire d’accès aux fichiers image </strong>de notre bibliothèque PC.<br><strong>Allons dans notre fichier repéré "image NEXTION", puis sélectionnons l'image</strong> notre choix et validons.<br><br>Après cela une pop-up nous indique que l'ajout au projet est un succès et nous invite à valider par "<strong>OK</strong>".<br>Notre<strong> image fait donc partie du projet</strong> et apparait dans le volet "<strong>Picture</strong>".<br>A noter que <strong>chaque images aura un indice de 0 à X</strong> pour l'identifier en paramètre de composants.</p>



<p>La zone blanche sous la barre d'outils affichera de toute évidence les <strong>images contenus dans nôtre projets.</strong> <br>Cliquons sur <strong>plus "+" (Add)</strong> qui aura pour effet d'<strong>ouvrir l'utilitaire d’accès aux fichiers image </strong>de notre bibliothèque PC.<br><strong>Allons dans notre fichier repéré "image NEXTION", puis sélectionnons l'image</strong> notre choix et validons.<br>Après cela une pop-up nous indique que l'ajout au projet est un succès et nous invite à valider par "<strong>OK</strong>".<br><br>Notre<strong> image fait donc partie du projet</strong> et apparait dans le volet "<strong>Picture</strong>".</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="221" height="219" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/20-Editeur-NEXTION-PICTURE-fond-décran-1.png" alt="Vue du volet PICTURE de l'éditeur NEXTION. Complété de la nouvelle image." class="wp-image-3793" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/20-Editeur-NEXTION-PICTURE-fond-décran-1.png 221w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/20-Editeur-NEXTION-PICTURE-fond-décran-1-150x150.png 150w" sizes="auto, (max-width: 221px) 100vw, 221px" /></figure></div>



<p>A noter que <strong>chaque images aura un indice de 0 à X</strong> pour l'identifier en paramètre de composants.</p>



<h5 class="wp-block-heading" id="h-le-fond-d-cran"><span style="text-decoration: underline;"><strong>Le fond d'écran</strong>.</span></h5>



<p>Revenons au volet "<strong>Attribute</strong>" et faisons un<strong> double clic</strong> au paramètre "<strong>pic</strong>". La <strong>fenêtre de sélection</strong> est à présent fourni de notre image.<br><strong>Sélectionnons là </strong>et <strong>validons </strong>sur <strong>"OK"</strong>.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="575" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/26-Editeur-NEXTION-Fond-decran-1-1024x575.png" alt="Vue globale de l'éditeur NEXTION avec l'aperçue de l'écran tactile.
Mise en évidence de l'indice de la nouvelle image dans le volet ATTRIBUTE." class="wp-image-3797" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/26-Editeur-NEXTION-Fond-decran-1-1024x575.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/26-Editeur-NEXTION-Fond-decran-1-300x169.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/26-Editeur-NEXTION-Fond-decran-1-768x431.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/26-Editeur-NEXTION-Fond-decran-1-700x393.png 700w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/26-Editeur-NEXTION-Fond-decran-1.png 1921w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/27-Editeur-NEXTION-save-1.png" alt="LOGO disquette enregistrement." class="wp-image-3799" width="169" height="62" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/27-Editeur-NEXTION-save-1.png 272w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/27-Editeur-NEXTION-save-1-268x100.png 268w" sizes="auto, (max-width: 169px) 100vw, 169px" /></figure></div>



<p>Bravo !! L'image s'affiche à l'aperçu !!<br>A ce stade nous <strong>sauvegardons notre travail</strong> en cliquant sur "<strong>Save</strong>" dans la barres d'outils.<br>Nous avons ainsi <strong>une page d’accueil </strong>stylisé et prête à recevoir nos textes d'informations ou d'instructions utilisateurs.</p>



<p>L'exercice suivant consiste à <strong>afficher des textes d'instructions</strong> ou des <strong>informations utiles</strong> aux utilisateurs.</p>



<h5 class="wp-block-heading" id="h-affichage-de-textes"><span style="text-decoration: underline;"><strong>Affichage de textes</strong>.</span></h5>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/28-Editeur-NEXTION-Toolbox-1.png" alt="Vue volet TOOLBOX de l'éditeur NEXTION.
Mise en évidence la sélection TEXT." class="wp-image-3804" width="205" height="446" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/28-Editeur-NEXTION-Toolbox-1.png 216w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/28-Editeur-NEXTION-Toolbox-1-138x300.png 138w" sizes="auto, (max-width: 205px) 100vw, 205px" /></figure></div>



<p>L'ajout d'un texte ce fait via le volet "<strong>Toolbox</strong>". <br>Nous y trouverons tout <strong>les composants utiles</strong> à la réalisation de nos commandes, retours d'actions systèmes et autres que nous verrons plus tard.<br><br>Cliquons donc sur<strong> le composant</strong> "<strong>Text</strong>".<br><strong>Le texte s'installe</strong> sous forme d'un rectangle bleu, en haut à gauche, dans l'aperçu d'écran.<br>Remarquons<strong> l'indication "t0</strong>" qui est en faite sa <strong>variable</strong> <strong>d'exploitation programme</strong>.<br><br>Il faut retenir que <strong>chaque composants installés à l'écran sera affecté d'une variable </strong>que nous pouvons <strong>renommer </strong>dans le volet<strong> "Attribute".</strong></p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/21-Editeur-NEXTION-Texte.png" alt="Vue du composant TEXT sur l'aperçu d'écran." class="wp-image-3780" width="122" height="43" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/21-Editeur-NEXTION-Texte.png 153w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/21-Editeur-NEXTION-Texte-150x54.png 150w" sizes="auto, (max-width: 122px) 100vw, 122px" /></figure></div>



<p><strong>Déplaçons </strong>le rectangle en le faisant glisser à l'endroit de notre choix puis <strong>redimensionnons</strong> le en tirant sur ses bords pour y voir l'affichage "<strong>Newtxt</strong>" inscrit par défaut.</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-1.png" alt="Vue de l'aperçu de l'écran tactile." class="wp-image-3820" width="311" height="187" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-1.png 800w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-1-300x180.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-1-768x461.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-1-700x420.png 700w" sizes="auto, (max-width: 311px) 100vw, 311px" /></figure></div>



<div class="wp-block-image"><figure class="alignleft"><img loading="lazy" decoding="async" width="216" height="560" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/30-Editeur-NEXTION-Text-Attribute-1.png" alt="Vue du volet ATTRIBUTE de l'éditeur NEXTION.
Mise en évidence du paramètre &quot;txt_maxl&quot;." class="wp-image-3812" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/30-Editeur-NEXTION-Text-Attribute-1.png 216w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/30-Editeur-NEXTION-Text-Attribute-1-116x300.png 116w" sizes="auto, (max-width: 216px) 100vw, 216px" /></figure></div>



<p>Les <strong>paramètres </strong>de mise en <strong>formes </strong>et de <strong>propriétés </strong>sont accessibles dans le volet "<strong>Attribute</strong>".<br><br><strong>Modifions le texte</strong> "<strong>newtxt</strong>" par "<strong>Bienvenu</strong>" au paramètre "<strong>txt</strong>".</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="189" height="25" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/31-Editeur-NEXTION-Text-Attribute-txt.png" alt="" class="wp-image-3814"/></figure>



<p>En ce qui concerne<strong> la longueur du texte</strong> prenons garde à adapter le paramètre <strong>"txt_maxl</strong>" au nombre de <strong>caractères maximum à afficher</strong>.<br>On peut aussi <strong>modifier le nom de variable du composant texte</strong> au paramètre "<strong>objname</strong>" mais comme nous n'avons pas de raison de le modifier nous en resterons là.<br><br><em>Rappelons que vous trouvez en fin de tutoriel un tableau qui décrit les différentes fonctions de chaque paramètres que l'on peut y trouver en fonction des composants.</em> <br><br>Nous avons à présent une<strong> page d'accueil digne de ce nom</strong> qui porte une <strong>instruction de</strong> "<strong>Bienvenu</strong>".</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="812" height="491" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-2.png" alt="Aperçu de l'écran tactile NEXTION depuis l'éditeur avec le composant TEXTE renseigné du mon BIENVENU." class="wp-image-3833" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-2.png 812w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-2-300x181.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-2-768x464.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/29-Editeur-NEXTION-Text-2-700x423.png 700w" sizes="auto, (max-width: 812px) 100vw, 812px" /></figure></div>



<p>Il faut reconnaitre que cela est un peu léger comme instruction utilisateur.<br><br>Donc pour la suite de notre projet<strong> </strong>nous <strong>affichons une instruction</strong> utilisateur sous forme de <strong>texte défilant de droite à gauche</strong>.</p>



<h5 class="wp-block-heading" id="h-texte-d-filant"><strong><span style="text-decoration: underline;">Texte défilant.</span></strong></h5>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/32-Editeur-NEXTION-Scrolling-Text-t.png" alt="Vue du composant &quot;Scrolling text&quot; dans la &quot;toolbox.&quot;" class="wp-image-3816" width="139" height="37" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/32-Editeur-NEXTION-Scrolling-Text-t.png 275w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/32-Editeur-NEXTION-Scrolling-Text-t-268x74.png 268w" sizes="auto, (max-width: 139px) 100vw, 139px" /></figure></div>



<p>Prenons le <strong>composant </strong>"<strong>Scrolling text</strong>" dans la "<strong>toolbox</strong>.</p>



<p>Modifions le contenu et la forme de notre nouveau composants. Centrons le sur l'image.<br><br>Par contre comment modifier <strong>la police du texte si elle est trop grande ?</strong><br>Ce n'est <strong>pas possible </strong>car nous ne disposons que<strong> </strong>d'<strong>un seul </strong>type de <strong>police </strong>dans le volet "<strong>Fonts</strong>". Il faut <strong>crée une police de plus</strong>.<br><br>Comme déjà vu précédemment <strong>créons puis ajoutons une nouvelle police</strong>. <br>Il faudra en crée <strong>autant que nécessaire</strong> dans l'évolution du projet.<br>Par conséquent <strong>ajoutons une police de taille</strong> "<strong>24</strong>" et renseignons le paramètre "<strong>font</strong>" du texte défilant avec la<strong> valeur d'index de la nouvelle police</strong> dans le volet "<strong>Fonts</strong>".</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/33-Editeur-NEXTION-Scrolling-Text-parametre.png" alt="Vue des paramètres du composant Scrolling text." class="wp-image-3817" width="252" height="149"/></figure></div>



<p>Il est possible de <strong>modifier la vitesse</strong>, le <strong>pas </strong>et le <strong>sens </strong>de défilement par "<strong>tim</strong>" "<strong>dis</strong>" et "<strong>dir</strong>".</p>



<p>Affichons le texte "<strong>Touchez l'écran</strong>". Comme ont pouvait s'y attendre<strong> il ne défile pas.&nbsp;</strong></p>



<p>De plus il faut reconnaitre que<strong> le fond blanc de la zone de texte</strong> par dessus notre belle image n'est <strong>pas très esthétique.</strong></p>



<div class="wp-block-image"><figure class="alignleft"><img loading="lazy" decoding="async" width="200" height="73" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/35-Editeur-NEXTION-Scrolling-Text-affichage-crop-image.png" alt="Vue des paramètres du composant TEXT.
Mise en évidence du paramètre STYLE en mode CROP IMAGE." class="wp-image-3824"/></figure></div>



<p>Alors dans le but de<strong> rendre le fond de la zone de texte transparent</strong> nous changeons le paramètre "<strong>sta</strong>" en mode "<strong>crop image</strong>" ce qui implique de renseigner le paramètre "<strong>picc</strong>" par l<strong>'indice de l'image de fond d'écran</strong> dans notre cas zéro "0". </p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="205" height="28" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/36-Editeur-NEXTION-Scrolling-Text-affichage-picc.png" alt="Vue du paramètre PICC." class="wp-image-3825"/></figure></div>



<p>En fonction de l'image de fond nous aurons besoins d'<strong>adapter la couleur de police au paramètre "pco".</strong></p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="202" height="29" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/37-Editeur-NEXTION-Scrolling-Text-affichage-pco.png" alt="Vue du paramètre PICC renseigné du paramètre de l'image à prendre en fond." class="wp-image-3827"/></figure></div>



<p>Nous avons là une <strong>page d'accueil qui a plus de classe</strong> !!!</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="815" height="494" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/38-Editeur-NEXTION-Scrolling-Text-affichage-apercu-e1551899744540.png" alt="Aperçu de l'écran tactile avec les composants TEXTE en fond modifié." class="wp-image-3868" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/38-Editeur-NEXTION-Scrolling-Text-affichage-apercu-e1551899744540.png 815w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/38-Editeur-NEXTION-Scrolling-Text-affichage-apercu-e1551899744540-300x182.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/38-Editeur-NEXTION-Scrolling-Text-affichage-apercu-e1551899744540-768x466.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/38-Editeur-NEXTION-Scrolling-Text-affichage-apercu-e1551899744540-700x424.png 700w" sizes="auto, (max-width: 815px) 100vw, 815px" /></figure></div>



<p><strong>Toujours définir une zone tactile</strong> d'activation car un appuie sur un composants non programmée n'aura aucun effet à moins de les programmées aussi pour cela. Constatons cela sur les composants texte "<strong>Bienvenu</strong>" et "<strong>Touchez l’écran</strong>". </p>



<p>Mais pour un <strong>premier aperçu dynamique</strong> du rendu <strong>graphique </strong>sans charger le programme dans l'écran tactile, l'éditeur est équipé d'un <strong>débogueur qui fait office de simulateur.</strong></p>



<h5 class="wp-block-heading" id="h-le-d-bogage-debug"><strong><span style="text-decoration: underline;">Le débogage. (Debug)</span></strong></h5>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/39-Editeur-NEXTION-Debug.png" alt="Vue du logo DEBUG." class="wp-image-3829" width="120" height="40"/></figure></div>



<p>Utilisons "<strong>Debug</strong>" dans la barre d'outil, afin de<strong> tester nos configurations </strong>de mise en page et <strong>le rendu graphique de façon dynamique</strong>.<br><br>Cette outils est<strong> dédié au débogage</strong> qui entrainera donc <strong>une compilation</strong> et un enregistrement du projet avec un retour d'informations au volet "<strong>Output</strong>". Le débogueur ne s'ouvre pas si une <strong>erreur </strong>est <strong>présente</strong> et un<strong> message rouge </strong>apparait alors dans le volet "<strong>Output</strong>".</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/40-Editeur-NEXTION-Output.png" alt="Vue de la fenêtre de debug OUTPUT de l'éditeur NEXTION." class="wp-image-3830" width="790" height="233"/></figure></div>



<p>Dans le cas contraire l<strong>e simulateur d'affichage </strong>s'ouvre et nous pouvons alors <strong>tester et constater les résultats.</strong></p>



<p><strong>Bravos !! </strong>A ce stade, vous <strong>franchissez, </strong>à présent,<strong> l'étape de mise en forme</strong> des afficheur <strong>NEXTION.</strong> <br><br>Alors maintenant que l'on <strong>maitrise la mise en forme des pages et des textes</strong> fermons le simulateur pour revenir à l'éditeur <strong>NEXTION</strong> et passons à présent à une chose essentiel à l'exploitation d'un écran tactile. Les<strong> événements tactiles.</strong></p>



<h5 class="wp-block-heading" id="h-cr-e-un-v-nement-tactile-en-page"><strong><span style="text-decoration: underline;">Crée un événement tactile en page.</span></strong></h5>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/42-Editeur-NEXTION-Page-add.png" alt="Vue du logo ADD. Ajout d'une page." class="wp-image-3839" width="83" height="66"/></figure></div>



<p>Premièrement <strong>l'événement tactile</strong> que l'on vas créer consiste à <strong>passer à une page suivante en touchant l'écran</strong>. Ce qui, par conséquent, demande <strong>d'ajouter une page&nbsp;</strong>via le volet "<strong>page</strong>".<br>La mise en forme de cette dernière se ferra donc en répétant les actions précédentes.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/43-Editeur-NEXTION-Page-SecondeEtape.png" alt="Vue du volet page avec en sélection la page nommée SECONDE ETAPE." class="wp-image-3841" width="227" height="99"/></figure></div>



<p>Nommons la "<strong>SecondeEtape</strong>", ajoutons une <strong>image en fond d'écran </strong>et revenons ensuite à la page précédente.<br>Les événements sont générés dans <strong>le volet</strong> "<strong>Event</strong>" via les principaux onglets qui  sont:</p>



<ul class="wp-block-list"><li>"<strong>Touch Press Event</strong>". Événement lors d'un appui sur un<strong> composan</strong>t.</li><li>"<strong>Touch Release  Event(0</strong>)" Événement lors d'un appui puis relâchement sur un <strong>composant</strong> ou <strong>l'écran</strong>.</li><li>"<strong>Preinitialize Event(0)</strong>" Événement <strong>avant l'affichage </strong>d'une <strong>page</strong>. Utile pour <strong>initialiser </strong>des composants ou variables.</li><li>"<strong>Postinitialize Event(0)</strong>" Événement <strong>après l'affichage </strong>d'une <strong>page</strong>. </li><li><strong>"Page Exite Event(0"</strong> Événement <strong>à la fermeture </strong>de la page.</li></ul>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="718" height="227" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/44-Editeur-NEXTION-Event.png" alt="Vue du volet EVENT de l'éditeur NEXTION. Avec les 4 onglets.
Preinitialize event, Postinitialise event, Touch presse event, Touche release event." class="wp-image-3842" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/44-Editeur-NEXTION-Event.png 718w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/44-Editeur-NEXTION-Event-300x95.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/44-Editeur-NEXTION-Event-700x221.png 700w" sizes="auto, (max-width: 718px) 100vw, 718px" /></figure></div>



<p><em>Pour plus de détaille référez vous à ce lien</em> <a href="https://nextion.tech/editor_guide/"><span class="has-inline-color has-vivid-cyan-blue-color"><em><span style="text-decoration: underline;">Le guide de l’éditeur Nextion</span></em></span></a></p>



<p> Dans la zone de saisi de l'onglet "<strong>Touch Press Event(0)</strong>" écrivons l'instruction ci dessous.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/45-Editeur-NEXTION-instruction-page.png" alt="Vue de l'instruction saisi dans l'onglet &quot;Touch Press Event(0)&quot;." class="wp-image-3844" width="882" height="30" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/45-Editeur-NEXTION-instruction-page.png 529w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/45-Editeur-NEXTION-instruction-page-300x10.png 300w" sizes="auto, (max-width: 882px) 100vw, 882px" /></figure>



<div class="wp-block-image"><figure class="alignleft"><img loading="lazy" decoding="async" width="187" height="58" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/46-Editeur-NEXTION-Compile.png" alt="Vue du logo &quot;COMPILE &quot; sous la barre des menus de l'éditeur NEXTION." class="wp-image-3845"/></figure></div>



<p>Testons premièrement<strong> l'exactitude de notre programmation</strong> d'événements en utilisant <strong>"Compile</strong>" sous la barre des menus. <br>Une compilation exécute <strong>l'enregistrement fichier de votre projet</strong> et de ce fait, renvoie ses résultats de compilations dans le volet "<strong>Output</strong>" et en cas d'erreurs le message s'affiche en rouge. <br>Deuxièmement, si tout est "ok" faisons un test par le "<strong>Débug</strong>".<br><br>Ça fonctionne bravo! Encore une étape de passé! Ainsi, vous touchez du doigt la <strong>programmation de votre projet</strong>. -Si l'on peux dire !!-<br><br>Mais retenons que <strong>chaque composants </strong>d'une page peut <strong>générer des événements </strong>en programmant dans leurs volet "<strong>EVENT</strong>".<br><br><strong>Restons sur la seconde page !</strong><br>La prochaine étape consistera donc à<strong> revenir à la page précédente en appuyant sur un bouton.</strong></p>



<h5 class="wp-block-heading" id="h-le-bouton"><span style="text-decoration: underline;">Le bouton.</span></h5>



<div class="wp-block-image"><figure class="alignleft"><img loading="lazy" decoding="async" width="187" height="58" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/47-Editeur-NEXTION-Bouton.png" alt="Vue du Logo et paramètre dans le volet &quot;Tollbox&quot; pour le composant bouton. " class="wp-image-3847"/></figure></div>



<p>Une fois de plus servons nous dans la "<strong>Tollbox</strong>" pour <strong>le composant bouton</strong>. <br><br><strong>De la même façon que&nbsp;les objets déjà utilisés il est paramétrable en formes et styles.</strong><br>Affichons "<strong>RETOUR</strong>" dessus (txt).</p>



<div class="wp-block-image"><figure class="alignleft"><img loading="lazy" decoding="async" width="187" height="58" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/48-Editeur-NEXTION-Bouton-retour.png" alt="Vue du bouton. " class="wp-image-3849"/></figure></div>



<p><em>Rappelons une dernière fois que vous trouvez en fin de tutoriel un tableau qui décrit les différentes fonctions de chaque paramètres que l'on peut y trouver, en fonction des composants.</em></p>



<p>Ensuite dans l'onglet "<strong>Touch Press Event</strong>" du bouton écrivons l'instruction</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/49-Editeur-NEXTION-Bouton-retour-event.png" alt="Vue de l'instruction &quot;Touch Press Event&quot; du bouton." class="wp-image-3851" width="221" height="27"/></figure></div>



<div class="wp-block-image"><figure class="alignleft"><img loading="lazy" decoding="async" width="203" height="67" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/50-Editeur-NEXTION-aide-contextuel.png" alt="Vue exemple de l' aide contextuelle à la programmation." class="wp-image-3852"/></figure></div>



<p>En outre lors de la saisi une <strong>aide contextuelle</strong> nous assiste en proposant des raccourcis <strong>par mots clés</strong>. <br><br>Puis clôturons par une compilation et si tout est "Ok" faisons un essais "<strong>Debug</strong>".<br><br>Encore bravos, une seconde étape est une fois de plus de franchis !!<br>Ensuite abordons <strong>les bases des événements tactiles par bouton</strong> il est temps pour la <strong>prochaine étape d'utiliser la programmation des commandes à boutons pour renseigner une valeur en affichage.</strong></p>



<h5 class="wp-block-heading" id="h-afficher-des-donn-es"><span style="text-decoration: underline;"><strong>Afficher des do</strong>nnées.</span></h5>



<p>La prochaine étape consistera, lors de l'appuie sur un bouton, à<strong> afficher</strong> <strong>deux type de données</strong>, l'une texte et l'autre numérique.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/51-Editeur-NEXTION-Number.png" alt="Vue du logo de composant &quot;Number&quot; (=Nombre) qui permet d'afficher des valeurs numérique." class="wp-image-3855" width="188" height="62"/></figure></div>



<p>En bref, pour cela, ajoutons <strong>les composant</strong> "<strong>text</strong>" (=Nombre) et <strong>"Number"</strong> (=Nombre) qui <strong>permet d'afficher des valeurs numérique et entière.</strong> <br><br>Nommons le boutons "<strong>Charge</strong> ".</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="819" height="497" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/52-Editeur-NEXTION-apercu-chargement-données.png" alt="Aperçu de l'écran tactile complété des divers composants TEXT, NOMBRE et BOUTONS ajouté précédemment." class="wp-image-3856" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/52-Editeur-NEXTION-apercu-chargement-données.png 819w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/52-Editeur-NEXTION-apercu-chargement-données-300x182.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/52-Editeur-NEXTION-apercu-chargement-données-768x466.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/52-Editeur-NEXTION-apercu-chargement-données-268x164.png 268w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/52-Editeur-NEXTION-apercu-chargement-données-700x425.png 700w" sizes="auto, (max-width: 819px) 100vw, 819px" /></figure></div>



<p>Une fois les composants en forme et placés, sélectionnons le bouton "<strong>charge</strong>" puis <strong>programmons le.</strong><br><br>Écrivons les <strong>instructions</strong> ci-dessous. </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="851" height="77" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/53-Editeur-NEXTION-instructions-chargements-données.png" alt="Vue des instructions au BOUTON CHARGE." class="wp-image-3858" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/53-Editeur-NEXTION-instructions-chargements-données.png 851w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/53-Editeur-NEXTION-instructions-chargements-données-300x27.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/53-Editeur-NEXTION-instructions-chargements-données-768x69.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/53-Editeur-NEXTION-instructions-chargements-données-700x63.png 700w" sizes="auto, (max-width: 851px) 100vw, 851px" /></figure>



<p><em><strong>Rappelons une dernière fois de prendre garde à la grandeur maximales que peut accepter chaque composants. </strong>Voire le paramètre "txt_maxl".</em><br><br>Finalement <strong>compilons et testons</strong> notre programme. <br>Un appuie sur le boutons "<strong>Charge</strong>" et s'affichent les données "<strong>12</strong>" et "<strong>Nombre</strong>" dans les composants.<br><br>Encore bravos !!!<br>Mais avant l'étape suivante <strong>revenons sur les instructions précédentes.</strong></p>



<h5 class="wp-block-heading" id="h-d-clarations-des-variables-sous-l-diteur-nextion"><span style="text-decoration: underline;"><strong>Déclarations des variables sous l'éditeur NEXTION</strong>.</span></h5>



<p class="has-very-dark-gray-color has-text-color">N'oublions pas que dans tout programmes informatiques les déclaration sont primordiale.<br>Donc voici dessous le format de déclaration de variable.<br><strong>Variable</strong>.<strong>type</strong>.<br>Cependant, dans la programmation NEXTION, il faut <strong>réitérer cette façon de faire appel à une variable.</strong><br>Comme le montre l'exemple ci dessous.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="208" height="31" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/54-Editeur-NEXTION-Exemple-Déclaration.png" alt="Vue du format de déclaration de variable. Variable.val=5" class="wp-image-3859"/></figure>



<p>Prenons le cas de notre exemple, "<strong>n0</strong>" et "<strong>t1</strong>" correspondent respectivement aux <strong>variables des composants</strong> numérique et texte.<br>Puis suivis du <strong>point "."  </strong>dit, par traduction, <strong>séparateur de période</strong>.<br>Pour conclure "<strong>val</strong>" et <strong>txt</strong>" correspondent respectivement aux <strong>type des variables </strong>numérique et texte.<br><strong>Il faut savoir que la programmation ne supporte pas les espaces.</strong><br>t0. val = "texte" ne fonctionne pas.(t0.val="texte" correcte)<br><br>Nous sommes donc <strong>capable de charger des données</strong> vers un composant texte ou numérique.<br>Mais nous pouvons tout aussi bien le faire vers <strong>une variable.</strong></p>



<h5 class="wp-block-heading" id="h-les-variables-nextion"><span style="text-decoration: underline;">Les variables NEXTION.</span></h5>



<p>Considérons les <strong>composants </strong>à l'écran comme des <strong>entrées ou des sorties </strong>mais de type tactiles et graphiques.<br>Par conséquent pour <strong>traiter des données internes</strong> à l'affichage il faut utiliser des <strong>variables</strong>.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/55-Editeur-NEXTION-Variable.png" alt="Vue du logo paramètre du  composant  &quot;Variable&quot;." class="wp-image-3860" width="190" height="44"/></figure></div>



<p>Pour <strong>crée une variable</strong> une fois de plus nous devons faire appel à un <strong>composant </strong>qui porte le juste nom de "<strong>Variable</strong>".<br>En revanche contrairement aux autres composant il n'est pas installé dans l'aperçu mais <strong>dans le bandeau</strong> qui s'ouvre juste en dessous.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="576" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/56-Editeur-NEXTION-Variable-bandeau-1024x576.png" alt="Vue globale de l'éditeur. Mise en évidence de la zone de déclaration variables dans le bandeau qui s'ouvre juste en dessous de l'aperçu." class="wp-image-3862" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/56-Editeur-NEXTION-Variable-bandeau-1024x576.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/56-Editeur-NEXTION-Variable-bandeau-300x169.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/56-Editeur-NEXTION-Variable-bandeau-768x432.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/56-Editeur-NEXTION-Variable-bandeau-700x393.png 700w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/56-Editeur-NEXTION-Variable-bandeau.png 1919w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/57-Editeur-NEXTION-Variable-Va0.png" alt="Vue détaillé d'une variable. Carré inscrit va0 en haut à gauche." class="wp-image-3863" width="156" height="147"/></figure></div>



<p>Par défaut elle aura le nom de "<strong>va0</strong>" mais comme tout les autres composants sont <strong>nom peut être modifié dans le volet ATTRIBUTE</strong>.</p>



<div class="wp-block-image"><figure class="alignleft"><img loading="lazy" decoding="async" width="200" height="47" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/58-Editeur-NEXTION-Variable-154.png" alt="Vue d'une instruction d'affectation de valeur à une variable. va0.val=154." class="wp-image-3864"/></figure></div>



<p>Pour <strong>affecter une valeur</strong> à une variable respectons le format vu précédemment, en se rappelant de <strong>ne pas mettre d'espace.</strong><br>va0.val=154<br><br>Faisons l'exercice de <strong>charger une valeur dans la variable</strong> "<strong>va0</strong>" lors d'un appuie sur le bouton "<strong>charge</strong>". Ensuite additionnons à <strong>la variable</strong> "<strong>va0</strong>" la valeur du composant "<strong>n0</strong>". Et finalement <strong>affichons le résultat </strong>sur<strong> un autre composant numérique</strong> "<strong>n1</strong>".<br>Écrivons les instructions suivantes à la suite du programme.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="601" height="70" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/59-Editeur-NEXTION-Instructions-resultat.png" alt="Vue des instructions de chargement, calcul et affichage d'une valeur avec les variables." class="wp-image-3865" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/59-Editeur-NEXTION-Instructions-resultat.png 601w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/59-Editeur-NEXTION-Instructions-resultat-300x35.png 300w" sizes="auto, (max-width: 601px) 100vw, 601px" /></figure>



<p>Une fois cela fait, faisons une compilation et un test.</p>



<figure class="wp-block-image size-large"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-affichage-donnees.png"><img loading="lazy" decoding="async" width="802" height="486" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-affichage-donnees.png" alt="" class="wp-image-4656" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-affichage-donnees.png 802w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-affichage-donnees-300x182.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-affichage-donnees-768x465.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2021/08/NEXTION-Ecran-affichage-donnees-700x424.png 700w" sizes="auto, (max-width: 802px) 100vw, 802px" /></a></figure>



<p>Bravos, c'est finalement la <strong>dernière étape</strong> de l'exploration des divers fonctionnalités de l'éditeur <strong>NEXTION</strong>. En définitive nous sommes <strong>capable de manipuler des pages</strong>, leurs <strong>composants</strong>, leurs <strong>variables internes</strong> et <strong>générer des événements tactiles</strong>.</p>



<p>Mais vous trépignez surement d'impatience à l'idée de voire <strong>le résultat</strong> <strong>de notre travail</strong> à l'écran tactile NEXTION et de tester votre programme !!</p>



<p>Or patience, car avant cela il nous faut <strong>charger le programme dans l'écran tactile.</strong></p>



<h5 class="wp-block-heading" id="h-chargement-du-projet-de-l-diteur-nextion-vers-l-cran-tactile"><span style="text-decoration: underline;"><span class="has-inline-color has-black-color">Chargement du projet de l'éditeur NEXTION vers l'écran tactile.</span></span></h5>



<p>Néanmoins, au préalable,<strong> préparons les branchements d'alimentation</strong> de l'écran, mais<strong> sans le connecter à l'Arduino.</strong><br><br>Pour ce faire, il vas donc nous falloir une <strong>carte micro "SD"</strong> formaté en "<strong>FAT32</strong>".</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/03/60-Editeur-NEXTION-Open-build-folder.png" alt="Vue des onglets de menu. 
Onglet File activé.
Choix en sélection &quot;Open build folder&quot;.
Affichage du dossier et de l'emplacement de destination SD." class="wp-image-3866" width="316" height="246"/></figure></div>



<p>Puis ouvrir le dossier de construction "<strong>Open build folder</strong>" dans le menu "<strong>file</strong>" et rechercher le fichier projet "<strong>Etape NEXTION.tft</strong>".<br>Ensuite faire<strong>&nbsp;copie et le coller à l'emplacement de la carte "SD".</strong> <br><br>Par contre <strong>prenons garde&nbsp;</strong>à ce que le fichier soit<strong> le seul de type "tft"</strong>. Par conséquent, dédions Idéalement, une carte vierge juste pour cela.<br>Ensuite une fois le <strong>projet dans la carte</strong> <strong>SD </strong>insérons là à l'écran tactile. <br><br>A présent alimentons l'écran.</p>



<p>En premier lieu, <strong>à l'allumage,</strong> il entre en <strong>phase d'initialisation</strong> et <strong>détecte la présence d'une carte "SD"</strong> puis charge les données contenus dans la carte vers sa mémoire interne. Par la suite affiche le message "<strong>Check Data</strong> <strong>100% / Update Successed"</strong> qui indique sont initialisation complète et terminé avec succès.<br>Maintenant <strong>désactivons puis réactivons l'alimentation </strong>de&nbsp;l'écran Afin qu'il <strong>se configure suivant les nouvelles données et exécute notre projet</strong>.<br>L'écran est<strong> </strong>ainsi <strong>prêt à être exploiter</strong> et n'attends plus que vos <strong>actions tactiles pour exécuter </strong>vos <strong>instructions.</strong><br><br>En fin de compte, c'est une belle<strong> avancé dans l'exploration des écrans tactiles NEXTION</strong> qui vous permettra la constructions de vos projets sur ce type de supports HMI.</p>



<h2 class="wp-block-heading" id="h-tableau-des-42-attribues-de-composants">Tableau des 42 attribues de composants.</h2>




<table id="tablepress-5" class="tablepress tablepress-id-5">
<thead>
<tr class="row-1">
	<th class="column-1">Mnémoniques</th><th class="column-2">Fonctions.</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1">id</td><td class="column-2">Identifiant de l'objet.</td>
</tr>
<tr class="row-3">
	<td class="column-1">objname</td><td class="column-2">Nom de l'objet. (à saisir)</td>
</tr>
<tr class="row-4">
	<td class="column-1">type</td><td class="column-2">Numéros du type d'objet.</td>
</tr>
<tr class="row-5">
	<td class="column-1">vscope</td><td class="column-2">Local / global.<br />
Portée de la variable.Visible localement dans la page en cours ou visible globalement dans toutes les pages.<br />
</td>
</tr>
<tr class="row-6">
	<td class="column-1">sta</td><td class="column-2">crop image / solid color / image.<br />
Remplissage du fond: image sans recadrage, couleur unie ou image.</td>
</tr>
<tr class="row-7">
	<td class="column-1">dez</td><td class="column-2">Horizontal / Vertical<br />
Direction de la barre de progression.<br />
Horizontal / vertical.</td>
</tr>
<tr class="row-8">
	<td class="column-1">style</td><td class="column-2">flat / border / 3D_down / 3D_up / 3D_Auto.<br />
Style d'affichage du bouton. Plat, bordure, 3D_Bas, 3D_haut ou 3D_Auto.</td>
</tr>
<tr class="row-9">
	<td class="column-1">key</td><td class="column-2">full qwerty-kebod\ -  numeric keboard\ -  speed dial-keybdC / None.<br />
Configuration du type de clavier utilisé en addition avec l'écran.</td>
</tr>
<tr class="row-10">
	<td class="column-1">pic</td><td class="column-2">Permet d'affecter une image au composant.<br />
Double clic pour activer la sélection d'images..</td>
</tr>
<tr class="row-11">
	<td class="column-1">picc</td><td class="column-2">Permet d'affecter une  image en coupe superposé.<br />
Double clic pour activer la sélection d'images..</td>
</tr>
<tr class="row-12">
	<td class="column-1">bco</td><td class="column-2">Couleur de fond par défaut. Choix de personnalisation en palette de couleur.</td>
</tr>
<tr class="row-13">
	<td class="column-1">bc02</td><td class="column-2">Couleur de fond par défaut lors d'une pression sur le bouton. Choix de personnalisation en palette de couleur.</td>
</tr>
<tr class="row-14">
	<td class="column-1">pco</td><td class="column-2">Couleur de police par défaut. Choix de personnalisation en palette de couleur.</td>
</tr>
<tr class="row-15">
	<td class="column-1">pc02</td><td class="column-2">Couleur de police par défaut lors d'une pression sur le composant. Choix de personnalisation en palette de couleur.</td>
</tr>
<tr class="row-16">
	<td class="column-1">hig</td><td class="column-2">Hauteur du curseur.<br />
En fonction de la taille.</td>
</tr>
<tr class="row-17">
	<td class="column-1">hiw</td><td class="column-2">Largeur du curseur.<br />
En fonction de la taille.</td>
</tr>
<tr class="row-18">
	<td class="column-1">val</td><td class="column-2">État initiale ou valeur attribué à un composant.<br />
Logique, analogique ou donnée numériques.</td>
</tr>
<tr class="row-19">
	<td class="column-1">maxval</td><td class="column-2">Valeur maximale de donnée de composant.</td>
</tr>
<tr class="row-20">
	<td class="column-1">minval</td><td class="column-2">Valeur minimale de donnée de composant.</td>
</tr>
<tr class="row-21">
	<td class="column-1">font</td><td class="column-2">Numéros de police par défaut.</td>
</tr>
<tr class="row-22">
	<td class="column-1">xcen</td><td class="column-2">Left / Center / Right.<br />
Positionnement horizontale de l'affichage. Gauche, centré ou à droite.</td>
</tr>
<tr class="row-23">
	<td class="column-1">ycen</td><td class="column-2">Left / Center / Right.<br />
Positionnement verticale de l'affichage. Gauche, centré ou à droite.</td>
</tr>
<tr class="row-24">
	<td class="column-1">pw</td><td class="column-2">Character / Password<br />
Type d'entrée.<br />
Caractère /mot de passe</td>
</tr>
<tr class="row-25">
	<td class="column-1">dir</td><td class="column-2">Left to Right / Right to Left / Up to Down / Down to Up.<br />
Sens de défilement.<br />
De gauche à droite, de droite à gauche, de haut en bas ou de bas en haut.</td>
</tr>
<tr class="row-26">
	<td class="column-1">tim</td><td class="column-2">Temps d'intervalle en ms (à saisir de 80 à 65535)<br />
Vitesse de défilement.</td>
</tr>
<tr class="row-27">
	<td class="column-1">dis</td><td class="column-2">Distance de défilement en pixels (à saisir de 2 à 50).<br />
Définis le pas d'avance plus ou moins grand.</td>
</tr>
<tr class="row-28">
	<td class="column-1">txt</td><td class="column-2">Contenu du message ou données à afficher au composant. (à saisir).<br />
Texte ou hyperliens QRcode</td>
</tr>
<tr class="row-29">
	<td class="column-1">txt_maxl</td><td class="column-2">Taille maximum du nombre de caractères contenu dans l'affichage. (à saisir).</td>
</tr>
<tr class="row-30">
	<td class="column-1">isbr</td><td class="column-2">True / False<br />
Envoloppe. Vrais ou faux.</td>
</tr>
<tr class="row-31">
	<td class="column-1">lenth</td><td class="column-2">Montre le nombre de chiffres maxi à afficher.<br />
0-auto, Max-10</td>
</tr>
<tr class="row-32">
	<td class="column-1">format</td><td class="column-2">Decimal /Currency / Hex<br />
Type de format.<br />
Décimal / segmenté / Hexadécimale.</td>
</tr>
<tr class="row-33">
	<td class="column-1">spax</td><td class="column-2">Espacement horizontal entre les caractères des mots contenu dans l'affichage depuis le point de positionnement "xcen/ycen"  (à saisir de 0 à 255).</td>
</tr>
<tr class="row-34">
	<td class="column-1">spay</td><td class="column-2">Espacement verticale entre les caractères des mots contenu dans l'affichage depuis le point de positionnement "xcen/ycen"  (à saisir de 0 à 255).<br />
</td>
</tr>
<tr class="row-35">
	<td class="column-1">x</td><td class="column-2">Coordonnées en abscisse de positionnement du bouton. Utile pour l'alignement de plusieurs objets. (à saisir suivant résolution écran)</td>
</tr>
<tr class="row-36">
	<td class="column-1">y</td><td class="column-2">Coordonnées en ordonnées de positionnement du bouton. Utile pour l'alignement de plusieurs objets. (à saisir suivant résolution écran)</td>
</tr>
<tr class="row-37">
	<td class="column-1">w</td><td class="column-2">Largeur du bouton. (à saisir).</td>
</tr>
<tr class="row-38">
	<td class="column-1">h</td><td class="column-2">Hauteur du bouton. (à saisir).</td>
</tr>
<tr class="row-39">
	<td class="column-1">tim</td><td class="column-2">Défini le temps d'activation en ms.<br />
50 à 65535.</td>
</tr>
<tr class="row-40">
	<td class="column-1">en</td><td class="column-2">Activation du "timer"<br />
0 = Désactivé, 1 = Activé</td>
</tr>
<tr class="row-41">
	<td class="column-1">gdw</td><td class="column-2">Largeur de la grille.<br />
0 = Aucune.</td>
</tr>
<tr class="row-42">
	<td class="column-1">gdh</td><td class="column-2">Hauteur de la grille.<br />
0 = Aucune.</td>
</tr>
<tr class="row-43">
	<td class="column-1">ch</td><td class="column-2">Nombre de canaux d'affichages.<br />
Mini 1, maxi 4.<br />
</td>
</tr>
<tr class="row-44">
	<td class="column-1"></td><td class="column-2"></td>
</tr>
</tbody>
</table>




<p>Quant à vous, <em><a href="https://plaisirarduino.fr/telechargement/"><strong><span class="has-inline-color has-vivid-cyan-blue-color">Téléchargez</span></strong></a> </em>l'exemple <em><span class="has-inline-color has-vivid-cyan-blue-color"><span style="text-decoration: underline;">"Tuto NEXTION Éditeur"</span></span></em> dans la rubrique "Download" et amusez vous avec les bases de ce tutoriel pour créer vos projet et découvrir les autres composants !!<br>Rejoignez nous aussi sur le projet <span class="has-inline-color has-vivid-cyan-blue-color"><span style="text-decoration: underline;"><em>"Clavier NEXTION"</em></span></span> et élargissez vos compétences pour optimiser vos projets. <br><br>Encore une fois, <strong>merci de votre lecture</strong>.</p>



<p class="has-text-align-center"><strong><em><a href="https://plaisirarduino.fr/" target="_blank" rel="noreferrer noopener"><span class="has-inline-color has-vivid-cyan-blue-color"><span style="text-decoration: underline;">PlaisirArduino.fr</span></span></a></em></strong></p>



<p class="has-text-align-center" id="h-fin-1"><strong><a href="https://plaisirarduino.fr/"><em><span class="has-inline-color has-vivid-cyan-blue-color"><span style="text-decoration: underline;">FIN</span></span></em></a></strong></p>
<p>Cet article <a href="https://plaisirarduino.fr/nextion-ecran-tactile-editeur/">NEXTION EDITOR l&rsquo;éditeur pour écran tactile.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WEB ET ARDUINO</title>
		<link>https://plaisirarduino.fr/web-et-arduino/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Sun, 12 May 2019 20:44:08 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=3991</guid>

					<description><![CDATA[<p>Le broker qu’est-ce que c’est ? Pour faire interagir la platine arduino et le web nous utilisons un broker. Son rôle est de distribuer les messages aux ensembles des objets IOT connectés.&#160; Lorsque l’objet IOT a souscrit à un topic, il va recevoir tous les messages de celui - ci. &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/web-et-arduino/">WEB ET ARDUINO</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Web et arduino" width="660" height="371" src="https://www.youtube.com/embed/Xp_8vsn8wUg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Le broker qu’est-ce que c’est ?</h2>



<p>Pour faire interagir la platine arduino et le web nous utilisons un broker. Son rôle est de distribuer les messages aux ensembles des objets IOT connectés.&nbsp;</p>



<p>Lorsque l’objet IOT a souscrit à un topic, il va recevoir tous les messages de celui - ci. Quand il publie un message tous les objets abonnés à son topic le reçoivent.</p>



<p>Exemple: &nbsp;</p>



<img decoding="async" width="100%" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/gif-animé-1-à-8-1.gif" alt="Animation brocker vers IOT">



<img decoding="async" width="100%" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/gif-animé-9a15.gif" alt="Animation vers broker IOT topic">



<p>Pour interagir avec les différents objets, le broker utilise  le protocole MQTT. Vous n’avez pas besoin de rentrer dans la technique pour utiliser celui-ci.&nbsp;</p>



<p>Il existe plusieurs brokers, en principe nous pouvons avoir besoin d’un broker local ou accessible par internet.&nbsp;</p>



<p>J’ai testé le broker Mosquitto en local sur une platine rasberryPi qui remplie efficacement son rôle.</p>



<p>Pour ne pas vous faire acheter du matériel supplémentaire, j’ai choisi le brocker <a href="http://shiftr.io">shiftr.io</a> sur internet car il est facile à installer et la documentation remplie les exigences du projet que je souhaite réaliser.&nbsp;</p>



<h2 class="wp-block-heading">Etape 1: Mise en place du Broker</h2>



<ul class="wp-block-list"><li>Créer un compte sur <a href="http://shiftr.io">shiftr.io</a>&nbsp;</li><li>Créer le broker&nbsp;</li><li>Modifier le token avec pour paramètre l’identifiant et le mot de passe.</li></ul>



<p>Ces démarches sont rapides, pour ceux qui auraient des difficultés, je vous renvoie sur la vidéo Web et arduino ci-dessus.</p>



<h2 class="wp-block-heading">Etape 2: Test  avec la platine Arduino</h2>



<p>Dans un premier temps, je vous invite à installer la librairie MQTT de Joel Gaehwiller</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Libraire-MQTT.png" alt="Libraire MQTT" class="wp-image-4004" width="578" height="70" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Libraire-MQTT.png 482w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Libraire-MQTT-300x36.png 300w" sizes="auto, (max-width: 578px) 100vw, 578px" /></figure>



<p>Ensuite lancer l’exemple&nbsp;</p>



<p>- Fichier/EXEMPLE / MQTT / ArduinoEthernetShield</p>



<p>- Modifier les paramètres de connexion au broker dans la fonction Connect ligne 23 avec votre identifiant et votre mot de passe du token</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="945" height="141" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr.png" alt="" class="wp-image-3994" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr.png 945w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr-300x45.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr-768x115.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr-700x104.png 700w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p>- Téléverser le programme et vérifier que le broker reçoit l’information </p>



<p>«&nbsp;World&nbsp;»&nbsp; sous le topic «&nbsp;Hello&nbsp;».</p>



<p>A partir de là, la platine arduino et le broker sont opérationnels.</p>



<h2 class="wp-block-heading">Etape 3: Le Web&nbsp;</h2>



<p>Dans la documentation de <a href="http://shiftr.io">shiftr.io</a> vous y touverez le code source de base pour interagir avec le broker et le navigateur.&nbsp;</p>



<ul class="wp-block-list"><li>&nbsp;Créer un dossier dans lequel vous allez y mettre trois fichiers: index.html, script.js et style.css</li><li>Prenez le code de la documentation sous exemple browser et faites un copier/coller dans les différents fichiers.</li><li>Tester l’envoi du message lorsque vous appuyez sur le bouton</li></ul>



<h2 style="text-align:center" class="red wp-block-heading"> ARDUINO ET WEB</h2>



<p>Présentation&nbsp;</p>



<p>Il s'agit d’allumer des diodes aux travers du navigateur, recevoir le retour d’un potentiomètre et d’agir avec un bouton poussoir sur la platine arduino.</p>



<p>Le broker étant opérationnel, nous n’agirons plus sur celui-ci.</p>



<p style="text-align:center"> Index.html</p>



<p>L’objectif est d’afficher deux boutons pour commander des diodes et un retour potentiomètre.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="898" height="408" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index.png" alt="fichier index html" class="wp-image-3995" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index.png 898w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index-300x136.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index-768x349.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index-700x318.png 700w" sizes="auto, (max-width: 898px) 100vw, 898px" /></figure>



<p style="text-align:center">Style.css</p>



<p>Le fichier style.css permet de donner des paramètres d’affichage de la page index.html</p>



<p style="text-align:center">Script.js</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="760" height="952" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/code-javascript.png" alt="script javascript" class="wp-image-3993" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/code-javascript.png 760w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/code-javascript-239x300.png 239w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/code-javascript-700x877.png 700w" sizes="auto, (max-width: 760px) 100vw, 760px" /></figure>



<p>Script permet de modifier et d'actualiser la page index.html, son langage est le javascript. &nbsp;</p>



<p>Le javascript a la particularité de modifier la page Web,  même après son téléchargement celui-ci est interprété par le navigateur. &nbsp;</p>



<p>Le premier élément, c’est la connexion au broker ligne 4, il faut renseigner ses identifiants de token</p>



<p>Le second élément: lignes 10 et 11 permettent de souscrire aux différents Topic.&nbsp;</p>



<p>Le troisième élément: lignes 15 à 69 modifient le contenu des balises ou leurs styles en fonction des&nbsp; messages reçus .</p>



<p>Exemple&nbsp;</p>



<p class="has-text-color has-vivid-cyan-blue-color">	document.getElementById('led7').innerHTML = ‘ON';</p>



<p>Modifie le contenue de la balise qui porte l’identifiant «&nbsp;led7&nbsp;» dans la page index.html par «&nbsp;ON&nbsp;».</p>



<p class="has-text-color has-vivid-cyan-blue-color">&nbsp;document.getElementById("led7").style.backgroundColor="green";</p>



<p>Modifie le style backgroundColor de la balise qui porte l’identifiant «&nbsp;led7&nbsp;» dans la page index.html.</p>



<p>Le dernier élément: ligne 71 à ligne 76 permettent de publier des messages au broker au click de bouton.&nbsp;</p>



<p>Lorsque le bouton est appuyé le message est traité par la fonction de traitement des messages : lignes 15 à 69.</p>



<h2 class="wp-block-heading">Code source arduino</h2>



<p>Le programme est fourni gratuitement en téléchargement <a href="https://plaisirarduino.fr/telechargement">https://plaisirarduino.fr/telechargement</a> &nbsp;</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="418" height="283" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/variable.png" alt="" class="wp-image-4003" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/variable.png 418w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/variable-300x203.png 300w" sizes="auto, (max-width: 418px) 100vw, 418px" /></figure>



<p>Déclaration des variables pour les entrées / sorties de la commande des diodes et des différentes temporisations.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="757" height="300" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/conexion-et-topic.png" alt="Paramettre token" class="wp-image-3998" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/conexion-et-topic.png 757w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/conexion-et-topic-300x119.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/conexion-et-topic-700x277.png 700w" sizes="auto, (max-width: 757px) 100vw, 757px" /></figure>



<ul class="wp-block-list"><li>Connexion avec les identifiants et mot de passe du token</li><li>Souscription aux Topic</li></ul>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="555" height="431" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/message-recieved.png" alt="Fonction received" class="wp-image-4000" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/message-recieved.png 555w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/message-recieved-300x233.png 300w" sizes="auto, (max-width: 555px) 100vw, 555px" /></figure>



<p>La fonction messageReceived traite toutes les interactions des messages reçus par le broker, elle a pour rôle de commander l’état des différentes diodes.</p>



<p>Dans cet exemple, lorsque la platine reçoit le message 9$Led7, elle met la diode 7 à HIGH</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="587" height="290" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/setup.png" alt="setup arduino" class="wp-image-4002" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/setup.png 587w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/setup-300x148.png 300w" sizes="auto, (max-width: 587px) 100vw, 587px" /></figure>



<p>Le setup initialise les entrées / sorties et les différents paramètres nécessaires</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="608" height="442" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/poop-1.png" alt="loop partir une" class="wp-image-4001" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/poop-1.png 608w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/poop-1-300x218.png 300w" sizes="auto, (max-width: 608px) 100vw, 608px" /></figure>



<p>La première partie de la fonction Loop renvoie toutes les 5 secondes les paramètres des diodes et ceux du potentiomètre en publiant leurs valeurs.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="909" height="593" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2.png" alt="loop deux" class="wp-image-3999" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2.png 909w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2-300x196.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2-768x501.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2-700x457.png 700w" sizes="auto, (max-width: 909px) 100vw, 909px" /></figure>



<p>La seconde partie de loop renvoie les valeurs du potentiomètre, seulement quand celui-ci change de valeur.</p>



<p>Et enfin le traitement du bouton poussoir  publie la commande de la diode 7 lorsque celui-ci est appuyé.&nbsp;</p>
<p>Cet article <a href="https://plaisirarduino.fr/web-et-arduino/">WEB ET ARDUINO</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MENU LCD PAR POTENTIOMÈTRE</title>
		<link>https://plaisirarduino.fr/menu-lcd-saisi-potentiometre/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Sun, 10 Mar 2019 19:21:02 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=2938</guid>

					<description><![CDATA[<p>Pour faire suite à vos observations sur la disponibilité limité de broches exploitables (1) du projet exemple "LCD_MENU ARDUINO" . Voici un en réponse à vos attentes un projet exemple qui libèrera deux entrées dans vos projets. Il est vrai que l'exploitation d'un afficheur LCD 8bit est gourmand en brochages. &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/menu-lcd-saisi-potentiometre/">MENU LCD PAR POTENTIOMÈTRE</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Pour faire suite à vos observations sur la disponibilité limité de broches exploitables (1) du projet exemple <strong><em>"</em><a href="https://plaisirarduino.fr/cree-un-menu-sur-lcd-avec-arduino/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;"><em>LCD_M</em><em>ENU ARDUINO</em></span></span></a><em>" </em></strong>. Voici un en réponse à vos attentes un projet exemple qui libèrera deux entrées dans vos projets.</p>
<p><figure id="attachment_2266" aria-describedby="caption-attachment-2266" style="width: 1054px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="wp-image-2266 size-full" title="Afficheur LCD." src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min.png" alt="" width="1054" height="468" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min.png 1054w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-300x133.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-768x341.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-1024x455.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-700x311.png 700w" sizes="auto, (max-width: 1054px) 100vw, 1054px" /><figcaption id="caption-attachment-2266" class="wp-caption-text">Afficheur LCD.</figcaption></figure></p>
<p>Il est vrai que l'exploitation d'un afficheur LCD 8bit est gourmand en brochages.<br />
Ainsi le but de ce projet est de<strong> récupérer deux entrées supplémentaires, en supprimant les</strong> <strong>boutons PLUS (+) et MOINS (-), en les remplaçant par un POTENTIOMÈTRE.</strong></p>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">Le matériel</span></strong></h4>
<ul>
<li>Carte Arduino UNO.</li>
<li>Un afficheur LCD. 16X2.</li>
<li>Deux (2) LED -Rouge -Vert.</li>
<li>Trois (3) résistances de charge de 220 ohm.(pour les boutons hors pull_up).</li>
<li>1 bouton poussoir.</li>
<li>Un potentiomètre de 10k ohm pour l'écran LCD.</li>
<li>Un potentiomètre de 10k ohm pour l'évolution dans le MENU.</li>
</ul>
<p><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;">LE SCHÉMA DES BRANCHEMENTS.</span></span></strong></p>
<p><figure id="attachment_2951" aria-describedby="caption-attachment-2951" style="width: 1031px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2951 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma.png" alt="" width="1031" height="625" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma.png 1031w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma-300x182.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma-768x466.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma-1024x621.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma-700x424.png 700w" sizes="auto, (max-width: 1031px) 100vw, 1031px" /><figcaption id="caption-attachment-2951" class="wp-caption-text">Schéma des branchements.</figcaption></figure></p>
<h4><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;">Étude de projet.</span></span></strong></h4>
<p>Toutefois grâce aux précédents projets <span style="text-decoration: underline;"><strong><span style="color: #33cccc; text-decoration: underline;"><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/thermostat-temperature-arduino/">Menu_Thermostat</a></span></strong></span> et&nbsp; <a href="https://plaisirarduino.fr/cree-un-menu-sur-lcd-avec-arduino/"><span style="text-decoration: underline;"><strong><span style="color: #33cccc; text-decoration: underline;">Menu_LCD_commande_LED</span></strong></span></a> nous avons vu comment piloter un projet à l'aide d'un MENU et d'un clavier à boutons.</p>
<p>En effet, &nbsp;vous avez sûrement constaté que l'exploitation d'un <strong>afficheur LCD</strong>&nbsp;(8 ou 4 bits)<strong> utilise déjà 6 entrées au minimum.</strong><br />
De surcroît pour naviguer dans le menu il nous faut <strong>trois (3) boutons minimum pour l'exploitation du menu</strong> PLUS, MOINS et ENTRÉE.<br />
En somme cela nous fait un total de neuf (9) entrées exploitées rien que pour notre interface.<br />
Ce qui par conséquent mise à part les broches zéro (0) et un (1) <strong>ne laisse plus qu'une broche d'</strong> <a href="https://plaisirarduino.fr/les-entrees-sortie-de-la-platine-arduino/"><span style="text-decoration: underline; color: #33cccc;">entrée/sortie</span></a> <strong>exploitable</strong>.<br />
Suivant le schéma des projets précédents; la broche treize (13).</p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">Évolution du menu par potentiomètre.</span></strong></span></h4>
<p>Il faut donc repenser la sélection des fenêtres et la saisie des paramètres dans le menu. Nous utiliserons donc <strong>la valeur de retour d'un potentiomètre&nbsp;</strong> pour incrémenter les fenêtres et la valeur de saisie.</p>
<p>Pour commencer&nbsp; nous faisons <a href="https://plaisirarduino.fr/signaux-dentrees-et-sortie-analogique/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">l'acquisition</span></span></a> du potentiomètre en divisant par cent sa valeur pour <strong>obtenir stabilité en butée du potentiomètre et une valeur de 0 à 10.</strong></p>
<p>Ensuite pour la <strong>sélection des fenêtres,</strong> nous<strong> ajustons la mesure&nbsp;traité avec le nombre des repères de fenêtres</strong> par une mise en butée de un (1) à six(6).<br />
Enfin pour <strong>la saisie</strong> nous <strong>ajustons la mesure traité</strong> par une mise en butée de un (1) à neuf(9) pour la<strong> valeur de chaque chiffre de saisie.</strong></p>
<p><img loading="lazy" decoding="async" class="wp-image-3595 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition.png" alt="" width="694" height="177" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition.png 798w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition-300x77.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition-768x196.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition-700x179.png 700w" sizes="auto, (max-width: 694px) 100vw, 694px" /></p>
<p>Étant donné que <strong>la sélection et la saisie n'utilisent pas les mêmes valeurs,&nbsp;</strong>il va donc falloir <strong>deux variables distinctes</strong> pour chacune de ces deux étapes.</p>
<h4><span style="text-decoration: underline; color: #0000ff;"><strong>La sélection des fenêtres.</strong></span></h4>
<p>Tout d'abord, la sélection des fenêtres s’effectuera suivant le principe du projet <span style="text-decoration: underline;"><strong><span style="color: #33cccc; text-decoration: underline;"><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/cree-un-menu-sur-lcd-avec-arduino/">Menu_LCD_commande_LED</a></span></strong></span> et sur l'incrémentation de la <strong>variable de "selection"</strong>.</p>
<h4><span style="color: #0000ff;"><strong><span style="text-decoration: underline;">La saisie des données de paramètres.</span></strong></span></h4>
<p>La saisie des valeurs de paramètres s’effectue comme pour le projet cité ci-dessus avec l'incrémentation de la <strong>variable "incremente".<br />
</strong></p>
<p>Toutefois par la suppression du bouton MOINS "-" il n'est <strong>plus possible de sortir du mode de saisi</strong> <strong>sans</strong> <strong>avoir validé une valeur.</strong><br />
Afin de ne pas valider une saisi erroné ou non souhaité nous créons<strong> une fenêtre pour confirmer la saisi.<br />
</strong></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-3596 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation.png" alt="" width="957" height="228" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation.png 957w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation-300x71.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation-768x183.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation-700x167.png 700w" sizes="auto, (max-width: 957px) 100vw, 957px" /></p>
<h4><span style="text-decoration: underline; color: #0000ff;"><strong>Ce qui change dans la structure.</strong></span></h4>
<p><strong>l’aspect le plus important de cet exemple est que la structure du menu restent sensiblement les mêmes</strong> que les projets précédents.<br />
Néanmoins nous <strong>avons ajouté une fenêtre de retour</strong> sur laquelle un appui sur le bouton ENTRÉE permet un <strong>retour à la fenêtre de lecture.</strong></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-3570 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour.png" alt="" width="851" height="205" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour.png 851w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour-300x72.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour-768x185.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour-700x169.png 700w" sizes="auto, (max-width: 851px) 100vw, 851px" /></p>
<p>Finalement la principale chose qui change est dans le fait que <strong>le menu conserve l'état de sélection actuel en fonction de la position du potentiomètre.</strong><br />
Malgré cela, au bout du compte, nous y gagnons deux entrées supplémentaires !</p>
<h5 style="text-align: center;"><strong><span style="color: #0000ff;">FIN.</span></strong></h5>
<p><em>En définitif, &nbsp;vous avez là un outil d’exploitation compatible avec des projets exploitant un écran</em> <a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><span style="text-decoration: underline;"><strong><span style="color: #33cccc; text-decoration: underline;">LCD</span></strong></span>.</a><em><br />
</em><em>Vous pouvez à présent <strong>créer votre propre menu et opérer une saisie de données à transmettre à votre système.</strong> Explorez et amusez-vous à l’adapter à vos projets.</em></p>
<p><em><strong>En téléchargeant le sketch « <a href="https://plaisirarduino.fr/telechargement/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">MENU_LCD_SAISI_POTAR</span></span></a></strong> <strong>» vous découvrirez sans difficultés sa construction ainsi que ses différentes</strong> <a href="https://plaisirarduino.fr/les-fonctions/"><strong><span style="color: #33cccc;">fonctions.</span></strong></a> Ces fonctions ne contiennent aucune particularité que nous n’ayons pas abordé jusque là, voici donc pourquoi nous ne les détaillerons pas.</em></p>
<h2 style="text-align: center;"><strong>MERCI.</strong></h2>
<h4 style="text-align: center;"><em><strong><a href="https://plaisirarduino.fr/">Plaisir Arduino.fr</a></strong></em></h4>
<p>Cet article <a href="https://plaisirarduino.fr/menu-lcd-saisi-potentiometre/">MENU LCD PAR POTENTIOMÈTRE</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Comment piloter depuis le moniteur Aduino ?</title>
		<link>https://plaisirarduino.fr/moniteur-serie-2/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Sun, 20 Jan 2019 04:56:24 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=1067</guid>

					<description><![CDATA[<p>Les buts de ce projet est: De piloter et faire varier l'intensité lumineuse de trois LED en envoyant des données depuis le moniteur série. Connaître d'autres méthodes d'exploitation du moniteur série. Avoir la possibilité d'ajuster des variables en temps réel dans son projet sans téléverser. Avant tout, nous allons avoir &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/moniteur-serie-2/">Comment piloter depuis le moniteur Aduino ?</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3 style="text-align: left;"><span style="text-decoration: underline;">Les buts de ce projet est:</span></h3>
<ul>
<li>De <strong>piloter</strong> et faire varier l'intensité lumineuse de trois LED <strong>en </strong>envoyant des données<strong> depuis le moniteur série</strong>.</li>
<li>Connaître d'<strong>autres méthodes d'exploitation du moniteur série</strong>.</li>
<li>Avoir la possibilité <strong>d'ajuster des variables en temps réel </strong>dans son projet<strong> sans téléverser</strong>.</li>
</ul>
<p style="text-align: left;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-materiel.png"><img loading="lazy" decoding="async" class=" wp-image-1092 alignleft" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-materiel-107x150.png" alt="Mointeur série pilote materiel" width="160" height="224" /><strong><span style="color: #000000;">Avant tout, nous allons avoir besoin de:</span></strong></a></p>
<ul>
<li><span style="color: #000000;">Trois diodes électroluminescentes (rouge)</span></li>
<li><span style="color: #000000;">Trois résistances de 220 ohms.</span></li>
</ul>
<p><span style="color: #000000;">Nous brancherons nos diodes aux broches </span><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-materiel.png">PWM</a> repérées  <strong>"~"</strong> et prévues pour l’exploitation du signal en MLI.</p>
<h6><span style="text-decoration: underline;">Notre schéma de branchements.</span></h6>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma.png"><img loading="lazy" decoding="async" class="alignnone wp-image-1097 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma.png" alt="Mointeur série pilote schéma" width="794" height="527" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma.png 794w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma-300x199.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma-700x465.png 700w" sizes="auto, (max-width: 794px) 100vw, 794px" /></a></p>
<h3 style="text-align: center;"><strong><span style="text-decoration: underline; color: #0000ff;">Comment piloter nos équipements ?</span></strong></h3>
<p>En premier lieu, il nous faut <strong>sélectionner la LED</strong> que l'on souhaite piloter. Dans notre cas la led1, led2 ou led3.<br />Puis, il lui <strong>appliquer une valeur</strong> de pilotage allant de 0 à 255.</p>
<p>Par conséquent, cela nous fait <strong>deux</strong> <strong>étapes</strong>. C'est-à-dire la <strong>sélection </strong>et le<strong> pilotage</strong>.</p>
<p>Afin de réaliser ces deux étapes, plus précisément, nous utilisons <strong>des méthodes de la classe <span style="color: #ff6600;">Serial</span>. </strong></p>
<p>De sorte que la <strong>sélection</strong> des LED soit <strong>claire et simple,</strong> nous utiliserons des <strong>mots clés</strong> propre à chacune d'elles. Soit <span style="color: #000000;"><strong>led1, led2 et led3.<br /></strong>Le <strong>pilotage</strong> étant, lui, sur une <strong>base numérique.</strong><br /></span></p>
<p>De toute évidence, nous avons<strong> deux types de données à traiter</strong>.<br />Une première de <strong>type alphabétiques</strong> <strong><span style="color: #33cccc;">String</span> </strong>et la suivante de <strong>type numériques</strong> <strong><span style="color: #33cccc;">int</span></strong> "Integer" ou <strong><span style="color: #33cccc;">byte</span></strong><span style="color: #33cccc;"><span style="color: #000000;"> "byte"</span></span>.<br />Par conséquent, cela nous fait <strong>deux étapes d'acquisition. La première pour le mot clé et la seconde pour la valeur de pilotage.</strong></p>
<h3 style="text-align: center;"><span style="text-decoration: underline; color: #0000ff;"><strong>Le programme.</strong></span></h3>
<p style="text-align: justify;">Tout d’abord, le moniteur affiche un <strong>message d'ouverture et d'informations</strong> puis les diodes s'allument en test.  Les <strong>déclarations et configurations sont donc faites</strong>.</p>
<p>Tout est prêt pour commencer la programmation.</p>
<h5 style="text-align: justify;"><span style="color: #0000ff;"><span style="text-decoration: underline;"><strong>Premièrement:</strong></span>  L'acquisition des données séries.</span></h5>
<p>Commençons par la <strong>première donnée utile </strong>qui est un <strong>mot clé envoyé</strong> depuis le moniteur.</p>
<p style="text-align: left;">Tout d'abord, avec la méthode <span style="color: #ff6600;"><strong>Serial</strong></span>.<strong><span style="color: #ff6600;">available</span>();</strong> nous savons<strong> recevoir des données</strong> <strong> pour les lire.-</strong><strong><br /></strong>Mais contrairement au <strong><span style="color: #008080;"><a style="color: #008080;" href="https://plaisirarduino.fr/moniteur-serie/">tutoriel "Moniteur série"</a></span></strong>, <strong>pour les mots clés</strong>, nous utilisons la méthode <strong><span style="color: #ff6600;">Serial</span>.<span style="color: #ff6600;">readString</span>(); </strong>afin de lire le buffer sans avoir à recomposer les données de type <span style="color: #33cccc;"><strong>String</strong>.<span style="color: #000000;"><br /></span></span></p>
<p style="text-align: left;"><span style="color: #ff0000;"><img loading="lazy" decoding="async" class=" wp-image-3515 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/03-Mointeur-série-pilote-acquisition.png" alt="" width="832" height="109" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/03-Mointeur-série-pilote-acquisition.png 548w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/03-Mointeur-série-pilote-acquisition-300x39.png 300w" sizes="auto, (max-width: 832px) 100vw, 832px" /></span></p>
<p style="text-align: left;"><span style="color: #0000ff;"><strong><span style="text-decoration: underline;">Deuxièmement</span>:</strong>  Le traitement des données séries reçu.</span></p>
<p><strong><span style="text-decoration: underline;">le mot clé.</span><br /></strong>Ensuite il va falloir <strong>reconnaître le mot clé envoyé</strong> depuis le moniteur série<strong> par rapport aux mots clés</strong> <strong>prédéfinis</strong> <strong>dans un</strong> <strong><span style="color: #008080;"><a style="color: #008080;" href="https://plaisirarduino.fr/tableau-de-donnees/">tableau</a></span></strong> de type <strong><span style="color: #33cccc;">String</span></strong>.</p>
<p><span style="color: #ff0000;"><img loading="lazy" decoding="async" class="size-full wp-image-3516 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/04-Mointeur-série-pilote-tableau-mots-clés.png" alt="" width="579" height="18" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/04-Mointeur-série-pilote-tableau-mots-clés.png 579w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/04-Mointeur-série-pilote-tableau-mots-clés-300x9.png 300w" sizes="auto, (max-width: 579px) 100vw, 579px" /></span></p>
<p>De la même manière que pour deux variables, il vous suffira, dans une condition d'exécution <span style="color: #808000;"><strong>if</strong></span>(), de réaliser une <strong>comparaison de la donnée série par rapport aux mots clés du tableau.</strong></p>
<p>En outre, de la condition exécution l'utilisation d'une boucle <span style="color: #808000;"><strong>for</strong></span>() est utile pour <strong>scruter le tableau et </strong><strong>comparer la donnée</strong><strong> reçue.</strong></p>
<p>Puis une  fois la condition d'exécution vrai, on <strong>valide la donnée </strong> et on stoppe la boucle de scan par un <span style="color: #808000;"><strong>break</strong><span style="color: #000000;">.</span></span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-3524 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/05-Mointeur-série-pilote-scan-tableau.png" alt="" width="751" height="204" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/05-Mointeur-série-pilote-scan-tableau.png 751w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/05-Mointeur-série-pilote-scan-tableau-300x81.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/05-Mointeur-série-pilote-scan-tableau-700x190.png 700w" sizes="auto, (max-width: 751px) 100vw, 751px" /></p>
<p><span style="text-decoration: underline;"><strong>Les données de pilotage.</strong></span></p>
<p>Finalement, nous utilisons la<strong> donnée de pilotage  </strong>afin de sécuriser les systèmes.<br />Dans une condition d'exécution, nous <strong>contrôlons la donnée</strong> reçue pour interdire l'envoi d'une valeur de pilotage, aberrante.</p>
<p>Aussi pour les <strong>données de pilotages</strong> de type <span style="color: #33cccc;"><strong>int, </strong></span>nous utilisons la méthode <strong><span style="color: #ff6600;">Serial</span>.<span style="color: #ff6600;">parseInt</span>();</strong> qui permet de réaliser la lecture des données séries numériques et de les convertir en type <span style="color: #33cccc;"><strong>int</strong></span>.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-3518 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/06-Mointeur-série-pilote-acquision-donnée.png" alt="" width="731" height="207" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/06-Mointeur-série-pilote-acquision-donnée.png 731w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/06-Mointeur-série-pilote-acquision-donnée-300x85.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/06-Mointeur-série-pilote-acquision-donnée-700x198.png 700w" sizes="auto, (max-width: 731px) 100vw, 731px" /></p>
<h5><span style="color: #0000ff;"><strong><span style="text-decoration: underline;">Troisièmement</span>:</strong> L'exécution du programme.</span></h5>
<p>En ce qui concerne l'exécution programme. Comme nous l'avons vu plus haut -Comment piloter nos équipements ?- il y a <strong>deux étapes à réaliser</strong>. Afin d'exécuter nos <strong>deux modes d'acquisition, </strong>nous utilisons <span style="color: #808000;"><strong>switch</strong></span>() et une <strong>variable de transition "etape"</strong> permettant le passage d'une étape à l'autre.</p>
<h5><span style="color: #0000ff;"><strong><span style="text-decoration: underline;">Quatrièmement</span>:</strong> Le paramétrage du moniteur.</span></h5>
<p style="text-align: justify;">Comme vu lors du <span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;"><strong><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/moniteur-serie/"><span style="color: #008080; text-decoration: underline;">tutoriel "Moniteur série"</span></a></strong></span></span>, il ne faut pas oublier que, les données sont traitées sur <strong>la présence ou l'absence de saut de ligne et des retours chariot.</strong><br />N'oublions donc pas de paramétrer le moniteur en mode <strong>« Pas de fin de ligne » .</strong><br />Nous pouvons à présent tester le programme et envoyer des valeurs.</p>
<p><span style="color: #ff0000;"> <img loading="lazy" decoding="async" class="size-full wp-image-3519 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/07-Mointeur-série-pilote-affichage-base.png" alt="" width="548" height="365" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/07-Mointeur-série-pilote-affichage-base.png 548w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/07-Mointeur-série-pilote-affichage-base-300x200.png 300w" sizes="auto, (max-width: 548px) 100vw, 548px" /></span></p>
<p style="text-align: justify;">Grâce à <strong> ce programme en exemple, il vous est possible</strong> de modifier est de <strong>piloter en temps réel sans</strong> avoir à continuellement <strong>téléverser</strong>.<br />Ainsi, vous <strong>interagissez directement avec le système de votre projet.</strong> Cela est très utile<strong> pour des phases de tests et d'ajustements de projet</strong>. Amusez vous à l'intégrer à vos projets.</p>
<p>Vous découvrirez au fur et à mesure de votre progression qu'il existe d'autres méthodes pratiques pour exploiter le moniteur série.</p>
<p style="text-align: justify;">Pour conclure, <span style="color: #008080;"><strong><a style="color: #008080;" href="https://plaisirarduino.fr/telechargement/">téléchargez</a></strong></span> le programme "Moniteur_serie_pilote" <strong>amusez vous à l'intégrer à vos projets</strong>. Encore une fois, <span style="color: #0000ff;"><strong>merci de votre lecture</strong></span>.</p>
<p style="text-align: center;"><strong><a href="https://plaisirarduino.fr/"><em><span style="text-decoration: underline; color: #008080;">Plaisir Arduino.</span></em></a></strong></p>


<p></p>
<p>Cet article <a href="https://plaisirarduino.fr/moniteur-serie-2/">Comment piloter depuis le moniteur Aduino ?</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RFID avec Arduino</title>
		<link>https://plaisirarduino.fr/rfid-avec-arduino/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Wed, 25 Jul 2018 17:13:25 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=2998</guid>

					<description><![CDATA[<p>Le module RFID RC522 Principe de fonctionnement Ce cours a pour objectif d'appréhender le module RFID. Le téléchargement du code source vous permettra de mettre en application la modification de chaque block. Le module RFID détecte des badges ou des cartes magnétiques à moins de 10 cm. Le passage d’un &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/rfid-avec-arduino/">RFID avec Arduino</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 style="text-align: center;"><span style="color: #0000ff;"><b>Le module RFID RC522</b></span></h1>
<p style="text-align: center;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID.jpg"><img loading="lazy" decoding="async" class="wp-image-3010 alignnone" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID.jpg" alt="Photo module RFID" width="227" height="170" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID.jpg 3264w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID-300x225.jpg 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID-768x576.jpg 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID-1024x768.jpg 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID-700x525.jpg 700w" sizes="auto, (max-width: 227px) 100vw, 227px" /></a></p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/20rEFd5he1s" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h2>Principe de fonctionnement</h2>
<p >Ce cours a pour objectif d'appréhender le module RFID. Le téléchargement du code source vous permettra de mettre en application la modification de chaque block.</p>
<p>Le module RFID détecte des badges ou des cartes magnétiques à moins de 10 cm. Le passage d’un composant magnétique permet de lire l’identifiant de l'UID de la carte, ainsi que les données enregistrées.</p>
<p>Par principe, chaque carte RFID dispose de son propre UID.</p>
<p>De plus, les cartes ou tags répondent à une fréquence. Les tags, les plus répandus, sont à une fréquence de 13,56Mhz.</p>
<p>Le contenu est divisé en plusieurs secteurs, subdivisé en block et encore en données.</p>
<p>Certaines cartes disposent du block 0 verrouillé, c’est-à-dire non modifiable. Celui-ci contient essentiellement l’identifiant unique "UID".<span class="Apple-converted-space"> </span></p>
<p>Sur le marché, vous pouvez avoir des cartes dont le cluster UID est modifiable. Dans le cadre de ce tutoriel, j’utilise des cartes dont l’UID est modifiable à 13,56Mhz et d’une capacité mémoire de 1 Ko.
</p>
<h2>Schéma du module RFID RC522</h2>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid.png"><img loading="lazy" decoding="async" class="size-full wp-image-2999 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid.png" alt="Schéma RFID" width="1024" height="768" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid-300x225.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid-768x576.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid-700x525.png 700w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Le montage du module RFID se compose de 7 fils :</p>
<ul>
<li>RST/Reset <span class="Apple-converted-space">  </span>RST <span class="Apple-converted-space">      </span>—&gt; <span class="Apple-converted-space">  </span>Pin 9 Arduino</li>
<li>SPI SS<span class="Apple-converted-space">      </span>SDA(SS)<span class="Apple-converted-space">  </span>—&gt;<span class="Apple-converted-space">    </span>Pin 10 Arduino</li>
<li>SPI MOSI<span class="Apple-converted-space">    </span>MOSI<span class="Apple-converted-space">      </span>—&gt;<span class="Apple-converted-space">  </span>Pin 11 Arduino</li>
<li>SPI MISO<span class="Apple-converted-space">    </span>MISO <span class="Apple-converted-space">    </span>—&gt;<span class="Apple-converted-space">    </span>Pin 12 Arduino</li>
<li>SPI SCK <span class="Apple-converted-space">    </span>SCK<span class="Apple-converted-space">      </span>—&gt;<span class="Apple-converted-space">    </span>Pin 13 Arduino</li>
<li>GND<span class="Apple-converted-space"> </span></li>
<li>VCC 3,3V !Attention pas 5V</li>
</ul>
<h2>Lire le contenu d’un module RFID</h2>
<p>Maintenant que nous avons vu à quoi ressemble le contenu d’un tag RFID,  passons à la pratique.</p>
<p>Premièrement, ajoutons la librairie MFRC522<span class="Apple-converted-space"> </span></p>
<p>A ce stade, les exemples de la librairie MFRC52  permettent de lire et d’écrire (attention !!! le fait d’approcher votre carte du module en écriture modifie les informations contenues dans le tag et la rend inutilisable) .<span class="Apple-converted-space"> </span></p>
<p>Voyons le résultat de l’exemple « dump info » qui est sans danger.</p>
<p>Exemple dump info:</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/tableau_rfid.png"><img loading="lazy" decoding="async" class="size-full wp-image-3000 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/tableau_rfid.png" alt="Dump RFID" width="455" height="948" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/tableau_rfid.png 455w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/tableau_rfid-144x300.png 144w" sizes="auto, (max-width: 455px) 100vw, 455px" /></a></p>
<p><span class="Apple-converted-space">    </span></p>
<p>Cet exemple nous donne toutes les informations de notre carte RFID . On y trouve la capacité mémoire, l’UID, les secteurs, les adresses et les données.</p>
<p>Vous constaterez que les données sont sous formes hexadécimales, c’est un langage<span class="Apple-converted-space">  </span>machine qui nous est incompréhensible au premier abord.</p>
<h2>Ecrire du contenu<span class="Apple-converted-space"> dans le module RFID</span></h2>
<p>Pour écrire une information dans le tag, il est nécessaire de définir trois choses :<span style="color: #ff0000;"> le secteur</span> , <span style="color: #0000ff;">l’adresse</span> , et <span style="color: #339966;">les données</span>.<span class="Apple-converted-space">  </span>La modification des données se font par ligne de 16 octets. <span class="Apple-converted-space"> </span></p>
<p>&nbsp;</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID.png"><img loading="lazy" decoding="async" class="size-full wp-image-3001 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID.png" alt="Exemple de secteur RFID" width="482" height="256" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID.png 482w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID-300x159.png 300w" sizes="auto, (max-width: 482px) 100vw, 482px" /></a></p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID.png"><br />
</a>Nous pourrions mettre n’importe quelles données hexadécimales. En ce qui me concerne, j’ai fait le choix de faire correspondre les données, au traditionnel tableau ascii. En effet , ce langage se montre  particulièrement utile pour l’exploitation des informations par la suite.</p>
<p>Lançons l’exemple ReadAndWrite (Attention!! Modification du tag).</p>
<p>L’exécution de ce sketch a pour effet de modifier le secteur 1, le block 4 et les 16 octets hexadécimales.<span class="Apple-converted-space"> </span></p>
<p>En relisant le contenu, les données à cet emplacement, vous avez 0x01, 0x02, 0x03, 0x04,0x05, 0x06, 0x07, 0x08, 0x08, 0x09, 0xff, 0x0b,0x0c, 0x0d, 0x0e, 0x0f</p>
<h2>Retour d'expérience</h2>
<p>Suite aux deux "programmes exemples" que je vous ai présenté, vous êtes capable de lire et d'écrire sur une carte RFID.</p>
<p>Dans mon expérience de l'utilisation de la carte RFID, j'ai rendu inutilisable une paire de cartes en voulant tester les différents exemples de la librairie.</p>
<p>Ce que j'ai constaté:</p>
<ul>
<li>Ne pas modifier le dernier block d'un secteur. Exemple: secteur 1 block 7, secteur 2 block 11 etc...</li>
<li>Ne pas tester n'importe quel code sans le comprendre .</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Cet article <a href="https://plaisirarduino.fr/rfid-avec-arduino/">RFID avec Arduino</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Thermostat créé avec un LCD et Arduino.</title>
		<link>https://plaisirarduino.fr/thermostat-temperature-arduino/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Fri, 02 Mar 2018 19:56:41 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=2704</guid>

					<description><![CDATA[<p> Le thermostat. Le but de ce projet est de réaliser un thermostat et de donner quelques notions de gestion de ce type de projet. LE THERMOSTAT. Un thermostat est principalement utilisé pour surveiller un environnement thermique ambiant et pour piloter un système de chauffe. Il se compose principalement d'une sonde &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/thermostat-temperature-arduino/">Thermostat créé avec un LCD et Arduino.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 style="text-align: center;"><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;"> Le thermostat.</span></span></strong></h1>
<h1 style="text-align: center;"><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;"><img loading="lazy" decoding="async" class="alignnone wp-image-2764" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/thermostat.jpg" alt="thermostat" width="240" height="160" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/thermostat.jpg 640w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/thermostat-300x200.jpg 300w" sizes="auto, (max-width: 240px) 100vw, 240px" /></span></span></h1>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/L5qG0IbKY14" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe><br />
Le but de ce projet est de <strong>réaliser un thermostat</strong> et de donner quelques notions de <strong>gestion de ce type de projet. </strong></p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">LE THERMOSTAT.</span></strong></span></h4>
<p>Un thermostat est principalement utilisé pour <strong>surveiller un environnement thermique</strong> ambiant et pour <strong>piloter un système de chauffe</strong>.</p>
<p><b>I</b>l se compose principalement d'une<strong> sonde de température, d'une sortie de pilotage,d'un clavier de boutons et d'un afficheur.</strong></p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">LE MATÉRIEL.</span></strong></span></h4>
<p><strong>Un potentiomètre</strong> qui simulera la variation de température.<br />
<strong>Une LED de couleur verte</strong> branchée en sortie qui simulera l'activation de notre système.<br />
<strong>Une autre LED de couleur rouge</strong> branchée en sortie qui simulera l'activation d'un défaut système.</p>
<p>Ci-dessous la liste du matériel utilisé:</p>
<ul>
<li>Une carte Arduino.</li>
<li>Un afficheur <strong><a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><em>LCD</em> </a></strong>. 16X2.</li>
<li>Deux (2) LED Rouge et Vert.</li>
<li>Trois (3) résistances de charge de 220 ohm.</li>
<li>Trois (3) boutons poussoirs.</li>
<li>Deux (2) potentiomètres de 10k ohm.</li>
</ul>
<h4><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;">LE SCHÉMA.</span></span><br />
</strong></h4>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-2931 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432.png" alt="" width="1045" height="653" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432.png 1045w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432-300x187.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432-768x480.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432-1024x640.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432-700x437.png 700w" sizes="auto, (max-width: 1045px) 100vw, 1045px" /></p>
<h4></h4>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">NOTRE CAHIER DES CHARGES.</span></strong></span></h4>
<p>Avoir un menu capable de :</p>
<ol>
<li>Afficher la température actuelle.</li>
<li>Indiquer la tendance de la température sur un temps défini.</li>
<li>Enregistrer les températures minimum et maximum.</li>
<li>Signaler les alarmes de dépassement seuil MINI et MAXI et les remettre à zéro.</li>
<li>Modifier les valeurs de paramètres de seuils.</li>
<li>Piloter des sorties en fonction du traitement signal.</li>
<li>Retourner l'état du système.</li>
</ol>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">ÉTUDE DU PROJET THERMOSTAT.</span></strong><span style="color: #0000ff;"><br />
</span></h4>
<h6><strong><span style="color: #0000ff;">1 -La température.</span></strong></h6>
<p>Dans un premier temps pour <strong>connaître la température ambiante d'un milieu,</strong> il nous faut faire<a href="https://plaisirarduino.fr/signaux-dentrees-et-sortie-analogique/"><em> <span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">l’acquisition d'un signal analogique</span></span></em></a> de la sonde de température.</p>
<h6><strong><span style="color: #0000ff;">2 - La tendance.</span></strong></h6>
<p>L'indication de tendance d’évènements fonctionne suivant le principe d'<strong>enregistrement cadencé</strong> sur un temps défini. Une comparaison dans le temps de la valeur N-1 est faite avec la valeur actuelle. En fonction de <strong>l'écart négatif, positif</strong> ou nul, on <strong>affichera un symbole</strong> à  l'écran LCD à l’occurrence une <strong>flèche allant vers le bas , le haut ou double</strong> pour une valeur stable.</p>
<p><figure id="attachment_2905" aria-describedby="caption-attachment-2905" style="width: 306px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2905 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Tendance.png" alt="" width="306" height="144" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Tendance.png 306w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Tendance-300x141.png 300w" sizes="auto, (max-width: 306px) 100vw, 306px" /><figcaption id="caption-attachment-2905" class="wp-caption-text">Symboles des tendances. + - =</figcaption></figure></p>
<p><strong>L'affichage de la tendance de la température ambiante</strong> permet une surveillance active de notre application. C'est un petit plus à notre thermostat.</p>
<h6><strong><span style="color: #0000ff;">3 - Le MINI/MAXI enregistré.</span><br />
</strong></h6>
<p>Nous souhaitons également avoir<strong> une surveillance des évènements du système.</strong> Pour cela, nous intégrons <strong>l'enregistrement des mesures de températures maximum et minimum</strong>.<br />
L'<strong>initialisation des ces valeurs</strong> doit également être possible <strong>par une commande à l'afficheur LCD.</strong></p>
<h6><strong><span style="color: #0000ff;">4 - Les alarmes et leurs signalements.</span></strong></h6>
<p>Les alarmes seront <strong>activées lors du franchissement des seuils MINI et MAXI</strong> définis en fonction de l'application par l'utilisateur.</p>
<p>Un thermostat dédié à la surveillance d'une application a pour but de <strong>signaler et ou de </strong><strong>piloter un système pour réaliser une action palliative</strong> lors de dysfonctionnements.<br />
Dans notre cas, les alarmes seront signalées par l'allumage de la <strong>LED rouge mais</strong> également par l<strong>'activation d'un pointeur à la fenêtre des mesures MINI et MAXI des températures.</strong></p>
<p>De toute évidence,<strong> une alarme qui </strong><strong>signale un dysfonctionnement</strong> doit par conséquent <strong>être maintenue</strong>.<br />
L'alarme sera donc <strong>acquittée seulement par l'action de l'utilisateur.</strong></p>
<h6><strong><span style="color: #0000ff;">5 - La modification des seuils de températures.</span></strong></h6>
<p>Comme cités ci-dessus, nous avons déjà deux seuils connus:<strong> le MAXI et le MINI.</strong></p>
<p>En plus des seuils MINI et MAXI, notre système doit être activé et désactivé à des températures définies en fonction de l'application et par l'utilisateur.<br />
D’ailleurs,<strong> la température définie</strong> pour la <strong>mise à l’arrêt</strong> d'un système de chauffage est ce que l'on appelle <strong>la consigne.</strong></p>
<p>Tout d'abord,  <strong>le point de consigne:<br />
</strong><strong> C'est un seuil</strong> auquel un système<strong> doit maintenir une application à un état ou une grandeur physique de fonctionnement</strong>. Dans notre cas, c'est une température mais cela peut être un débit, une pression, une position ou une vitesse.</p>
<p>Pour notre projet, nous l’appellerons <strong>seuil d' "ARRÊT".</strong></p>
<p>En suite, l<strong>e seuil de "MARCHE":</strong><br />
A l'inverse du point de consigne, nous avons <strong>le seuil MARCHE</strong> qui va définir la mise en <strong>service du système.</strong></p>
<p>Ils doivent être <strong>ajustés et adaptés </strong><strong>à volonté suivant la configuration et la demande d'exploitation des projets.<br />
</strong>Par conséquent, il va nous falloir <strong>la possibilité de modifier ces seuils</strong> via l'afficheur L.C.D.</p>
<p>Attention! Les seuils de températures ne doivent pas être croisés.</p>
<p>C'est-à-dire que le seuil <strong>d ’ARRÊT </strong><strong>doit toujours être supérieur au seuil de MARCHE.</strong></p>
<p>Ce qui implique également que <strong>le seuil MAXI doit toujours être supérieur au point de consigne</strong>. Mais aussi que <strong>le seuil MINI doit toujours être inférieur au seuil de MARCHE </strong>et inversement.</p>
<p>Donc, il va nous falloir<strong> contrôler les valeurs</strong><strong> lors de la saisie</strong> pour que ces conditions soient respectées.</p>
<h6><strong><span style="color: #0000ff;">6 - Les sorties.</span><br />
</strong></h6>
<p>L' <strong>activation des sorties </strong>est le résultat  du traitement du signal <strong>en fonction des seuils définis</strong> par le projet.<br />
Dans notre cas, nous avons deux sorties. L'une pour le pilotage du système matérialisé par une LED verte et l'autre pour le signalement d'alarmes par une LED rouge.</p>
<p>Conformément à notre projet, <strong>le pilotage de la sortie se fera en mode tout ou rien.</strong></p>
<h6><strong><span style="color: #0000ff;">7 - Le retour d'état.</span><br />
</strong></h6>
<p>Étant donné que  l'activation des <strong>sorties définit l'état de fonctionnement</strong> du système, nous en profitons donc pour <strong>retourner cet état</strong> MARCHE ou ARRÊT par l'affichage d'un message <strong>STOP ou RUN</strong> <strong>à l'afficheur L.C.D.</strong> Sont également affichés <strong>les états d'alarmes.</strong></p>
<p>Nous avons à présent réuni  toutes les particularités de notre projet pour passer à l'étape de <strong>programmation du menu. </strong></p>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">Le menu du thermostat.</span></strong></h4>
<p>Plus concrètement, nous allons maintenant étudier<strong> le menu </strong>qui nous permettra de<strong> visualiser la température ambiante </strong>ainsi que sa tendance et qui nous permettra de <strong>saisir les valeurs de seuils.</strong></p>
<p>Suivant le cahier des charges, notre menu est composé d'une <strong>fenêtre de LECTURE </strong>pour la <strong><span style="color: #ff0000;">visualisation de la température</span> , <span style="color: #339966;">l'état du système</span> et <span style="color: #ff6600;">sa tendance</span>.</strong></p>
<p><figure id="attachment_2897" aria-describedby="caption-attachment-2897" style="width: 1036px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2897 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture.png" alt="" width="1036" height="234" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture.png 1036w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture-300x68.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture-768x173.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture-1024x231.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture-700x158.png 700w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /><figcaption id="caption-attachment-2897" class="wp-caption-text">Fenêtre de lecture.</figcaption></figure></p>
<p>Somme toute, le projet est simple.<strong> Mais la complexité réside dans la conception du MENU.</strong></p>
<p>Premièrement, il faut <strong>penser la structure de notre menu</strong>. (Sur une feuille de papier !!)<br />
Voyez ci-dessous la structure qui va nous servir à la <strong>construction du programme MENU.</strong></p>
<p style="text-align: center;">Ci-dessous la structure du menu.</p>
<p><img loading="lazy" decoding="async" class="wp-image-2892 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu..png" alt="" width="530" height="752" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu..png 446w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu.-211x300.png 211w" sizes="auto, (max-width: 530px) 100vw, 530px" /></p>
<h6><strong><span style="color: #0000ff;">PARAMÉTRAGE ET VISUALISATION DE DONNÉES.</span></strong></h6>
<p>Un appui sur <strong>ENTRÉE</strong> affiche les fenêtres de <strong>SÉLECTIONS de PARAMÈTRES</strong> à faire défiler par un appui sur le bouton<strong> PLUS(+).<br />
</strong>Un second appui sur <strong>ENTRÉE</strong> permet la <strong>SAISIE</strong> <strong>d'une valeur au paramètre sélectionné.<br />
</strong>Ensuite, à la fin du processus de saisie,  un appui sur <strong>ENTRÉE</strong> valide la saisie et<strong> retourne le menu à la fenêtre de LECTURE</strong>.</p>
<p>De plus, s'ajoutent <strong>deux fenêtres supplémentaires </strong>aux paramètres<strong> .</strong><br />
Une fenêtre pour la<strong> visualisation des températures MINI et MAXI</strong> <strong>mesurées</strong> et la suivante de<strong> de remise à zéro des alarmes et des mesures</strong> MINI / MAXI.</p>
<p>En outre, un appui sur<strong> le bouton MOINS (-) permet un retour à la fenêtre de LECTURE</strong> <strong>depuis les positions de SÉLECTION</strong>.</p>
<p>D'autre part, un <strong>retour systématique à la fenêtre de lecture</strong> sera effectué <strong>si aucune action au clavier n'est détectée </strong>pendant un certain temps.</p>
<h6><strong><span style="color: #0000ff;">SIGNALISATIONS LCD.</span><br />
</strong></h6>
<p>Lors d'une<strong> alarme, c</strong>elle-ci sera <strong>signalée par l'allumage de la LED rouge mais également via l'affichage LCD.<br />
</strong>Un<strong><span style="color: #ff0000;"> pointeur d'alarme</span> sous forme d'une <span style="color: #ff0000;">flèche</span> sera visible à la fenêtre des enregistrements de températures mini et maxi</strong><strong>.</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2899" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme.png" alt="" width="1036" height="234" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme.png 1036w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme-300x68.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme-768x173.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme-1024x231.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme-700x158.png 700w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /></p>
<p><strong>La fenêtre RAZ </strong>est prévue pour l’<strong>acquittement des alarmes</strong> mais aussi pour <strong>initialiser les valeurs mini/maxi</strong> enregistrées. Ce qui notamment <strong>effacera aussi le pointeur d'alarme</strong>.</p>
<h4><span style="text-decoration: underline; color: #0000ff;"><strong><span style="color: #0000ff; text-decoration: underline;">LE PROGRAMME</span>. </strong></span></h4>
<p>Dans le cas d'un MENU L.C.D., <strong>chaque action sur un bouton sélectionne un CAS particulier d'affichag</strong><strong>e.</strong><br />
Notre programme se basera donc essentiellement sur<strong> l'application de</strong> <a href="https://plaisirarduino.fr/switch-case/"><span style="color: #33cccc;">switch().</span></a></p>
<h6><strong><span style="color: #0000ff;">LE CLAVIER.</span></strong></h6>
<p>Tout d'abord, <strong>le clavier</strong> sera géré par une fonction nommée "<strong>boutons()</strong>"<strong> qui retournera les états d'activation de chaque bouton.</strong><strong><br />
</strong></p>
<h6><strong><span style="color: #0000ff;">L'AFFICHAGE DES FENÊTRES.</span></strong></h6>
<p>Pour commencer, il est  à noter qu'un affichage à répétition de boucle sur un afficheur LCD n'est pas conseillé, surtout si l'on effectue un rafraîchissement d'écran. ("clear()")<br />
Par conséquent, nous avons fait en sorte que l'affichage ne s'active qu'une seule fois.<br />
Pour cela, nous <strong>"verrouillons" les fenêtres en effectuant un conditionnement d’exécution des cas par les appuis de boutons.<br />
</strong> Une variable nommée<strong> "fenêtre" servira de "verrou"</strong> mais également de <strong>repère pour la sélection de chaque CAS de FENÊTRES.</strong></p>
<p><strong><br />
</strong>Aussi, nous faisons le choix d'utiliser une<strong> table de données, de type "String", contenant les noms de paramètres</strong> afin d<strong>'activer un affichage  standard via une fonction.</strong> Ce qui permet d'éviter la répétition des lignes de codes similaires.<strong><br />
</strong></p>
<h6><strong><span style="color: #0000ff;">LA SAISIE DE VALEUR AUX PARAMÈTRES.</span><br />
</strong></h6>
<p>Comme nous l'avons évoqué dans l'étude de projet, nous effectuons la <strong>mise en butée de la saisie (+/-1) </strong> en fonction des valeurs voisines respectives à chaque paramètre.</p>
<p>En revanche, lors d'une saisie, contrairement à l'affichage standard qui n'est activé qu'une seule fois;  une <strong>actualisation constante de la valeur est nécessaire.</strong></p>
<h6><strong><span style="color: #0000ff;">LES DONNÉES PROGRAMMES.</span></strong></h6>
<p>Afin de manipuler plus facilement les données et leurs affichages respectifs,  nous utilisons deux tableaux.<br />
Ces tableaux contiennent <strong> les valeurs de paramètres de chaque seuil et leurs noms respectifs.</strong> Ces données sont <strong>organisées en fonction de leur position d'affichage.</strong><br />
C'est-à-dire que la donnée du tableau des valeurs de seuils correspond à la donnée du tableau du nom du seuil.</p>
<p>Par exemple l'index 2 du tableau "nom_parametres[2]" qui contient "MARCHE" correspond à la valeur d'index 2 au tableau "parametres[2]" qui contient 25.(par défaut ).</p>
<p><strong>L'index 0 du tableau "parametres[0]" est utilisé pour le chargement de la valeur signal.</strong></p>
<h6 style="text-align: center;"><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">PRÉSENTATION DU MENU THERMOSTAT.</span></strong></span></h6>
<p><figure id="attachment_2894" aria-describedby="caption-attachment-2894" style="width: 523px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2894" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu.-image.png" alt="" width="523" height="736" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu.-image.png 462w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu.-image-213x300.png 213w" sizes="auto, (max-width: 523px) 100vw, 523px" /><figcaption id="caption-attachment-2894" class="wp-caption-text">Représentation de l'affichage du menu.</figcaption></figure></p>
<h4></h4>
<p><em>En définitif,  vous avez là un outil d’exploitation compatible avec des projets exploitant un signal analogique avec un écran</em> <a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><span style="text-decoration: underline; color: #33cccc;">LCD.</span></a><em><br />
</em><em>Vous pouvez à présent <strong>créer votre propre menu et opérer une saisie de données à transmettre à votre système.</strong> Explorez et amusez-vous à l’adapter à vos projets.</em></p>
<p><em><strong>En téléchargeant le sketch «</strong><a href="https://plaisirarduino.fr/telechargement/"><span style="text-decoration: underline; color: #33cccc;"> MENU_THERMOSTAT_LCD</span></a> <strong>» vous découvrirez sans difficultés sa construction ainsi que ses différentes</strong> <a href="https://plaisirarduino.fr/les-fonctions/"><span style="text-decoration: underline; color: #33cccc;">fonctions.</span></a> Ces fonctions ne contiennent aucune particularité que nous n’ayons pas abordé jusque là, voici donc pourquoi nous ne les détaillerons pas.</em></p>
<h2 style="text-align: center;"><strong><span style="color: #0000ff;">MERCI.</span></strong></h2>
<h4 style="text-align: center;"><em><strong><a href="https://plaisirarduino.fr/">Plaisir Arduino.fr</a></strong></em></h4>
<h3><strong> </strong></h3>
<p>Cet article <a href="https://plaisirarduino.fr/thermostat-temperature-arduino/">Thermostat créé avec un LCD et Arduino.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Mise en cache de page à l’aide de Disk: Enhanced 
Minified using Disk
Mise en cache de la base de données de 38/118 requêtes en 0.265 secondes utilisant Disk

Served from: plaisirarduino.fr @ 2026-05-07 06:21:56 by W3 Total Cache
-->