Your temperature prototype shows a number. What is it measuring?

A temperature reading on the screen is an encouraging first milestone. For a team building a room monitor or another temperature-aware product, the next question is where that number comes from: the surrounding air, the circuit board, a nearby heat source or the object you meant to monitor. More decimal places do not answer that question.

On our bench we connected a GraftSense OneWire temperature module to a GraftPort-Pico controller running MicroPython, discovered the device, and watched the reading change as we warmed the sensor. The exercise also exposed a documentation problem worth avoiding: the module is labeled as DS18B20-based, while part of its component reference describes a substitute chip, the MY18E20. That makes it a good example of moving from "I can read it" to a clear statement of what was connected and what the test supports.

Identify the physical device before interpreting the specifications

Keep the two chip identities separate. The populated chip, its datasheet and the driver's behavior are the combination you need to document for a repeatable prototype. The substitute's memory features and conversion timing must not be transferred to every DS18B20-labeled part, and the reverse is also true.

The module exposes power, ground and a data line, plus one unused pin. OneWire uses a single shared data line in addition to power and ground, and the module includes a pull-up resistor so the line returns high when no device is pulling it low.

Check the data pin against the program you will actually run. Our connection table and the main program in our example package both use GPIO6, while an older README example and a pasted code listing use GPIO14. Keep the wiring and the program on the same GPIO; copying one from each version leaves them mismatched. We cannot tell from the files alone which pin produced our earliest capture.

Keep discovery, conversion and reading in order

The program creates a OneWire bus and a DS18X20 driver, scans for device identifiers, requests a temperature conversion, then reads each discovered device. An identifier tells the program which sensor answered. It says nothing about where that sensor is mounted or how accurately it measures your intended target.

For a genuine DS18B20, the MicroPython OneWire documentation waits 750 ms after requesting a conversion. Our example waited 500 ms, and the substitute chip's reference gives different timing again. Use the actual device's requirement rather than blending those values into one supposed specification. With the bus and identifiers already set up, the sequence is:

ds.convert_temp()
time.sleep_ms(750)  # DS18B20 conversion time at full resolution
for rom in roms:
    print(rom, ds.read_temp(rom))

The terminal paired one device identifier with each reading. As we warmed the sensor the values moved from around 33 to 38 °C up to 77.5 °C, then started to fall again. That supports a response demonstration. There was no reference thermometer alongside it, so it gives no figure for the measurement error of the assembled system. Readings that change in steps of 0.0625 °C show numerical resolution, not equally small accuracy.

Warm the sensor to check response, then design a better comparison

We warmed the module by hand and with a nearby flame. Seeing a rise and fall helps confirm that the read path responds. A flame is not a repeatable way to check a product's temperature measurement, and it can push the part past its operating conditions. For the follow-up, use a controlled heat source within the component's ratings.

To claim accuracy or response time, you need a defined reference, a fixed placement and a timing record. Without those, a reading that "follows the heat" is a working read path and nothing more.

Place the sensor where the product question lives

A long-running Arduino forum thread on putting a DS18B20 outdoors asked whether a sensor could simply be placed outside. Replies raised protection, sun exposure and response time. Those are the right application questions because the housing changes the environment the sensor experiences. They do not validate any particular enclosure for this module.

For a room-monitor prototype, compare the intended sensor position with a suitable reference while the rest of the electronics are running. Repeat after fitting the cover. If the reading moves when a nearby board or display warms up, that is a placement problem to solve before presenting the number as room temperature. We have not yet run that comparison; it is the next test.

Make the next build reproducible

Record the populated chip identity, board revision, confirmed GPIO, driver version, conversion timing and mounting position. Those details let another person repeat the experiment, and they stop a substitute part from silently changing what the number means. If your example code and its README disagree about a pin, fix one of them before anyone else wires a board from it.