Benutzer-Werkzeuge

Webseiten-Werkzeuge


temperatur_luftfeuchtigkeit_druck

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
temperatur_luftfeuchtigkeit_druck [2020/03/21 14:30] varnholttemperatur_luftfeuchtigkeit_druck [2021/02/26 16:39] (aktuell) varnholt
Zeile 1: Zeile 1:
 ===== Temperatur,Luftfeuchtigkeit, Luftdruck (BME280) ===== ===== Temperatur,Luftfeuchtigkeit, Luftdruck (BME280) =====
  
-Einige Monate lag der[[https://startingelectronics.org/pinout/GY-BMP280-pressure-sensor-module/| BME280]]rum. Jetzt Bastellaune gehabt - und es hat nichts mit der Corona-Pandemie zu tun! +Einige Monate lag der[[https://startingelectronics.org/pinout/GY-BMP280-pressure-sensor-module/| BME280]] rum. Jetzt Bastellaune gehabt - und es hat nichts mit der Corona-Pandemie zu tun! 
-Anschluß nur von 4 Pins und 3.3V (wegen I2C). Man kann ihn auch mit SPI anschliessen. Dafür dann die anderen Pins. Auf meinem Prototype-Hat erst nur Pin '27' gefunden, da es ja an  [[https://de.pinout.xyz/pinout/i2c#|Pin 27,28]] angeschlossen werden sollte. Fehler rechtzeitig bemerkt! Musste es an die Pins SDA und SDL anschliessen. Bei den ganzen [[https://thierrys-blog.ch/index.php/2017/01/30/raspberry-pi-pin-belegung/|Bildern der Pins]] im Internet muss man auf die Sicht achten. Man schaut wohl 'von unten' drauf.+Anschluß nur von 4 Pins und **3.3V** (wegen I2C). Man kann ihn auch mit SPI anschliessen. Dafür dann die anderen Pins.  
 + 
 +**Fehler**: Auf meinem Prototype-Hat erst nur Pin '27' gefunden, da es ja an  [[https://de.pinout.xyz/pinout/i2c#|Pin 27,28]] angeschlossen werden sollte. Fehler rechtzeitig bemerkt! Musste es an die Pins SDA und SDL anschliessen. Bei den ganzen [[https://thierrys-blog.ch/index.php/2017/01/30/raspberry-pi-pin-belegung/|Bildern der Pins]] im Internet muss man auf die Sicht achten. Man schaut wohl 'von unten' drauf. 
 +**Meine Pins waren belegt. Ich musste mittels Overlay (s.u.) zwei andere Pins nehmen ([[gpio|GPIO27,GPIO08]])**
  
 Man muss I2C im Raspberry erst in raspi-config aktivieren, installieren alleine reicht nicht.  Man muss I2C im Raspberry erst in raspi-config aktivieren, installieren alleine reicht nicht. 
Zeile 8: Zeile 11:
 sudo raspi-config sudo raspi-config
 (Interfacing options (5)->P5 I2C Enablen) (Interfacing options (5)->P5 I2C Enablen)
 +
 +sudo nano /etc/modules
 +i2c-bcm2708
 +i2c-dev
 +
 sudo apt-get install i2c-tools sudo apt-get install i2c-tools
-sudo i2cdetect -y 1+ 
 +sudo nano /boot/config.txt 
 +dtparam=i2c_arm=on 
 +dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=4,i2c_gpio_sda=8,i2c_gpio_scl=27 
 + 
 +sudo i2cdetect -y 
 +(dann steht irgendwo, welches device er gefunden hat) 
 + 
 +sudo i2cdump -y 3 0x76 b 
 +(die 0x76 entspricht der Zahl aus dem i2cdetect) 
 + 
 +sudo i2cget -y 3 0x76 0x80 w 
 +(um die zwei Bytes an der Position 0x80 zu lesen)
 </code> </code>
  
-Verflixt, es wird nicht entdeckt...+Auslesen mit Python: Man muss entweder smbus oder smbus2 installieren. 
 +Mit smbus muss man die Daten erst aufwändig lesen und zusammensetzenGeht aber schneller! 
 +<code> 
 +sudo apt-get install python-smbus 
 +wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bme280.py 
 +</code> 
 +Mit smbus2 geht es in wenigen Zeilen, allerdings mit python3. 
 +<code> 
 +sudo pip install smbus2 
 +sudo pip install RPi.bme280 
 +Sollte ein Fehler ('extras_require') kommen, muss man erst: 
 +sudo pip install --user --upgrade setuptools
  
 +sudo python3 bme280_smbus2.py
  
 +import smbus2
 +import bme280
  
-#i2cget -y 0 0x4d 0x00 b +port = 1 
--y to force Yes to the question ask by default +address = 0x76 
-0 is the i2c bus number +bus = smbus2.SMBus(port) 
-0x4d is the address of the sensor + 
-0x00 is the address for the temperature +calibration_params = bme280.load_calibration_params(bus, address) 
-is to read byte+ 
 +the sample method will take a single reading and return a 
 +# compensated_reading object 
 +data = bme280.sample(bus, address, calibration_params) 
 + 
 +the compensated_reading class has the following attributes 
 +print(data.id) 
 +print(data.timestamp) 
 +print(data.temperature) 
 +print(data.pressure) 
 +print(data.humidity) 
 + 
 +# there is a handy string representation too 
 +print(data) 
 +</code> 
 + 
 + 
 +Wie man andere Pins als I2C nutzt (Overlay): 
 +https://www.instructables.com/id/Raspberry-PI-Multiple-I2c-Devices/
 https://www.disk91.com/2013/technology/hardware/raspberry-pi-gpio-and-temperature-sensor/ https://www.disk91.com/2013/technology/hardware/raspberry-pi-gpio-and-temperature-sensor/
 +https://raspberry-projects.com/pi/programming-in-python/i2c-programming-in-python/using-the-i2c-interface-2
 +
 +
 +in boot/conf.txt was eingebaut (damit eeprom Pins gehen) - wird aber auch von der camera genutzt - schlechte ideee
 +
 +Ich wollte es aus einem C-Programm aufrufen, 
 +
 +Treiber gibt es hier: https://github.com/BoschSensortec/BME280_driver
 +  gcc  -L. -c bme280.c -o bme280
 +  gcc linux_userspace.c ../bme280.c -I ../ -o bme280
 +  sudo ./bme280 /dev/i2c-3
 +geht aber nicht. Kommt immer "Failed to initialize the device (code -2).".
 +
 +Mit dem richtigen Sourcecode, wenn auch nicht vom Original Bosch geht es dann aber:
 +http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-BMP280/index.html
 +
  
temperatur_luftfeuchtigkeit_druck.1584801043.txt.gz · Zuletzt geändert: 2020/03/21 14:30 von varnholt