HS-S24-L num식 온도 센서

HS-S24-L num식 온도 센서

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 테스트 결과: