
1、소개
18b20 디지털 온도 센서는 일반적으로 사용되는 디지털 온도 센서로, 수치 신호를 출력하며, 크기가 작고, 방해받지 않음이 강하고, 정확도가 높은 특징을 가지고 있습니다。디지털 온도 센서 연결이 쉽고, 포장된 후 케이블 트랙 온도 측정, 고炉 수위 주기 온도 측정, 보일러 온도 측정, 데이터 라우터 온도 측정, 농업 대棚 온도 측정, 정화실 온도 측정, 탄약고 온도 측정 등 다양한 비극한 온도 상황에 사용할 수 있습니다。내구성 있고 충격을 견딜 수 있으며, 작은 크기로 사용이 편리하며 다양한 포장 형식으로 제공되어 다양한 좁은 공간 장비 디지털 온도 측정 및 제어 영역에 적합합니다.
2、시뮬레이션 그래프
3、모듈 매개변수
핀 이름 | 설명 |
|---|---|
G | GND(전원 입력 부정极) |
V | VCC(전원 입력 정극) |
S | 디지털 신호 핀 |
전원전압: 3.3V / 5V
연결방식: PH2.0 케이블접속
설치방식: 더블스크루 고정
4、회로판 크기

5、아두이노 IDE 예제 프로그램
주의: 프로그램을 업로드할 때 라이브러리 파일 오류가 표시되면 먼저 라이브러리 파일을 가져오세요!
Arduino IDE 라이브러리 다운로드 및 导入 가이드:点击查看
예제 프로그램(UNO 개발 보드):
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire_6(6);//18B20数字温度传感器接 Arduino 上的数字引脚6口
DallasTemperature sensors_6(&oneWire_6);//将 oneWire 引用传递给DallasTemperature库
DeviceAddress insideThermometer;
float ds18b20_6_getTemp(int w) {
sensors_6.requestTemperatures();//发送命令以获取温度
if(w==0) {
return sensors_6.getTempC(insideThermometer);
}
else {
return sensors_6.getTempF(insideThermometer);
}
}
void setup(){
Serial.begin(9600);
sensors_6.getAddress(insideThermometer, 0);
sensors_6.setResolution(insideThermometer, 6);
}
void loop(){
Serial.println(String("温度:") + String(ds18b20_6_getTemp(0)) + String("℃"));//以摄氏度为单位打印温度
Serial.println(String("温度:") + String(ds18b20_6_getTemp(1)) + String("℉"));//以华氏度为单位打印温度
Serial.println("");
delay(1000);
}6、ESP32 Python 예제(Mixly IDE /미스키에 적용됨)
개발 보드를 선택하세요 Python ESP32 【ESP32 Generic(4MB)】를 코드 모드로 전환하여 업로드하십시오
주의: 프로그램을 업로드할 때 라이브러리 파일 오류가 표시되면 먼저 라이브러리 파일을 가져오세요!
미시지(Mixly)IDE ESP32 라이브러리 다운로드 및 가져오기 가이드:点击查看
예제 프로그램(ESP32-Python):
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))
7、미스키 Mixly 예제 프로그램(그래픽 언어)
예제 프로그램(UNO 개발 보드):다운로드 클릭
주의: 프로그램을 업로드할 때 라이브러리 파일 오류가 표시되면 먼저 라이브러리 파일을 가져오세요!
미스키(Mixly)IDE Arduino 라이브러리 다운로드 및 가져오기 가이드:点击查看

예제 프로그램(ESP32 개발 보드):다운로드 클릭
주의: 프로그램을 업로드할 때 라이브러리 파일 오류가 표시되면 먼저 라이브러리 파일을 가져오세요!
미시지(Mixly)IDE ESP32 라이브러리 다운로드 및 가져오기 가이드:点击查看

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

ESP32 테스트 환경 설정
부품 준비:“업데이트 대기 중...
전기 연결도): 업데이트 대기 중...
9、비디오 강의
비디오 강의:点击查看
10、테스트 결과
Arduino UNO 테스트 결과:
선을 연결한 후에, 위의 프로그램을 개발보드에 기록한 후, 시리얼 모니터를 열고,波特레이트를 9600으로 설정하면 현재 환경 온도가 시리얼 모니터에 출력됩니다。

ESP32 테스트 결과:
업데이트 대기 중...