Did you know your CircuitPython-compatible microcontroller probably has a thermometer inside?  It does!  microcontroller.cpu.temperature reflects the temperature inside the microcontroller itself, which will frequently be 3-4 degrees C above the ambient temperature.  Note that temperatures are reported in Celsius, not Fahrenheit.

This is a great example to extend with the sensor(s) of your choice, as well as with a Real Time Clock (RTC) so that you know the time that each reading was recorded.  We chose the internal temperature to make this work with a wide range of boards, as long you've configured mount_sd.py!

# SPDX-FileCopyrightText: 2017 Limor Fried for Adafruit Industries
#
# SPDX-License-Identifier: MIT

import time

import board
import digitalio
import microcontroller

led = digitalio.DigitalInOut(board.D13)
led.direction = digitalio.Direction.OUTPUT

# Use the filesystem as normal! Our files are under /sd

print("Logging temperature to filesystem")
# append to the file!
while True:
    # open file for append
    with open("/sd/temperature.txt", "a") as f:
        led.value = True  # turn on LED to indicate we're writing to the file
        t = microcontroller.cpu.temperature
        print("Temperature = %0.1f" % t)
        f.write("%0.1f\n" % t)
        led.value = False  # turn off LED to indicate we're done
    # file is saved
    time.sleep(1)
Adalogger FeatherWing with Real time clock and SD card slot.
A Feather board without ambition is a Feather board without FeatherWings! This is the Adalogger FeatherWing: it adds both a battery-backed Real Time Clock and micro SD...
$8.95
In Stock
Angled shot of Adafruit Feather.
The Adafruit Feather Bluefruit Sense takes our popular Feather nRF52840 Express and adds a smorgasbord of sensors...
Out of Stock

This guide was first published on Jul 31, 2020. It was last updated on Jul 31, 2020.

This page (Logging temperature to SD card) was last updated on Mar 16, 2023.

Text editor powered by tinymce.