ESP32读取DS18B20温度
2021/12/8 23:18:07
本文主要是介绍ESP32读取DS18B20温度,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最近收到DS18B20温度探头传感器,如图:
感觉是一件比较简单的温度传感器,三根线:
不带屏蔽输出引线:红色(VCC),黄色(白色)(DATA),黑色(GND)
带屏蔽的输出引线:红色(VCC电源线),黄色(DATA信号线),白色(GND地线)
我的是带屏蔽线的,所以红色VCC接ESP32的VIN口(5V供电),白色GND接ESP32的GND,黄色信号线接ESP32的D4。
Arduino引入库
两个库均在GitHub上,可以在release标签页中下载最新项目文件。
OneWire库
项目地址:https://github.com/PaulStoffregen/OneWire
DallasTemperature库
项目地址:https://github.com/milesburton/Arduino-Temperature-Control-Library
可以将库文件复制到arduino的libraries目录下,也可以打开arduino ide,选择项目 > 加载库 > 添加一个 .ZIP库,导入两个库。
#include <OneWire.h> #include <DallasTemperature.h> // 定义DS18B20数据口连接ESP32的4号IO上 #define ONE_WIRE_BUS 4 // 初始连接在单总线上的单总线设备 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); void setup(void) { // 设置串口通信波特率 Serial.begin(9600); Serial.println("Dallas Temperature IC Control Library Demo"); // 初始库 sensors.begin(); } void loop(void) { Serial.print("Requesting temperatures..."); sensors.requestTemperatures(); // 发送命令获取温度 Serial.println("DONE"); Serial.print("Temperature for the device 1 (index 0) is: "); Serial.println(sensors.getTempCByIndex(0)); delay(500); }
一切都想的太简单!!!读出的温度一直显示0度。
必须要上拉一个4.7K的电阻,如图接线:
也就是说,需要在VCC(5V)和接D4的线之间接一个4.7K上拉电阻才行,但我家里没4.7K的,只能并联两个10K电阻来解决问题,接上拉电阻后,成功读到温度数据。
参考:
在Arduino中使用DS18B20温度传感器(基于OneWire和DallasTemperature库)
ESP8266--驱动DS18B20
这篇关于ESP32读取DS18B20温度的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-07如何利用看板工具优化品牌内容创作与审批,确保按时发布?
- 2025-01-07百万架构师第十一课:源码分析:Spring 源码分析:Spring源码分析前篇|JavaGuide
- 2025-01-07质量检测标准严苛,这 6 款办公软件达标了吗?
- 2025-01-07提升品牌活动管理的效率:看板工具助力品牌活动日历的可视化管理
- 2025-01-07宠物商场的精准营销秘籍:揭秘看板软件的力量
- 2025-01-07“30了,资深骑手” | 程序员能有什么好出路?
- 2025-01-07宠物公园的营销秘籍:看板软件如何帮你精准触达目标客户?
- 2025-01-07从任务分解到资源优化:甘特图工具全解析
- 2025-01-07企业升级必备指南:从传统办公软件到SaaS工具的转型攻略
- 2025-01-07一文告诉你IT项目管理如何做到高效