IoT机器人嵌入式【免费下载链接】johnny-fiveJavaScript Robotics and IoT programming framework, developed at Bocoup.项目地址https://gitcode.com/gh_mirrors/jo/johnny-five点击查看免费下载MS5611 是一款通过 I²C 接口通信的高分辨率数字气压/温度传感器温度测量分辨率优于 0.01 °C因此在 Johnny-Five 中既可作为独立Thermometer使用也可与Barometer、Altimeter组合成 Multi 综合传感器。本文以 docs/temperature-MS5611.md 为骨架结合 lib/thermometer.js 与 lib/sip.js 的源码实现讲解接线方式、最小可用代码、核心配置参数以及底层 I²C 驱动与温度换算原理帮助你快速在真实硬件上跑通基于 MS5611 的温度采集程序。MS5611 通过 I²C 挂载在面包板上对应 Johnny-Five 文档中的接线示意更完整的连线设计可参考 Fritzing 源文件 docs/breadboard/multi-MS5611.fzz。一、硬件与接线前提MS5611 是一颗气压-温度一体传感器数据手册见 lib/datasheets.md给出的温度量程为 -40 ℃ 至 85 ℃。它通过 I²C 与主控板通信从源码看其默认从机地址为0x77lib/sip.js 中ADDRESSES: [0x77]。接线时按 I²C 标准连接即可VCC→ 主控板 3.3V / 5V以具体模块规格为准GND→ 主控板 GNDSCL→ 主控板 I²C 时钟线Arduino 上通常为 A5Edison/树莓派等平台视所用 io 插件而定SDA→ 主控板 I²C 数据线Arduino 上通常为 A4由于 Johnny-Five 的Thermometer通过board.io这一层抽象访问 I²C 总线只要所用主控板固件Firmata 等支持i2cConfig/i2cRead/i2cWriteMS5611 驱动即可直接工作无需额外数字引脚。二、最小可用示例与运行方式仓库为Thermometer - MS5611提供了可直接运行的示例 eg/temperature-MS5611.js。在命令行中执行node eg/temperature-MS5611.js完整代码如下const { Board, Thermometer } require(johnny-five); const board new Board(); board.on(ready, () { const thermometer new Thermometer({ controller: MS5611 }); thermometer.on(change, () { const {celsius, fahrenheit, kelvin} thermometer; console.log(Thermometer); console.log( celsius : , celsius); console.log( fahrenheit : , fahrenheit); console.log( kelvin : , kelvin); console.log(--------------------------------------); }); });运行后每当温度读数发生变化控制台就会输出三行日志摄氏、华氏、开尔文三个温标下的当前温度。程序启动顺序如下new Board()建立与主控板的连接board.on(ready)在连接就绪后执行回调new Thermometer({ controller: MS5611 })通过Drivers.get(this.board, MS5611, options)加载 I²C 驱动并初始化传感器lib/thermometer.js驱动在每次完成温度换算后触发data事件Thermometer将其换算为三个温标并对外触发change事件。三、核心配置参数controller指定使用的传感器控制器本例为MS5611。Thermometer内部通过Board.Controller按该字符串匹配到对应实现lib/thermometer.js实现里会把Drivers.get(...)驱动发出的data事件中的temperature字段交给toCelsius处理。值得注意的是MS5611 是一个“一芯多用”的芯片除Thermometer外它同样被注册为Barometer气压计见 lib/barometer.js与Altimeter高度计见 lib/altimeter.js的控制器。这意味着同一颗芯片你在 Johnny-Five 中可以按需用不同组件类读取不同物理量。mode可选mode控制 ADC 转换精度与转换耗时之间的权衡默认值为5。在驱动源码 lib/sip.js 中可以看到如下映射const mode options.mode || 5; const kpDelay [1, 2, 3, 4, 5, 10][mode];即mode 取值模式换算后使用的延迟ms0ULTRA_LOW_POWER11LOW_POWER22STANDARD33HIGH_RES44ULTRA_HIGH_RES55默认对应数组最后一个元素10默认mode 5对应kpDelay 10也就是驱动按最高精度档位预留更长的转换等待时间。如果你的场景更看重采样速率而非分辨率可以显式传入较小的mode如mode: 0转换延迟会从 10 ms 缩短到 1 ms。address可选I²C 从机地址默认0x77。若硬件模块因 A0/A1 地址引脚配置不同而使用其他地址可显式传入覆盖默认值。四、源码级原理MS5611 驱动如何算出温度Thermometer的 MS5611 控制器实现非常简洁lib/thermometer.jsMS5611: { initialize: { value(options, callback) { const { Drivers } require(./sip); Drivers.get(this.board, MS5611, options) .on(data, ({temperature}) callback(temperature)); } }, toCelsius: { value(raw) { // Resolution 0.01 °C return toFixed(raw, 2); } } }真正复杂的工作全部封装在 lib/sip.js 的 MS5611 驱动中它忠实复刻了数据手册的采样流程Reset 与 PROM 校准系数读取上电后先写RESET (0x1E)延时后依次从0xA2起始的寄存器读出 6 个出厂校准系数 C1~C6lib/sip.js交替执行 D2温度与 D1压力转换通过0x50 mode温度与0x40 mode压力寄存器发起转换并按kpDelay延时后从0x00读取 24 位 ADC 原始值lib/sip.js温度计算先算温差dT D2 - C5 * 2^8再算TEMP 2000 dT * C6 / 2^23最后按数据手册执行二阶温度补偿TEMP 2000时的修正项见 lib/sip.js得到computed.temperature TEMP / 100即带两位小数的摄氏温度压力与高度同一轮采样中还会计算温度补偿后的压力P与海拔altitude涉及options.elevation参数lib/sip.js完整数据对象经data事件发出。由此可见示例中thermometer.on(change, ...)拿到的celsius实际已经经过了校准系数修正与二阶补偿精度可到 0.01 ℃ 量级源码注释标注为 “Resolution 0.01 °C”。摄氏温度随后在Thermometer内部按fahrenheit celsius * 9 / 5 32、kelvin celsius 273.15常量CELSIUS_TO_KELVIN见 lib/thermometer.js换算得到另外两个温标因此示例里可以一次解构出三个值。五、进阶用 Multi 一次读取温度、气压与高度由于 MS5611 天然集成了温度、气压、高度三项测量能力Johnny-Five 还把它注册为组合传感器Multi的组件。在 lib/sip.js 中可以确认MS5611: { initialize: { value(options) { Components.call(this, MS5611, options); } }, components: { value: [ALTIMETER, BAROMETER, THERMOMETER] } }也就是说实例化Multi({ controller: MS5611 })后可以同时访问multi.thermometer、multi.barometer、multi.altimeter三个子组件通过各自的change/data事件拿温度、气压与海拔。相关示例与文档可对照多合一用法eg/multi-MS5611.js、docs/multi-MS5611.md气压计单独用法eg/barometer-MS5611.js、docs/barometer-MS5611.md高度计单独用法eg/altimeter-MS5611.js、docs/altimeter-MS5611.md在 Multi 模式下IMU基类会等待所有组件各自完成首次change后才把整体标记为 ready 并对外触发事件lib/sip.js因此multi.thermometer的温度、multi.barometer的气压、multi.altimeter的高度在逻辑上是同一次采样周期内完成的非常适合做天气站、飞行高度计或环境监测这类需要多物理量同步读数的项目。六、调试与常见问题I²C 扫描不到设备先确认地址是否为0x77检查 SDA/SCL 是否接对、上拉电阻是否到位部分模块允许通过地址引脚改为0x76此时需在构造参数中显式传入address。没有change事件输出change只在读数发生变化时触发若环境温度恒定日志不会持续刷新这是正常行为需要周期性读数的场景可以改听data事件。读数精度不符合预期确认是否处于默认mode: 5最高精度档若使用了自定义mode转换延迟会缩短原始 ADC 精度相应降低。板级兼容MS5611 依赖主控板的 I²C 能力与对应固件/io 插件支持不同平台Arduino、Edison、树莓派等的接线引脚不同请以所用 io 插件文档为准。总结本文围绕 Johnny-Five 官方Thermometer - MS5611示例展开先给出了接线与最小可运行代码再逐项拆解controller、mode、address等配置参数最后深入 lib/sip.js 驱动源码解释了 PROM 校准系数、D2 温度转换、二阶温度补偿与三个温标换算的完整链路。基于这套知识你不仅能跑通示例还能将同一颗 MS5611 扩展为气压计、高度计乃至Multi三合一传感器覆盖温度、气压、海拔同步采集的常见 IoT 场景。赞分享IoT机器人嵌入式【免费下载链接】johnny-fiveJavaScript Robotics and IoT programming framework, developed at Bocoup.项目地址https://gitcode.com/gh_mirrors/jo/johnny-five点击查看免费下载相关推荐Johnny-Five Thermometer MPL115A2 实战指南I2C 气压温度传感器的温度采集与源码解析Johnny Five Thermometer MPL115A2 实战指南I2C 气压温度传感器的温度采集与源码解析 本文以 Johnny Five 官方文档IoT机器人嵌入式Maral-7B-alpha-1在Google Colab上的免费部署方案零基础也能快速上手的AI模型运行指南Maral 7B alpha 1在Google Colab上的免费部署方案零基础也能快速上手的AI模型运行指南 Maral 7B alpha 1是一款功能强大IoT机器人嵌入式Movary多用户管理家庭共享观影记录的最佳实践Movary多用户管理家庭共享观影记录的最佳实践 Movary是一款开源的自托管电影追踪应用支持多用户管理功能让家庭成员可以在同一平台上各自维护独立的观影IoT机器人嵌入式上一篇KOReader 实战指南3 条命令跑起这款电子墨水阅读器5 步完成设备换装下一篇如何在5分钟内掌握EscrcpyAndroid设备图形化控制的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
YOLOv8n电梯故障实时检测系统:轻量模型+规则引擎落地实践 简介:本资源是一套基于YOLOv8的社区电梯故障预警系统完整实现方案,面向计算机、人工智能、自动化等专业的本科生及初学者,解决电梯运行中异常状态(如轿厢异物、门区滞留、超载提示等)的实时检测与可视化预警问题&#… · 2026/9/23 12:38:39
3个坑教你手写实现火焰视频核心算法 3个坑教你手写实现火焰视频核心算法 版本升级后 API 全变了,之前封装好的粒子系统直接报错,看着满屏的 undefined ,你是不是也崩溃过?别急着换库,花半小时 手写实现… · 2026/9/23 12:38:39
搞定键盘粘贴快捷键的3个底层陷阱与最佳实践 搞定键盘粘贴快捷键的3个底层陷阱与最佳实践 是不是看了一堆教程,照着敲代码能跑,真到了项目里一写就崩?别慌,这锅不怪你手生,而是大多数人只记住了“Ctrl+V”这个动作,没搞懂背后的事件流。今天咱们不整虚的,直接拆解键盘粘贴快捷键的底层逻辑… · 2026/9/23 12:38:32
QM77031数据手册阅读指南:从引脚表到应用电路的关键要点 简介:这是一份 Qorvo 公司 QM77031 线性多模式中高频 S-PAD 模块的官方数据手册,面向移动通信射频前端设计、硬件选型与调试人员。QM77031 内部集成三条 3G/4G 中高频放大器路径以及滤波器、双工器、四工器和天线开关,支持 WCDMA/CDMA2000/FD… · 2026/9/23 13:22:52
2026最新天津市属于哪个省面试突击:3个考点避坑指南 2026最新天津市属于哪个省面试突击:3个考点避坑指南 官方文档翻烂了还是记不住重点?别慌,这不是你的问题。2026年的技术面试,早就不是死记硬背“天津市属于哪个省”这种常识题那么简单了。很多资深工程师在二面甚至三面时,都会被问倒——不是问… · 2026/9/23 13:22:52
CNG加气站设计与建设关键技术解析 1. CNG加气站行业背景与需求分析压缩天然气(CNG)作为清洁能源在交通领域的应用已有30余年历史。根据行业数据显示,全球CNG车辆保有量年均增长率保持在8%以上,这种增长直接带动了加气站建设需求的持续攀升。与传统加油站相比&#… · 2026/9/23 13:22:52
5步搞定pdf转换成word转换器免费版完整示例避坑指南 5步搞定pdf转换成word转换器免费版完整示例避坑指南 是不是刚打开那个所谓的“免费PDF转Word工具”,结果屏幕上一堆红色的报错信息直接糊脸?什么 IndexOutOfBoundsException ,什么… · 2026/9/23 13:22:52
3步搞定个人简历封面设计,让HR秒懂你的实战项目 3步搞定个人简历封面设计,让HR秒懂你的实战项目 官方文档动辄几十页,翻到第三页就只想睡觉?别怪你注意力短,是资料太碎。 做 个人简历封面设计 ,很多人卡在“好看”和“有用”之间。 其实,封面不是艺术创作,而是 信息压缩 。… · 2026/9/23 13:22:39
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29