{"id":4660,"date":"2020-05-07T19:26:22","date_gmt":"2020-05-07T17:26:22","guid":{"rendered":"http:\/\/www.ardpylab.fr\/?page_id=4660"},"modified":"2020-05-16T11:49:39","modified_gmt":"2020-05-16T09:49:39","slug":"projet-5-activite-2","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=4660","title":{"rendered":"Projet 5 &#8211; Activit\u00e9 2"},"content":{"rendered":"\n<h2 style=\"text-align: center;\"><strong><em data-rich-text-format-boundary=\"true\">\u201dAlarme sonore par d\u00e9passement de temp\u00e9rature<\/em><\/strong><strong><em data-rich-text-format-boundary=\"true\">\u201d<br><br><\/em><\/strong><\/h2>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5126 \" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-0.png\" alt=\"\" width=\"469\" height=\"353\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-0.png 577w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-0-300x225.png 300w\" sizes=\"auto, (max-width: 469px) 100vw, 469px\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n\n\n\n<p>&nbsp;<\/p>\n<h4><strong><span style=\"color: #3366ff;\">.&nbsp;<span style=\"text-decoration: underline;\">Objectif<br><br><\/span><\/span><\/strong><\/h4>\n<p>L\u2019objectif de cette activit\u00e9 est de r\u00e9aliser une alarme sonore et visuelle qui se d\u00e9clenchera lorsque la temp\u00e9rature mesur\u00e9e par un capteur <strong>TMP 36<\/strong> ou <strong>LM 35<\/strong>&nbsp;est sup\u00e9rieure \u00e0 une valeur seuil \u00e0 d\u00e9finir, permettant, par exemple, de pr\u00e9venir un utilisateur du d\u00e9passement de la temp\u00e9rature d\u2019utilisation d\u2019un mat\u00e9riel.<\/p>\n<p>Il suffit pour cela de reprendre le programme de l\u2019activit\u00e9 pr\u00e9c\u00e9dente, auquel nous allons ajouter le code de l\u2019alarme sonore et visuelle d\u00e9j\u00e0 vu.<\/p>\n<p>Les mesures de temp\u00e9rature commencent apr\u00e8s un appui sur le bouton poussoir et sont arr\u00eat\u00e9es en appuyant de nouveau sur celui-ci.<\/p>\n<p>&nbsp;<\/p>\n<h4><strong><span style=\"color: #3366ff;\">.&nbsp;<span style=\"text-decoration: underline;\">Le programme<br><br><\/span><\/span><\/strong><\/h4>\n<p>Le code de l\u2019activit\u00e9 en Python ou en langage Arduino pourra \u00eatre modifi\u00e9 pour voir l\u2019influence des variables (seuil de temp\u00e9rature, fr\u00e9quence de l\u2019onde sonore, dur\u00e9e d\u2019\u00e9mission, dur\u00e9e de silence).<br><br><\/p>\n<h4><strong>. <u>Programme en Python (\u201d<a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet5\/projet5-activity2.zip\">Projet5\\Activity2\\PY\\Activity2.py<\/a>\u201d)<br><br><\/u><\/strong><\/h4>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet5\/Activity2\/PY\/Activity2.py\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5124 size-full\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-1.png\" alt=\"\" width=\"767\" height=\"1933\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-1.png 767w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-1-119x300.png 119w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-1-406x1024.png 406w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-1-609x1536.png 609w\" sizes=\"auto, (max-width: 767px) 100vw, 767px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<p><strong><u><br>D\u00e9roulement du programme<\/u><\/strong><strong>&nbsp;:<\/strong><\/p>\n<p>&#8211; <u>Importation des librairies&nbsp;et d\u00e9finition de fonctions<\/u> :<\/p>\n<p style=\"padding-left: 40px;\">. Le module <strong>\u201dConnectToArduino.py\u201d, <\/strong>contenant les fonctions de connexion \u00e0 l\u2019Arduino via le protocole <strong>\u201dFirmata Express\u201d<\/strong>,<\/p>\n<p style=\"padding-left: 40px;\">. Le module <strong>\u201d<\/strong><strong>PymataExpressDef.Py\u201d<\/strong> regroupant toutes les fonctions utiles \u00e0 l\u2019utilisation de <strong>\u201d<\/strong><strong>Pymata<\/strong><strong>-express\u201d<\/strong>&nbsp;(fonction de d\u00e9claration des entr\u00e9es et sorties, de lectures, d\u2019\u00e9critures\u2026),<\/p>\n<p style=\"padding-left: 40px;\">. La biblioth\u00e8que <strong>\u201d<\/strong><strong>time\u201d <\/strong>pour la gestion des temps de pause.<br><br><\/p>\n<p>&#8211; <u>D\u00e9claration des constantes et variables<\/u>&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PinSensor = 0 <\/strong>(cst correspondant au n\u00b0 de la broche A0 sur laquelle le capteur de temp\u00e9rature est connect\u00e9)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>ValSensor = 0 <\/strong>(variable pour stocker la valeur de la broche du capteur de temp\u00e9rature)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>tension = 0 <\/strong>(variable correspondant \u00e0 la valeur de la tension en V de la broche du capteur de temp\u00e9rature)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>Temp = 0<\/strong> (variable correspondant \u00e0 la temp\u00e9rature en \u00b0C calcul\u00e9e \u00e0 partir de la valeur de la broche du capteur)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>OldTemp = 0<\/strong> (variable correspondant \u00e0 la temp\u00e9rature en \u00b0C calcul\u00e9e pr\u00e9c\u00e9demment)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>TempAlarme = 22.0 <\/strong>(cst correspondant \u00e0 la temp\u00e9rature du seuil de d\u00e9clenchement de l\u2019alarme)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PinButton = 12 <\/strong>(cst correspondant au n\u00b0 de la broche sur laquelle le bouton poussoir est connect\u00e9)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PinLed = 8 <\/strong>(cst correspondant au n\u00b0 de la broche sur laquelle la DEL est connect\u00e9e)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PinTone = 3 <\/strong>(cst correspondant au n\u00b0 de la broche sur laquelle le buzzer est connect\u00e9)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>ValButton = 0<\/strong> (variable pour stocker la valeur de l\u2019\u00e9tat logique de la broche du bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>OldValButton = 0<\/strong> (variable pour stocker la valeur pr\u00e9c\u00e9dente de l\u2019\u00e9tat logique de la broche du bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>State=0<\/strong> (variable correspondant \u00e0 l\u2019action \u00e0 effectuer)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>OldState = 0<\/strong> (variable pour stocker la valeur pr\u00e9c\u00e9dente de la variable <strong>state<\/strong>)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PortComArduino <\/strong>(port COM sur lequel l\u2019Arduino est connect\u00e9)&nbsp;<br><br><\/p>\n<p>&#8211; <u>Connexion \u00e0 l&rsquo;Arduino<\/u>&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">. D\u00e9tection du port COM, tentative d\u2019ouverture du port COM s\u00e9lectionn\u00e9 et connexion \u00e0 l\u2019Arduino:<\/p>\n<p style=\"padding-left: 80px;\"><strong>PortComArduino = SelectPortCOM()<\/strong><\/p>\n<p style=\"padding-left: 80px;\"><strong>board = OpenPortCom(PortComArduino)<br><br><\/strong><\/p>\n<p style=\"padding-left: 40px;\">. Si la connexion \u00e0 l\u2019Arduino est r\u00e9ussie :<\/p>\n<p style=\"padding-left: 80px;\">&#8211; D\u00e9claration de la broche du capteur de temp\u00e9rature en entr\u00e9e analogique&nbsp;:<\/p>\n<p style=\"padding-left: 120px;\"><strong>Set_AnalogInput_Pin(board, PinSensor) <\/strong><\/p>\n<p style=\"padding-left: 80px;\">&#8211; D\u00e9claration de la broche de la DEL en sortie num\u00e9rique&nbsp;:<\/p>\n<p style=\"padding-left: 120px;\"><strong>Set_DigitalOutput_Pin(board, PinLed)<\/strong><\/p>\n<p style=\"padding-left: 80px;\">&#8211; D\u00e9claration de la broche du bouton poussoir en entr\u00e9e num\u00e9rique&nbsp;:<\/p>\n<p style=\"padding-left: 120px;\"><strong>Set_DigitalInput_Pin(board, PinButton)<\/strong><\/p>\n<p style=\"padding-left: 80px;\">&#8211; D\u00e9claration de la broche du buzzer en mode \u201dTone\u201d :<\/p>\n<p style=\"padding-left: 120px;\"><strong>Set_Tone_Pin(board,PinTone)<br><br><\/strong><\/p>\n<p>&#8211; <u>Boucle principale du programme (boucle \u201d<\/u><u>while True\u201d<\/u><u>)<\/u> :<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5132 size-full\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-2.png\" alt=\"\" width=\"1101\" height=\"2104\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-2.png 1101w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-2-157x300.png 157w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-2-536x1024.png 536w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-2-768x1468.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-2-804x1536.png 804w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-2-1072x2048.png 1072w\" sizes=\"auto, (max-width: 1101px) 100vw, 1101px\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n\n\n\n\n\n\n\n<p><strong><u>R\u00e9sultats dans la fen\u00eatre Python Shell&nbsp;:<br><\/u><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\" style=\"padding-left: 40px;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5139 alignnone\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projet5-activity2-3.png\" alt=\"\" width=\"551\" height=\"265\"><\/figure>\n<p>&nbsp;<\/p>\n\n\n\n<h4><strong><br \/>. <u>Programme en langage Arduino (\u201d<a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet5\/projet5-activity2.zip\">Projet5\\Activity2\\INO\\Activity2.ino<\/a>\u201d)<br \/><br \/><\/u><\/strong><\/h4>\n<p>Le code de l&rsquo;activit\u00e9 en langage Arduino a d\u00e9j\u00e0 \u00e9t\u00e9 \u00e9tudi\u00e9 dans la partie:<br \/>\u201d<a href=\"https:\/\/www.ardpylab.fr\/?page_id=887\/#prog\"><strong>Activit\u00e9s pour les lyc\u00e9es \/ Temp\u00e9ratures \/ Activit\u00e9 2<\/strong><\/a>\u201d<\/p>\n<p>\u00a0<\/p>\n\n\n<div  class=\"grids-section grids-is-stretch\" 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:2;--_gs-rows:1\"><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<div class=\"wp-block-image\"><figure class=\"alignleft size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=4653\"><img loading=\"lazy\" decoding=\"async\" width=\"50\" height=\"28\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/moins.jpg\" alt=\"\" class=\"wp-image-107\"\/><\/a><\/figure><\/div>\n\n<\/div>\n\n<div class=\"grids-area\" style=\"--_ga-column:2\/3;--_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<div class=\"wp-block-image\"><figure class=\"alignright size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=4666\"><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><\/div>\n\n<\/div>\n<\/div><\/div>\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>\u201dAlarme sonore par d\u00e9passement de temp\u00e9rature\u201d &nbsp; &nbsp; .&nbsp;Objectif L\u2019objectif de cette activit\u00e9 est de r\u00e9aliser une alarme sonore et visuelle qui se d\u00e9clenchera lorsque la temp\u00e9rature mesur\u00e9e par un capteur TMP 36 ou LM 35&nbsp;est sup\u00e9rieure \u00e0 une valeur seuil \u00e0 d\u00e9finir, permettant, par exemple, de pr\u00e9venir un utilisateur du d\u00e9passement de la temp\u00e9rature [&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-4660","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/4660","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=4660"}],"version-history":[{"count":1,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/4660\/revisions"}],"predecessor-version":[{"id":5197,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/4660\/revisions\/5197"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}