记
开发日志
← 返回日志

湿度为什么总是高十个点:大金传感器的同位对表

大金固件
文章摘要

显示湿度 79.5%,同屋的 HomePod 说 70%。查下来是继承来的校准系数从没对过表——把传感器搬到参照旁边贴放,一次对齐。

约 2 分钟 · 873 字 · 5 节 · 标签 大金固件
  1. 先有读数,才有资格谈准不准
  2. 系数是继承来的,从没对过表
  3. 对表:把传感器搬到参照旁边
  4. 落地与验收(2.2.5)
  5. 尾巴:给固件加功能之前,先学会瘦身

先有读数,才有资格谈准不准

这台大金空气传感器的温湿度,一度根本读不出来。芯片明明在总线上应答,正式版固件却恒报「未检测到」。逐行比对才定案:这颗温湿度芯片上电默认是顺序测量模式——一次触发后温、湿两路先后转换,要等满十几毫秒一次读回;旧驱动按「分开读」的时序去取,转换没完就伸手,被芯片直接拒绝,读一辈子也读不到。2.2.4 对齐时序,温湿度回归。

然后新问题来了:湿度显示 79.5%,同屋的 HomePod 说 70%。

系数是继承来的,从没对过表

显示值不是原始值:固件里有一组校准参数——温度偏移 −6.0°C、湿度倍率 ×1.4。这组数是随上游开源驱动一起继承的出厂参数,在别人家的硬件上或许成立,在本机、这个房间里,从没跟任何参照对过表。湿度被 ×1.4 放大,高出近十个点毫不奇怪。

对表:把传感器搬到参照旁边

土办法最可靠:把大金挪到 HomePod mini 旁边贴放,同位同环境,等读数稳定:

  • HomePod:19.5°C / 73%
  • 大金显示:18.7°C / 82.7%(温度低 0.8°,湿度高 9.7 个点)

再加上此前另一个房间的一组数据(同屋 70% 对 79.5%),两个房间独立反推湿度倍率:1.237 与 1.235——高度吻合,这不是巧合,是系数本身错了。定版:湿度倍率 ×1.24,温度偏移 −5.2°C。

落地与验收(2.2.5)

  • 新参数成为默认值;
  • 校准搬进网页后台,用户可调、存设备本地、保存后 5 秒内生效、免重启——下回换房间不用再刷固件;
  • 网页、HomeKit、历史曲线、导出数据同源一个作用点,不会出现两处读数打架。

复验:与同位参照偏差温度 0~+0.1°、湿度 −1.0 个点(校准前是 −0.8° / +9.7 点)。结案。

尾巴:给固件加功能之前,先学会瘦身

这类单片机固件有个体积红线:应用分区上限 1,835,008 B。2.2.5 做完,余量只剩 64 B。后来每个新功能——补徽章、补曲线、挪端口——都得先在包里等效瘦身腾出字节,才有资格谈实现。约束先行,是这台小设备教的规矩。

本篇目录