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 15:47] 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 +
-b is to read a byte +
-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+calibration_params = bme280.load_calibration_params(bus, address)
  
 +# 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://raspberry-projects.com/pi/programming-in-python/i2c-programming-in-python/using-the-i2c-interface-2
  
-overlay benutzen, um 2 andere Pins her zu nehmen! 
  
 in boot/conf.txt was eingebaut (damit eeprom Pins gehen) - wird aber auch von der camera genutzt - schlechte ideee in boot/conf.txt was eingebaut (damit eeprom Pins gehen) - wird aber auch von der camera genutzt - schlechte ideee
  
-sudo apt install python-smbus +Ich wollte es aus einem C-Programm aufrufen,  
-damit  + 
-sudo python bme280.py geht+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 nichtKommt 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
  
-Chip ID     : 96 
-Version     : 0 
-Temperature :  27.47 C 
-Pressure :  955.338436247 hPa 
-Humidity :  29.3145882492 % 
  
-sudo i2cdump -y 0 0x76 b 
-muss was anzeigen 
temperatur_luftfeuchtigkeit_druck.1584805621.txt.gz · Zuletzt geändert: 2020/03/21 15:47 von varnholt