0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样连接DS18B20并在微型OLED显示屏上显示温度和华氏温度

454398 来源:网络整理 作者:网络整理 2019-11-13 17:29 次阅读

步骤1:DS18B20的简要介绍数字温度传感器IC

怎样连接DS18B20并在微型OLED显示屏上显示温度和华氏温度

DS18B20是一款能够测量温度并提供直接数字信号的温度传感器IC,即与LM35等其他温度传感器不同,它可以直接发送温度读数到任何微处理器微控制器或个人计算机。

主要功能:-

****可测量-55°C至+ 125°C(-67°F至+257)的温度°F)±0.5°C -10°C至+ 85°C的精度

****可以在9位至12位数字信号之间设置测量精度(不影响读取时间) )。

**它具有警报功能,具有用户可编程的上下触发点,非易失性。即,当温度达到某个较低或较高的阈值设定点时,可以将其编程为触发外部警报或恒温器以分别指示或控制任何外部设备。即使传感器断电,这些设定点仍保留在其存储器中。

**它通过1-Wire®总线进行通信,根据定义,该总线仅需要一条数据线(和地线)即可与之通信。

**此外,DS18B20可以直接从数据线获取电源(“寄生电源”),而无需外部电源。

**如果要使用外部电源运行,则可以在+3.0 V至+ 5.5V之间运行。这使其与3.3V IC(如Arduino Due,esp8266等)以及5V IC(如Arduino Uno,Nano等)兼容。

**每个DS18B20都有唯一的64位串行代码,该代码可允许多个DS18B20可在同一1-Wire总线上工作。因此,使用一个微处理器控制分布在大面积上的许多DS18B20很简单。

**不需要外部电路,除了某些情况下需要10k上拉电阻

可以从此功能中受益的应用包括HVAC环境控制,温度监控系统

步骤2:DS18B20引脚连接

DS18B20来了以不同的形式包装。它以IC或ebay,aliexpress等形式出现,我们可以找到非常便宜的封装版本。我使用的是从aliexpress.com订购的钢封装(在我的博客上提供的链接以及此说明的结尾)

**如果您使用的是TO-92封装,即显示的裸IC表格在附加的图像中,引脚排列为-左接地,中间DQ或数据,右VCC(我分别将这些行编码为黑色,黄色,红色以匹配封装形式的导线编码)

**通常,黑色线是接地线,红色是+ ve VCC(+3.0至+ 5.5V),黄色线是DQ或数据线。在我们的情况下,红色线将达到NodeMCU的+ 3.3V或外部电源具有3.3V稳定电压。

