基于Arduino的ESP32-S3 +DS18B20(3pin)
发布日期:2025-03-28 00:43:11 浏览次数:8 分类:精选文章

本文共 3597 字,大约阅读时间需要 11 分钟。

    

文章写完后,目录可以自动生成,可以参考右边的帮助文档。

文章目录


前言

DS18B20作为经典的单总线数字温度传感器,因其独特的单线通信和多点组网能力,在物联网领域得到了广泛应用。本文以ESP32-S3-DevKitC-1为核心开发板,详细介绍了从硬件连接到代码实现的完整测温方案,并提供了OLED屏幕扩展方案。相比传统模拟传感器,DS18B20具有更强的抗干扰能力,提升了接收信号的稳定性。

一、硬件准备

1.1 器件对比

...

1.2 接线方案

接线示意:

VCC - 3.3V / 5V

DQ - GPIO6(需4.7K上拉电阻)
GND - GND
图片描述:(查看图片描述)

二、驱动实现

2.1 开发环境配置

添加库文件: - OneWire库(支持单总线协议) - DallasTemperature库(高级温度控制)

2.2 核心代码解析

代码如下:

```cpp #include
#include
#define DSB_PIN 6 OneWire oneWire(DSB_PIN); DallasTemperature sensors(&oneWire); void setup() { Serial.begin(9600); sensors.begin(); sensors.setResolution(12); } void loop() { sensors.requestTemperatures(); float temp = sensors.getTempCByIndex(0); if(temp != DEVICE_DISCONNECTED_C) { Serial.print("温度:"); Serial.print(temp); Serial.println("℃"); } delay(1000); } ```

关键函数说明:

- `sensors.begin()`:初始化单总线设备,自动检测连接数量 - `setResolution(9~12)`:调节测量精度 - `getTempCByIndex(n)`:获取第n个传感器的摄氏温度

三、拓展应用

3.1 OLED屏显集成

        #include 
#include
#define SDA 47 #define SCL 21 SH1106Wire display(0x3c, SDA, SCL); void oledbegin(); void displaysensor(); void displayTemp(); void setup() { Serial.begin(9600); oledbegin(); } void loop() { displaysensor(); displayTemp(); } void oledbegin() { if(!display.init()) { Serial.println("OLED init failed"); while(1) delay(100); } display.flipScreenVertically(); display.clear(); display.setFont(ArialMT_Plain_10); } void displaysensor() { display.drawString(0, 0, "Hello World"); display.drawString(0, 10, "oled"); display.drawString(0, 20, "电磁阀"); display.display(); } void displayTemp() { float temp = 0.0; display.drawString(0, 20, String(temp)+"℃"); display.display(); }

3.2 多点测温方案

        void checkDevices() {            int count = sensors.getDeviceCount();            Serial.print("发现");            Serial.print(count);            Serial.println("个传感器");            for(int i=0; i

四、常见问题排查

...

总结

本文通过验证了《基于Arduino的ESP32-S3-DevKitC-1对DS18B20传感器的驱动》,完整展示了从硬件接线到软件实现的全流程...

上一篇:基于任意单片机的继电器模块应用全解析
下一篇:基于Arduino的ESP32-S3 + HCSR04(4pin)超声波传感器

发表评论

最新留言

很好
[***.229.124.182]2025年04月11日 21时29分36秒