Using the BME280 sensor in CircuitPython is a great way to start getting sensor readings easily. Adafruit makes it easy to port their library and start working with your Temperature, Pressure, and Humidity readings! In general, the BME280 is a powerful and low-cost sensor to start getting such readings. It is superior to its often confused counterpart, the BMP280... since the BMP280 cannot give humidity readings while the BME280 can. As we know, humidity is a vital part of any environmental system so I highly recommend this sensor if you are developing a DIY project!
Where to Buy BME280 Pressure, Humidity, and Temperature Sensor for the Raspberry Pi Pico:
Step 1-) Connect the Sensor as Follows:
Note that some BME280 sensors are designed differently, and some have extra connections. You only need to make the 4 connections shown above (VCC, GND, SCL, SDA), which all BME280 sensors explicitly have, to have the physical setup set to start retrieving sensor values.
Also, be sure to connect your device to power once you are ready to go!
Step 2-) Download the Libraries from the AdaFruit Website:
The library for CircuitPython for the BME280 is found here.
Click Download Project Bundle and it will download a zip file with the library contents, there are two folders you need to extract and port to your lib folder on your Raspberry Pi Pico.
Your directory/file structure for the library should resemble the following on your Pico file system:
If you cannot copy and paste the files over you have to manually create the directory and file names and copy the content sadly. Unfortunately, Thonny is not the most robust IDE...
Step 3-) Run the sample Code:
Create a Python file named by your choice and copy the contents from my GitHub page here. You may have to alter the I2C device address in the code to 77 as opposed to 76, depending on what version of the BME280 you are using. But once you have that down you are done!
You can now run this code in Thonny if you add the libraries and make the proper physical connections! You can also alter the time.sleep() value if you want to get readings slower or faster.
Conclusion:
You should be all set to get your sensor values in CircuitPython if you followed this tutorial. Please like comment and subscribe to the channel if you found this useful. Now go make a weather station or something!