凈水器 + 物聯(lián)網(wǎng):智能家電的新趨勢(shì)
去年我們團(tuán)隊(duì)接手了一個(gè)傳統(tǒng)凈水器的物聯(lián)網(wǎng)改造項(xiàng)目。客戶是一家做了十幾年凈水設(shè)備的廠商,產(chǎn)品質(zhì)量扎實(shí),但在智能方面落后于市場(chǎng)。他們的需求很明確:讓用戶能在手機(jī)上看水質(zhì)、濾芯壽命,接收更換提醒。聽(tīng)起來(lái)簡(jiǎn)單,但實(shí)際開(kāi)發(fā)中遇到的問(wèn)題比預(yù)期多。

一、需求不只是“聯(lián)網(wǎng)”
剛開(kāi)始接觸需求時(shí),我們認(rèn)為就是加個(gè)Wi-Fi模塊,傳點(diǎn)數(shù)據(jù)到云端。但和產(chǎn)品經(jīng)理深入溝通后發(fā)現(xiàn),用戶真正需要的是“無(wú)感服務(wù)”——不是讓用戶天天盯著APP看數(shù)據(jù),而是在恰當(dāng)?shù)臅r(shí)候提醒該換濾芯了,水質(zhì)異常時(shí)主動(dòng)通知。
我們決定把重點(diǎn)放在濾芯壽命算法的準(zhǔn)確性上。傳統(tǒng)計(jì)時(shí)器方式很不科學(xué)——不同地區(qū)水質(zhì)差異大,用戶用水量也不同。我們做了幾件事:
1、多維度計(jì)算模型:結(jié)合使用時(shí)間、累計(jì)過(guò)水量、進(jìn)水水質(zhì)變化三個(gè)因素
2、本地計(jì)算為主:設(shè)備端先做基礎(chǔ)計(jì)算,即使斷網(wǎng)也能工作
3、云端校準(zhǔn):收集同類地區(qū)數(shù)據(jù),定期優(yōu)化算法參數(shù)
二、硬件選型的實(shí)際考慮·
客戶最初想用高端模塊,支持5G甚至藍(lán)牙Mesh。我們?cè)u(píng)估后建議用ESP32系列,原因很實(shí)際:
??成本可控,一片30元左右
??開(kāi)發(fā)資料豐富,出了問(wèn)題好排查
??功耗足夠低,凈水器常通電,但待機(jī)電流要小
??有足夠的GPIO口,接TDS傳感器、流量計(jì)都有余量
硬件穩(wěn)定性比功能豐富更重要。凈水器裝在櫥柜下,環(huán)境潮濕,Wi-Fi信號(hào)弱。我們?cè)跇悠冯A段就發(fā)現(xiàn),某些路由器下設(shè)備頻繁掉線。后來(lái)做了兩件事改善:
??增加信號(hào)強(qiáng)度檢測(cè),低于閾值時(shí)提示用戶調(diào)整位置
??設(shè)計(jì)簡(jiǎn)易的重連機(jī)制,失敗3次后進(jìn)入低功耗模式,定時(shí)重試
三、通信協(xié)議的選擇
最初方案是設(shè)備直連公有云。測(cè)試中發(fā)現(xiàn)兩個(gè)問(wèn)題:
1、用戶家里網(wǎng)絡(luò)復(fù)雜,設(shè)備出網(wǎng)失敗率高
2、數(shù)據(jù)上報(bào)頻率難把控,太頻繁耗電,太少信息不實(shí)時(shí)
我們調(diào)整為混合架構(gòu):
??日常狀態(tài)數(shù)據(jù)每小時(shí)上報(bào)一次
??關(guān)鍵事件(如濾芯更換、水質(zhì)突變)立即上報(bào)
??支持本地緩存,網(wǎng)絡(luò)恢復(fù)后補(bǔ)傳歷史數(shù)據(jù)
用了MQTT協(xié)議,相比HTTP有幾個(gè)實(shí)際好處:
??長(zhǎng)連接省去頻繁握手開(kāi)銷
??QoS 1級(jí)別保證關(guān)鍵指令不丟失
??遺囑消息能及時(shí)知道設(shè)備離線
四、固件開(kāi)發(fā)的坑
寫(xiě)嵌入式代碼和寫(xiě)服務(wù)端程序思維不同。幾個(gè)具體經(jīng)驗(yàn):
內(nèi)存管理要謹(jǐn)慎。初期版本用了很多動(dòng)態(tài)分配,運(yùn)行幾天后出現(xiàn)內(nèi)存碎片。后來(lái)改為靜態(tài)分配為主,關(guān)鍵緩沖區(qū)預(yù)分配。
OTA升級(jí)要可靠。我們?cè)O(shè)計(jì)了雙分區(qū)備份,新固件下載后先校驗(yàn)MD5.再寫(xiě)入備份區(qū),重啟前再次校驗(yàn)。升級(jí)失敗自動(dòng)回滾,并在APP上明確提示失敗原因。
傳感器數(shù)據(jù)處理要平滑。TDS值會(huì)有波動(dòng),直接上報(bào)原始數(shù)據(jù)會(huì)導(dǎo)致APP上數(shù)值跳變。我們做了滑動(dòng)窗口濾波,取5秒內(nèi)的中位數(shù),既保持實(shí)時(shí)性又避免抖動(dòng)。
五、APP端的實(shí)用設(shè)計(jì)
不做花哨功能,聚焦核心場(chǎng)景。用戶打開(kāi)APP最可能做三件事:
1、看一眼水質(zhì)是否正常
2、查濾芯還能用多久
3、知道怎么購(gòu)買更換濾芯
我們?cè)谑醉?yè)直接展示這三項(xiàng)。濾芯剩余量用百分比和預(yù)計(jì)天數(shù)雙顯示,因?yàn)闇y(cè)試中發(fā)現(xiàn)中老年用戶更理解“還能用30天”這種表述。
推送提醒精心設(shè)計(jì)。濾芯壽命低于20%時(shí)每周提醒一次,低于10%時(shí)每?jī)商焯嵝眩狡诤竺刻焯嵝选5o用戶設(shè)置開(kāi)關(guān),允許關(guān)閉特定類型的提醒。
六、數(shù)據(jù)安全基礎(chǔ)保障
凈水器數(shù)據(jù)雖不涉及隱私,但設(shè)備安全不能忽視。做了幾層防護(hù):
1、每臺(tái)設(shè)備燒錄唯一密鑰,用于云端認(rèn)證
2、通信數(shù)據(jù)AES-128加密,雖然增加了少量功耗
3、固件簽名校驗(yàn),防止被篡改
4、指令白名單,只響應(yīng)預(yù)定義的操作命令
七、測(cè)試環(huán)境的搭建
模擬真實(shí)環(huán)境很重要。我們?cè)趯?shí)驗(yàn)室搭建了:
??不同水質(zhì)(用不同濃度的鹽水模擬)
??不同水壓(調(diào)壓閥模擬高層和底層水壓差異)
??不同網(wǎng)絡(luò)環(huán)境(路由器設(shè)置限速、丟包)
壓力測(cè)試連續(xù)運(yùn)行30天,模擬家庭用水規(guī)律,每天20個(gè)用水高峰時(shí)段。發(fā)現(xiàn)了幾個(gè)偶現(xiàn)問(wèn)題:
??多次快速開(kāi)關(guān)水龍頭會(huì)導(dǎo)致流量計(jì)計(jì)數(shù)偏差
??長(zhǎng)時(shí)間小流量用水時(shí),TDS傳感器讀取異常
??凌晨路由器重啟時(shí),設(shè)備重連超時(shí)設(shè)置不合理
八、量產(chǎn)后的持續(xù)優(yōu)化
第一批5000臺(tái)上市后,我們通過(guò)后臺(tái)數(shù)據(jù)發(fā)現(xiàn)了一些設(shè)計(jì)時(shí)沒(méi)想到的情況:
約15%的設(shè)備每天上報(bào)數(shù)據(jù)次數(shù)異常多。分析發(fā)現(xiàn)這些用戶安裝了RO膜后置TDS探頭,每次制水都會(huì)觸發(fā)水質(zhì)變化上報(bào)。我們?cè)黾恿?strong>變化閾值,TDS波動(dòng)小于5%時(shí)不觸發(fā)上報(bào)。
有用戶反饋濾芯壽命計(jì)算不準(zhǔn)。排查發(fā)現(xiàn)是安裝人員未重置濾芯計(jì)時(shí)器。我們?cè)谠O(shè)備上增加了物理按鍵組合,長(zhǎng)按5秒可重置所有濾芯狀態(tài),同時(shí)在APP里做了重置流程引導(dǎo)。
總結(jié):這個(gè)項(xiàng)目給我們的核心經(jīng)驗(yàn)是:物聯(lián)網(wǎng)產(chǎn)品成功的關(guān)鍵不在于技術(shù)多先進(jìn),而在于可靠解決實(shí)際問(wèn)題。凈水器聯(lián)網(wǎng)不是為了讓產(chǎn)品“看起來(lái)智能”,而是真正改善使用體驗(yàn)——讓用戶不用記更換時(shí)間,不用擔(dān)心水質(zhì)突然變差。
技術(shù)選型要?jiǎng)?wù)實(shí),通信設(shè)計(jì)要考慮真實(shí)網(wǎng)絡(luò)環(huán)境,數(shù)據(jù)算法要結(jié)合物理世界規(guī)律。現(xiàn)在回頭看,我們放棄了一些“酷炫”功能,專注把基礎(chǔ)體驗(yàn)做扎實(shí),這個(gè)決策是對(duì)的。項(xiàng)目上線一年,設(shè)備在線率保持在94%以上,用戶主動(dòng)更換濾芯的比例比未聯(lián)網(wǎng)型號(hào)提高了60%,這說(shuō)明我們的方向是正確的。
做物聯(lián)網(wǎng)項(xiàng)目,工程師需要懂一點(diǎn)硬件知識(shí),理解一些行業(yè)特性,更重要的是保持解決問(wèn)題的務(wù)實(shí)態(tài)度。每個(gè)看似簡(jiǎn)單的需求背后,都需要大量的細(xì)節(jié)打磨。