ESP32-C3实现DS18B20温度传感器检测(Arduino IDE)
创作时间:
作者:
@小白创作中心
ESP32-C3实现DS18B20温度传感器检测(Arduino IDE)
引用
CSDN
1.
https://m.blog.csdn.net/qq_59527512/article/details/142883769
本文将介绍如何使用ESP32-C3微控制器和DS18B20温度传感器进行温度检测。通过Arduino IDE平台,结合OneWire和DallasTemperature库,实现温度数据的读取和显示。
1. 源代码(DS18B20)
#include <OneWire.h> // 引入OneWire库,用于与单总线设备通信
#include <DallasTemperature.h> // 引入DallasTemperature库,用于读取DS18B20温度传感器数据
// 定义连接到DS18B20数据引脚的GPIO编号
#define ONE_WIRE_BUS 2
// 创建一个OneWire实例,用于与单总线设备通信
OneWire oneWire(ONE_WIRE_BUS);
// 创建一个DallasTemperature传感器实例,并将oneWire实例传递给它
DallasTemperature sensors(&oneWire);
void setup(void) {
// 初始化串口通信,并设置波特率为115200,用于调试信息输出
Serial.begin(115200);
// 启动传感器,准备进行温度读取
sensors.begin();
}
void loop(void) {
// 向DS18B20传感器发送温度读取命令
sensors.requestTemperatures();
// 通过索引0读取第一个连接的DS18B20传感器的温度值,单位为摄氏度
float temperature = sensors.getTempCByIndex(0);
// 通过串口输出温度信息,首先输出字符串"温度: "
Serial.print("温度: ");
// 输出读取到的温度值,并通过println换行
Serial.println(temperature);
// 程序暂停1000毫秒,即等待一秒后再次读取温度
delay(1000);
}
2. 代码讲解
要使用DS18B20温度传感器,需要添加以下两个库:
- OneWire.h:用于与单总线设备通信
- DallasTemperature.h:用于读取DS18B20温度传感器数据
3. 库实现原理
以下是DallasTemperature库实现温度读取的关键步骤:
初始化:通过调用
begin()
方法初始化,设置1-Wire总线的GPIO引脚。设备搜索:使用OneWire库的搜索功能来查找连接到总线上的所有设备。
发送命令:通过1-Wire协议发送命令,如开始温度转换的命令。
数据读取:通过1-Wire协议读取设备发送的数据。
数据处理:处理原始数据,计算实际温度值。
错误处理:检查通信错误和数据一致性,确保读取的温度值是准确的。
热门推荐
楼上漏水,商业保险能帮你挽回损失吗?
物业教你搞定楼上漏水赔偿
《中华人民共和国民法典》教你应对楼上漏水赔偿难题
衔字组词挑战赛,谁是语文王者?
交感神经亢奋致失眠,六大方案助你改善睡眠
空调选购指南:七大要素助你挑选最适合的空调
证件、电子设备、防护用品:出差旅行必备清单详解
揭秘姜黄粉:既是养生佳品,也是健康隐患
从Thepla到Khaman Dhokla:七道古吉拉特传统美食制作详解
鱼头豆腐汤:高蛋白低脂肪的养生美味
詹姆斯·卡梅隆:《真实的谎言》中的角色塑造与人性探讨
纳兰性德《木兰花》再登热榜,古典诗词魅力不减
协和医院发布肘关节炎诊疗指南:从症状识别到治疗方案
浙江省肿瘤医院重离子治疗中心即将投用,国产设备助力肿瘤治疗新突破
双十一防坑指南:著作权侵权要注意!
上海VS山东:养老金差异大揭秘
选对茶壶容量,泡茶也能成艺术
三亚湾三大必打卡海滩揭秘:亚龙湾、天涯海角和大东海
朋友圈打卡,揭秘背后的小心机
提前还贷成“理财”了?什么情况
秋冬必备:艾草盆栽种植技巧
春季艾草养生正当时
艾草:中国传统医学的秘密武器
艾草:现代医学的新宠儿
6-8升是家用车油耗标准,不同车型范围大不同
海南文昌旅游椰子林景点介绍及度假养生公寓值得去吗
运动还可以降糖?什么运动降糖效果好?
马航MH370失联十年重启搜寻,Ocean Infinity再探南印度洋
中国网球双姝新赛季遇挫,澳网前热身赛首轮出局
挥拍运动降低47%死亡率,科学证实四大健康益处