{"id":238,"date":"2018-02-02T17:07:14","date_gmt":"2018-02-02T16:07:14","guid":{"rendered":"http:\/\/www.boichat.ch\/wordpress\/?p=238"},"modified":"2025-10-11T10:02:06","modified_gmt":"2025-10-11T08:02:06","slug":"raspberry-pi-3-java-un-projet-consequent","status":"publish","type":"post","link":"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/","title":{"rendered":"Raspberry Pi 3 &#8211; Java &#8211; Un projet cons\u00e9quent"},"content":{"rendered":"<p><a href=\"https:\/\/www.boichat.ch\/wpjrsp\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mon livre, publi\u00e9 chez Eyrolles, d\u00e9di\u00e9 \u00e0 Java, \u00e0 Eclipse, au Raspberry Pi 3 ou encore \u00e0 Python<\/a>, peut \u00eatre <a href=\"https:\/\/www.amazon.fr\/Java-pour-Raspberry-Pi-Programmer\/dp\/2212677464\" target=\"_blank\" rel=\"noopener noreferrer\">command\u00e9 par exemple sur Amazon<\/a>. Nous y retrouverons plein d&#8217;exemples et d&#8217;exercices comme d\u00e9crit ici. Vous pouvez me contacter: <a href=\"mailto:jean-bernard@boichat.ch\" target=\"_blank\" rel=\"noopener noreferrer\">jean-bernard@boichat.ch<\/a><br><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-134\" src=\"https:\/\/www.boichat.ch\/wordpress\/wp-content\/uploads\/2017\/12\/ligne2bleu800.png\" alt=\"\" width=\"800\" height=\"3\" srcset=\"https:\/\/www.boichat.ch\/wordpress\/wp-content\/uploads\/2017\/12\/ligne2bleu800.png 800w, https:\/\/www.boichat.ch\/wordpress\/wp-content\/uploads\/2017\/12\/ligne2bleu800-300x1.png 300w, https:\/\/www.boichat.ch\/wordpress\/wp-content\/uploads\/2017\/12\/ligne2bleu800-768x3.png 768w, https:\/\/www.boichat.ch\/wordpress\/wp-content\/uploads\/2017\/12\/ligne2bleu800-700x3.png 700w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>J&#8217;ai \u00e9crit une application similaire, en Java, sur mon premier Raspberry, il y a quelques ann\u00e9es, qui marche vraiment bien. Je suis en train de l\u2019\u00e9tendre et de l&#8217;am\u00e9liorer, pour mon dernier Pi 3.<\/p>\n<p>Voici en quelques mots la d\u00e9marche et les sp\u00e9cifications:<\/p>\n<div style=\"padding: 12px; background-color: #cadbab; border: 2px solid #476117;\">\n<p>Cette application va allumer et \u00e9teindre une lampe de bureau ou un lampadaire, pour \u00e0 la fois simuler une pr\u00e9sence dans la maison et lors de d\u00e9placement de personnes en cas de basse lumi\u00e8re.<\/p>\n<p>Le lever et le coucher du soleil doivent \u00eatre calcul\u00e9s suivant la saison et un certain nombre de param\u00e8tres doivent \u00eatre d\u00e9finis. A 2 heures du matin, nous ne ferons pas de simulation, mais un d\u00e9placement de personne sera d\u00e9tect\u00e9e.<\/p>\n<p>En cas de tr\u00e8s basse lumi\u00e8re (ou d&#8217;\u00e9clipse de soleil), nous aurons donc la lampe qui s&#8217;allume aussi pour nous permettre de descendre les escaliers!<\/p>\n<p>Un serveur Web va nous permettre de v\u00e9rifier le bon fonctionnement de la b\u00eate, de montrer les p\u00e9riodes actives, et d&#8217;autres valeurs comme la temp\u00e9rature au voisinage du syst\u00e8me ou l&#8217;acc\u00e8s \u00e0 des donn\u00e9es ext\u00e9rieurs dans d&#8217;autres objets connect\u00e9s.<\/p>\n<\/div>\n<p>Il faudra donc un certain nombre de composants que je poserai sur une platine de test et v\u00e9rifierai avec des scripts Python avant les int\u00e9grer dans le code Java:<\/p>\n<div style=\"padding: 12px; background-color: #cadbab; border: 2px solid #476117;\">&#8211; Un relais 220V pour la lampe<br>&#8211; Un senseur de mouvement<br>&#8211; Un senseur de lumi\u00e8re<br>&#8211; Un senseur de temp\u00e9rature<br>&#8211; Une LED d&#8217;alarme ou d&#8217;indication<br>&#8211; Un buzzer (avertisseur sonore)<\/div>\n<p>Pour le relais 5\/220V et le buzzer, j&#8217;ai re\u00e7u de Chine des composants dont j&#8217;ai eu des difficult\u00e9s \u00e0 retrouver les sch\u00e9mas et sp\u00e9cifications. Afin de ne pas endommager mon Raspberry, j&#8217;ai commenc\u00e9 par les tester sur mon vieux Arduino Duemilanove.<\/p>\n<p>L&#8217;application (a \u00e9t\u00e9) et est d\u00e9velopp\u00e9e sous <a href=\"http:\/\/www.eclipse.org\/downloads\/eclipse-packages\/\" target=\"_blank\" rel=\"noopener noreferrer\">Eclipse Oxygen<\/a> et fonctionne sous Windows en simulant les composants hardware ou autres mouvements.<\/p>\n<pre style=\"padding: 12px; background-color: #fafad2;\"><span style=\"font-size: 10pt;\">public SystemControl() { \n   if (System.getProperty(\"os.name\").startsWith(\"Windows\")) {\n      System.out.println(\"SystemControl - We are on Windows \");\n    \n      withPrint = true;    \/\/Message de d\u00e9roulement du programme\n      isTarget  = false;   \/\/Identifie si on se trouve sur le Pi 3\n   } \n }\n<\/span><\/pre>\n<p>Je ne suis pas certain que je vais d\u00e9poser ici tout mon mat\u00e9riel, car je n&#8217;aime pas trop montrer du code pas trop propre!&nbsp;Et cette application est plus que cons\u00e9quente.<\/p>\n<p>Chaque fois qu&#8217;une classe peut \u00eatre test\u00e9e s\u00e9par\u00e9ment, c&#8217;est un plus d&#8217;y ajouter une entr\u00e9e <em><strong>main()<\/strong><\/em>. Nous pourrons donc la tester s\u00e9par\u00e9ment. Ici la classe&nbsp;<em><strong>ConfigParam<\/strong> <\/em>qui va lire nos param\u00e8tres du fichier <strong>config.txt:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td height=\"300\">\n<pre style=\"overflow: auto; width: 100%; height: 100%; background-color: #fafcdc;\"><span style=\"font-size: 10pt; line-height: 0px;\"> import java.io.BufferedReader;\n import java.io.FileNotFoundException;\n import java.io.FileReader;\n import java.io.IOException;\n import java.io.PrintWriter;\n import java.util.HashMap;\n import java.util.Map;\n\npublic class ConfigParam {\n  private String paramFile = null;\n  private boolean withPrint = false;\n\nprivate Map&lt;String, String&gt; configParamMap = null;\n\npublic ConfigParam(String paramFile, boolean withPrint) {\n  this.paramFile = paramFile;\n  this.withPrint = withPrint;\n\n  configParamMap = new HashMap&lt;String, String&gt;();\n }\n\n\/**\n * Read the configuration parameters for the SystemControl application\n *\n * @return 0 (ok) or different error cases\n *\/\n public boolean readConfig() {\n   BufferedReader br = null;\n   try {\n     br = new BufferedReader(new FileReader(paramFile));\n   }\n   catch (FileNotFoundException e) {\n     if (withPrint) {\n       System.out.println(\"File \" + paramFile + \" does not exist\");\n       System.exit(-1);\n     }\n\n     return false;\n   }\n\n   String line = null;\n   for (;;) {\n     try {\n       line = br.readLine();\n     }\n     catch (IOException e) {\n       break;\n    \n   }\n\n   if (line == null) {\n     break;\n   }\n\n   line = line.replace(\"\\t\",\" \"); \/\/No tabs\n   line = line.replace(\" \",\"\"); \/\/No spaces at all\n\n   int indexSep = line.indexOf('=');\n   int indexSemiCol = line.indexOf(';'); \/\/Position of the comment if any\n\n   if ((indexSep &gt; 0) &amp;&amp; (indexSemiCol &gt; 0)) {\n     String key = line.substring(0, indexSep);\n     String value = line.substring(indexSep + 1, indexSemiCol);\n     configParamMap.put(key, value);\n   }\n\n   \/\/In this way line without parameters are ignored (doc or other info)\n }\n\n try {\n   br.close();\n }\n catch (IOException e) {\n   return false;\n }\n\n if (configParamMap.size() == 0) {\n   if (withPrint) {\n     System.out.println(\"File \" + paramFile + \" is empty\");\n   }\n   return false; \/\/Empty file\n }\n\n   return true;\n }\n\npublic int getInt(String parameter) {\n  String value = (String)configParamMap.get(parameter);\n  if (value == null) {\n    return -2; \/\/No such parameter\n  }\n\n  try {\n    return Integer.parseInt(value);\n  }\n  catch(Exception e) {\n    return -3; \/\/Invalid value\n  }\n }\n\n public String getString(String parameter) {\n  String value = (String)configParamMap.get(parameter);\n  return value; \/\/Null if not exist\n }\n\n public boolean getBoolean(String parameter) {\n   String value = (String)configParamMap.get(parameter);\n   if (value == null) {\n     return false;\n   }\n\n   if (value.toLowerCase().compareTo(\"true\") == 0) {\n     return true;\n   }\n\n   return false;\n }\n\n\/**\n * Change the value in one parameter\n *\n * @param parameter\n * @param value\n *\/\n public void setValue(String parameter, String value) {\n   for (Map.Entry&lt;String, String&gt; entry : configParamMap.entrySet()) {\n     if (entry.getKey().compareTo(parameter) == 0) {\n       entry.setValue(value); \/\/In the map\n       break;\n     }\n   }\n }\n\npublic boolean saveConfig() {\n  StringBuffer strBuf = new StringBuffer();\n\n  BufferedReader br = null;\n  try {\n    br = new BufferedReader(new FileReader(paramFile));\n  }\n  catch (FileNotFoundException e) {\n    if (withPrint) {\n       System.out.println(\"File \" + paramFile + \" does not exist\");\n    }\n\n   return false;\n }\n\n String line = null;\n for (;;) {\n   try {\n     line = br.readLine();\n   }\n   catch (IOException e) {\n     break;\n }\n\n if (line == null) {\n   break;\n }\n\n int indexSemiCol = line.indexOf('='); \/\/Position of the comment if any\n if (indexSemiCol &gt; 0) {\n   String key = line.substring(0, indexSemiCol).trim(); \/\/The parameter\n   String value = (String)configParamMap.get(key); \/\/The value change at runtime\n\n   String comment = line.substring(line.indexOf(';') + 1);\n\n   String firstPart = key + \"=\" + value;\n   strBuf.append(firstPart);\n\n   for (int i = firstPart.length(); i &lt; 25; i++) {\n     strBuf.append(\" \");\n   }\n\n   strBuf.append(\";\" + comment + \"\\n\");\n }\n\n \/\/In this way line without parameters are ignored (doc or other info)\n }\n\n try {\n   br.close();\n }\n catch (IOException e) {\n   return false;\n }\n\nPrintWriter out;\n try {\n   out = new PrintWriter(paramFile);\n }\n catch (FileNotFoundException e) {\n   return false;\n }\n\n out.println(strBuf);\n out.close();\n\n return true;\n}\n\npublic Map&lt;String, String&gt; getParamMap() {\n  return configParamMap;\n}\n\npublic static void main(String[] args) {\n  ConfigParam cfgPara = new ConfigParam(\"config.txt\", true);\n  cfgPara.readConfig();\n\n  Map&lt;String, String&gt; theConfigParamMap = cfgPara.getParamMap();\n  theConfigParamMap.forEach((k,v)-&gt;System.out.println(\"Param: \" + k + \" \\tValue : \" + v));\n }\n}\n<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Et voici le r\u00e9sultat:<\/p>\n<pre style=\"padding: 12px; background-color: #fafad2;\">Param: delaySunset \t Value : 30\nParam: afterSunset \t Value : 22:40\nParam: urlBbbLightSensor Value : http:\/\/192.168.1.61:8001\/lightsync\nParam: bbbSensorLevel \t Value : 3900\nParam: beforeSunrise \t Value : 07:12\nParam: delaySunrise \t Value : 15\nParam: withPrint \t Value : false\nParam: onPeriod \t Value : 300\nParam: offPeriod \t Value : 60\nParam: mouvementDelay \t Value : 91\nParam: t1DS1820file \t Value : w1_slave\n<\/pre>\n\n\n<p>Je n&#8217;ai pas eu le temps de terminer cet article, mais les r\u00e9f\u00e9rences dans <strong><a rel=\"noreferrer noopener\" label=\" (opens in a new tab)\" href=\"https:\/\/www.boichat.ch\/wpjrsp\/2019\/10\/29\/divers-article\/\" target=\"_blank\">Java, Python et le Raspberry Pi: EXTENSIONS et divers articles<\/a><\/strong>. , devraient satisfaire l&#8217;app\u00e9tit du lecteur.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mon livre, publi\u00e9 chez Eyrolles, d\u00e9di\u00e9 \u00e0 Java, \u00e0 Eclipse, au Raspberry Pi 3 ou encore \u00e0 Python, peut \u00eatre command\u00e9 par exemple sur Amazon.&hellip;<\/p>\n","protected":false},"author":1,"featured_media":201,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[6],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Raspberry Pi 3 - Java - Un projet cons\u00e9quent - Jean-Bernard Boichat<\/title>\n<meta name=\"description\" content=\"Site de Jean-Bernard Boichat consacr\u00e9 principalement \u00e0 Wordpress, Elementor, l&#039;impression 3D, l&#039;\u00e9lectricit\u00e9, les installations photovolta\u00efques et la voiture \u00e9lectrique.\" \/>\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\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Raspberry Pi 3 - Java - Un projet cons\u00e9quent - Jean-Bernard Boichat\" \/>\n<meta property=\"og:description\" content=\"Site de Jean-Bernard Boichat consacr\u00e9 principalement \u00e0 Wordpress, Elementor, l&#039;impression 3D, l&#039;\u00e9lectricit\u00e9, les installations photovolta\u00efques et la voiture \u00e9lectrique.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/\" \/>\n<meta property=\"og:site_name\" content=\"Jean-Bernard Boichat\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-02T16:07:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-11T08:02:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.boichat.ch\/wordpress\/wp-content\/uploads\/2017\/12\/java8.png\" \/>\n\t<meta property=\"og:image:width\" content=\"256\" \/>\n\t<meta property=\"og:image:height\" content=\"279\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jean-Bernard Boichat\" \/>\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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/\"},\"author\":{\"name\":\"Jean-Bernard Boichat\",\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751\"},\"headline\":\"Raspberry Pi 3 &#8211; Java &#8211; Un projet cons\u00e9quent\",\"datePublished\":\"2018-02-02T16:07:14+00:00\",\"dateModified\":\"2025-10-11T08:02:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/\"},\"wordCount\":515,\"publisher\":{\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751\"},\"articleSection\":[\"Raspberry Pi 3\/4\/5\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/\",\"url\":\"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/\",\"name\":\"Raspberry Pi 3 - Java - Un projet cons\u00e9quent - Jean-Bernard Boichat\",\"isPartOf\":{\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/#website\"},\"datePublished\":\"2018-02-02T16:07:14+00:00\",\"dateModified\":\"2025-10-11T08:02:06+00:00\",\"description\":\"Site de Jean-Bernard Boichat consacr\u00e9 principalement \u00e0 Wordpress, Elementor, l'impression 3D, l'\u00e9lectricit\u00e9, les installations photovolta\u00efques et la voiture \u00e9lectrique.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.boichat.ch\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Pi 3 &#8211; Java &#8211; Un projet cons\u00e9quent\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/#website\",\"url\":\"https:\/\/www.boichat.ch\/wordpress\/\",\"name\":\"Jean-Bernard Boichat\",\"description\":\"Mon site WordPress\",\"publisher\":{\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.boichat.ch\/wordpress\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751\",\"name\":\"Jean-Bernard Boichat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/image\/\",\"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\"},\"logo\":{\"@id\":\"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Raspberry Pi 3 - Java - Un projet cons\u00e9quent - Jean-Bernard Boichat","description":"Site de Jean-Bernard Boichat consacr\u00e9 principalement \u00e0 Wordpress, Elementor, l'impression 3D, l'\u00e9lectricit\u00e9, les installations photovolta\u00efques et la voiture \u00e9lectrique.","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\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/","og_locale":"fr_FR","og_type":"article","og_title":"Raspberry Pi 3 - Java - Un projet cons\u00e9quent - Jean-Bernard Boichat","og_description":"Site de Jean-Bernard Boichat consacr\u00e9 principalement \u00e0 Wordpress, Elementor, l'impression 3D, l'\u00e9lectricit\u00e9, les installations photovolta\u00efques et la voiture \u00e9lectrique.","og_url":"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/","og_site_name":"Jean-Bernard Boichat","article_published_time":"2018-02-02T16:07:14+00:00","article_modified_time":"2025-10-11T08:02:06+00:00","og_image":[{"width":256,"height":279,"url":"https:\/\/www.boichat.ch\/wordpress\/wp-content\/uploads\/2017\/12\/java8.png","type":"image\/png"}],"author":"Jean-Bernard Boichat","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Jean-Bernard Boichat","Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/#article","isPartOf":{"@id":"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/"},"author":{"name":"Jean-Bernard Boichat","@id":"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751"},"headline":"Raspberry Pi 3 &#8211; Java &#8211; Un projet cons\u00e9quent","datePublished":"2018-02-02T16:07:14+00:00","dateModified":"2025-10-11T08:02:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/"},"wordCount":515,"publisher":{"@id":"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751"},"articleSection":["Raspberry Pi 3\/4\/5"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/","url":"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/","name":"Raspberry Pi 3 - Java - Un projet cons\u00e9quent - Jean-Bernard Boichat","isPartOf":{"@id":"https:\/\/www.boichat.ch\/wordpress\/#website"},"datePublished":"2018-02-02T16:07:14+00:00","dateModified":"2025-10-11T08:02:06+00:00","description":"Site de Jean-Bernard Boichat consacr\u00e9 principalement \u00e0 Wordpress, Elementor, l'impression 3D, l'\u00e9lectricit\u00e9, les installations photovolta\u00efques et la voiture \u00e9lectrique.","breadcrumb":{"@id":"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.boichat.ch\/wordpress\/2018\/02\/02\/raspberry-pi-3-java-un-projet-consequent\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.boichat.ch\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Raspberry Pi 3 &#8211; Java &#8211; Un projet cons\u00e9quent"}]},{"@type":"WebSite","@id":"https:\/\/www.boichat.ch\/wordpress\/#website","url":"https:\/\/www.boichat.ch\/wordpress\/","name":"Jean-Bernard Boichat","description":"Mon site WordPress","publisher":{"@id":"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.boichat.ch\/wordpress\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751","name":"Jean-Bernard Boichat","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/image\/","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"},"logo":{"@id":"https:\/\/www.boichat.ch\/wordpress\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/posts\/238"}],"collection":[{"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/comments?post=238"}],"version-history":[{"count":0,"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/posts\/238\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/media\/201"}],"wp:attachment":[{"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.boichat.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}