{"id":6375,"date":"2023-09-12T16:31:17","date_gmt":"2023-09-12T14:31:17","guid":{"rendered":"https:\/\/www.ardpylab.fr\/?page_id=6375"},"modified":"2023-09-13T17:42:19","modified_gmt":"2023-09-13T15:42:19","slug":"des-sketchs-a-ajouter-a-ardpylog-suite","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=6375","title":{"rendered":"Des sketchs \u00e0 ajouter \u00e0 ArdPyLog (suite)"},"content":{"rendered":"\n<p><strong style=\"color: inherit; font-size: 1.25em;\"><br \/>2. <span style=\"text-decoration: underline; color: #3366ff;\"><a style=\"color: #3366ff; text-decoration: underline;\" href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/CTN_Shield_Datalogging_GT1046.zip\">CTN Shield datalogging GT1046<\/a><\/span><\/strong><span style=\"color: inherit; font-size: 1.25em; font-weight: 600;\">\u00a0(<em>Mesure de temp\u00e9ratures avec une thermistance CTN et enregistrement des donn\u00e9es sur une carte SD<\/em> &#8211; Cat\u00e9gorie: <\/span><a href=\"https:\/\/www.ardpylab.fr\/?page_id=6180\"><strong style=\"color: inherit; font-size: 1.25em;\">Temp\u00e9rature<\/strong><\/a><span style=\"color: inherit; font-size: 1.25em; font-weight: 600;\">)<br \/><br \/><\/span><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"935\" height=\"565\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_datalogging_GT1046.jpg\" alt=\"\" class=\"wp-image-6382\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_datalogging_GT1046.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_datalogging_GT1046-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_datalogging_GT1046-768x464.jpg 768w\" sizes=\"auto, (max-width: 935px) 100vw, 935px\" \/><\/figure><\/div>\n\n\n\n<p>\u00a0<\/p>\n<p>L\u2019objectif de l\u2019activit\u00e9 est de mesurer une temp\u00e9rature avec une thermistance CTN dont les grandeurs caract\u00e9ristiques suivantes sont connues :<br \/>&#8211; La valeur de sa r\u00e9sistance R0 (r\u00e9sistance nominale en \u03a9) \u00e0 la temp\u00e9rature de r\u00e9f\u00e9rence T0 = 25 \u00b0C (298,15 K),<br \/>&#8211; La valeur de \u03b2 (en K),<br \/>&#8211; La plage de temp\u00e9rature pour laquelle la relation entre la temp\u00e9rature T (en K) et RT, la r\u00e9sistance (en ohms) de la CTN \u00e0 cette temp\u00e9rature, est v\u00e9rifi\u00e9e :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-6385 aligncenter\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN-300x144.jpg\" alt=\"\" width=\"300\" height=\"144\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN-300x144.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN.jpg 468w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>\u00a0<\/p>\n<p>On utilise un shield datalogging GT1046 pour enregistrer les donn\u00e9es de temp\u00e9rature sur une carte SD, le shield \u00e9tant \u00e9quip\u00e9 d&rsquo;une horloge en temps r\u00e9el pour conna\u00eetre l&rsquo;heure exacte de l&rsquo;enregistrement.<\/p>\n<p>Le code de l&rsquo;activit\u00e9 doit \u00eatre modifi\u00e9 afin de renseigner les valeurs de T0, R0 et \u03b2 de la CTN utilis\u00e9e permettant de calculer la temp\u00e9rature \u00e0 partir de la mesure de la r\u00e9sistance de la CTN.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"text-decoration: underline;\">Le programme<\/span><\/p>\n<p>Voici le code de l\u2019activit\u00e9 :<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>#include &lt;SPI.h&gt;<br \/>#include &lt;SD.h&gt;<br \/>#include &lt;RTClib.h&gt; <br \/>#include &lt;Wire.h&gt;<\/p>\n<p>RTC_DS1307 RTC;<\/p>\n<p>const int chipSelect = 10;<br \/>const int PinSensor = 0;<br \/>int ValSensor = 0;<\/p>\n<p><br \/>void setup() {<br \/>Serial.begin(9600);<br \/>while (!Serial) {<br \/>}<\/p>\n<p>Serial.print(\u00ab\u00a0Initialisation de la carte SD&#8230;\u00a0\u00bb);<\/p>\n<p>if (!SD.begin(chipSelect)) {<br \/>Serial.println(\u00ab\u00a0Carte SD d\u00e9fectueuse ou non presente\u00a0\u00bb);<br \/>return;<br \/>}<br \/>Serial.println(\u00ab\u00a0Carte SD initialis\u00e9e.\u00a0\u00bb);<\/p>\n<p>\/\/ Initialisation de la liaison s\u00e9rie Wire.begin(); <br \/>RTC.begin(); <br \/>\/\/ Cette ligne permet de d\u00e9finir une heure de d\u00e9part pour le module RTC <br \/>\/\/(Ann\u00e9e, mois, jour, \/\/heure, minute, seconde) <br \/>\/\/ Elle peut \u00eatre mise en commentaire une fois le module mis \u00e0 jour. <br \/>RTC.adjust(DateTime(2020, 9, 29, 10, 40, 0));<\/p>\n<p>if (SD.exists(\u00ab\u00a0datalog.txt\u00a0\u00bb)) {<br \/>SD.remove(\u00ab\u00a0datalog.txt\u00a0\u00bb);<br \/>}<br \/>}<\/p>\n<p>void loop() {<br \/>ValSensor = analogRead(PinSensor);<br \/><br \/>File dataFile = SD.open(\u00ab\u00a0datalog.txt\u00a0\u00bb, FILE_WRITE);<br \/>DateTime now = RTC.now();<br \/><br \/>if (dataFile) {<br \/><br \/>dataFile.print(now.day(), DEC); <br \/>dataFile.print(&lsquo;\/&rsquo;); <br \/>dataFile.print(now.month(), DEC); <br \/>dataFile.print(&lsquo;\/&rsquo;); <br \/>dataFile.print(now.year(), DEC);<br \/>dataFile.println(&lsquo; &lsquo;); <br \/>dataFile.print(now.hour(), DEC); <br \/>dataFile.print(&lsquo;:&rsquo;); <br \/>dataFile.print(now.minute(), DEC); <br \/>dataFile.print(&lsquo;:&rsquo;); <br \/>dataFile.print(now.second(), DEC); <br \/>dataFile.println(); <br \/><br \/>dataFile.print(\u00ab\u00a0Valeur A0: \u00ab\u00a0);<br \/>dataFile.println(ValSensor);<br \/>dataFile.println();<br \/>dataFile.close();<\/p>\n<p>Serial.print(now.day(), DEC); <br \/>Serial.print(&lsquo;\/&rsquo;); <br \/>Serial.print(now.month(), DEC); <br \/>Serial.print(&lsquo;\/&rsquo;); <br \/>Serial.print(now.year(), DEC);<br \/>Serial.println(&lsquo; &lsquo;); <br \/>Serial.print(now.hour(), DEC); <br \/>Serial.print(&lsquo;:&rsquo;); <br \/>Serial.print(now.minute(), DEC); <br \/>Serial.print(&lsquo;:&rsquo;); <br \/>Serial.print(now.second(), DEC); <br \/>Serial.println(); <br \/><br \/>Serial.print(\u00ab\u00a0Valeur A0: \u00ab\u00a0);<br \/>Serial.println(ValSensor);<br \/>Serial.println();<\/p>\n<p>delay(5000);<br \/>}<br \/>else {<br \/>Serial.println(\u00ab\u00a0erreur lors de l&rsquo;ouverture du fichier datalog.txt\u00a0\u00bb);<br \/>}<br \/>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u00a0<\/p>\n<p><span style=\"text-decoration: underline;\">D\u00e9roulement du programme :<br \/><\/span><\/p>\n<p>\u2013 1. Inclusion des librairies<\/p>\n<p style=\"padding-left: 40px;\">Pour effectuer les calculs de temp\u00e9rature, le code n\u00e9cessite l\u2019importation de la librairie \u201dmath.h\u201d, et pour l\u2019utilisation du shield DataLogging, les librairies suivantes doivent \u00e9galement \u00eatre import\u00e9es :<\/p>\n<p style=\"padding-left: 40px;\">#include &lt;SPI.h&gt;<br \/>#include &lt;SD.h&gt;<br \/>#include &lt;RTClib.h&gt;<br \/>#include &lt;Wire.h&gt;<\/p>\n<p style=\"padding-left: 40px;\">Remarque :<\/p>\n<p style=\"padding-left: 40px;\">Pour utiliser le module RTC (horloge en temps r\u00e9el), il est n\u00e9cessaire de t\u00e9l\u00e9charger la librairie RTClib.h disponible \u00e0 cette <a href=\"https:\/\/github.com\/adafruit\/RTClib\/\">adresse<\/a>.<\/p>\n<p style=\"padding-left: 40px; text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6427\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_Datalogging_GT1046-1-300x227.jpg\" alt=\"\" width=\"400\" height=\"303\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_Datalogging_GT1046-1-300x227.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_Datalogging_GT1046-1.jpg 372w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/p>\n<p>Cliquez sur \u00ab Code \u00bb puis sur \u00ab Download Zip \u00bb. Cette action t\u00e9l\u00e9chargera un fichier compress\u00e9 au format .ZIP contenant la librairie.<\/p>\n<p>Ajoutez cette biblioth\u00e8que via le menu \u00ab Croquis \u00bb du logiciel Arduino IDE :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6428\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_Datalogging_GT1046_2-300x125.jpg\" alt=\"\" width=\"552\" height=\"230\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_Datalogging_GT1046_2-300x125.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN_Shield_Datalogging_GT1046_2.jpg 665w\" sizes=\"auto, (max-width: 552px) 100vw, 552px\" \/><\/p>\n<p>\u00a0<\/p>\n<p>\u2013 2. D\u00e9claration des constantes et variables :<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int PinSensor = 0<\/strong> (constante nombre entier correspondant \u00e0 la broche de la CTN)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int chipSelect = 10<\/strong> (constante nombre entier correspondant \u00e0 la broche du shield datalogging)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>long Ro = 22200<\/strong> (variable nombre entier long pour stocker la valeur de la r\u00e9sistance de la CTN \u00e0 la temp\u00e9rature de r\u00e9f\u00e9rence)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int B = 3820<\/strong> (variable nombre entier pour stocker la valeur de la constante \u03b2)<\/p>\n<p style=\"padding-left: 40px;\">.<strong> int TempRef = 25<\/strong> (variable nombre entier pour stocker la valeur de la temp\u00e9rature de r\u00e9f\u00e9rence)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int ValSensor = 0<\/strong> (variable nombre entier pour stocker la valeur de la broche de la CTN)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>float Temp = 0.0<\/strong> (variable nombre d\u00e9cimal pour stocker la valeur de la temp\u00e9rature)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>float Rt = 0.0<\/strong> (variable nombre d\u00e9cimal pour stocker la valeur de la r\u00e9sistance de la CTN)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>float Vctn = 0.0<\/strong> (variable nombre d\u00e9cimal pour stocker la valeur de la tension de la broche de la<br \/>CTN)<\/p>\n<p><br \/>\u2013 3. Initialisation des entr\u00e9es et sorties :<\/p>\n<p style=\"padding-left: 40px;\">. <strong>Initialisation de la liaison s\u00e9rie \u00e0 un d\u00e9bit de 9600 bauds,<\/strong><\/p>\n<p style=\"padding-left: 40px;\">. <strong>Initialisation de la carte SD,<\/strong><\/p>\n<p style=\"padding-left: 40px;\">. I<strong>nitialisation de l\u2019horloge en temps r\u00e9el,<\/strong><\/p>\n<p style=\"padding-left: 40px;\">. <strong>Cr\u00e9ation du fichier d\u2019enregistrement des donn\u00e9es \u00ab datalog.txt \u00bb (si ce fichier est d\u00e9j\u00e0 pr\u00e9sent sur la carte SD, celui-ci est effac\u00e9)<\/strong><\/p>\n<p><br \/>\u2013 4. Fonction principale en boucle :<\/p>\n<p style=\"padding-left: 40px;\">\u2013&gt;<strong>Lecture de la valeur de la broche de la CTN,<\/strong><\/p>\n<p style=\"padding-left: 40px;\">\u2013&gt; <strong>Calcul de la r\u00e9sistance de la CTN,<\/strong><\/p>\n<p style=\"padding-left: 40px;\">\u2013&gt; <strong>Calcul de la temp\u00e9rature,<\/strong><\/p>\n<p style=\"padding-left: 40px;\">\u2013&gt; <strong>Enregistrement de la date et de l\u2019heure des mesures de la temp\u00e9rature sur la carte SD et affichage des donn\u00e9es enregistr\u00e9es dans le moniteur s\u00e9rie.<\/strong><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"text-decoration: underline;\">R\u00e9sultats dans le moniteur s\u00e9rie<\/span> :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-6388 aligncenter\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN2-300x212.jpg\" alt=\"\" width=\"451\" height=\"319\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN2-300x212.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/CTN2.jpg 625w\" sizes=\"auto, (max-width: 451px) 100vw, 451px\" \/><\/p>\n<p>\u00a0<\/p>\n\n\n<div  class=\"grids-section grids-is-advanced\" style=\"--_gs-gap-desktop:0px 0px;--_gs-m-desktop:0 0 0 0;--_gs-p-desktop:0 0 0 0;--_gs-bg-desktop:transparent none;--_gs-bg-xp-desktop:0px;--_gs-zi-desktop:auto;--_gs-d-desktop:block;--_gs-mw-desktop:calc(100% - 0 - 0);--_gs-gap-tablet:0px 0px;--_gs-m-tablet:0 0 0 0;--_gs-p-tablet:0 0 0 0;--_gs-bg-tablet:transparent none;--_gs-bg-xp-tablet:0px;--_gs-zi-tablet:auto;--_gs-d-tablet:block;--_gs-mw-tablet:calc(100% - 0 - 0);--_gs-gap-mobile:0px 0px;--_gs-m-mobile:0 0 0 0;--_gs-p-mobile:0 0 0 0;--_gs-bg-mobile:transparent none;--_gs-bg-xp-mobile:0px;--_gs-zi-mobile:auto;--_gs-d-mobile:block;--_gs-mw-mobile:calc(100% - 0 - 0);--_gs-columns:12;--_gs-rows:6\"><div class=\"grids-s-w_i\">\n<div class=\"grids-area\" style=\"--_ga-column:1\/2;--_ga-row:1\/2;--_ga-m-desktop:0 0 0 0;--_ga-p-desktop:0 0 0 0;--_ga-bg-desktop:transparent none;--_ga-zi-desktop:auto;--_ga-d-desktop:flex;--_ga-mw-desktop:calc(100% - 0 - 0);--_ga-m-tablet:0 0 0 0;--_ga-p-tablet:0 0 0 0;--_ga-bg-tablet:transparent none;--_ga-zi-tablet:auto;--_ga-d-tablet:flex;--_ga-mw-tablet:calc(100% - 0 - 0);--_ga-m-mobile:0 0 0 0;--_ga-p-mobile:0 0 0 0;--_ga-bg-mobile:transparent none;--_ga-zi-mobile:auto;--_ga-d-mobile:flex;--_ga-mw-mobile:calc(100% - 0 - 0)\">\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=6330\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/moins.jpg\" alt=\"\" class=\"wp-image-107\" width=\"44\" height=\"24\"\/><\/a><\/figure>\n\n<\/div>\n\n<div class=\"grids-area\" style=\"--_ga-column:12\/13;--_ga-row:1\/2;--_ga-m-desktop:0 0 0 0;--_ga-p-desktop:0 0 0 0;--_ga-bg-desktop:transparent none;--_ga-zi-desktop:auto;--_ga-d-desktop:flex;--_ga-mw-desktop:calc(100% - 0 - 0);--_ga-m-tablet:0 0 0 0;--_ga-p-tablet:0 0 0 0;--_ga-bg-tablet:transparent none;--_ga-zi-tablet:auto;--_ga-d-tablet:flex;--_ga-mw-tablet:calc(100% - 0 - 0);--_ga-m-mobile:0 0 0 0;--_ga-p-mobile:0 0 0 0;--_ga-bg-mobile:transparent none;--_ga-zi-mobile:auto;--_ga-d-mobile:flex;--_ga-mw-mobile:calc(100% - 0 - 0)\">\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=6399\"><img loading=\"lazy\" decoding=\"async\" width=\"50\" height=\"28\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/plus.jpg\" alt=\"\" class=\"wp-image-106\"\/><\/a><\/figure>\n\n<\/div>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>2. CTN Shield datalogging GT1046\u00a0(Mesure de temp\u00e9ratures avec une thermistance CTN et enregistrement des donn\u00e9es sur une carte SD &#8211; Cat\u00e9gorie: Temp\u00e9rature) \u00a0 L\u2019objectif de l\u2019activit\u00e9 est de mesurer une temp\u00e9rature avec une thermistance CTN dont les grandeurs caract\u00e9ristiques suivantes sont connues :&#8211; La valeur de sa r\u00e9sistance R0 (r\u00e9sistance nominale en \u03a9) \u00e0 la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6375","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6375"}],"version-history":[{"count":23,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6375\/revisions"}],"predecessor-version":[{"id":6466,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6375\/revisions\/6466"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}