冷库温度监控别急着买成品:我用 ESP32 加 Cat.1 折腾两个月,先说三个劝退理由

🔑 关键词:冷库温度监控,ESP32,Cat.1物联网卡,NB-IoT,MQTT

📖 摘要:60吨中药材冷库的远程温度监控实战:彩钢板墙体信号衰减实测、物联网卡定向卡与静默期踩坑、除霜误报的屏蔽参数,以及为什么我劝退 NB-IoT 和 LoRa 自组网。

先说结论,免得你看完骂我

图片

我不推荐 NB-IoT。至少不推荐给 50 平米以下的冷库、药店阴凉柜、小作坊这种东西。原因后面讲,先讲讲我是怎么蹚进这条沟里的。

去年冬天,我表哥在城郊弄了个 60 吨的保鲜库,存中药材。门一开,那股当归混着土腥味的凉气直往鼻子里钻,冻得人眼眶发酸。他之前用的是 300 多块的成品温湿度记录仪,插 SD 卡的那种,一周导一次数据,Excel 画个折线图,挺像那么回事。

问题出在正月。有天晚上压缩机接触器烧了,库温从 2℃ 一路爬到 11℃,第二天早上开门才发现,一垛黄芪发了霉,赔了小两万。他给我打电话的时候语气特别平静,越平静我越难受。

于是我说,我给你搞个能手机看温度的。

这句话后来让我在零下 18 度的库房里蹲了三个周末。

第一个坑:信号根本进不去

冷库标准墙是彩钢板加 100mm 聚氨酯发泡。我拿手机在门里门外测过,900MHz 和 1800MHz 的衰减大概 25 到 35dB。什么概念?库门外手机 4G 满格,门一关,掉到一格,往里走两步,无服务。

图片

所以任何把物联网卡和天线塞在库体内部的方案,都是耍流氓。包括某宝上那些标着「冷库专用」、卖 168 块的成品探头,你仔细看详情页,它也是主机放库外,只把探头线穿进去。

进去实测记得戴手套。我在里面待了 40 分钟,出来手指是僵的,弯不了,用热水冲的时候像被针扎。这算什么现象我不确定,反正很难受。手机上显示的温度是 -18℃,屏幕触控已经开始飘了,点了三下才点中。

正确做法是这么几步:

  1. 从压缩机管孔旁边那个发泡剂封的洞走一根 4 芯屏蔽线进去
  2. 主机放库外走廊,天线朝窗户
  3. 探头用 DS18B20 不锈钢封装,三线制,DATA 和 VCC 之间加一个 4.7kΩ 上拉电阻
  4. 想测多点,一根 1-Wire 总线上挂 3 到 5 个没问题,但线长超过 10 米就得考虑降速或者改 485 加 PT100 变送器

信号到底怎么测?我后来才知道有正经办法。安卓装个 Cellular-Z,看 LTE 的 RSRP:

  • -85dBm 以内,很棒,板载天线就够
  • -95dBm 左右,能用,但雨天可能抖
  • -105dBm 以下,别折腾了,换位置或者上外置吸盘天线
  • -115dBm,理论上还能连,实际会疯狂重连,一天耗掉 20MB 流量还发不出数据

我最后花 20 块钱买了根 3 米馈线的 4G 吸盘天线,贴在走廊窗户玻璃上,RSRP 从 -108 变成 -89。就这么简单一件事,我浪费了两个周末。

图片

第二坑:物联网卡,我烧了三张

这个必须骂。

第一张在某平台买的「年包 12G」,29 块钱。用到第 11 天,卡停了。问客服,说检测到异常使用。什么叫异常?不说。

后来我才慢慢搞明白几个词,写出来给后来人省点时间:

定向卡和非定向卡。 定向卡只能访问指定 IP,便宜,但你连不了自己的 MQTT broker,除非走他们的透传云。非定向卡贵一点,能连公网。

静默期。 连续 30 天或 90 天没有流量,卡会被回收。你写个只上报、几乎不上行的程序,一天几十字节心跳,很可能被判静默。我现在的做法是每天让设备发一条 200 字节左右的心跳。

