UPDATE: it seems that something in MakeCode – or in the DF Robot extension outlined below – has possibly changed and it may no longer work. It also causes conflicts with an OLED display extension.
Try this new alpha extension instead. It allows multiple sensors to be connected, but make sure you have a DS18B20 connected BEFORE flashing any code made with it to your micro:bit or you’ll see a sad face! Just paste this into the URL box when adding an extension in MakeCode: https://github.com/bsiever/microbit-dstemp-alpha
Thanks to Bill Siever for this new extension, to Louis Wong and Tang at DF Robot for helping troubleshoot issues with extensions for this temperature sensor.
Also here are 3 HEX files I previously compiled that may work for you, flash them direct to your micro:bit, don’t load them in the editor. Right-click and save target as…
- microbit-DS18B20-Temperature-Sensor string.hex
I had a DS18B20 1-wire Temperature Sensor that came with the excellent Sensors CamJam EduKit for Raspberry Pi – I wondered if you could use this with micro:bit to get more accurate external temperature readings. It turns out, thanks to my amazing colleagues Mark and Carlos, that you can!
The version of the DS18B20 Temperature Sensor I have is waterproof, so this means I can make an alarm to tell me when my coffee is getting cold (although I’d probably need to use pin 1 or pin 2 for the sensor instead of pin 0).
Here’s what you need:
- DS18B20 temperature sensor
- some way of connecting it, e.g. breadboard, jumper wires and crocodile clip leads
- 4.7kΩ resistor
- Online MakeCode editor and internet access
Then in the MakeCode editor, add this extension.
You do this by clicking on the cog wheel, going to extensions, and paste
https://github.com/DFRobot/pxt-ds18b20 in the ‘Search or enter project URL’ box.
This project will show a bar graph of the temperature, but if your micro:bit firmware is up-to-date and you’re using a recent version of Chrome, you can also use webUSB to log temperature data on a connected computer, plot it in real time on a graph and save for later analysis in a spreadsheet or other program.