HS-S24P 数字温度传感器

HS-S24P 数字温度传感器

1、介绍

18b20数字温度传感器是常用的数字温度传感器,其输出的是数字信号,具有体积小,抗干扰能力强,精度高的特点。数字温度传感器接线方便, 封装后的可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

2、原理图

数字温度传感器-HS-S24P 原理图 点击查看

3、模块参数

引脚名称

描述

G

GND(电源输入负极)

V

VCC(电源输入正极)

S

数字信号引脚

  • 供电电压:3.3V / 5V

  • 连接方式:PH2.0端子线

  • 安装方式:双螺丝固定

4、电路板尺寸

5、Arduino 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 测试结果:

待更新...