Ich bin neu hier und möchte mich in Python einarbeiten, indem ich eine Wetterstation baue. Einsteigen möchte ich mit dem BME280 und einem kleinen OLED-Display0.96, das ich sogar schon testweise mit einem Python-Script zum Laufen gebracht habe.
Mit der Hardware (sprich Elektronik/Messtechnik) kenne ich mich aus, beschäftige ich mich doch seit meiner Kindheit damit, incl. dem Routen und Anfertigen von Platinen sowie Schaltungsentwicklung. Nur mit dem Programmieren hapert es, wobei ich schon beim Thema bin.
Um den BME280 zu testen, habe ich aus dem Fundus des www ein Script heruntergeladen, es in Thonny kopiert und gestartet.
Die Python3-Umgebung habe ich vorher schon (hoffentlich) vollständig eingerichtet.
Hier das Test-Script:
Code: Alles auswählen
import time
import smbus2
import bme280
# BME280 sensor address (default address)
address = 0x77
# Initialize I2C bus
bus = smbus2.SMBus(1)
# Load calibration parameters
calibration_params = bme280.load_calibration_params(bus, address)
# def celsius_to_fahrenheit(celsius):
# return (celsius * 9/5) + 32
while True:
try:
# Read sensor data
data = bme280.sample(bus, address, calibration_params)
# Extract temperature, pressure, and humidity
temperature_celsius = data.temperature
pressure = data.pressure
humidity = data.humidity
# Print the readings
print("Temperature: {:.2f} °C".format(temperature_celsius))
print("Pressure: {:.2f} hPa".format(pressure))
print("Humidity: {:.2f} %".format(humidity))
# Wait for a few seconds before the next reading
time.sleep(2)
except KeyboardInterrupt:
print('Program stopped')
break
except Exception as e:
print('An unexpected error occurred:', str(e))
break
Code: Alles auswählen
>>> %Run BME280_2.py
Traceback (most recent call last):
File "/home/mib/Python3/BME280_2.py", line 12, in <module>
calibration_params = bme280.load_calibration_params(bus, address)
AttributeError: module 'bme280' has no attribute 'load_calibration_params'
>>>
Woher kommt dieses 'load_calibration_params' in 'bme280.load_calibration_params(bus, address)'?
Ist das irgendwo definiert oder hat sich der Ersteller des Scripts das ausgedacht und mal einfach so genannt? Zumindest beim Autor des Scrips muss es doch funktioniert haben.
Finden kann ich es jedenfalls nirgends außer in diesem Python-Script.
Vielleicht kann mir hier jemand erklären, wie solche Ausdrücke zustande kommen, denn es gibt scheinbar in Python noch mehr solcher Konstrukte.
Ich freue mich auf neue Erkenntnisse.
Vielen Dank im Voraus für die Infos
