<?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>Non classé Archives - PlaisirArduino</title>
	<atom:link href="https://plaisirarduino.fr/category/non-classe/feed/" rel="self" type="application/rss+xml" />
	<link>https://plaisirarduino.fr/category/non-classe/</link>
	<description></description>
	<lastBuildDate>Sat, 16 May 2026 13:38:17 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Tutoriel Arduino – Le module PZEM-004T</title>
		<link>https://plaisirarduino.fr/tutoriel-arduino-le-module-pzem-004t/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Sat, 16 May 2026 13:32:01 +0000</pubDate>
				<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=4984</guid>

					<description><![CDATA[<p>Mesurer la puissance électrique avec Arduino &#x1f3af;&#160;À qui s'adresse ce cours ?&#160;À toute personne débutante qui souhaite mesurer des grandeurs électriques réelles (tension, courant, puissance, énergie) avec Arduino,&#160;sans avoir besoin d'être électricien. &#x26a0;&#xfe0f;&#160;Avertissement de sécurité&#160;Le PZEM-004T travaille avec le&#160;230V du secteur. C'est dangereux. Ne branchez jamais la partie 230V pendant &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/tutoriel-arduino-le-module-pzem-004t/">Tutoriel Arduino – Le module PZEM-004T</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Mesurer la puissance électrique avec Arduino</h3>



<p></p>



<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="Arduino + PZEM : mesure tension, courant et puissance" width="660" height="371" src="https://www.youtube.com/embed/UC85BwHGmgk?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>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>À qui s'adresse ce cours ?</strong>&nbsp;À toute personne débutante qui souhaite mesurer des grandeurs électriques réelles (tension, courant, puissance, énergie) avec Arduino,&nbsp;<strong>sans avoir besoin d'être électricien</strong>.</p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>Avertissement de sécurité</strong>&nbsp;Le PZEM-004T travaille avec le&nbsp;<strong>230V du secteur</strong>. C'est dangereux. Ne branchez jamais la partie 230V pendant que vous manipulez les fils. En cas de doute, faites appel à un adulte compétent ou utilisez une multiprise avec interrupteur.</p>
</blockquote>



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



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cb.png" alt="📋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Sommaire</h2>



<ol class="wp-block-list">
<li><a href="#1">À quoi sert le PZEM-004T ?</a></li>



<li><a href="#2">Matériel nécessaire</a></li>



<li><a href="#3">Présentation du module</a></li>



<li><a href="#4">Schéma de câblage</a></li>



<li><a href="#5">Fonctionnement du module</a></li>



<li><a href="#6">Programme Arduino complet</a></li>



<li><a href="#7">Explication détaillée du code</a></li>



<li><a href="#8">Résultat attendu</a></li>



<li><a href="#9">Aller plus loin</a></li>



<li><a href="#10">Mini défis pratiques</a></li>
</ol>



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



<p><a id="1"></a></p>



<h2 class="wp-block-heading">1. <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;" /> À quoi sert le PZEM-004T ?</h2>



<h3 class="wp-block-heading">Une analogie pour commencer</h3>



<p>Imaginez un&nbsp;<strong>compteur électrique</strong>&nbsp;comme celui de votre maison. Il mesure combien d'électricité vous consommez. Le&nbsp;<strong>PZEM-004T</strong>, c'est exactement la même chose, mais en miniature, et connecté à votre Arduino.</p>



<h3 class="wp-block-heading">Ce qu'il mesure</h3>



<p>Le PZEM-004T est capable de mesurer&nbsp;<strong>5 grandeurs électriques</strong>&nbsp;en temps réel :</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Grandeur</th><th>Unité</th><th>Explication simple</th></tr></thead><tbody><tr><td><strong>Tension</strong></td><td>Volt (V)</td><td>La "pression" du courant électrique</td></tr><tr><td><strong>Courant</strong></td><td>Ampère (A)</td><td>La quantité de courant qui circule</td></tr><tr><td><strong>Puissance active</strong></td><td>Watt (W)</td><td>L'énergie réellement consommée</td></tr><tr><td><strong>Énergie cumulée</strong></td><td>Watt-heure (Wh)</td><td>Le total consommé depuis le départ</td></tr><tr><td><strong>Fréquence</strong></td><td>Hertz (Hz)</td><td>Le rythme du courant alternatif (50Hz en Europe)</td></tr><tr><td><strong>Facteur de puissance</strong></td><td>sans unité (0 à 1)</td><td>L'efficacité de la consommation</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Exemples d'applications concrètes</h3>



<ul class="wp-block-list">
<li><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;" /> Surveiller la consommation d'un appareil électroménager</li>



<li><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;" /> Savoir combien coûte votre lampe de bureau par heure</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50b.png" alt="🔋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Contrôler un système solaire</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3ed.png" alt="🏭" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Monitorer une machine dans un atelier</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3e0.png" alt="🏠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Créer votre propre compteur électrique connecté</li>
</ul>



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



<p><a id="2"></a></p>



<h2 class="wp-block-heading">2. <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;" /> Matériel nécessaire</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Matériel</th><th>Quantité</th><th>Remarque</th></tr></thead><tbody><tr><td>Arduino Uno (ou Nano)</td><td>1</td><td>Toute carte Arduino convient</td></tr><tr><td>Module PZEM-004T v3.0</td><td>1</td><td>Choisir la version 3.0 (la plus récente)</td></tr><tr><td>Câble USB</td><td>1</td><td>Pour programmer l'Arduino</td></tr><tr><td>Fils de connexion</td><td>4</td><td>Pour relier PZEM à Arduino</td></tr><tr><td>Un appareil à mesurer</td><td>1</td><td>Une lampe, un chargeur, etc.</td></tr><tr><td>Multiprise avec interrupteur</td><td>1</td><td>Pour sécuriser les branchements</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><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;" />&nbsp;<strong>Conseil d'achat</strong>&nbsp;: Vérifiez bien que vous achetez la&nbsp;<strong>version 3.0</strong>&nbsp;du PZEM-004T. Il existe plusieurs versions (v1, v2, v3). La v3.0 utilise le protocole&nbsp;<strong>UART/Modbus</strong>, ce qui la rend beaucoup plus simple à utiliser avec Arduino.</p>
</blockquote>



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



<p><a id="3"></a></p>



<h2 class="wp-block-heading">3. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Présentation du module</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/Capture-decran-2026-05-16-a-15.08.52.png"><img fetchpriority="high" decoding="async" width="1011" height="932" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/Capture-decran-2026-05-16-a-15.08.52.png" alt="Modèle PZEM 004T" class="wp-image-4987" style="width:300px" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/Capture-decran-2026-05-16-a-15.08.52.png 1011w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/Capture-decran-2026-05-16-a-15.08.52-300x277.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/Capture-decran-2026-05-16-a-15.08.52-768x708.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/Capture-decran-2026-05-16-a-15.08.52-700x645.png 700w" sizes="(max-width: 1011px) 100vw, 1011px" /></a></figure>
</div>


<h3 class="wp-block-heading">À quoi ressemble le PZEM-004T ?</h3>



<p>Le module PZEM-004T se présente sous forme d'un petit circuit imprimé avec :</p>



<pre class="wp-block-code"><code class="" data-line="">
</code></pre>



<h3 class="wp-block-heading">Les deux parties du module</h3>



<p>Le PZEM-004T est divisé en&nbsp;<strong>deux zones bien distinctes</strong>&nbsp;:</p>



<h4 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f534.png" alt="🔴" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Zone haute tension (230V) — NE PAS TOUCHER en fonctionnement</h4>



<ul class="wp-block-list">
<li><strong>L</strong>&nbsp;→ Phase (fil marron ou rouge)</li>



<li><strong>N</strong>&nbsp;→ Neutre (fil bleu)</li>



<li>Le fil 230V passe aussi dans le&nbsp;<strong>tore</strong>&nbsp;(l'anneau en ferrite) pour mesurer le courant</li>
</ul>



<h4 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f7e2.png" alt="🟢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Zone basse tension (5V) — Communication avec Arduino</h4>



<ul class="wp-block-list">
<li><strong>5V</strong>&nbsp;→ Alimentation du module</li>



<li><strong>GND</strong>&nbsp;→ Masse commune</li>



<li><strong>TX</strong>&nbsp;→ Transmission de données vers Arduino</li>



<li><strong>RX</strong>&nbsp;→ Réception de données depuis Arduino</li>
</ul>



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



<p><a id="4"></a></p>



<h2 class="wp-block-heading">4. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Schéma de câblage</h2>



<h3 class="wp-block-heading">Étape 1 : Câblage basse tension (Arduino <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PZEM)</h3>



<p>Commencez&nbsp;<strong>toujours</strong>&nbsp;par cette partie avant de toucher au 230V.</p>



<figure class="wp-block-image size-large"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/image-1-scaled.png"><img decoding="async" width="1024" height="578" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/image-1-1024x578.png" alt="Schema PZEM connexion" class="wp-image-4986" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/image-1-1024x578.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/image-1-300x169.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/image-1-768x434.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/image-1-1536x867.png 1536w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/image-1-2048x1156.png 2048w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/image-1-700x395.png 700w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p><br></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>Attention au croisement TX/RX</strong>&nbsp;! C'est l'erreur la plus fréquente des débutants :</p>



<ul class="wp-block-list">
<li>Le&nbsp;<strong>TX</strong>&nbsp;du PZEM se branche sur le&nbsp;<strong>RX</strong>&nbsp;de l'Arduino (pin 10)</li>



<li>Le&nbsp;<strong>RX</strong>&nbsp;du PZEM se branche sur le&nbsp;<strong>TX</strong>&nbsp;de l'Arduino (pin 11)</li>
</ul>



<p><strong>TX envoie → RX reçoit</strong>&nbsp;: ils doivent toujours être croisés.</p>
</blockquote>



<h3 class="wp-block-heading">Résumé des connexions basse tension</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>PZEM-004T</th><th>Arduino Uno</th></tr></thead><tbody><tr><td>5V</td><td>5V</td></tr><tr><td>GND</td><td>GND</td></tr><tr><td>TX</td><td>Pin 10</td></tr><tr><td>RX</td><td>Pin 11</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Étape 2 : Câblage haute tension (230V) — <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> DANGER</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6d1.png" alt="🛑" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>Lisez entièrement cette section avant de toucher quoi que ce soit.</strong></p>
</blockquote>



<figure class="wp-block-image size-large"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/pzem-montage-scaled.png"><img loading="lazy" decoding="async" width="1024" height="396" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/pzem-montage-1024x396.png" alt="Montage PZEM avec une charge lampe " class="wp-image-4994" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/pzem-montage-1024x396.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/pzem-montage-300x116.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/pzem-montage-768x297.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/pzem-montage-1536x594.png 1536w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/pzem-montage-2048x792.png 2048w, https://plaisirarduino.fr/arduino/wp-content/uploads/2026/05/pzem-montage-700x271.png 700w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<pre class="wp-block-code"><code class="" data-line="">
</code></pre>



<p><strong>En pratique avec une multiprise :</strong></p>



<ol class="wp-block-list">
<li>Débranchez tout du secteur</li>



<li>Le fil phase de l'entrée va sur&nbsp;<strong>L entrée</strong>&nbsp;du PZEM</li>



<li>Le fil neutre de l'entrée va sur&nbsp;<strong>N entrée</strong>&nbsp;du PZEM</li>



<li>La sortie du PZEM va vers l'appareil à mesurer</li>



<li><strong>Le fil 230V doit passer dans le tore</strong>&nbsp;(anneau) pour la mesure de courant</li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><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;" />&nbsp;<strong>Astuce</strong>&nbsp;: La plupart des modules PZEM-004T vendus sur internet viennent avec le tore séparé. Le fil 230V doit passer&nbsp;<strong>à travers le trou du tore</strong>. Faites-y passer le fil de phase (L) entre 1 et 3 fois.</p>
</blockquote>



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



<p><a id="5"></a></p>



<h2 class="wp-block-heading">5. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Fonctionnement du module</h2>



<h3 class="wp-block-heading">Comment le PZEM-004T communique avec Arduino ?</h3>



<p>Le PZEM-004T utilise le protocole&nbsp;<strong>UART</strong>&nbsp;(Universal Asynchronous Receiver Transmitter).</p>



<h4 class="wp-block-heading">Une analogie simple</h4>



<p>Imaginez deux personnes qui s'envoient des SMS :</p>



<ul class="wp-block-list">
<li>L'Arduino envoie un SMS au PZEM :&nbsp;<strong>"Donne-moi les mesures"</strong></li>



<li>Le PZEM répond avec un SMS contenant toutes les valeurs</li>
</ul>



<p>C'est exactement ce que fait le protocole UART. Les données partent bit par bit, comme des lettres dans un message.</p>



<h3 class="wp-block-heading">Le protocole Modbus RTU</h3>



<p>La version 3.0 utilise le protocole&nbsp;<strong>Modbus RTU</strong>. Ce protocole est très utilisé dans l'industrie pour faire communiquer des capteurs.</p>



<p>Voici ce qui se passe en coulisses :</p>



<pre class="wp-block-code"><code class="" data-line="">Arduino                          PZEM-004T
   │                                 │
   │  &quot;Requête Modbus&quot;               │
   │ ──────────────────────────────► │
   │  &#091;01]&#091;04]&#091;00]&#091;00]&#091;00]&#091;0A]&#091;...] │
   │                                 │
   │         &quot;Réponse&quot;               │
   │ ◄────────────────────────────── │
   │  &#091;01]&#091;04]&#091;14]&#091;09]&#091;...]&#091;...]    │
   │                                 │
   ▼                                 ▼
Arduino décode les octets
et affiche les valeurs
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><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;" />&nbsp;<strong>Bonne nouvelle</strong>&nbsp;: vous n'avez pas besoin de comprendre le Modbus en détail. La bibliothèque&nbsp;<strong>PZEM004Tv30</strong>&nbsp;s'occupe de tout ça pour vous !</p>
</blockquote>



<h3 class="wp-block-heading">La bibliothèque PZEM004Tv30</h3>



<p>Cette bibliothèque fait le travail difficile à votre place :</p>



<ul class="wp-block-list">
<li>Elle envoie les bonnes requêtes au module</li>



<li>Elle reçoit les réponses</li>



<li>Elle décode les octets en valeurs lisibles</li>



<li>Elle vous donne directement la tension, le courant, etc.</li>
</ul>



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



<p><a id="6"></a></p>



<h2 class="wp-block-heading">6. <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;" /> Programme Arduino complet</h2>



<h3 class="wp-block-heading">Installation de la bibliothèque</h3>



<p>Avant d'écrire le code, installez la bibliothèque :</p>



<ol class="wp-block-list">
<li>Ouvrez l'IDE Arduino</li>



<li>Allez dans&nbsp;<strong>Outils → Gérer les bibliothèques</strong></li>



<li>Recherchez&nbsp;<strong>"PZEM004Tv30"</strong></li>



<li>Installez la bibliothèque de&nbsp;<strong>Maxim Karpov</strong></li>
</ol>



<h3 class="wp-block-heading">Programme de base — Affichage des mesures</h3>



<pre class="wp-block-code"><code class="" data-line="">// ============================================================
// Cours Arduino — Module PZEM-004T
// Affichage des mesures électriques dans le Moniteur Série
// ============================================================

// On inclut les bibliothèques nécessaires
#include &lt;PZEM004Tv30.h&gt;    // Bibliothèque pour le PZEM-004T v3.0
#include &lt;SoftwareSerial.h&gt; // Permet d&#039;utiliser d&#039;autres broches comme port série

// --- Définition des broches de communication ---
// On utilise les broches 10 et 11 comme port série &quot;logiciel&quot;
// car le port série matériel (0 et 1) est utilisé par le moniteur
#define PZEM_RX_PIN 10  // La broche 10 reçoit les données du PZEM (TX du PZEM)
#define PZEM_TX_PIN 11  // La broche 11 envoie les données au PZEM (RX du PZEM)

// --- Création du port série logiciel ---
// On crée un &quot;canal de communication&quot; entre Arduino et le PZEM
SoftwareSerial pzemSerial(PZEM_RX_PIN, PZEM_TX_PIN);

// --- Création de l&#039;objet PZEM ---
// C&#039;est cet objet qui va gérer toute la communication avec le module
PZEM004Tv30 pzem(pzemSerial);

// ============================================================
// SETUP — S&#039;exécute une seule fois au démarrage
// ============================================================
void setup() {
  // On démarre la communication avec le Moniteur Série (pour afficher les résultats)
  Serial.begin(9600);
  
  // On affiche un message de bienvenue
  Serial.println(&quot;=== Mesureur de puissance PZEM-004T ===&quot;);
  Serial.println(&quot;Démarrage des mesures...&quot;);
  Serial.println(&quot;---------------------------------------&quot;);
}

// ============================================================
// LOOP — S&#039;exécute en boucle indéfiniment
// ============================================================
void loop() {
  
  // --- Lecture de la tension ---
  // La tension s&#039;exprime en Volts (V)
  // En Europe, on attend environ 230V
  float tension = pzem.voltage();
  
  // --- Lecture du courant ---
  // Le courant s&#039;exprime en Ampères (A)
  float courant = pzem.current();
  
  // --- Lecture de la puissance ---
  // La puissance s&#039;exprime en Watts (W)
  // C&#039;est ce que consomme vraiment votre appareil
  float puissance = pzem.power();
  
  // --- Lecture de l&#039;énergie cumulée ---
  // L&#039;énergie s&#039;exprime en Watt-heure (Wh)
  // C&#039;est le total depuis la dernière remise à zéro
  float energie = pzem.energy();
  
  // --- Lecture de la fréquence ---
  // La fréquence s&#039;exprime en Hertz (Hz)
  // En Europe : 50 Hz
  float frequence = pzem.frequency();
  
  // --- Lecture du facteur de puissance ---
  // Sans unité, entre 0 et 1
  // 1.0 = appareil purement résistif (radiateur, ampoule)
  // &lt; 1  = appareil inductif (moteur, transformateur)
  float facteurPuissance = pzem.pf();
  
  // --- Vérification des valeurs ---
  // Si une lecture échoue, la bibliothèque renvoie &quot;NaN&quot; (Not a Number)
  // On vérifie que les mesures sont valides avant d&#039;afficher
  if (isnan(tension)) {
    // Si la tension est invalide, il y a probablement un problème de câblage
    Serial.println(&quot;ERREUR : Impossible de lire le PZEM !&quot;);
    Serial.println(&quot;Vérifiez le câblage TX/RX et l&#039;alimentation 5V.&quot;);
  } else {
    // --- Affichage de toutes les mesures ---
    Serial.println(&quot;--- Nouvelles mesures ---&quot;);
    
    // Affichage de la tension avec 1 décimale
    Serial.print(&quot;Tension       : &quot;);
    Serial.print(tension, 1);      // 1 chiffre après la virgule
    Serial.println(&quot; V&quot;);
    
    // Affichage du courant avec 3 décimales (pour voir les petites valeurs)
    Serial.print(&quot;Courant       : &quot;);
    Serial.print(courant, 3);      // 3 chiffres après la virgule
    Serial.println(&quot; A&quot;);
    
    // Affichage de la puissance avec 1 décimale
    Serial.print(&quot;Puissance     : &quot;);
    Serial.print(puissance, 1);
    Serial.println(&quot; W&quot;);
    
    // Affichage de l&#039;énergie avec 3 décimales
    Serial.print(&quot;Energie       : &quot;);
    Serial.print(energie, 3);
    Serial.println(&quot; Wh&quot;);
    
    // Affichage de la fréquence avec 1 décimale
    Serial.print(&quot;Fréquence     : &quot;);
    Serial.print(frequence, 1);
    Serial.println(&quot; Hz&quot;);
    
    // Affichage du facteur de puissance avec 2 décimales
    Serial.print(&quot;Facteur puis. : &quot;);
    Serial.print(facteurPuissance, 2);
    Serial.println(&quot;&quot;);
    
    // --- Calcul bonus : estimation du coût ---
    // Prix moyen du kWh en France : environ 0.25 €
    float prixKwh = 0.25;
    // Coût si l&#039;appareil tournait 1 heure à cette puissance
    float coutHeure = (puissance / 1000.0) * prixKwh;
    
    Serial.print(&quot;Coût/heure    : &quot;);
    Serial.print(coutHeure * 100, 2);  // En centimes
    Serial.println(&quot; centimes&quot;);
  }
  
  // Ligne séparatrice pour la lisibilité
  Serial.println(&quot;-----------------------------------&quot;);
  
  // On attend 2 secondes avant la prochaine mesure
  // (ne pas descendre en dessous de 1 seconde)
  delay(2000);
}
</code></pre>



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



<p><a id="7"></a></p>



<h2 class="wp-block-heading">7. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4d6.png" alt="📖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Explication détaillée du code</h2>



<h3 class="wp-block-heading">Section 1 : Les bibliothèques</h3>



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



<p><strong>Pourquoi deux bibliothèques ?</strong></p>



<ul class="wp-block-list">
<li><code class="" data-line="">SoftwareSerial.h</code>&nbsp;: Arduino Uno n'a qu'<strong>un seul port série matériel</strong>&nbsp;(broches 0 et 1). Ce port est déjà utilisé pour communiquer avec votre ordinateur (Moniteur Série).&nbsp;<code class="" data-line="">SoftwareSerial</code>&nbsp;crée un&nbsp;<strong>deuxième port série en logiciel</strong>&nbsp;sur n'importe quelles autres broches.</li>



<li><code class="" data-line="">PZEM004Tv30.h</code>&nbsp;: C'est la bibliothèque qui sait "parler" au PZEM. Elle connaît le protocole Modbus et traduit les réponses en valeurs lisibles.</li>
</ul>



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



<h3 class="wp-block-heading">Section 2 : La création de l'objet PZEM</h3>



<pre class="wp-block-code"><code class="" data-line="">SoftwareSerial pzemSerial(PZEM_RX_PIN, PZEM_TX_PIN);
PZEM004Tv30 pzem(pzemSerial);
</code></pre>



<p>Pensez à ça comme la création d'un&nbsp;<strong>téléphone</strong>&nbsp;(<code class="" data-line="">pzemSerial</code>) puis l'ajout d'un&nbsp;<strong>interprète</strong>&nbsp;(<code class="" data-line="">pzem</code>) qui sait parler la langue du PZEM.</p>



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



<h3 class="wp-block-heading">Section 3 : La lecture des valeurs</h3>



<pre class="wp-block-code"><code class="" data-line="">float tension = pzem.voltage();
</code></pre>



<p>Le mot&nbsp;<code class="" data-line="">float</code>&nbsp;signifie&nbsp;<strong>nombre décimal</strong>&nbsp;(avec des chiffres après la virgule). On utilise&nbsp;<code class="" data-line="">float</code>&nbsp;car la tension peut valoir&nbsp;<code class="" data-line="">229.8</code>&nbsp;ou&nbsp;<code class="" data-line="">231.4</code>&nbsp;par exemple.</p>



<p>Chaque fonction retourne une valeur :</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Fonction</th><th>Ce qu'elle retourne</th></tr></thead><tbody><tr><td><code class="" data-line="">pzem.voltage()</code></td><td>Tension en Volts</td></tr><tr><td><code class="" data-line="">pzem.current()</code></td><td>Courant en Ampères</td></tr><tr><td><code class="" data-line="">pzem.power()</code></td><td>Puissance en Watts</td></tr><tr><td><code class="" data-line="">pzem.energy()</code></td><td>Énergie en Wh</td></tr><tr><td><code class="" data-line="">pzem.frequency()</code></td><td>Fréquence en Hz</td></tr><tr><td><code class="" data-line="">pzem.pf()</code></td><td>Facteur de puissance</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading">Section 4 : La vérification NaN</h3>



<pre class="wp-block-code"><code class="" data-line="">if (isnan(tension)) {
</code></pre>



<p><code class="" data-line="">NaN</code>&nbsp;signifie&nbsp;<strong>"Not a Number"</strong>&nbsp;(pas un nombre). Quand le PZEM ne répond pas, les fonctions renvoient&nbsp;<code class="" data-line="">NaN</code>.&nbsp;<code class="" data-line="">isnan()</code>permet de détecter ce cas et d'afficher un message d'erreur clair au lieu d'afficher des données absurdes.</p>



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



<h3 class="wp-block-heading">Section 5 : Le calcul du coût</h3>



<pre class="wp-block-code"><code class="" data-line="">float coutHeure = (puissance / 1000.0) * prixKwh;
</code></pre>



<p><strong>Pourquoi diviser par 1000 ?</strong></p>



<ul class="wp-block-list">
<li>La puissance est en&nbsp;<strong>Watts (W)</strong></li>



<li>Le prix est en&nbsp;<strong>kilowatts-heure (kWh)</strong></li>



<li>1 kWh = 1000 Wh</li>
</ul>



<p>Donc :&nbsp;<code class="" data-line="">Watts ÷ 1000 = kilowatts</code></p>



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



<p><a id="8"></a></p>



<h2 class="wp-block-heading">8. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Résultat attendu</h2>



<p>Ouvrez le&nbsp;<strong>Moniteur Série</strong>&nbsp;(Ctrl+Maj+M) à&nbsp;<strong>9600 bauds</strong>.</p>



<p>Vous devriez voir :</p>



<pre class="wp-block-code"><code class="" data-line="">=== Mesureur de puissance PZEM-004T ===
Démarrage des mesures...
---------------------------------------
--- Nouvelles mesures ---
Tension       : 230.4 V
Courant       : 0.217 A
Puissance     : 48.3 W
Energie       : 0.125 Wh
Fréquence     : 50.0 Hz
Facteur puis. : 0.97
Coût/heure    : 1.21 centimes
-----------------------------------
--- Nouvelles mesures ---
Tension       : 230.1 V
...
</code></pre>



<h3 class="wp-block-heading">Valeurs de référence</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Appareil type</th><th>Puissance attendue</th></tr></thead><tbody><tr><td>Ampoule LED 10W</td><td>~10 W</td></tr><tr><td>Ampoule classique 60W</td><td>~60 W</td></tr><tr><td>Chargeur smartphone</td><td>5 à 20 W</td></tr><tr><td>Fer à repasser</td><td>1000 à 2400 W</td></tr><tr><td>Ordinateur de bureau</td><td>100 à 300 W</td></tr></tbody></table></figure>



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



<p><a id="9"></a></p>



<h2 class="wp-block-heading">9. <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;" /> Aller plus loin</h2>



<h3 class="wp-block-heading">Programme avancé : Remise à zéro du compteur d'énergie</h3>



<pre class="wp-block-code"><code class="" data-line="">// Pour remettre le compteur d&#039;énergie à zéro :
// Ajoutez ce code dans setup() ou sur appui d&#039;un bouton

void resetEnergie() {
  if (pzem.resetEnergy()) {
    Serial.println(&quot;✓ Compteur d&#039;énergie remis à zéro !&quot;);
  } else {
    Serial.println(&quot;✗ Échec de la remise à zéro.&quot;);
  }
}
</code></pre>



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



<h3 class="wp-block-heading">Programme avancé : Alerte de surcharge</h3>



<pre class="wp-block-code"><code class="" data-line="">// Dans loop(), après avoir lu les valeurs :

float PUISSANCE_MAX = 500.0;  // Seuil d&#039;alerte en Watts

if (puissance &gt; PUISSANCE_MAX) {
  Serial.println(&quot;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />  ALERTE : Consommation trop élevée !&quot;);
  // On pourrait aussi allumer une LED ou activer un buzzer
  digitalWrite(LED_BUILTIN, HIGH);
} else {
  digitalWrite(LED_BUILTIN, LOW);
}
</code></pre>



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



<h3 class="wp-block-heading">Programme avancé : Utilisation avec Arduino Mega</h3>



<p>Si vous utilisez un&nbsp;<strong>Arduino Mega</strong>, vous pouvez utiliser le port série matériel Serial1 (bien plus fiable que SoftwareSerial) :</p>



<pre class="wp-block-code"><code class="" data-line="">// Avec Arduino Mega — Brancher sur les broches 19(RX1) et 18(TX1)
#include &lt;PZEM004Tv30.h&gt;

// On passe Serial1 directement, pas besoin de SoftwareSerial
PZEM004Tv30 pzem(Serial1);

void setup() {
  Serial.begin(9600);   // Pour le Moniteur Série
  Serial1.begin(9600);  // Pour le PZEM
}
</code></pre>



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



<h3 class="wp-block-heading">Brancher plusieurs PZEM sur le même Arduino</h3>



<p>Le protocole Modbus permet de connecter plusieurs modules. Chaque module a une&nbsp;<strong>adresse</strong>&nbsp;différente (de 1 à 247) :</p>



<pre class="wp-block-code"><code class="" data-line="">// Deux modules PZEM avec des adresses différentes
PZEM004Tv30 pzem1(pzemSerial, 0x01);  // Module 1 — adresse 1
PZEM004Tv30 pzem2(pzemSerial, 0x02);  // Module 2 — adresse 2
</code></pre>



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



<p><a id="10"></a></p>



<h2 class="wp-block-heading">10. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Mini défis pratiques</h2>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Défi 1 — Débutant</h3>



<p>Modifiez le programme pour afficher les mesures&nbsp;<strong>toutes les 5 secondes</strong>&nbsp;au lieu de 2 secondes. Observez si les valeurs changent.</p>



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



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Défi 2 — Intermédiaire</h3>



<p>Ajoutez une&nbsp;<strong>LED</strong>&nbsp;sur la broche 13. Faites clignoter la LED si la puissance dépasse&nbsp;<strong>100 Watts</strong>.</p>



<p><em>Indice : utilisez&nbsp;<code class="" data-line="">digitalWrite(13, HIGH)</code>&nbsp;et&nbsp;<code class="" data-line="">digitalWrite(13, LOW)</code></em></p>



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



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Défi 3 — Intermédiaire</h3>



<p>Calculez et affichez le&nbsp;<strong>coût mensuel estimé</strong>&nbsp;si l'appareil fonctionnait 24h/24 pendant 30 jours.</p>



<p><em>Formule :&nbsp;<code class="" data-line="">coût mensuel = (puissance_W / 1000) × 24 × 30 × prix_kWh</code></em></p>



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



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Défi 4 — Avancé</h3>



<p>Ajoutez un&nbsp;<strong>bouton poussoir</strong>&nbsp;sur la broche 7. Quand on appuie sur le bouton, le compteur d'énergie se remet à zéro et un message s'affiche dans le Moniteur Série.</p>



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



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Défi 5 — Expert</h3>



<p>Connectez un&nbsp;<strong>écran LCD I2C</strong>&nbsp;(16×2 caractères) à votre Arduino. Affichez sur la première ligne la tension et le courant, et sur la deuxième ligne la puissance et le facteur de puissance.</p>



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



<h2 class="wp-block-heading"><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;" /> Récapitulatif du cours</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Ce que vous avez appris</th><th>Comment</th></tr></thead><tbody><tr><td>Identifier les 2 zones du PZEM (HT et BT)</td><td>Présentation du module</td></tr><tr><td>Câbler le PZEM à l'Arduino en sécurité</td><td>Schéma de câblage</td></tr><tr><td>Comprendre le rôle de SoftwareSerial</td><td>Explication du code</td></tr><tr><td>Lire tension, courant, puissance, énergie</td><td>Fonctions de la bibliothèque</td></tr><tr><td>Détecter les erreurs de lecture</td><td>Vérification NaN</td></tr><tr><td>Calculer un coût de consommation</td><td>Calcul bonus</td></tr><tr><td>Remettre le compteur à zéro</td><td>Programme avancé</td></tr></tbody></table></figure>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><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;" />&nbsp;<strong>Conseil final</strong>&nbsp;Commencez toujours par tester le câblage&nbsp;<strong>sans brancher le 230V</strong>. Vérifiez d'abord que le Moniteur Série s'affiche correctement (même avec des&nbsp;<code class="" data-line="">NaN</code>). Ensuite seulement, branchez l'alimentation secteur avec un appareil peu puissant comme une simple ampoule LED.</p>



<p><strong>On teste → On observe → On comprend !</strong>&nbsp;<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>
</blockquote>



<p></p>
<p>Cet article <a href="https://plaisirarduino.fr/tutoriel-arduino-le-module-pzem-004t/">Tutoriel Arduino – Le module PZEM-004T</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 84/98 requêtes en 0.031 secondes utilisant Disk

Served from: plaisirarduino.fr @ 2026-05-17 04:14:52 by W3 Total Cache
-->