| BreadBoard | ![]()  | 
| A DS18B20 Temperature Sensor x1 | ![]()  | 
| 4.7KOhms resistor x1 | ![]()  | 
| Male-Female jumper wires | ![]()  | 

$ sudo nano /boot/config.txtopen the /boot/config.txt file for editing. Then scroll down to the bottom of the file, and add the line:
dtoverlay=w1-gpio
$ ls -l /sys/bus/w1/devices/to see a list of the devices currently connected to your Raspberry Pi. Your temperature sensor will appear with an address in the format 28-xxxxxxxxxxx. Below you can see that our temperature sensor address was 28-011617c6c3ee. Each DS18B20 temperature sensor has a unique hard-coded address so that you can connect up multiple temperature sensors when required and still read them individually.
$ cat /sys/bus/w1/devices/28-011617c6c3ee/w1_slave

take note of the server address e.g. SystemServer running at http://192.168.1.???:8088$ sudo node n8.snapshot.js
| delay count max readInput options temperature |
delay := 100.
count := 0.
max   := 15.
options := ((#encoding -> #utf8),(#flag -> #r)).
temperature := [:data|
	| parts temp |
	data isEmpty ifTrue:[ data ] ifFalse: [
		parts := data asArrayOfSubstringsSeparatedBy: String lf.
		parts := (parts at:2) asArrayOfSubstringsSeparatedBy: $=.
		temp := ((parts at:2) asNumber) / 1000.
		temp.
	]
].
readInput := [	
		NodeJS fs 
			readFile: ('/sys/bus/w1/devices/28-011617c6c3ee/w1_slave') 
			options: options 
			with: [:error :data|
				(count > max) ifFalse: [
					count := count + 1.
					error isNil ifFalse: [ ^self error: 'Error reading file: ' ,error ].				
					self print:  (temperature value: data) asString. 
					readInput valueDeferred: delay.
				] ifTrue: [self print: 'End test'].
			]	
]. 
readInput value. What you'll see on standard output (console) are 15 values from DS18B20.