{"id":816,"date":"2021-03-16T11:57:40","date_gmt":"2021-03-16T10:57:40","guid":{"rendered":"https:\/\/www.gods69.com\/?p=816"},"modified":"2021-05-07T23:41:52","modified_gmt":"2021-05-07T21:41:52","slug":"project-arduino","status":"publish","type":"post","link":"https:\/\/www.gods69.com\/index.php\/2021\/03\/16\/project-arduino\/","title":{"rendered":"Project Arduino"},"content":{"rendered":"\n<p class=\"has-drop-cap has-text-align-left has-cyan-bluish-gray-background-color has-background has-medium-font-size\">Voici le listing d&rsquo;un petit logiciel qui m&rsquo;occupe ces derniers jours&#8230; A la base c&rsquo;etait pour tester un capteur de pression atmosph\u00e9rique\/temp\u00e9rature  BMP280 et un petit \u00e9cran OLED sur un microcontr\u00f4leur PIC en langage BASIC (sous ProtonIDE). Comme il existe des biblioth\u00e8ques toutes pr\u00eates sur Arduino j&rsquo;ai utilis\u00e9 un Arduino UNO et quelques fils sur une plaque d&rsquo;essai pour mon montage. J&rsquo;ai remarqu\u00e9 que la temp\u00e9rature \u00e9tait plus \u00e9lev\u00e9e de deux degr\u00e9s que la valeur lue de mon thermom\u00e8tre , j&rsquo;ai aussi utilis\u00e9 un capteur DS18B20 qui semble plus pr\u00e9cis. Voici le listing du code et quelques photos du montage&#8230;<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:arduino decode:true \" title=\"Project Arduino\">\/*\n * Arduino with SSD1306 OLED display (128x64 Pixel) and\n * BMP280 barometric pressure &amp; temperature sensor.\n * Ajout capteur ds18B20  par Carlos Pires Serra \n *\/\n \n#include &lt;Wire.h&gt;              \/\/ include Arduino wire library (required for I2C devices)\n#include &lt;Adafruit_SSD1306.h&gt;  \/\/ include Adafruit SSD1306 OLED display driver\n#include &lt;Adafruit_BMP280.h&gt;   \/\/ include Adafruit BMP280 sensor library\n#include &lt;OneWire.h&gt;           \/\/ bibliotheque OneWire\n#include &lt;DS18B20.h&gt;           \/\/ bibliotheque DS18B20\n \n#define OLED_RESET  4          \/\/ define display reset pin\nAdafruit_SSD1306 display(OLED_RESET);  \/\/ initialize Adafruit display library\n \n\/\/ define device I2C address: 0x76 or 0x77 (0x77 is library default address)\n#define BMP280_I2C_ADDRESS  0x76\n#define ONE_WIRE_BUS 2          \/\/ Pin D2 pour le bus onewire\nOneWire oneWire(ONE_WIRE_BUS);  \/\/ initialisation des\nDS18B20 sensor(&amp;oneWire);       \/\/ bibliotheques\nAdafruit_BMP280  bmp280;  \/\/ initialize Adafruit BMP280 library\n \nvoid setup(void)\n{\n  delay(1000);            \/\/ wait a second\n  sensor.begin();         \/\/ Demarrage capteur ds18B20\n \n  \/\/ initialize the SSD1306 OLED display with I2C address = 0x3C\n  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);\n \n  \/\/ clear the display buffer.\n  display.clearDisplay();\n \n    display.setTextSize(1);              \/\/ text size = 1\n    display.setTextColor(WHITE, BLACK);  \/\/ set text color to white and black background\n    display.setCursor(0, 0);             \/\/ move cursor to position (15, 0) pixel\n \/\/ display.println(\"BMP280 SENSOR\");\n    display.display();                   \/\/ update the display\n \n  \/\/ initialize the BMP280 sensor\n  if( bmp280.begin(BMP280_I2C_ADDRESS) == 0 )\n  {  \/\/ connection error or device address wrong!\n    display.setTextSize(1);              \/\/ text size = 1\n    display.setCursor(0, 0);\n    display.println(\"Connection\");\n    display.print(\"Error\");\n    display.display();                   \/\/ update the display\n    while(1);                            \/\/ stay here\n  }\n \n  display.display();                     \/\/ update the display\n \n \n}\n \nchar _buffer[9];\n \nvoid loop()\n{    \n  display.clearDisplay();\n  display.setCursor(0, 0);\n  sensor.requestTemperatures();\n  while (!sensor.isConversionComplete());  \/\/ wait until sensor is ready\n  \n  \/\/ get temperature and pressure from library\n  float temp     = bmp280.readTemperature();   \/\/ get temperature\n  float pressure = bmp280.readPressure();      \/\/ get pressure\n \n  \/\/ print data on the LCD\n  \/\/ 1: print temperature\n  if(temp &lt; 0)\n    sprintf(_buffer, \"-%02u.%02u C\", (int)abs(temp), (int)(abs(temp) * 100) % 100 );\n  else\n    sprintf(_buffer, \" %02u.%02u C\", (int)temp, (int)(temp * 100) % 100 );\n  display.print(\"Temperature:\");\n  display.println(_buffer);\n \n \n  \/\/ 2: print pressure\n  sprintf(_buffer, \"%04u.%02u\", (int)(pressure\/100), (int)((uint32_t)pressure % 100));\n  display.print(\"Pression: \");\n  display.print(_buffer);\n  display.println(\" hPa\");\n  display.println();\n  \n  display.print(\"Temp_18B20 : \");               \/\/ Affichage Temperature du DS18B20\n  display.print(sensor.getTempC());\n  display.println(\" C\");\n \n  \n  \/\/ update the display\n  display.display();\n  \n \n  delay(2500);  \/\/ Attente 2.5 secondes pour la prochaine lecture\n \n}\n<\/pre><\/div>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155845995-1024x768.jpg\" alt=\"\" data-id=\"823\" data-full-url=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155845995-scaled.jpg\" data-link=\"https:\/\/www.gods69.com\/index.php\/2021\/03\/16\/project-arduino\/exif_jpeg_420-3\/\" class=\"wp-image-823\" srcset=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155845995-1024x768.jpg 1024w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155845995-300x225.jpg 300w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155845995-768x576.jpg 768w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155845995-1536x1152.jpg 1536w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155845995-2048x1536.jpg 2048w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155845995-1230x923.jpg 1230w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"blocks-gallery-item__caption\">Arduino<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_183436437-768x1024.jpg\" alt=\"\" data-id=\"825\" data-link=\"https:\/\/www.gods69.com\/?attachment_id=825\" class=\"wp-image-825\" srcset=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_183436437-768x1024.jpg 768w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_183436437-225x300.jpg 225w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_183436437-1152x1536.jpg 1152w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_183436437-1536x2048.jpg 1536w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_183436437-1230x1640.jpg 1230w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_183436437-scaled.jpg 1920w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"blocks-gallery-item__caption\">Final<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_165101846-1024x768.jpg\" alt=\"\" data-id=\"826\" data-link=\"https:\/\/www.gods69.com\/?attachment_id=826\" class=\"wp-image-826\" srcset=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_165101846-1024x768.jpg 1024w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_165101846-300x225.jpg 300w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_165101846-768x576.jpg 768w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_165101846-1536x1152.jpg 1536w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_165101846-2048x1536.jpg 2048w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210314_165101846-1230x923.jpg 1230w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"blocks-gallery-item__caption\">2ene Test<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155705336-1024x768.jpg\" alt=\"\" data-id=\"827\" data-full-url=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155705336-scaled.jpg\" data-link=\"https:\/\/www.gods69.com\/?attachment_id=827\" class=\"wp-image-827\" srcset=\"https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155705336-1024x768.jpg 1024w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155705336-300x225.jpg 300w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155705336-768x576.jpg 768w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155705336-1536x1152.jpg 1536w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155705336-2048x1536.jpg 2048w, https:\/\/www.gods69.com\/wp-content\/uploads\/2021\/03\/IMG_20210313_155705336-1230x923.jpg 1230w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"blocks-gallery-item__caption\">1er Test<\/figcaption><\/figure><\/li><\/ul><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Voici le listing d&rsquo;un petit logiciel qui m&rsquo;occupe ces derniers jours&#8230; A la base c&rsquo;etait pour tester un capteur de pression atmosph\u00e9rique\/temp\u00e9rature BMP280 et un petit \u00e9cran OLED sur un microcontr\u00f4leur PIC en langage BASIC (sous ProtonIDE). Comme il existe des biblioth\u00e8ques toutes pr\u00eates sur Arduino j&rsquo;ai utilis\u00e9 un Arduino UNO et quelques fils sur une plaque d&rsquo;essai pour mon montage. J&rsquo;ai remarqu\u00e9 que la temp\u00e9rature \u00e9tait plus \u00e9lev\u00e9e de deux degr\u00e9s que la valeur lue de mon thermom\u00e8tre , j&rsquo;ai aussi utilis\u00e9 un capteur DS18B20 qui semble plus pr\u00e9cis. Voici le listing du code et quelques photos du montage&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[5],"class_list":["post-816","post","type-post","status-publish","format-standard","hentry","category-microcontroleur","tag-microcontroleur"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/posts\/816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/comments?post=816"}],"version-history":[{"count":27,"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/posts\/816\/revisions"}],"predecessor-version":[{"id":882,"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/posts\/816\/revisions\/882"}],"wp:attachment":[{"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/media?parent=816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/categories?post=816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gods69.com\/index.php\/wp-json\/wp\/v2\/tags?post=816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}