news 2026/5/30 20:04:45

OneWire单总线:玩转DS18B20温度传感器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OneWire单总线:玩转DS18B20温度传感器

今天我们就来特别聊一聊如何用OneWire实现最少的硬件资源连接多个传感器

什么是OneWire?

—— OneWire(单总线)是由Dallas Semiconductor(现Maxim Integrated)开发的通信协议,它只需要一根数据线(加上地线)即可实现双向通信

目前,LuatOS已全面支持OneWire,不仅提供高效易用的API,还准备了单传感器、多传感器两种经典应用模式的实战示例。

一、OneWire核心库

OneWire核心库提供完整的API,兼顾硬件级时序的可配置性与应用层操作的简洁性,显著降低开发门槛。

  • onewire.init(id)
    初始化OneWire总线;

  • onewire.timing(id, is_tick, clk_div, tRSTL, tRSTH, tPDHIGH, tPDLOW, tSLOT, tStart, tLOW1, tRDV, tREC)

    配置OneWire总线时序参数,用于匹配不同的单总线设备;

  • onewire.reset(id, need_ack)

    发送复位脉冲并检测设备是否存在;

  • onewire.bit(id, send1bit)
    硬件单总线发送或接收1bit;

  • onewire.tx(id, data, is_msb, need_reset, need_ack)
    发送数据到OneWire设备;

  • onewire.rx(id, len, cmd, buff, is_msb, need_reset, need_ack)
    硬件单总线读取N字节数据;

  • onewire.debug(id, onoff)
    单总线调试开关;

  • onewire.deinit(id)
    关闭单总线。

二、OneWire应用示例

基于DS18B20温度传感器的OneWire应用参考示例及实操教程,帮助开发者快速上手,实际应用中可结合具体业务需求灵活调整。

  • 单传感器功能模块(GPIO2默认OneWire功能,硬件通道0模式,3秒间隔连续监测);

  • 多传感器功能模块(引脚54/23切换,PWR_KEY按键控制,2秒间隔双路监测)。

以Air780EPM、Air780EHM系列核心板为例:

核心示例代码如下,完整demo详见源码仓库最新文件。

2.1 单传感器模式

核心逻辑:

  • 使用GPIO2默认OneWire功能,硬件通道0模式,无需引脚复用;

  • 完整的CRC8数据校验机制,确保数据可靠性;

  • 设备自动识别和ROM验证,支持设备类型检测;

  • 3秒间隔连续温度监测,实时温度报警功能;

  • zbuff缓冲区优化,提高数据传输效率。

2.2 多传感器模式

核心逻辑:

  • 初始化当前引脚的OneWire总线;

  • 发送SEARCH ROM命令扫描总线上的设备;

  • 读取并验证设备的64位ROM ID(家族码+序列号+CRC);

  • 使用MATCH ROM(0x55)命令选择目标设备;

  • 发送温度转换命令(0x44)并等待完成;

  • 读取温度数据并进行CRC校验;

  • 输出设备ROM ID、温度值、读取成功率。

在实际项目中,建议先用单个传感器调试通过,再扩展为多设备系统。

今天的内容就分享到这里了

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 16:19:44

独立简化版SharedPtr

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录调整说明完整独立实现代码1. 头文件与引用计数结构体2. 独立版 SharedPtr 实现3. 测试代码(单独测试 SharedPtr)核心代码关键点解释1. 引用计…

作者头像 李华
网站建设 2026/5/29 1:57:45

必收藏!未来5年程序员最优发展方向,认准AI大模型准没错

对于程序员而言,不夸张地说,未来5年最值得深耕、回报率最高的技术发展方向,毫无疑问是AI大模型!不管是刚入门的编程小白,还是深耕多年的资深开发者,抓住这波风口,就能实现职业跃迁,建…

作者头像 李华
网站建设 2026/5/29 22:29:07

参数log_statement 设置为ddl级别及以上存在密码泄露风险

文章目录 环境症状问题原因解决方案 环境 系统平台:N/A 版本:4.1.1 症状 log_statement参数,一般设置为ddl级别以上的选项,但是该方式存在风险,任何修改用户密码的操作都将被明文记录到日志中,建议在修改…

作者头像 李华
网站建设 2026/5/29 22:23:29

真心不骗你!专科生专属AI论文软件,千笔 VS 学术猹,效率翻倍!

随着人工智能技术的迅猛迭代与普及,AI辅助写作工具已逐步渗透到高校学术写作场景中,成为专科生、本科生、研究生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生,开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时…

作者头像 李华
网站建设 2026/5/29 21:32:52

MPC模型预测控制的Simulink仿真模型(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

MPC模型预测控制的Simulink仿真模型(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码,被控对象为二阶大延迟控制系统。采用m脚本编写模型预测控制算法。包含A星算法,Djkstra算法,LQR&#xff…

作者头像 李华