How To Connect Bmp-180 To Raspberry Pi Pico W

About the project

Learn how to get pressure, temperature, and altitude values with Raspberry Pi Pico and the BMP-180 sensor.

Project info

Difficulty: Easy

Platforms: MicroPython

Estimated time: 1 hour

License: GNU Lesser General Public License version 3 or later (LGPL3+)

Items used in this project

Hardware components

ShillehTek BMP180 ShillehTek BMP180 x 1
Raspberry Pi Pico W Raspberry Pi Pico W x 1

Software apps and online services

MicroPython MicroPython

Story


The BMP180 is a popular sensor for measuring temperature and pressure (which can be translated to altitude). It is cheap, reliable, and very easy to use with Arduino, Raspberry Pi, and other microcontrollers.

Where to buy BMP180:

Amazon Link

Also, be sure to subscribe and support the channel if you have not!

Subscribe:

Youtube

Support:

https://www.buymeacoffee.com/mmshilleh

1-) Physical Connection

Make sure your sensor and Raspberry Pi have soldered pins, you can use a breadboard as well but you don’t have to do that. Simply connect 4 jumper wires as shown and you are ready to go with the physical setup. Of course, plug it into power ;)

2-) Code Setup

Add the following code to your lib folder in your Raspberry Pi Pico or Pico W. This is the library you will need.

https://github.com/robert-hh/BMP085_BMP180/blob/master/bmp085.py

If you are confused on how to add that code, watch the video briefly (above) where I go over this!

Once you have the library you can create a file in the home directory of your device and run the following code:

from machine import Pin, I2C
from bmp085 import BMP180
import time

i2c = I2C(0, sda = Pin(0), scl = Pin(1), freq = 40000)

bmp = BMP180(i2c)
bmp.oversample = 2
bmp.sealevel = 1010.5

while True:
tempC = bmp.temperature #get the temperature in degree celsius
pres_hPa = bmp.pressure #get the pressure in hpa
altitude = bmp.altitude #get the altitude
temp_f = (tempC * (9/5) + 32) #convert the temperature value in fahrenheit
print(str(tempC) + "°C " + str(temp_f) + "°F " + str(pres_hPa) + "hPa "+ str(altitude))
time.sleep_ms(100) #delay of 100 milliseconds

Notes about the code.

  • It should be runnable right away if you plug in the device properly and you have a functioning device.
  • You may have to change the frequency to 1000 instead of 40000, depending on your device.
  • You will need to change the seal level pressure (measured in millibar) to the sea level pressure in your area. You can find the sea level pressure near you with a quick Google search.

Conclusion

Pretty quick setup with this sensor and code. Hope you got going right away. If you did, do not forget to like, comment, and subscribe to the channel. Let me know if you have any questions. Thanks, everyone.

Credits

Photo of mahmood-m-shilleh

mahmood-m-shilleh

Mechanical and Software Engineering Background. University at Buffalo 2019 Texas A&M 2021 I make data pipelines for my day job. Outside of work, I participate in online communities regarding Full Stack Engineering, Microelectronics, and more. You can find more details about me on my Youtube Channel. https://www.youtube.com/@mmshilleh Feel free to reach out!

   

Leave your feedback...