ESP32 DS18B20教程|DS18B20温度传感器带ESP32

在本教程中,我们将学习如何使用ESP32 Devkit开发板接口DS18B20。如果要使用ESP32构建基于Web的温度监控系统,则DS18B20是温度传感器的绝佳选择。了解ESP32 DS18B20温度传感器接口的工作原理,设置Arduino IDE,显示LCD上的温度。此外,您可以设计一个简单的ESP32 Web服务器,该Web服务器连续显示温度。

ESP32-DS18B20-IMAGE-1

关于DS18B20温度传感器的简要说明

我们已经在几个早期的项目中使用了DS18B20温度传感器,涉及Arduino,Raspberry PI和ESP8266。DS18B20是来自Maxim集成的数字温度传感器,可以测量-55的温度0.c至+1250.C。[ESP32初学者的项目]

与其他数字传感器不同,这些传感器经常通过我沟通2C或SPI,DS18B20温度传感器使用1线通信与微控制器交互。

Arduino DS18B20温度传感器

如果您不熟悉1线总线,它是由达拉斯半导体开发的通信总线,并且顾名思义,它只需要一根电线与处理器(井,1个数据线和1个GND线)通信。

此外,DS18B20温度传感器可以从数据线本身(称为寄生电源)导出其电力,而无需提供任何外部电源(通过VDD.别针)。

由于DS18B20是数字温度传感器,因此温度数据存储在片上EEPROM中。DS18B20的其他一些重要特征是:

  • 用户可配置分辨率在9位和12位之间。
  • 一个64位串行代码,对每个DS18B20传感器是唯一的。

DS18B20的针图和引脚描述

下图显示了PIN图,表下表显示了DS18B20的引脚描述。

Arduino DS18B20温度传感器引脚

DS18B20的PIN 描述
GND. 地面
DQ. 输入/输出数据。必须拉高。
V.DD. 电源供应

电源DS18B20的不同方式

我已经在Arduino DS18B20教程中讨论过这一点。有几种方法可以在其中通电DS18B20:

  • 正常方式(使用vDD.的)
  • 寄生电力

参考Arduino DS18B20教程了解更多信息。我将在此ESP32 DS18B20教程中正常电源为DS18B20。

ESP32 DS18B20接口

既然我们已经看过关于DS18B20的一点点,现在让我们继续了解如何使用ESP32接口DS18B20。首先要记住的是DS18B20是数字传感器。要记住的下一个重要事项是它使用1线通信。

这对ESP32的意思是什么?这意味着我们可以使用ESP32的任何数字GPIO引脚发送和接收DS18B20的数据,我们只需要一根电线进行适当的通信。

所需的组件

  • ESP32 Devkit开发板
  • DS18B20温度传感器
  • 16×2 LCD
  • PCF8574 I2C LCD模块
  • 面包板
  • 连接电线
  • 微USB电缆

电路原理图

以下图像显示了ESP32和DS18B20之间的连接。首先,我发电DS18B20具有正常功率。所以,vDD.DS18B20连接到ESP32板的VIN。

笔记:DS18B20的电源范围为3 V至5.5 V.因此,您还可以使用ESP32板的3.3V电源供电DS18B20。

接下来,GND引脚连接到ESP32的任何GND引脚。最后,DQ引脚。首先,该引脚应拉高。因此,我在DQ引脚和3.3V之间连接了4.7kΩ电阻。

笔记:上拉电压可以在3V至5.5 V之间的任何位置。

现在,DQ引脚连接到ESP32的GPIO 16,在ESP32 Devkit板上标记为Rx2。

ESP32-DS18B20电路

准备Arduino IDE

您需要下载几个库,以正确地与DS18B20通信。首先与1线总线有关。转到工具 - >管理库......在Arduino IDE中。

ESP32-DS18B20-ARDUINO-1

在搜索栏中,输入“OneWire”。滚动选项并通过Jim Studt,Paul Stoffregan等人安装“OneWire”库。

ESP32-DS18B20-Arduino-2

下一个库与DS18B20设备本身相关联。搜索“达拉斯”并将“Dallastemperature”乘Miles Burton等人。

ESP32-DS18B20-Arduino-3

在串行监视器上显示温度

在制作适当的连接和如上所述安装必要的库后,我们现在将看到如何使用ESP32从DS18B20读取温度数据并显示串行监视器上的结果。

代码

我写了一个简单的代码,它将初始化GPIO 16上的1线通信,将该一个线通信分配给DS18B20传感器并读取温度数据。

要查看结果,我只是使用串行监视器在摄氏度中打印温度值。

ESP32-DS18B20-IMAGE-3

以下图像显示串行监视器的屏幕截图,该屏幕截图每3秒连续打印温度读数。

ESP32-DS18B20-Arduino-4

ESP32 DS18B20与i2C LCD.

在串行监视器上显示温度值仅用于测试连接和代码本身。如果您想要更实用的“嵌入式系统”应用程序,那么使用任何类型的显示模块(OLED,16×2字符LCD,诺基亚5110 LCD,图形LCD等)以查看温度读数是最简单的方法。

为了保持简单,我使用常规的16×2字符LCD显示模块与PCF8574 I2C LCD模块相结合,从ESP32 DS18B20接口显示温度读数。

我做了一个专门的教程,了解如何使用一世2C液晶显示屏与ESP32。查看用于深入信息的教程。我还讨论了您下载的必要库,以在该教程中成功将I2C LCD与ESP32连接。

笔记:我还解释了如何获得我的从地址2C的CLCD模块在该教程中。这一步非常重要。

电路原理图

您需要的附加组件是16×2 LCD显示器和I2C LCD模块(基于PCF8574)。插件在16×2 LCD显示屏后面的I2C LCD模块。I2C LCD模块仅需要四个连接(其中两个是电源,两个用于数据)。

在以下电路图中显示了ESP32和I2C LCD模块以及ESP32和DS18B20温度传感器之间的所有必要连接。

ESP32-DS18B20-I2C-LCD电路

代码

具有I2C LCD的ESP32 DS18B20接口的代码非常简单。传感器的初始化部分类似于先前的代码。另外添加LCD相关代码。

ESP32-DS18B20-IMAGE-2

结论

在此处实施了初学者关于接口DS18B20温度传感器的教程。您学习了关于DS18B20的一些基本信息,ESP32 DS18B20接口的工作原理,用于与DS18B20通信的必要库,如何在串行输出上显示温度,以及如何将I2C LCD与ESP32连接并显示温度读数。

只要考虑使用ESP32和DS18B20的基于Web的温度监控系统,我将使用Web服务器的代码不久更新此页面。

一个反应

  1. 亲爱的朋友,

    在上面的草图中它不应该是“#define ds18b20pin 21”?

    最好的,
    赫里奥。

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*

电子机器Favicon.
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map