Atmospheric Pressure Sensor with micro:bit
Get readings from an atmospheric pressure sensor and the micro:bit
Written By: Cherie Tan
Difficulty
Easy
Steps
11
A barometric pressure sensor can measure the air pressure and temperature around you.
In this guide, we will connect a BMP280 barometric pressure sensor to the micro:bit, and program it using MakeCode.
Complete this guide to start getting pressure and altitude readings with the BMP280 and micro:bit.
Before we begin, let's take a closer look at the atmospheric pressure sensor module. It has 6 pins, but we will only be using 4 of them today:
3.3V : 'VCC' stands for Voltage Common Collector. We'll connect the VCC pin to 3.3V on the micro:bit
GND: In electronics, we define a point in a circuit to be a kind of zero volts or 0V reference point, on which to base all other voltage measurements. This point is called ground or GND.
Serial Clock (SCL)
Serial Data (SDA)
3.3V : 'VCC' stands for Voltage Common Collector. We'll connect the VCC pin to 3.3V on the micro:bit
GND: In electronics, we define a point in a circuit to be a kind of zero volts or 0V reference point, on which to base all other voltage measurements. This point is called ground or GND.
Serial Clock (SCL)
Serial Data (SDA)
Voltage is the difference in potential between two points. As it is difficult to talk about voltage without a reference point, we need another point to compare it to.
Let's get started with coding! Open up the MakeCode editor.
Then, click on 'New Project ...'
Click on Advanced
Click on Extensions
Type this in the search box: bmp280
Click on the magnifying glass icon to search
Click on BMP280 package and it will be automatically added to the MakeCode editor
let pressure = 0 let temp = 0 basic.forever(function () { temp = BMP280.temperature() pressure = BMP280.pressure() basic.showNumber(temp) basic.showNumber(pressure) basic.pause(1000) })
Copy and paste this code into the Javascript interface
let pressure = 0 let temp = 0 basic.forever(function () { temp = BMP280.temperature() pressure = BMP280.pressure() basic.showNumber(temp) basic.showString("degree Celsius") basic.showNumber(pressure) basic.showString("Pa") basic.pause(1000) })
Replace the existing code in the Javascript interface with the following.
The temperature reading here will be in Degree Celsius (°C)
The pressure reading will be in Pascals (Pa).
When you upload this code, there will be two readings on the micro:bit's LED screen, first the temperature in degree Celsius, and the second will be the atmospheric pressure in Pascals.
let t = 0 let prev_p = 0 let p = 0 let damping = 0 damping = 15 prev_p = Math.round(BMP280.pressure() / damping) basic.forever(function () { p = Math.round(BMP280.pressure() / damping) t = BMP280.temperature() if (p == prev_p) { basic.showArrow(ArrowNames.East) } else { if (p < prev_p) { basic.showArrow(ArrowNames.North) } else { basic.showArrow(ArrowNames.South) } } prev_p = p basic.pause(500) })
We've talked about air pressure and temperature. Now let's look at the relationship between air pressure and height or altitude.
Air pressure decreases with increasing altitude or height. To see this for yourself, first, paste this code into the Javascript interface.
Air pressure is also how drones detect their height and stay stable in the air!
See how air pressure changes as you move the Micro:bit up and down.
When it is not raised, an arrow pointing east will be shown
Raise it about a meter high up and the arrow will be pointing north
Bring it back down and the arrow will be pointing south
When it is not raised, an arrow pointing east will be shown
Raise it about a meter high up and the arrow will be pointing north
Bring it back down and the arrow will be pointing south
To upload the MakeCode to the micro:bit, first connect the micro:bit to your computer using a microUSB cable
Over in MakeCode, click on the Download button on the bottom left-hand corner
Find the hex file in the Downloads folder or wherever you might have moved it to
Open up Finder on the MacOS or Explorer on Windows, and drag the hex file into MICROBIT under 'Devices' on the macOS.
While the code is uploading, the micro:bit will flash for a few seconds. You should then see the temperature and pressure readings scrolling across the 5x5 LED matrix!