{"id":1318,"date":"2019-03-05T23:40:02","date_gmt":"2019-03-05T22:40:02","guid":{"rendered":"https:\/\/lobo.mensa.uberspace.de\/wp\/?p=1318"},"modified":"2019-03-05T23:40:04","modified_gmt":"2019-03-05T22:40:04","slug":"luftdruck-messen","status":"publish","type":"post","link":"https:\/\/lobo.uber.space\/wp\/?p=1318","title":{"rendered":"Luftdruck messen"},"content":{"rendered":"\n<p>Nachdem ich zuletzt einen <a href=\"https:\/\/lobo.mensa.uberspace.de\/wp\/?p=1274\">DHT22-Sensor angeschlossen<\/a> habe, m\u00f6chte ich nun noch einen Luftdrucksensor anschlie\u00dfen. Die Wahl viel auf den <a href=\"https:\/\/www.amazon.de\/gp\/product\/B07D8S617X\/\">Sensor BMP180<\/a> welcher \u00fcber den I\u00b2C-Bus angeschlossen wird. Die Pins daf\u00fcr auf dem Raspberry-Pi sind <a href=\"https:\/\/www.elektronik-kompendium.de\/sites\/raspberry-pi\/1907101.htm\">GPIO2 und GPIO3<\/a>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">Die Hardware<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/lobo.mensa.uberspace.de\/wp\/wp-content\/uploads\/2019\/03\/BMP180.jpg\" alt=\"\" class=\"wp-image-1320\" width=\"170\" height=\"127\" srcset=\"https:\/\/lobo.uber.space\/wp\/wp-content\/uploads\/2019\/03\/BMP180.jpg 640w, https:\/\/lobo.uber.space\/wp\/wp-content\/uploads\/2019\/03\/BMP180-300x225.jpg 300w\" sizes=\"(max-width: 170px) 100vw, 170px\" \/><\/figure><\/div>\n\n\n\n<p>Bei diesem Sensor liegt die Stiftleiste zum Anschlu\u00df eines Steckers lose bei. Diese mu\u00df selber eingel\u00f6tet werden oder das Kabel wird direkt am Sensor angel\u00f6tet. Ich habe mich f\u00fcr eine Stiftleiste entschieden, jedoch habe ich eine abgewinkelte Version verwendet.<\/p>\n\n\n\n<p>Die Anschl\u00fcsse sind auf der R\u00fcckseite der kleinen Platine beschriftet. Im obigen Bild sind die Kontakte von links nach rechts: SDA, SCL, GND und VIN. SDA wird mit GPIO2 des Raspberry Pi verbunden, SCL mit GPIO3, GND mit GND und VIN mit +3.3V.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ansteuerung der Hardware<\/h3>\n\n\n\n<p>Auch f\u00fcr diesen Sensor gibt es eine Software von Adafruit um die Daten in Python auszulesen. Und wie zuvor gestaltet sich die Installation von GitHub sehr einfach:<\/p>\n\n\n\n\n<div class=\"codecolorer-container bash blackboard\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"kw2\">git clone<\/span> https:<span class=\"sy0\">\/\/<\/span>github.com<span class=\"sy0\">\/<\/span>adafruit<span class=\"sy0\">\/<\/span>Adafruit_Python_BMP.git<br \/>\n<span class=\"kw3\">cd<\/span> Adafruit_Python_BMP<br \/>\n<span class=\"kw2\">sudo<\/span> python3 setup.py <span class=\"kw2\">install<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n\n\n\n<p>Allerdings mu\u00df der I\u00b2C-Bus des Raspberry Pi noch aktiviert werden. In der Datei \/etc\/modules erg\u00e4nzt man zwei Zeilen mit &#8222;i2c-bcm2708&#8220; und &#8222;i2c-dev&#8220;.<\/p>\n\n\n\n<p>Nun mu\u00df man noch das Programm <code class=\"codecolorer bash blackboard\"><span class=\"bash\"><span class=\"kw2\">sudo<\/span> raspi-config<\/span><\/code> starten und dort, unter dem Punkt &#8222;Interfacing Options&#8220; den Punkt &#8222;I2C&#8220; ausw\u00e4hlen und aktivieren. Damit die Einstellungen ihre Wirkung entfalten mu\u00df man jetzt den Computer neu starten.<\/p>\n\n\n\n<p>Auch hier mu\u00df das Script welches auf die Hardware zugreift mit Root-Rechten laufen, also erstelle ich auch hier ein kleines Script unter \/root\/read_BMP180.py, welches jedoch deutlich schmaler ausf\u00e4llt:<\/p>\n\n\n\n\n<div class=\"codecolorer-container python blackboard\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/><\/div><\/td><td><div class=\"python codecolorer\"><span class=\"kw1\">import<\/span> Adafruit_BMP.<span class=\"me1\">BMP085<\/span> <span class=\"kw1\">as<\/span> BMP085<br \/>\n<br \/>\n<span class=\"kw1\">if<\/span> __name__ <span class=\"sy0\">==<\/span> <span class=\"st0\">&quot;__main__&quot;<\/span>:<br \/>\n&nbsp; &nbsp; sensor <span class=\"sy0\">=<\/span> BMP085.<span class=\"me1\">BMP085<\/span> <span class=\"br0\">&#40;<\/span>mode<span class=\"sy0\">=<\/span>BMP085.<span class=\"me1\">BMP085_ULTRAHIGHRES<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; t <span class=\"sy0\">=<\/span> sensor.<span class=\"me1\">read_temperature<\/span> <span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; p <span class=\"sy0\">=<\/span> sensor.<span class=\"me1\">read_pressure<\/span> <span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> \/ <span class=\"nu0\">100.0<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">print<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw3\">repr<\/span> <span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span>p<span class=\"sy0\">,<\/span> t<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n\n\n\n<p>Die Funktion <code class=\"codecolorer text blackboard\"><span class=\"text\">sensor.read_pressure ()<\/span><\/code> liefert das Ergebnis in Pascal, da ich jedoch in allen folgenden Schritten mit Hektopascal arbeiten m\u00f6chte, teile ich den R\u00fcckgabewert durch 100. Auch dieser Sensor hat ein Thermometer integriert, dessen Ergebnis ich an dieser Stelle auch ausgebe.<\/p>\n\n\n\n<p>Jetzt noch mittels <code class=\"codecolorer bash blackboard\"><span class=\"bash\"><span class=\"kw2\">sudo<\/span> visudo<\/span><\/code> folgende Zeile in der Datei \/etc\/sudoers erg\u00e4nzen und in Zukunft kann ich den Sensor auch ohne Root-Rechte als Benuter &#8222;user&#8220; durch den Aufruf von <code class=\"codecolorer bash blackboard\"><span class=\"bash\"><span class=\"kw2\">sudo<\/span> <span class=\"sy0\">\/<\/span>usr<span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span>python3 <span class=\"sy0\">\/<\/span>root<span class=\"sy0\">\/<\/span>read_BMP180.py<\/span><\/code> auslesen:<\/p>\n\n\n\n\n<div class=\"codecolorer-container text blackboard\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\">user ALL=(ALL) NOPASSWD: \/usr\/bin\/python3 \/root\/read_BMP180.py<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n\n\n\n<p>Weiteres im n\u00e4chsten Beitrag.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nachdem ich zuletzt einen DHT22-Sensor angeschlossen habe, m\u00f6chte ich nun noch einen Luftdrucksensor anschlie\u00dfen. Die Wahl viel auf den Sensor BMP180 welcher \u00fcber den I\u00b2C-Bus angeschlossen wird. Die Pins daf\u00fcr auf dem Raspberry-Pi sind GPIO2 und GPIO3.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[90,6,89,65,88],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1318"}],"collection":[{"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1318"}],"version-history":[{"count":10,"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1318\/revisions"}],"predecessor-version":[{"id":1330,"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1318\/revisions\/1330"}],"wp:attachment":[{"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1318"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1318"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lobo.uber.space\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1318"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}