{"id":253,"date":"2016-02-21T10:05:12","date_gmt":"2016-02-21T10:05:12","guid":{"rendered":"https:\/\/www.kolkataonweb.com\/code-bank\/?p=253"},"modified":"2016-07-18T21:35:28","modified_gmt":"2016-07-18T20:35:28","slug":"bmp-180-digital-barometric-pressure-sensor","status":"publish","type":"post","link":"https:\/\/www.kolkataonweb.com\/code-bank\/arduino\/bmp-180-digital-barometric-pressure-sensor\/","title":{"rendered":"BMP-180 Digital Barometric Pressure Sensor"},"content":{"rendered":"<p>BMP-180 is a compact and cheap Digital Barometric Pressure Sensor. Below is an image of the breakout board commonly available on ebay<\/p>\n<p><a href=\"https:\/\/www.kolkataonweb.com\/code-bank\/wp-content\/uploads\/2016\/02\/bmp180.png\" rel=\"attachment wp-att-254\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-254\" src=\"https:\/\/www.kolkataonweb.com\/code-bank\/wp-content\/uploads\/2016\/02\/bmp180.png\" alt=\"BMP 180 Digital Barometric Pressure Sensor\" width=\"158\" height=\"144\" \/><\/a><\/p>\n<p>There is some confusing information about the required voltage, so safest would be to go with <span style=\"color: #0000ff;\">3.3v<\/span>. As per datasheet (<a href=\"https:\/\/www.kolkataonweb.com\/code-bank\/wp-content\/uploads\/2016\/02\/BMP-180-Datasheet.pdf\" target=\"_blank\">download here<\/a>) from Bosch, the chip manufacturer, the max voltage is 3.6v<\/p>\n<p>It has a temperature sensor also inbuilt.<\/p>\n<p>The library from <a href=\"https:\/\/learn.sparkfun.com\/tutorials\/\" target=\"_blank\">Sparkfun<\/a> is very good. It can be found <a href=\"https:\/\/github.com\/sparkfun\/BMP180_Breakout_Arduino_Library\" target=\"_blank\">here on Github<\/a> (<a href=\"https:\/\/github.com\/sparkfun\/BMP180_Breakout\" target=\"_blank\">another is under development<\/a>). It also has a very good example sketch.\u00a0 <em>The library has been uploaded <a href=\"https:\/\/www.kolkataonweb.com\/code-bank\/wp-content\/uploads\/2016\/02\/BMP180_Breakout_Arduino_Library-master.zip\" target=\"_blank\">here<\/a> to ensure availability.<\/em><\/p>\n<p>Below is a code snippet for reading the temperature and pressure<\/p>\n<blockquote>\n<pre class='wp-code-highlight prettyprint'><span style=\"color: #333333;\">#include &lt;SFE_BMP180.h&gt;\r\n.............\r\n.............\r\nSFE_BMP180 pressure;\r\ndouble T,P,temp,paH,paM;\r\n...........\r\n...........\r\npressure.begin();\r\n...........\r\n...........\r\n\r\n\/\/ You must first get a temperature measurement to perform a pressure reading.\r\n\/\/ Start a temperature measurement:\r\n\/\/ If request is successful, the number of ms to wait is returned.\r\n\/\/ If request is unsuccessful, 0 is returned.\r\nstatus = pressure.startTemperature();\r\nif (status != 0)\r\n{\r\n\u00a0 \/\/ Wait for the measurement to complete:\r\n\u00a0 delay(status);\r\n\r\n\u00a0 \/\/ Retrieve the completed temperature measurement:\r\n\u00a0 \/\/ Note that the measurement is stored in the variable T.\r\n\u00a0 \/\/ Function returns 1 if successful, 0 if failure.\r\n\r\n\u00a0 status = pressure.getTemperature(T);\r\n\u00a0 if (status != 0)\r\n\u00a0 {\r\n\u00a0\u00a0\u00a0 \/\/ Print out the measurement:\r\n\u00a0\u00a0\u00a0 temp = T;\r\n\r\n\u00a0\u00a0\u00a0 \/\/ Start a pressure measurement:\r\n\u00a0\u00a0\u00a0 \/\/ The parameter is the oversampling setting, from 0 to 3 (highest res, longest wait).\r\n\u00a0\u00a0\u00a0 \/\/ If request is successful, the number of ms to wait is returned.\r\n\u00a0\u00a0\u00a0 \/\/ If request is unsuccessful, 0 is returned.\r\n\r\n\u00a0\u00a0\u00a0 status = pressure.startPressure(3);\r\n\u00a0\u00a0\u00a0 if (status != 0)\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Wait for the measurement to complete:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 delay(status);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Retrieve the completed pressure measurement:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Note that the measurement is stored in the variable P.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Note also that the function requires the previous temperature measurement (T).\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ (If temperature is stable, you can do one temperature measurement for a number of pressure measurements.)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Function returns 1 if successful, 0 if failure.\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 status = pressure.getPressure(P,T);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 if (status != 0)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Print out the measurement:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 paM = P;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 paH = P*0.0295333727;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 paM = -1;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 paH = -1;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 paM = -1;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 paH = -1;\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n\u00a0 else\r\n\u00a0 {\r\n\u00a0\u00a0\u00a0 temp = -1;\r\n\u00a0 }\r\n}\r\nelse\r\n{\r\n\u00a0 temp = -1;\r\n}\r\n...........\r\n...........\r\n<\/span><\/pre>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>BMP-180 is a compact and cheap Digital Barometric Pressure Sensor. Below is an image of the breakout board commonly available on ebay There is some confusing information about the required voltage, so safest would be to go with 3.3v. As per datasheet (download here) from Bosch, the chip manufacturer, the max voltage is 3.6v It&hellip; <a class=\"more-link\" href=\"https:\/\/www.kolkataonweb.com\/code-bank\/arduino\/bmp-180-digital-barometric-pressure-sensor\/\">Continue reading <span class=\"screen-reader-text\">BMP-180 Digital Barometric Pressure Sensor<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[23,21,22],"class_list":["post-253","post","type-post","status-publish","format-standard","hentry","category-arduino","tag-barometric-pressure-sensor","tag-bmp-180","tag-digital-barometer-for-arduino","entry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts\/253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/comments?post=253"}],"version-history":[{"count":6,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts\/253\/revisions"}],"predecessor-version":[{"id":452,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts\/253\/revisions\/452"}],"wp:attachment":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/media?parent=253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/categories?post=253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/tags?post=253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}