虚标。 标 12G 实际给 3G 的太多了。怎么验证?设备端自己统计 TCP 上下行字节数。我用的是合宙 Air724UG 模组,AT 指令 AT+QGDCNT? 能查累计流量,跟平台后台对一下,差多少一目了然。

图片

11 位和 13 位。 11 位(长得像手机号)一般是运营商正规卡,13 位大多是转售的。13 位很多不支持短信,也不给公网 IP。

最后我用的是电信 4G Cat.1 非定向卡,一年 60G,120 块。别问我哪家,免得说我打广告,你自己搜「Cat.1 物联网卡 非定向」,下单前务必问清楚静默期和是否支持公网。

为什么不选 NB-IoT 和 LoRa

(偏见预警,不同意可以跳过)

NB-IoT 在纸面上完美:功耗低、穿透强、运营商覆盖。实际呢?我买过一块 BC26 模组,第一次入网花了 47 秒,第二次 12 秒,还行。然后有一天它不连了,一直停在附着状态。我查了大半天,本地 NB 基站被调整了,跟我没关系。

NB-IoT 还有个让我很烦的点:你很难自己判断信号好不好。AT+CESQ 能查,但那个数值和 LTE 的 RSRP 不是一个量纲,参考价值有限。你只能反复试,试一次等一分钟。

LoRa 呢?听着很爽,433MHz,穿墙一流,不交流量费。但网关是你自己搭的,网关一挂,全网设备集体失联,没有人给你打电话。而且国内 470MHz 频段的占空比限制,具体百分比我记不清了,反正你不能频繁上报。

图片

Cat.1 慢、费电,但它是蜂窝网。掉线了你至少知道是基站的问题,不是你的问题。这一点对一个人干活的项目来说,太重要了。

维度 NB-IoT Cat.1 LoRa
模组价格 30-60 元 25-40 元 15-30 元
待机电流 3-5μA 1-2mA 1-2μA
流量费 需要 需要 不需要
自建网关 否 否 是
适合场景 水表电表抄表 中频上报 园区自组网

软件这边,说点具体的

MQTT 别用公共 broker。我在 test.mosquitto.org 上跑过两天,天天一堆奇怪的订阅请求,明显有人在扫端口。后来自己买了台 2 核 2G 的云服务器,99 一年,装 mosquitto,改三件事:

  1. 开 listener 8883 配 TLS,别用 1883 裸奔
  2. allow_anonymous false,建用户名密码
  3. broker 端 keepalive 设 60,设备端 MQTT_KEEPALIVE 设 30,让客户端主动心跳

上报策略我是这么定的:

  • 温度变化 ≥0.5℃ 立刻上报
  • 否则每 5 分钟一次
  • 断网时本地存环形缓冲,我用 SPIFFS,存 512 条,恢复后按时间戳补传
  • 报警阈值 -12℃
  • 除霜期间屏蔽 40 分钟

图片

最后这条是血的教训。冷库大概每 6 小时除霜一次,蒸发器加热的时候,风口附近的探头会瞬间冲到 5℃ 以上。第一个月我被半夜报警吵醒了 11 次。11 次。

我老婆说你到底在给谁干活。

现在它跑了九个月

上周表哥发了张截图,四条线,基本是平的。他说现在睡觉踏实了。

我自己把报警推送关得只剩「设备离线超过 2 小时」这一条。说句真心话,2℃ 到 3℃ 的波动,没人在意,包括他自己。报警太密,人就会开始无视,这可能是所有物联网项目最终的样子。

对了,那台成品记录仪其实没坏,还在柜子里躺着,我留着做对照。上周对了一下,跟我的 DS18B20 差 0.6℃。谁对谁错也说不清,我倾向于信那个贵的。

差不多就这些。你要真想干,先别急着下单模组,拿个手机去你仓库里把信号测一遍。这一步过了再谈后面。

🏷️ 标签: