Vandaag willen we u de BME280-sensormodule Voorstellen.
De module is uitgerust met een omgevingssensor van Bosch. Dit combineert de 3 verschillende sensortypes: druksensor, vochtigheidssensor en temperatuursensor. Dit alles in een kleine 8-pins koffer.
Het is gelegen op een klein bord met 4 pinnen: VIN, GND, SCL en SDA.
Dit maakt het heel gemakkelijk om de sensor via I2C aan te sluiten op een microcontroller.
In dit voorbeeld gebruiken we een AZ-Delivery microcontroller, compatibel met Arduino Uno-R3.
We verbinden de volgende pinnen:
AZ-Delivery microcontroller, compatibel met Arduino Uno R3 |
BME280-module |
3.3v |
Vin |
Gnd |
Gnd |
Scl |
Scl |
Sda |
Sda |
We gebruiken 2 bibliotheken van Adafruit voor ons project: "Adafruit Unified Sensors" en "Adafruit BME280 Library"
Als ze nog niet zijn geïnstalleerd, de makkelijkste manier om ze te integreren is via de bibliotheek manager van de Arduino IDE.
Dan, via "File" - "Voorbeelden" - "Adafruit BME280 Library" - "bme280test" open de testschets.
Nadat de schets is gecompileerd en geüpload, openen we de seriële monitor door rechtsboven op het pictogram te klikken (of met de toetscombinatie Ctrl+Shift+M):
Als het bericht "Kon niet vinden van een geldige BME280 sensor, controleer bedrading!" verschijnt zoals hier, een lijn moet worden aangepast in de schets.
status = bme.begin();
Op
status = bme.begin(0x76);
Nu is de sensor correct uitgelezen:
We hopen dat onze blog post vandaag met de nieuwe BME280-sensoren we kijken ernaar uit om van u te horen. Tot de volgende post van AZ-Delivery, uw expert in micro-elektronica!
4 Reacties
Lollo7579
Hatte das selbe Problem wie foto2004 an einem ESP32 Wroom bis mir die Idee kam SCA & SCL mal zu tauschen und siehe da Sensor läuft. ;-)
Simon Kellner
Habe den Sensor zuerst auch mit I2C-Adresse 0×76 nicht zum Laufen bekommen.
Habe dann die Adafruit-Library erweitert, um vorab die Chip-ID auszulesen.
Diese war nicht 0×58 (Default in Adafruit) sondern 0×60. Danach wurden auch die Werte ausgelesen.
→ status = bme.begin(0×76, 0×60);
foto2004
Also ich bekomme das Teil absolut nicht zum laufen.
Ich habe es an einem ESP-32 NodeMCU Developmentboard :
VIN = 3V3
GND = GND
SCL = G5
SDA = G4
Hat da jemand eine Idee, es kommt bei mir in dem Testsketch immer dass er das Board nicht finden kann. Habe auch schon versucht die Adresse zu ändern ohne Erfolg .
Dino Schmitz
Hallo,
eine Frage zum Raspberry (3b mit aktuellem Rasbian Stretch). Mit den i2ctools (i2cdetect -y 1) wird der Sensor bei mir erkannt mit adresse x76. Bei Ansprache unter Python wird unabhängig von der verwendeten Bibliothek ein Fehler geworfen. Z.B.:
File “bme280.py”, line 56, in readBME280ID
(chip_id, chip_version) = bus.read_i2c_block_data(addr, REG_ID, 2)
IOError: [Errno 121] Remote I/O error
Ist eine funktionierende Bibliothek bekannt oder gibt es eine andere Lösung?
Vielen Dank