{"id":1794,"date":"2020-03-23T17:37:59","date_gmt":"2020-03-23T16:37:59","guid":{"rendered":"http:\/\/www.boichat.ch\/wpjrsp\/?p=1794"},"modified":"2020-03-23T18:16:16","modified_gmt":"2020-03-23T17:16:16","slug":"ds18b20-et-flask","status":"publish","type":"post","link":"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/","title":{"rendered":"Raspberry Pi &#8211; DS18B20 et Flask (Python)"},"content":{"rendered":"\n<p>Le <strong>Dallas DS18B20<\/strong> est un capteur de temp\u00e9rature digital qui utilise le protocole 1-wire. C&rsquo;est d\u00e9crit dans le chapitre 18 de mon livre <a rel=\"noreferrer noopener\" aria-label=\" (ouverture dans un nouvel onglet)\" href=\"https:\/\/www.boichat.ch\/wpjrsp\/\" target=\"_blank\"><strong>Programmer en Java pour le Raspberry Pi<\/strong><\/a> (RPi).<\/p>\n\n\n\n<p><strong>Flask <\/strong>, un environnement de d\u00e9veloppement Web sous Python, est d\u00e9crit dans mon article <a rel=\"noreferrer noopener\" aria-label=\"Python Flask et SQLite pour le Raspberry Pi 3 ou 4 - exemples de communication avec des ESP32 ou ESP8266 (ouverture dans un nouvel onglet)\" href=\"https:\/\/boichat.developpez.com\/tutoriels\/raspberry-pi-flask-sqlite\/\" target=\"_blank\"><strong>Python Flask et SQLite pour le Raspberry Pi 3 ou 4 &#8211; exemples de communication avec des ESP32 ou ESP8266<\/strong><\/a>.<\/p>\n\n\n\n<p>Au chapitre 18, nous expliquons comment activer les modules du kernel du RPi afin de recevoir, dans un sous r\u00e9pertoire <em><strong>\/sys\/bus\/w1\/devices<\/strong><\/em>, la valeur de la temp\u00e9rature contenue dans un fichier nomm\u00e9 <strong><em>w1_slave<\/em><\/strong>. Une classe Java <strong>DS18x20read <\/strong>va extraire cette temp\u00e9rature d&rsquo;une mani\u00e8re conventionnelle et \u00e9videmment sans ressource GPIO. <\/p>\n\n\n\n<p>Le principe du livre est que pour chaque composant GPIO qui va utiliser la librairie Pi4J, nous montrons un exemple en Python afin de tester le circuit. Donc ici, pour le DS18B20, il n&rsquo;y a pas d&rsquo;exemple en Python pour montrer l&rsquo;acc\u00e8s \u00e0 cette temp\u00e9rature, pratiqu\u00e9 d&rsquo;une mani\u00e8re traditionnelle en Java.<\/p>\n\n\n\n<p>C&rsquo;est donc le but de cet article, avec un petit exemple en Python sous Flask:<\/p>\n\n\n\n<p>Fichier <strong>latemperature.py<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\nfrom flask import Flask, render_template\napp = Flask(__name__)\n \n@app.route(\"\/latemperature\")\ndef latemperature():\n   latemperature = 0.000\n   f = open('\/sys\/bus\/w1\/devices\/28-021318ab83aa\/w1_slave', 'r')\n   lines = f.readlines()\n   f.close()\n   equals_pos = lines&#91;1].find('t=')\n   if equals_pos != -1:\n     temp_string = lines&#91;1]&#91;equals_pos+2:]\n     print temp_string\n     latemperature = float(temp_string) \/ 1000.0\n \n   templateData = {\n      'title' : 'Notre temperature',\n      'relaystate': latemperature\n      }\n   return render_template('latemperature.html', **templateData)\n \nif __name__ == \"__main__\":\n   app.run(host='0.0.0.0', port=80, debug=True)<\/code><\/pre>\n\n\n\n<p>Et son template Flask <strong>latemperature.html<\/strong> dans le sous-r\u00e9pertoire <strong>templates <\/strong>o\u00f9 a \u00e9t\u00e9 d\u00e9pos\u00e9 le fichier Python pr\u00e9c\u00e9dent:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n   &lt;head>\n      &lt;title>{{ title }}&lt;\/title>\n   &lt;\/head>\n \n   &lt;body>\n      &lt;h3>La temp&amp;eacute;rature: {{ relaystate }}&lt;\/h3>\n   &lt;\/body><\/code><\/pre>\n\n\n\n<p>Pour comprendre les d\u00e9tails de ce code, il faudra \u00e9videmment se r\u00e9f\u00e9rer au chapitre 18 du livre et \u00e0 l&rsquo;article sur Flask. Le code Python pourrait \u00e9videmment \u00eatre am\u00e9lior\u00e9 afin d&rsquo;automatiser la recherche du r\u00e9pertoire <strong><em>\/sys\/bus\/w1\/devices<\/em><\/strong> o\u00f9 se trouve effectivement le fichier <strong><em>w1_slave<\/em><\/strong>, ici dans le sous-r\u00e9pertoire <strong><em>28-021318ab83aa<\/em><\/strong> , qui est g\u00e9n\u00e9r\u00e9 lors de l&rsquo;installation du capteur DS18B20 sur le port GPIO du RPi (la broche physique 7 est la broche par d\u00e9faut des donn\u00e9es venant du DS18B20 &#8230; il y a \u00e9videmment une foule de petits d\u00e9tails impossible \u00e0 d\u00e9crire dans un si petit article).  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le Dallas DS18B20 est un capteur de temp\u00e9rature digital qui utilise le protocole 1-wire. C&rsquo;est d\u00e9crit dans le chapitre 18 de mon livre Programmer en&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Raspberry Pi - DS18B20 et Flask (Python) - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Raspberry Pi - DS18B20 et Flask (Python) - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3\" \/>\n<meta property=\"og:description\" content=\"Le Dallas DS18B20 est un capteur de temp\u00e9rature digital qui utilise le protocole 1-wire. C&rsquo;est d\u00e9crit dans le chapitre 18 de mon livre Programmer en&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/\" \/>\n<meta property=\"og:site_name\" content=\"Un livre sur Java, Python, Eclipse et le Raspberry Pi 3\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-23T16:37:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-23T17:16:16+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jean-Bernard Boichat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#website\",\"url\":\"https:\/\/www.boichat.ch\/wpjrsp\/\",\"name\":\"Un livre sur Java, Python, Eclipse et le Raspberry Pi 3\",\"description\":\"Jean-Bernard Boichat - Auteur chez Eyrolles\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.boichat.ch\/wpjrsp\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/#webpage\",\"url\":\"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/\",\"name\":\"Raspberry Pi - DS18B20 et Flask (Python) - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3\",\"isPartOf\":{\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#website\"},\"datePublished\":\"2020-03-23T16:37:59+00:00\",\"dateModified\":\"2020-03-23T17:16:16+00:00\",\"author\":{\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.boichat.ch\/wpjrsp\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Pi &#8211; DS18B20 et Flask (Python)\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751\",\"name\":\"Jean-Bernard Boichat\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#personlogo\",\"inLanguage\":\"fr-FR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/862886ce35a52b9d13595e18ac3c3ea5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/862886ce35a52b9d13595e18ac3c3ea5?s=96&d=mm&r=g\",\"caption\":\"Jean-Bernard Boichat\"},\"sameAs\":[\"http:\/\/www.boichat.ch\"],\"url\":\"https:\/\/www.boichat.ch\/wpjrsp\/author\/bjb\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Raspberry Pi - DS18B20 et Flask (Python) - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/","og_locale":"fr_FR","og_type":"article","og_title":"Raspberry Pi - DS18B20 et Flask (Python) - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","og_description":"Le Dallas DS18B20 est un capteur de temp\u00e9rature digital qui utilise le protocole 1-wire. C&rsquo;est d\u00e9crit dans le chapitre 18 de mon livre Programmer en&hellip;","og_url":"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/","og_site_name":"Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","article_published_time":"2020-03-23T16:37:59+00:00","article_modified_time":"2020-03-23T17:16:16+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Jean-Bernard Boichat","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/www.boichat.ch\/wpjrsp\/#website","url":"https:\/\/www.boichat.ch\/wpjrsp\/","name":"Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","description":"Jean-Bernard Boichat - Auteur chez Eyrolles","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.boichat.ch\/wpjrsp\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/#webpage","url":"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/","name":"Raspberry Pi - DS18B20 et Flask (Python) - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","isPartOf":{"@id":"https:\/\/www.boichat.ch\/wpjrsp\/#website"},"datePublished":"2020-03-23T16:37:59+00:00","dateModified":"2020-03-23T17:16:16+00:00","author":{"@id":"https:\/\/www.boichat.ch\/wpjrsp\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751"},"breadcrumb":{"@id":"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.boichat.ch\/wpjrsp\/2020\/03\/23\/ds18b20-et-flask\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.boichat.ch\/wpjrsp\/"},{"@type":"ListItem","position":2,"name":"Raspberry Pi &#8211; DS18B20 et Flask (Python)"}]},{"@type":"Person","@id":"https:\/\/www.boichat.ch\/wpjrsp\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751","name":"Jean-Bernard Boichat","image":{"@type":"ImageObject","@id":"https:\/\/www.boichat.ch\/wpjrsp\/#personlogo","inLanguage":"fr-FR","url":"https:\/\/secure.gravatar.com\/avatar\/862886ce35a52b9d13595e18ac3c3ea5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/862886ce35a52b9d13595e18ac3c3ea5?s=96&d=mm&r=g","caption":"Jean-Bernard Boichat"},"sameAs":["http:\/\/www.boichat.ch"],"url":"https:\/\/www.boichat.ch\/wpjrsp\/author\/bjb\/"}]}},"_links":{"self":[{"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/posts\/1794"}],"collection":[{"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/comments?post=1794"}],"version-history":[{"count":0,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/posts\/1794\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/media?parent=1794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/categories?post=1794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/tags?post=1794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}