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协议读取设备发送的数据。
数据处理:处理原始数据,计算实际温度值。
错误处理:检查通信错误和数据一致性,确保读取的温度值是准确的。
热门推荐
审讯室软包墙面布局:从设计规划到验收测试
女囚审讯制度改革:从羞辱性审讯到规范化
车辆报废后的新商机:创新生意赚钱之道
实探北京最大二手车市场:新能源车成烫手山芋,还是BBA最赚钱
不按规定排队停车等候怎么处罚
双十一必看:揭秘最新网络诈骗手法,六大措施保安全
CBA30年主题Logo致敬传奇:从姚明到易建联,中国篮球的辉煌三十年
海南创新防治互花米草:“海岸杀手”终被制服
互花米草PK无瓣海桑:谁将成为海岸守护神?
海南互花米草防治:一场生态保护的持久战
天津滨海新区互花米草入侵:生态危机与治理困境
红枣枸杞泡水:心血管健康的科学之选
告别“小枕头”:绿茶、西瓜助你轻松改善眼袋!
专家解读:面部瑜伽真的能消除眼袋吗?
中国出土大量精致面具,先民为什么要戴面具?仅仅是为了神秘吗?
揭秘草莓的健康奥秘:美味之外的营养与益处全解析
新生军训安全小贴士
苹果的营养与文化:不仅是美味水果,更是生活方式的象征
可拆卸、变公园、改住宅:体育场馆的“第二次人生”
电信APP实名认证指南:足不出户完成手机实名制
宠物健康大作战:如何应对常见问题?
上曼教你正确安装电缆防爆盒
民航局最新规定:洗面奶超100毫升需托运
GIA&NGTC:如何选择可靠的宝石鉴定机构
猫咪行为突变,警惕猫传腹来袭!
猫咪生病预警信号,铲屎官必看!
进化论助力攻克肿瘤难题:从道金斯新书看医学新突破
人源Ⅲ型胶原蛋白| 详细介绍、使用方法、注意事项
中年人如何延缓衰老?6个实用抗衰老小技巧
云南必尝十大美食:过桥米线、烤鸡等你尝