**在黄色DQ线和+ VCC之间连接了一个大约4.7K欧姆的上拉电阻(可以使用接近4.7K的任何其他值)(有时,

** DQ或数据(黄色)线应连接到我们的微控制器,即NodeMCU数字输入引脚。在我们的情况下,它连接到D1或GPIO 5 [注意-NodeMCU板和实际ESP8266 IC的引脚映射不同,请参阅我以前的说明以了解NodeMCU,ESP8266和Arduino IDE之间的引脚映射的详细信息

另一个重要说明-避免将DQ或数据线连接到NodeMCU的D0引脚,我注意到,如果我们将DQ线与D0处的外部上拉相连,则在编程/上载代码时会出错针/GPIO16。

第3步:使用NodeMCU连接OLED显示屏(在SPI模式下)

最初,我在努力使自己的体积变得很小OLED显示器可与NodeMCU一起使用。经过大量的努力,终于找到了正确的引脚连接,如图所示。

我在这里和这里都使用了Adafruit OLED显示库。您需要首先安装这两个库才能使OLED显示器正常工作。

注-我尝试过几次将自己喜欢的U8GLIB库用于OLED显示器,但是失败了。最后,我在某处读到了使用arduino IDE与ESP8266接口的U8GLIB库存在一些问题。如果您正在使用ESPLORER之类的其他IDE,那么u8GLIB可以正常工作-如我的视频所示。

不要忘记在代码中调用的构造函数中插入正确的引脚号。

#define OLED_SDA D7//MOSI

#define OLED_SCL D5//CLK

#define OLED_DC D4//DC

#define OLED_CS 12//不需要将任何东西连接到此引脚,只需使用一些引脚号

#define OLED_RESET D3//RES

//这是构造函数来调用

Adafruit_SSD1306显示屏(OLED_SDA,OLED_SCL,OLED_DC,OLED_RESET,OLED_CS);

有关接口的更多信息,请参见我的博客文章和youtube视频。

步骤4:整个系统的电路图

最终的完整电路图如图所示。

我已经通过NodeMCU的3.3V输出为DS18B20和OLED显示器供电。您也可以使用外部电源。

一些有时会遇到问题的技巧-

因为,esp8266是耗电设备,如果您遇到无法上传草图的问题,只需断开DS18B20 VCC引脚,直到草图完全上传即可上载草图后再重新连接。

OR

我注意到,即使成功上传了草图几次,显示剂量仍会显示任何温度。一种解决方案是在上载草图后重新启动NodeMCU。可以通过按NodeMCU上的Reset(重置)按钮或仅移除VCC或USB电缆并重新连接来完成电源重置。

第5步:代码/草图,库和链接

在此处可以找到arduino IDE的工作代码(带有注释-解释)。我的博客文章或以下.ino文件附件。

该项目中使用的所有库也都附在

下的.rar文件中(或者您可以使用以下链接下载库)

可在此处获得最新的Arduino IDE

https://www.arduino.cc/en/Main/Software

------- -------------------------------------------------- -------------------------------------------------- -----------------

用于arduino IDE和DS18B20的库在此处作为达拉斯温度库提供。

https://github.com/milesburton/Arduino-Temperature 。..

Adafruit的OLED显示库可在此处和此处

https://github.com/adafruit/Adafruit_SSD1306

https://github.com/adafruit/Adafruit-GFX-Library

在上传草图之前安装所有这三个库

---------------------------------------- -------------------------------------------------- -

DS18B20购自banggood.com的aliexpress和nodeMCU

第6步:最终示例和与商用温度传感器的比较

我检查了我们系统测量的OLED显示屏上显示的温度,并将其与商用温度传感器读取的温度进行了比较。温度测量在很大的温度范围内都非常准确。显然,我无法达到极低的温度。

附带的图像是将传感器保存在盛有冰的碗中(1.1°C)的读数,当传感器使用点烟器加热(127°C)时显示温度。请注意,DS18B20的工作温度范围为-55°C至+ 125°C(-67°F至+ 257°F)

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 温度传感器
    +关注

    关注

    48

    文章

    2648

    浏览量

    154285
  • OLED
    +关注

    关注

    118

    文章

    5982

    浏览量

    221403
  • DS18B20
    +关注

    关注

    10

    文章

    765

    浏览量

    80087
收藏 人收藏

    评论

    相关推荐

    基于STC8H8K64U和DS18B20温度采集和LabVIEW上位机显示

    之前通过 STC 单片机和 DS18B20 实现了环境温度采集并串口显示,后面进一步想要实现温度的实时监测和数据记录保存,因此编写了 LabVIEW 程序,修改了部分单片机程序代码。经
    发表于 04-08 12:28

    51单片机可以用DS18B20检测温度后,通过蓝牙串口发送给手机上显示吗?

    51单片机可以用DS18B20检测温度后,通过蓝牙串口发送给手机上显示吗?
    发表于 11-03 06:04

    基于STM32最小系统的双DS18B20检测温度并在OLED显示

    基于STM32最小系统的双DS18B20检测温度并在OLED显示
    发表于 10-30 15:13 4次下载

    基于51单片机DS18B20温度测量仿真设计

    运用所学单片机知识,完成温度信号的测量。要求如下:单片机系统选择使用AT89C51,温度传感器采用DS18B20,在LED显示器上显示频率值
    的头像 发表于 10-22 17:47 902次阅读
    基于51单片机<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>测量仿真设计

    51单片机DS18B20温度报警器proteus仿真设计_可调上下限

    通过DS18B20温度传感器检测温度显示在数码管上;
    的头像 发表于 10-17 09:35 1625次阅读
    51单片机<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>报警器proteus仿真设计_可调上下限

    DS18B20采样温度的精度可以达到多少?

    DS18B20采样温度的精度可以达到多少
    发表于 10-12 08:14

    DS18B20 数字温度计特点

    一.DS18B20特点 DS18B20 数字温度计提供12位(二进制)温度读数的数字型传感器。传感器仅需要单总线接口与CPU连接,实现信号送
    的头像 发表于 09-11 11:19 1316次阅读
    <b class='flag-5'>DS18B20</b> 数字<b class='flag-5'>温度</b>计特点

    基于STM32单片机的六路DS18B20温度监测报警仿真设计

    STM32F103R6+DS18B20温度传感器+LCD1602显示温度精度0.1℃,将采集到的六路温度同时
    的头像 发表于 09-01 09:35 898次阅读
    基于STM32单片机的六路<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>监测报警仿真设计

    如何使用Nano100来读DS18B20

    : NuTiny-EVB-Nano130-LQFP128 v1.1 MCU与DS18B20到PD.0的DS18B20通信读DS18B20,然后通过串端输出温度,作为浮体类型。
    发表于 08-30 08:07

    如何使用Nano100来读DS18B20

    : NuTiny-EVB-Nano130-LQFP128 v1.1 MCU与DS18B20到PD.0的DS18B20通信读DS18B20,然后通过串端输出温度,作为浮体类型。
    发表于 08-22 07:54

    Proteus教程第四讲:DS18B20温度测量

    Proteus教程第四讲:DS18B20温度测量
    的头像 发表于 06-14 11:19 1123次阅读
    Proteus教程第四讲:<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>测量

    【笔记】多路DS18B20温度的读取

    多路DS18B20温度传感器的读取原理如下:1.初始化:首先需要初始化GPIO引脚的配置,将其设置为推挽输出模式。这个引脚将用于与DS18B20传感器进行通信。2.启动温度转换:在读取
    的头像 发表于 06-08 09:49 2878次阅读
    【笔记】多路<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>的读取

    【正点原子STM32精英V2开发板体验】DS18B20温度采集

    of \'XXX\'”。 本节主要分享基于DS18B20温度精准采集,我们知道DS18B20是美国DSLIAS公司推出的单总线数字温度传感器,具有
    发表于 05-03 19:31

    DS18b20传感器读数问题如何解决?

    想扩展它以使用防水 DS18b20 温度探头。使用内置的 C 库,我能够从探头读取温度,但我正在努力解决如何将值传回我的应用程序的其余部分的问题。 本质,我想定义一个函数
    发表于 04-27 07:04

    DS18B20如何连接其他GPIO?

    你好。 我有自己的原型板 ,其中 DS18B20 连接到 gpio13。 我如何从这个 GPIO 读取温度
    发表于 04-26 07:57