
1、소개
18b20 디지털 온도 센서는 일반적으로 사용되는 디지털 온도 센서로, 수치 신호를 출력하며, 크기가 작고, 방해받지 않음이 강하고, 정확도가 높은 특징을 가지고 있습니다。디지털 온도 센서 연결이 쉽고, 포장된 후 케이블 트랙 온도 측정, 고炉 수위 주기 온도 측정, 보일러 온도 측정, 데이터 라우터 온도 측정, 농업 대棚 온도 측정, 정화실 온도 측정, 탄약고 온도 측정 등 다양한 비극한 온도 상황에 사용할 수 있습니다。내구성 있고 충격을 견딜 수 있으며, 작은 크기로 사용이 편리하며 다양한 포장 형식으로 제공되어 다양한 좁은 공간 장비 디지털 온도 측정 및 제어 영역에 적합합니다.
2、시뮬레이션 그래프

3、모듈 매개변수
핀 이름 | 설명 |
|---|---|
G | GND(전원 입력 부정极) |
V | VCC(전원 입력 정극) |
S | 디지털 신호 핀 |
전원전압: 3.3V / 5V
연결방식: PH2.0 케이블접속
설치방식: 더블스크루 고정
4、회로판 크기

5、아두이노 IDE 예제 프로그램
Arduino UNO 예제(Mixly IDE 및 Arduino IDE에 적용됨):다운로드 클릭
/***********************************************************
文件名:06_DS18B20Temperature sensor.ino
描述:获取温度值,串口打印数据。
作者:陈志强
日期:2022.11.2
***********************************************************/
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire_9(9);//18B20数字温度传感器接 Arduino 上的数字引脚9口
DallasTemperature sensors_9(&oneWire_9);//将 oneWire 引用传递给DallasTemperature库
DeviceAddress insideThermometer;
float ds18b20_9_getTemp(int w) {
sensors_9.requestTemperatures();//发送命令以获取温度
if(w==0) {
return sensors_9.getTempC(insideThermometer);
}
else {
return sensors_9.getTempF(insideThermometer);
}
}
void setup(){
Serial.begin(9600);
sensors_9.getAddress(insideThermometer, 0);
sensors_9.setResolution(insideThermometer, 9);
}
void loop(){
Serial.println(String("温度:") + String(ds18b20_9_getTemp(0)) + String("℃"));//以摄氏度为单位打印温度
Serial.println(String("温度:") + String(ds18b20_9_getTemp(1)) + String("℉"));//以华氏度为单位打印温度
Serial.println("");
delay(1000);
}예제 프로그램(ESP32 보드—Python 언어 기반, Arduino IDE로 업로드할 수 없음):
from machine import Pin
import time
class OneWire:
def __init__(self, pin):
self.pin = pin
self.pin.init(Pin.OPEN_DRAIN, Pin.PULL_UP)
self.pin.value(1)
def reset(self):
self.pin.value(0)
time.sleep_us(480)
self.pin.value(1)
time.sleep_us(60)
present = not self.pin.value()
time.sleep_us(420)
return present
def writebit(self, value):
self.pin.value(0)
if value:
time.sleep_us(10)
self.pin.value(1)
time.sleep_us(55)
else:
time.sleep_us(65)
self.pin.value(1)
time.sleep_us(5)
def readbit(self):
self.pin.value(0)
time.sleep_us(2)
self.pin.value(1)
time.sleep_us(15)
value = self.pin.value()
time.sleep_us(45)
return value
def writebyte(self, value):
for i in range(8):
self.writebit((value >> i) & 1)
def readbyte(self):
value = 0
for i in range(8):
value |= self.readbit() << i
return value
def readinto(self, buf):
for i in range(len(buf)):
buf[i] = self.readbyte()
class DS18B20:
def __init__(self, onewire):
self.ow = onewire
self.buf = bytearray(9)
def convert_temp(self):
self.ow.reset()
self.ow.writebyte(0xCC)
self.ow.writebyte(0x44)
time.sleep_ms(750)
def read_temp(self):
self.ow.reset()
self.ow.writebyte(0xCC)
self.ow.writebyte(0xBE)
self.ow.readinto(self.buf)
temp = self.buf[0] | (self.buf[1] << 8)
if temp & 0x8000:
temp = -((temp ^ 0xffff) + 1)
return temp / 16
def ds18b20_get_temp(w=0):
sensor.convert_temp()
t = sensor.read_temp()
if w == 1:
t = t * 9 / 5 + 32
return t
ds_pin = Pin(12)
ow = OneWire(ds_pin)
sensor = DS18B20(ow)
while True:
print(ds18b20_get_temp(1))
6、미시치 Mixly 예제 프로그램(그래픽 언어)
Arduino UNO 그래픽 예제 프로그램:다운로드 클릭

ESP32 Python 그래픽 예제 프로그램:다운로드 클릭

7、테스트 환경 구축
Arduino UNO 테스트 환경 구축
부품 준비:“
HELLO STEM UNO R3 개발 보드 *1
HELLO STEM UNO R3 P 확장 보드 *1
USB type-c 데이터 케이블 *1
디지털 온도 센서 (HS-S24P) *1
PH2.0 3P 두끈 단자 라인 *1
전기 연결도):

ESP32 Python 테스트 환경 구축
8、비디오教程
Arduino UNO 비디오 강의:点击查看
ESP32 Python 비디오 강의:
9、테스트결론
Arduino UNO 테스트 결과:

선을 연결한 후에, 위의 프로그램을 개발보드에 기록한 후, 시리얼 모니터를 열고,波特레이트를 9600으로 설정하면 현재 환경 온도가 시리얼 모니터에 출력됩니다。
ESP32 Python 테스트 결과: