Pico 2 W Projekte
Die neuen Projekte nutzen die Fähigkeiten des Pico 2 W. Es werden eine Reihe von Sensoren angeschlossen, die per Funk Informationen an eine
Zentrale melden, bzw. Funktionen schalten. Ich möchte auch unbedingt darauf hinweisen, dass Sie beim Download der aktuellen Firmeware
CircuitPython beim Pico 2 darauf auchten, dass die in unserem Fall für Pico 2 W sein muss.
Temperatur messen mit BME 280
Helligkeit mit Lichtsensor messen
Sonnenaufgang/Sonnenuntergang
Bewegung registrieren mit PIR-Sensor
Pico 2 W Projekte

Temperatur messen mit BME 280:
Die Abbildung zeigt die Schaltung mit dem Temperatursensor BME280 am Pico 2 W:

Den BME 280 habe ich auch an anderer Stelle bereits eingesetzt. Bestellen können Sie ihn z.B. von hier. Außer dem Erfassen der Temperatur kann der Sensor auch den Luftdruck und die Luftfeuchtigkeit angeben. Er ist zuverlässig und arbeitet mit I2C auf Adresse 77. Ich benutze als Bibliothek die 'adafruit_bme280', welche aber leider immer noch einen Fehler enthält, so dass beim Programmstart die Meldung: 'Failed to find BME280! Chip ID 0x58' ausgegeben wird. Um das zu vermeiden, nehmen Sie aus dem Bibliotheksbundle mit den unkompilierten Dateien ebenfalls 'adafruit_bme280' und bearbeiten die Datei 'basic.py'.
In Zeile 54 ändern Sie : _BME280_CHIPID = const(0x60) --> _BME280_CHIPID = const(0x58). Danach können Sie den folgenden Code in Ihrer Thonny-IDE einfügen und starten:
1 import time 2 import board 3 import busio 4 from adafruit_bme280 import basic as adafruit_bme280 5 6 #I2C Pin SDA: GP 0 and SCL: GP1 7 SDA = board.GP0 8 SCL = board.GP1 9 # Create sensor object, using the board's default I2C bus. 10 i2c = busio.I2C(SCL, SDA) 11 bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c, address=0x77) 12 13 while True: 14 temp = bme280.temperature 15 print("Temp.: %0.1f C" % (bme280.temperature)) 16 time.sleep(1)
In der Kommandozeile der Thonny IDE werden z.B. folgende Temperaturwerte angezeigt:

Das Programm nutzt den I2C0 mit SDA an GP0 und SCL an GP1 des Pico. Dass der Temperatursensor auf Adresse 77 sendet, erfährt man
durch einen Scan des I2C-Bus. Gleichzeitig würde hier auch angezeigt, wenn SDA und SCL vertauscht wären. Wie Sie den Scan
durchführen, sehen Sie im unteren Kasten.
1 import board 2 import busio 3 4 i2c = busio.I2C(board.GP1, board.GP0) 5 count = 0 6 7 # Wait for I2C lock 8 while not i2c.try_lock(): 9 pass 10 11 # Scan for devices on the I2C bus 12 print("Scanning I2C bus") 13 for x in i2c.scan(): 14 print(hex(x)) 15 count += 1 16 17 print("%d device(s) found on I2C bus" % count)