Skip to main content

wokwi-ds18b20 Reference

Digital temperature sensor with 1-Wire interface.

DS18B20

Pin names​

NameDescription
VCCPositive voltage
DQ1-Wire data line (input/output)
GNDGround

Attributes​

NameDescriptionDefault value
temperatureInitial temperature value (celsius)"22"
deviceID12-character hex device ID for the 1-Wire address"010203040506"
familyCode1-Wire family code"28"

Controlling the temperature​

You can change the temperature value while the simulation is running. Click on the DS18B20 sensor and a small popup window will open. Use the temperature slider to change the value.

The temperature range is -55°C to 125°C.

Multiple sensors​

You can connect multiple DS18B20 sensors to the same data pin. Each sensor must have a unique deviceID attribute. The 1-Wire protocol allows addressing individual sensors by their unique ID.

Example with three sensors:

{
"parts": [
{ "type": "wokwi-ds18b20", "id": "temp1", "attrs": { "deviceID": "111111111111" } },
{ "type": "wokwi-ds18b20", "id": "temp2", "attrs": { "deviceID": "222222222222" } },
{ "type": "wokwi-ds18b20", "id": "temp3", "attrs": { "deviceID": "333333333333" } }
]
}

Arduino code example​

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup() {
Serial.begin(115200);
sensors.begin();
}

void loop() {
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0);
Serial.print("Temperature: ");
Serial.print(tempC);
Serial.println(" °C");
delay(1000);
}
warning

The DallasTemperature library cannot read temperatures of exactly -55°C due to a limitation in how the library detects disconnected sensors. If you need to read this specific temperature, use the OneWire library directly.

Automation controls​

The temperature sensor can be controlled using Automation Scenarios. It exposes the following controls:

ControlTypeDescription
temperaturefloatSet the temperature value in Celsius (between -55 and 125)

Simulator examples​