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协议读取设备发送的数据。
数据处理:处理原始数据,计算实际温度值。
错误处理:检查通信错误和数据一致性,确保读取的温度值是准确的。
热门推荐
化疗后末梢神经炎?维生素B族来帮忙!
维生素B12:末梢神经炎治疗的新希望
维生素B族和Omega-3脂肪酸:缓解神经炎的营养密码
邵阳四大景区全攻略:丹崖绝壁、高山草原、原始森林、溶洞奇观
邵阳五处历史文化遗迹:秋日里的古城墙、古寺与王府
Gmail账号注册指南:8步教你轻松拥有Google邮箱
净土法门法师:佛像开光与供奉的真正意义
净土法门法师:佛像开光与供奉的真正意义
石雕观音:从古代到现代的发展演变如何?
构建三维强震潜源,引领支撑地震区划——中国地震局地质研究所震源模型构建团队
急性气管炎防治指南:病因、症状、治疗一文通
急性支气气管炎怎么选止咳药?5种常用药物全解析
气管炎若不及时治疗,当心这些严重后果
子女抚养权变更需法律心理双管齐下
手指疼痛怎么办?这些科学方法帮你缓解不适
YogaLadyM教你缓解手指疼痛
少商穴按摩:手指保养的神奇秘诀
蒸馒头大火还是小火?多了解,蒸馍馍好吃!
彻底成为旅游城市!沈阳这把火出圈了!热门TOP5是……
刘克斌履新沈阳市副市长,曾经的“网红”文旅局长现在都在干啥?
路由器设置与使用习惯:打造安全Wi-Fi环境
Wi-Fi联盟警告:公共Wi-Fi成网络安全重灾区,九大威胁需警惕
多个严重Wi-Fi漏洞曝光,数十亿设备面临远程攻击风险
李川新综艺《笑动吧!川哥》上线,搞笑日常再升级
学者质疑古埃及文明:胡夫金字塔建造存三大悖论
600万吨石头堆砌奇迹,现代人能复原金字塔建造吗?
科技股投资分析方法与局限性全解析
离婚诉讼子女抚养指南:从抚养权归属到抚养费标准
离婚后房贷归前夫逾期,五大方案助你化解危机
羊角片可以长期服用吗?