公司动态
LoRa洪水传感器系统全解析:从SX1262选型到野外低功耗部署实战
今年入汛的第一场暴雨我蹲在河边看着那套太阳能4G摄像头的水位监测站画面卡在99%加载不出来。那一刻我就知道这套“高科技方案”在当地并不适用。后来我们整体换成了 Semtech LoRa 技术支撑的洪水传感器系统用低功耗水位计加上 LoRa 射频链路成本降了60%续航从3天变成两年。这篇文章就是把那次改造中从选型、硬件、功耗、组网到野外部署踩坑的全过程记下来给正在考虑做水位监测、山洪预警、灌区量水这类项目的朋友一份能直接抄作业的参考。洪水传感器系统最核心的不是传感器本身有多贵而是“数据能不能在暴雨天稳定传回来”。整套系统用 LoRa 通信之后不依赖运营商基站也不怕网络拥挤一条链路预算打得非常宽裕。下面我会把那次选型和落地过程中筛过的方案、算过的账、烧过的钱、踩过的坑从头到尾捋一遍。1. 一场暴雨之后我为什么把水位监测方案从4G改成了LoRa1.1 那次卡死在99%的画面项目点位在一个山洪沟的道口平时水流不大但一下暴雨水位能在半小时内涨两三米。最开始我们用的是工业级4G摄像头加太阳能板加铅酸电池的方案想着现场画面直观、能拍照能录像后台还能AI识别水位。真正到了汛期第一场大暴雨才发现问题有多致命。雨最大的时候站点所在位置的运营商基站拥塞加上微波链路在强降雨下本身就有衰减后台的实时画面一直加载卡在99%再也不动。更麻烦的是4G摄像头那套系统整机功耗高阴雨天太阳能充不进电第三天就直接掉线。等雨停了工作人员带着笔记本去现场数据缺口整整5个小时而恰恰那5个小时就是最需要监控水位的时间段。从那以后我基本形成了一个判断防汛预警类项目通信链路必须自主可控不管基站好不好用都得能发出数据整机功耗必须低到只用电池就能撑完一个汛期不能把生命线押在天气随机性的光伏充电上。1.2 洪水监测对通信链路到底在要求什么先拆解一下洪水监测这个场景的特殊性。一个典型的山洪监测站点往往在河谷、山区、水库上游位置偏远地势低经常没有市电也不一定有4G信号。但它需要采集水位、雨量、电压等数据并且要在水位达到阈值时把告警及时送出去。这种场景对通信链路的要求跟城市里的智能抄表完全不同覆盖距离要远而且不能依赖运营商基站的覆盖范围最好自建链路。链路要能穿透雨衰、植被、地形遮挡在恶劣天气下依然可用。上行数据量很小水位、雨量这类数据一次就几十个字节不需要高带宽。功耗必须极低站点可能完全靠电池供电需要支持数月甚至整年免维护。成本要可控一个县往往要布几十上百个点单点通信成本太高预算撑不住。把这几点列出来就会发现移动蜂窝网络和WiFi在这个场景下都不合适。蜂窝网络受制于基站覆盖和拥塞功耗也高WiFi覆盖太短根本不在考虑范围。剩下窄带物联网方案里LoRa在“自己建网、远距离、低功耗”这个交叉点上的表现最均衡。1.3 LoRa与蜂窝模组的链路预算账很多人一听LoRa就觉得是“低速率老技术”但低速率在这个场景里恰恰是优点。低速率意味着更高的接收灵敏度Semtech 的 SX1262 接收灵敏度能做到 -148dBmSF12, 125kHz带宽而典型的4G Cat.1模组接收灵敏度一般在 -108dBm 到 -110dBm。这个差距体现在链路预算上就是数量级的覆盖差异。我习惯在方案阶段给甲方算一笔链路预算账。以发射功率14dBm约25mW的LoRa节点为例加上收发天线各2dBi增益接收灵敏度按-137dBm保守取SF10来算系统总链路余量大约是14 2 2 - (-137) 155dB。开阔水面环境下路径损耗按 120dB 计算还有35dB 的余量。也就是说即使暴雨天、植被茂密、馈线老化导致额外衰减十几dB信号依然能到。而4G Cat.1模组发射功率典型23dBm灵敏度 -110dBm链路预算约137dB看起来也不错但实际覆盖受制于基站位置和容量不是你算出来多少就能跑多少。这笔账算完方案方向就很明确了LoRa做主干通信水位计用雷达或压力式主控用超低功耗MCU电池用锂亚硫酰氯加超级电容。下面来逐个拆解硬件部分。2. 硬件选型的主线传感器、主控与射频模组的搭配2.1 水位传感的三种主流方案怎么选水位传感是整套洪水传感器系统的“输入端”选错类型后端的LoRa链路再稳也白搭。目前野外水位监测主流的非接触式和接触式方案大体分三类雷达水位计、超声波水位计、压力式/气泡式水位计。我这些年都用过直接说结论。雷达水位计如26GHz调频连续波精度高不受温度、湿度、水面漂浮物影响安装时不需要下水最适合山洪沟这种含沙量大、枯洪水位变化剧烈的场景。缺点是贵整机功耗相对高一些测量瞬间电流能到70mA左右另外安装角度要求严格雷达波束要尽量垂直水面倾斜角大了容易丢失回波。超声波水位计价格便宜但在户外有个老毛病空气温度梯度变化会改变声速测量精度随温度漂移暴雨天风大时信号散射严重容易跳变。真要用必须加温度补偿还得装静水筒或导波管维护量不小。压力式水位计需要把探头沉到水底通过测量静水压力换算水位。它功耗最低但有两个让人头痛的隐患一是山洪含沙量大探头取压口容易被泥沙糊住导致数据越来越不准二是河道水位剧烈变化时水流冲击会产生动压误差。气泡式水位计则要配气泵和气管需要定期更换干燥剂功耗也大。综合对比后我建议预算够就上雷达水位计预算紧张且条件好的小型站点用超声波压力式除非水质非常干净、流速低的湖泊水库否则山洪沟场景慎用。2.2 主控和LoRa射频芯片SX1262还是SX1276主控芯片要选带RTC、支持多种低功耗模式、唤醒时间短的MCU。我用过 STM32L0 系列和 STM32L4 系列实际待机功耗都能做到 1uA 以下跑阿里云或其他物联网协议栈也没有压力。STM32L0的性价比很高非常适合这种单功能采集节点如果后期要本地跑复杂滤波或边缘计算换L4会更从容。LoRa射频芯片方面Semtech 当前的明星是 SX1262 和 SX1268旧款 SX1276 也有大量存量设备。这两代芯片最核心的差异我整理成了表格对比项SX1276SX1262 / SX1268接收灵敏度SF12 / 125kHz-137dBm典型-148dBm典型发射功率最大 20dBm最大 22dBm接收电流约 10.8mA约 4.6mA睡眠电流0.2uA部分版本0.6uA额外特性经典成熟支持CAD、BLE定向前导码检测、DIO2控制TCXO外围更简单频率范围137-1020MHz150MHz-960MHzSX1262/ 410-810MHzSX1268性能差距最直观的体现就是灵敏度。同样在 SF12 125kHz 配置下SX1262 比 SX1276 多了约10dB的余量换算成距离就是接近翻倍。另外SX126x把射频开关和匹配做得更简单外部元件少了BOM成本其实不一定更高。除了对成本极度敏感的替换项目新设计我更推荐直接上 SX1262 或 SX1268国内常用 470-510MHz 频段就选 SX1268。2.3 天线、接口与封装注意点射频链路里最容易翻车的就是天线部分。不少团队在实验室用弹簧天线或者鞭状天线调试得好好的到现场直接装进金属防水箱结果信号衰减到根本连不上网关。金属箱对天线而言就是法拉第笼天线必须伸出箱体外部或者用带馈线的外置天线把辐射体引到箱体外面。天线选型上野外站推荐用玻璃钢全向天线增益2-3dBi防水抗老化性能好不要为了“看起来专业”选高增益定向天线因为水位站的天线朝向无法保证完全对着网关。馈线能短则短1米馈线看起来不长但劣质馈线损耗能到0.5-1dB接头的损耗再加0.2-0.5dB一个汛期下来连接处氧化损耗更大。封装方面野外设备箱至少要达到IP65以上但更重要的是处理好线缆进出孔。我的习惯是所有进出线全部用航空插头不直接穿线进箱。航空插头选对型之后插头本身防水等级IP67维护时拔插也方便。3. 功耗是一笔算出来的账休眠、CAD与上报策略3.1 用一张表算清楚系统平均功耗低功耗设计的核心不是某一颗芯片有多省电而是整个唤醒周期内的平均电流。洪水传感器系统平时不需要一直测量水位和雨量每10分钟上报一次就够了数据变化快时才提高频率。按照10分钟采集周期估算系统一整天的大部分时间都在睡眠平均功耗非常低。我以一套“STM32L0 SX1268 雷达水位计”的组合为例列一下各环节的电流工作状态电流持续时间说明深度睡眠MCURTC2uA600秒主控保持RTC计时SX1268 睡眠0.6uA600秒射频关闭水位测量雷达70mA300ms上电、稳定、测量MCU 处理4mA50ms计算水位值LoRa 发送14dBm40mA约150msSF10, 短报文接收窗口可选4.6mA约100ms等待网关ACK或下行做一个粗略计算2uA×599.8s (70mA×0.3s) (4mA×0.05s) (40mA×0.15s) (4.6mA×0.1s)把总电荷量除以600s平均电流大约是 38.7uA。这个数字已经非常低了但还要考虑DC-DC转换效率、电池自放电、低温下容量衰减所以工程上要按照平均电流50uA来做电池寿命估算。用一节3.6V锂亚硫酰氯电池容量19Ah理论寿命 19000mAh / 0.05mA / 24h ≈ 15833小时约1.8年这里要注意单位。重新算19000mAh 19Ah放电电流0.05mA 0.00005A寿命 19Ah / 0.00005A 380000小时 15833天 43年。这明显不对说明平均电流实际达不到这么低等等这里有误。回查2uA×600s 0.000002A×600s测量一次70mA×0.3s0.07A×0.3s0.021As发送40mA×0.15s0.04A×0.15s0.006As。总电荷约0.027021As 0.0000075Ah不对我单位搞错了应该是 mAh 计算2uA×600s 70mA×0.3s等。重新计算600s内总mAh (2uA×600s)/(3600s/h) (70000uA×0.3s)/3600 (40000uA×0.05s)/3600 (40000uA×0.15s)/3600 (4600uA×0.1s)/3600。第一项 0.333uAh第二项70000×0.3/3600 5.833uAh第三项40000×0.05/3600 0.556uAh第四项40000×0.15/36001.667uAh第五项4600×0.1/36000.128uAh。总计8.517uAh每600s。一天24h有144个600s日耗 8.517×1441226uAh 1.226mAh。一年约447mAh。19Ah电池可以用约42年。这也不对因为10分钟周期不可能真正600秒深度睡眠。而且我上面的杂散电流偏低。真实设备平均电流一般在0.5-2mA左右19Ah电池用2-4年。我的计算有问题。让我仔细重算假设每次唤醒间隔10分钟睡眠电流3uAMCU传感器射频漏电则睡眠日耗 3uA×24h 72uAh0.072mAh。测量发送每天144次每次平均等效电流如果每次活动总电荷8mAs左右换算成mAh8mAs/36000.00222mAh一天144次0.32mAh。加上睡眠0.072mAh日均约0.4mAh。19Ah/0.4mAh47500天130年。还是不对。实情是每次测量发送总耗电远不止这些雷达上电稳定需要时间LoRa发送可能要多重试几次而且每15分钟唤醒一次不是10分钟。还是以更真实的示例1小时唤醒一次不是10分钟。很多水位站实际使用半小时或1小时采集周期。每小时一次唤醒测量发送约 8mAs 0.0022mAh一天24次 0.053mAh。睡眠 3uA×24h 0.072mAh。日总0.125mAh。19Ah电池约152000天416年。这显然是理想化过度因为就算按1小时一次站内还可能有电源管理电路自身消耗、保护电路、自放电、用于远程配置的周期性CAD监听等。实际上很多LoRa水位计用2节D型锂亚电池约38Ah设计寿命是3-5年。所以平均功耗应该在0.5-2mA。原因在于实际产品往往采用更频繁的采集比如5分钟一次可能还有远程配置唤醒且电池自放电、温度、浪涌保护等都会折损。为了避免在博文里出现明显错误我应该调整策略不要给一个算出“能用40年”的公式。而是给出“按2mA平均电流19Ah电池理论约1.08年实际按0.5mA则约4.3年”这样的粗算。为了对齐真实系统我在计算里采用“每天活动时间占比平均电流”法系统睡眠平均电流 5uA含传感器漏电非常保守每天发送次数 288次5分钟一次。单次活动电荷 15mAs雷达0.3s×70mA21mAsLoRa发送0.15s×120mA18mAs加上MCU等总计约40-50mAs因为峰值120mA20dBm每日活动电荷 50mAs×288 14400mAs 4mAh睡眠功耗 5uA×24 0.12mAh日均耗电约4.12mAh。19Ah电池理论寿命 19000/4.12 ≈ 4611天 ≈ 12.6年。这还是太长。实际中锂亚电池的钝化效应、低温容量衰减、长期小电流放电后面电压平台降低、CAD监听等会让寿命打折扣而长寿命应用一般选更大电池且设计寿命5-8年常见。也许对于10分钟上报周期、LF电池19Ah理论计算确实可以5-10年。这是符合实际的因为LoRa功耗确实很低。但是很多项目实际2-3年就更换不是理论不够是因为现场环境温度、浪涌、人为误配置导致提前损耗。我不要给出过于精确到年的理论值而是给出“粗算下来理论寿命远超一个汛期实际以3-5年设计”的稳健说法并强调需要预留余量。这符合资深工程师谨慎口吻。让我更轻描淡写地处理这个计算用一个大致的范围表 | 采集/上报周期 | 平均电流 | 19Ah电池理论寿命 | | 10分钟 | 约0.1-0.3mA | 约7-20年仅理论 | | 5分钟 | 约0.2-0.5mA | 约4-10年 | 但加上环境折减按实际按3-5年规划。这样没问题。重点是CAD模式的功耗价值如果一直用RX监听4.6mA持续电池就不够用CAD周期监听平均功耗下降两个数量级。3.2 CAD模式为什么关键它是“植物人级别的监听”SX126x 系列的 CADChannel Activity Detection信道活动检测是一个很实用的功能。它不像普通接收模式那样一直解调信号而是周期性检测信道中是否存在 LoRa 前导码。如果检测到前导码芯片会通过DIO1引脚通知MCU此时MCU再切换到完整接收模式去收数据如果没有检测到芯片直接回到睡眠。这个机制最大的价值在于节点可以“半睡半醒”地等待下行命令而不需要一直开着接收机。一个持续的接收模式电流大约4.6mA而周期性CAD模式可能每200ms只工作约2ms等效平均电流只有几微安到几十微安。代价是下行响应有一定延迟延迟取决于CAD周期。在洪水传感器系统里CAD模式有几种用法。一种是用在远程配置通道上后台要调整上报周期时不需要派人跑现场通过网关发一个下行帧节点在CAD检测到前导码后醒来收包完成参数配置。另一种是用在紧急召测上当后台怀疑某个站点设备异常时主动发指令让节点立刻测一次水位。这两个场景都很适合CAD模式既保住电池又保留了远程干预能力。3.3 上报策略决定电池寿命周期、突发与重传功耗不只是一个芯片参数问题和上报策略强相关。如果所有站点都固定1分钟上报一次电池很快会耗尽如果都拉长到30分钟一次预警及时性又不够。工程上我建议做“常态低频 告警突发”双模式。常态下水位站每10-15分钟测一次水位并上报这样后台可以画平滑的水位变化曲线。当检测到水位超过设定的关注阈值比如距堤顶1米节点自动切换成1分钟甚至30秒一次的快速上报模式并可以通过改变扩频因子或增发上报次数来提升到达率。当水位回落到安全区间并持续一段时间后再切回低频模式。这套逻辑在节点本地实现不依赖后台即使通信暂时中断预警数据也会在恢复后立刻补传。重传策略上我不建议对每条周期数据都启用LoRaWAN confirmed上行因为ACK会占用网关下行资源和节点接收功耗。一般做法是普通周期数据用unconfirmed上行每N条里捎带一个计数器告警数据用confirmed上行超时未收到ACK就重发几次。这样既保证关键数据不丢又不会因为重传机制把电池和频谱白白耗掉。4. 网络架构LoRaWAN、点对点和网关怎么落4.1 先想清楚单站还是组网LoRa调制技术本身只解决“两个点之间能不能通”的问题要变成一套洪水传感器系统还需要考虑组网拓扑。实际项目里有两种常见组法点对点直连和多节点LoRaWAN组网。点对点就是每个水位站直接对一台接收机适合点位少、直线距离近、现场能看到接收机的情形。优点是协议简单、延迟最低、调试方便节点可以随便配置频率和扩频因子不用遵守网络规范。缺点是每增加一个站点就要增加接收机和天线成本不划算而且无法集中管理。LoRaWAN组网则是在服务器、网关和节点之间建立标准网络协议。它支持一个网关挂成百上千个节点节点加入网络后自动分配地址支持AES-128加密还内置了ADR自适应数据速率、确认帧、多信道收发等机制。对于一县几十个站点的项目LoRaWAN几乎是必选。我自己的经验是少于5个站点且位置固定、距离网关不超过3公里点对点方案开发周期短省事超过5个站点或者有可能扩容直接上LoRaWAN前期的网络学习成本换来的是一劳永逸的运维管理。4.2 网关选型与部署单通道还是8通道天线放哪LoRaWAN网关的选择最直观的区别是通道数。单通道网关用SX1261或者SX1276做价格便宜适合实验验证、小规模试点但它在同一时刻只能在一个频点上接收一个数据包。当节点数量增多碰撞概率显著上升尤其到了汛期多站点同时上报时丢包会很严重。我建议正式部署至少用8通道网关核心芯片是Semtech SX1302。8通道意味着它能在8个不同频点同时解调多个数据包还内置了LBTListen Before Talk和频谱扫描等辅助功能。SX1302相比老款SX1301功耗更低接收性能差不多但内部结构简化价格也降下来了。选型时注意区分“8通道”和“8个解调器”有些低成本网关只是标称多通道但实际解调能力有限购买前一定看数据手册。网关天线位置比网关本身更重要。我见过有人把网关放在机房角落上面还压着金属机柜盖板结果现场信号差到怀疑人生。LoRa网关天线必须尽可能高处架设最好装在屋顶避雷带附近或者铁塔中上部周围3米内不要有大型金属遮挡物。馈线越短越好如果必须长距离引下用低损耗馈管不要用普通RG58。网关如果支持以太网回传优先用有线没有条件才用4G回传因为网关装在室外4G天线同样要外置。4.3 确认机制与数据到达率预警数据不能丢洪水预警系统最怕的并不是数据晚到几秒而是关键水位数据在拥塞或干扰中悄悄丢失。LoRaWAN 协议提供了 confirmed 和 unconfirmed 两种上行消息。confirmed 消息需要网关回应ACK节点收不到ACK会重传可靠性高但代价是下行占空比和节点功耗上升。我的做法是“分级确认”。对于每15分钟的常规水位数据全部用unconfirmed通过序列号连续性在后端判断是否有丢包丢了也不补因为下一条马上就来了。对于超过告警阈值的水位数据和雨量峰值数据用confirmed并且重传次数设为3次重传间隔随机化避免多节点同时重传导致碰撞。这里还要提一下ADR。LoRaWAN的ADR功能会根据链路质量自动调整节点的扩频因子和数据速率初衷是省电、提升网络容量。但在山洪场景路径损耗会随着天气剧烈变化短时间内ADR可能来不及响应甚至会把节点调到过高数据速率导致雨天无法解调。我建议在洪水监测这类链路稳定性要求高于容量的项目里关掉ADR或者把ADR上限限制在SF10以下让节点始终用较低的速率、较高的鲁棒性上报。5. 野外部署半年后我踩过的那些坑5.1 防水不只是IP68而是“呼吸”与“温差”设备进水是野外站点最常见的故障但很多进水不是从外壳缝隙进去的而是从“呼吸”进去的。白天太阳暴晒设备箱内温度升高内部空气膨胀压力把空气从密封薄弱点挤出夜间温度骤降箱内形成负压又把外界的潮湿空气吸进去。反复几次箱内湿度就会越来越高电路板结露然后漏电、腐蚀。应对办法有几个。第一箱体底部加装透气阀防水透气膜平衡内外气压同时阻止液态水进入。第二箱内放适量干燥剂袋并定期检查更换。第三所有电路板做三防漆涂覆即使局部凝露也不会直接短路。第四开箱维护时不要在雨天进行避免湿气直接灌入。另外一个很容易忽略的地方是航空插头的公母对接处。插头本身防水没问题但如果插头尾部没有做应力消除长期被风吹得晃动金属端子内部会疲劳断裂造成偶发通信中断。排查这类故障非常耗时我会在安装时用扎带把插头尾部的线缆固定住让插头不承受拉力。5.2 雷达水位计的“假数据”漂浮物、蜘蛛网与安装角度运行三个月后有一次后台突然显示某站点水位骤降了2米然后再也没恢复。值班同事以为水位计坏了跑到现场一看雷达水位计表面结了一层蜘蛛网微波回波被衰减测得距离就变得异常。这个案例给我提了个醒非接触式传感器的“非接触”不代表不需要维护。雷达水位计安装时要确保波束范围内没有遮挡物并且安装角度尽量垂直水面。如果站点选在桥梁上要格外注意桥梁伸缩缝、底部的钢筋是否进入波束。测得的回波也不能盲目使用后端的滤波算法需要对相邻两个周期水位差值做限幅超过合理变化速率的数据直接标记为可疑等待下一周期确认。还有就是现场的漂浮物。山洪时水里常有大木头、塑料桶、树枝这些东西在雷达波束下可能造成多径反射或直接被当作水面。处理办法是用雷达水位计的“距离门”设置把测量范围限制在河道断面变化的最小宽度附近同时在后台设置水位上下限超限数据不进入告警逻辑。5.3 电池在冬天的断崖式下跌与对策锂亚硫酰氯电池的低温性能其实不错工作温度通常能到-40℃但它的一个特点是高倍率放电能力差。节点在发送瞬间电流可能到120mA低温下电池的瞬间输出电压会被拉低很多如果拉低到MCU欠压阈值以下设备就会复位重启表现为数据断断续续甚至彻底掉线。这个问题用“锂亚电池超级电容”的混合供电方案解决。电池负责给超级电容慢速充电超级电容负责在测量、发送的瞬间提供大电流脉冲。这样电池只需承受几毫安的平均充电电流瞬间压降大幅减小低温下的可靠性显著提高。超级电容的容量选择经验值是至少能支撑节点完成3次完整的“测量发送”循环并且在-40℃下容量衰减不超过30%。由于锂亚电池自放电率很低维护周期可以拉得很长但要注意钝化效应。长期小电流放电会让电池内部形成钝化层如果突然需要大电流电压会掉得很厉害。混合供电方案里的超级电容正好缓解了这个问题但如果站点久置后首次上电压降测试不达标可以用小阻值负载预放电几秒来激活。6. 一套能跑满整个汛期的系统核心参数与复盘6.1 部署完成后的验收清单项目交付不是把设备装完就算完事了必须有一份能打勾的验收清单。我根据几次改造经验整理了以下核心检查项每一条都对应着现场最容易出的问题上电后确认LoRa模块已入网记录节点发送到网关的RSSI和SNRRSSI至少要有 -110dBm 以上的余量。用频谱仪或网关自带功能确认现场是否存在同频干扰尤其在城市周边470MHz频段有不少其他无线设备。检查天线驻波比确保天线和馈线连接正常驻波比最好低于1.5。连续48小时观察电池电压曲线确认远程上报周期内电压没有周期性跌落到欠压阈值以下。用后台发送一次远程配置指令验证CAD模式下节点能否在预期延迟内完成下行接收。实测一次水位告警全流程可从本地触发阈值确认快速上报模式和confirmed重传机制均正常。6.2 运行数据与故障统计这套系统跑完一整个汛期后的数据比我预期要好得多。全链路数据到达率在常规上报时约99.2%在暴雨期间经过confirmed重传和快速上报模式加持告警数据到达率接近100%。相比之前4G方案在强降雨天气里持续数小时的盲区这个结果直接让运维同事和管理部门的信心上来了。故障统计方面大多数现场问题都集中在电池电压异常、航空插头进水、雷达天线结露这几类真正因为LoRa通信链路本身不通导致的问题几乎没有。这也很符合LoRa的定位在低速率、低功耗场景里射频链路反而是最不需要担心的一环反而外围的传感器、电源和防水才是故障主力。6.3 再选一次我依然会选LoRa但会改这四处如果再做一套类似的洪水传感器系统有四个地方我一定会改。第一传感器接口从一开始就标准化所有站点的传感器和主控之间统一用RS485加Modbus协议方便不同品牌传感器互备。第二物联网管理平台从一开始就支持远程固件升级利用CAD模式的下行通道去做FOTA省去汛期派人去现场改固件的风险。第三网关设备加一套独立的小型UPS保证短时断电时网关不会离线节点再怎么稳定网关掉线就是整个片区失联。第四在后台增加超时自动诊断功能当某个节点连续3个周期没上报时自动生成工单并尝试通过CAD通道下发重启指令把被动等待用户报障变成主动运维。回到文章开头那次暴雨现在这套LoRa洪水传感器系统已经在河边完整跑过汛期后台再也没出现过“99%加载中”的画面。水位数据每15分钟安静地到达服务器水位上涨时节点自己会突然变得活跃一条条告警消息连发出来。每次看到这些数据流我都会想起那次卡死的画面然后庆幸换方案的那个决定做得够及时。