720 智能硬件與 LeanCloud 云端的默契協作

【 玩轉 LeanCloud 】開發者經驗分享:

作者:謝子超

720技術負責人,從業十余年,一直負責軟件開發工作。

我們的產品是與監控和改善室內空氣質量相關的智能硬件,我們使用 LeanCloud 平臺已經有 2 年多了,借此機會與其他從事智能硬件生產及應用解決方案的團隊分享下我們的經驗。

我們的主要硬件產品分為兩部分:環境監測設備(環境寶)和環境治理設備( 720 全智能凈化器系列)。環境監測設備的主要功能是通過 7x24 小時不間斷地監測 8 項室內環境數據指標(包括 PM2.5 、PM10 、甲醛、TVOC 化學污染物、溫度、濕度、噪聲、等效二氧化碳),然后將采集到的數據通過 Wi-Fi 上傳至云端,通過云端計算并下發決策指令,同時用戶也可以隨時通過手機了解家中的空氣質量;環境治理設備凈化器通過 Wi-Fi 聯網后,與環境寶實現智能聯動。凈化器從云端接受控制指令來完成風量調節和功能開關等操作。兩個設備組合使用即可實現自動化的空氣質量控制。

節約創業成本

技術選型方面,因為是創業公司,所以我們早期對成本方面非常敏感。考慮到自行搭建建服務端要付出的成本和工作量(從服務器租賃、到工程師團隊組建,到日常運維),我們更傾向把資源放在產品功能研發和邏輯實現上,而不必為這些離最終用戶價值比較遠的方面花太多時間和精力,所以我們決定找一些比較專業的后端云服務來滿足我們對基礎設施架構的需求。

當初了解過 Parse,但是由于國內網絡狀況對國外產品并不友好,所以沒敢去嘗試;后來遇到了 LeanCloud ,它是在國內,而且據我們了解它也是這行里做得最早的一家,于是就在一個產品上試用,整個過程進行得非常順利,包括后續的使用感覺也很好,所以到現在基本上所有產品的服務端都在 LeanCloud 上了。

云引擎實現設備總控

技術實現方面,因為智能硬件很多時候是需要長連接的,我們使用的是 MQTT 協議,而 LeanCloud 對于這類協議沒有特殊支持,所以我們使用一臺自有服務器作為 MQTT 的服務端,再配合上 LeanCloud 的云引擎,最終也能較好地滿足我們的需求。

數據檢測設備需要定時采集數據并上報。在開發過程中我們的 Wi-Fi 芯片對 MQTT 的支持有一些問題,所以我們將 LeanCloud 云引擎作為 WebServer 并編寫了自定義的 API,讓數據檢測設備通過 HTTP 請求調用這些 API 來完成數據上報。

智能控制設備通過長連接訪問到 MQTT 服務器來實時地接收控制指令,調整自己的運行狀態,此時云引擎就充當起了一個總控臺的角色,它會對收集上來的數據進行一下判斷,然后向 MQTT 服務器發送控制指令,達到控制設備的目的。順便要提一下,云引擎使用起來還是挺方便的。我們不僅能夠直觀地從控制臺看到各類資源的運轉狀況,還能通過命令行工具快速地部署和回滾代碼,對于常見的服務端操作這些都是非常好的補充。

云緩存為存儲和查詢提速

在數據保存和查詢上,我們使用了 LeanCloud 的云緩存。因為很多用戶都會有按照時間范圍(比如今天)來查詢空氣質量的習慣,所以如果在保存數據時設置好合適的 key 結構,我們就可以很方便地獲取到需要的數據,而且還有非常棒的讀寫效率。

商用版體驗更棒

技術方面,LeanCloud 的功能和 API 設計都做得比較好,而且它不會像其他公司那樣,為了擴大市場宣傳而催生出很多新的但又不穩定不好用的功能。服務穩定性方面,特別是在商用版推出之后,商用版有了專屬的后端資源,跟免費版的共享資源隔離開來,我們覺得服務穩定性就更有保障了,當然除此之外,商用版在其他方面也比開發版有更多的優勢可以利用。

LeanCloud 技術支持也非常專業。因為他們會讓開發 SDK 的一線工程師來直接回答我們用戶的提問,所以這樣更容易定位問題,給用戶更準確的解答,這樣用戶用起來也更加放心吧。只不過 LeanCloud 市場宣傳可能做得比較保守,也許是公司風格太「技術化」了一點。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392147.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392147.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392147.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux cifs windows 慢,windows上使用dockerIO特別慢有沒有更優的解決方案?

復制一個大佬的回答Docker for Windows是在Hyper-V虛擬機上跑Linux,文件掛載是通過SMB協議從Windows掛載到Linux,文件讀寫都經過網絡,遇到Laravel這種每次啟動就要加載幾百個文件的框架,文件性能問題就尤其明顯。最好的驗證方法就…

編譯原理—詞法分析器(Java)

1.當運行程序時,程序會讀取項目下的program.txt文件 2. 程序將會逐行讀取program.txt中的源程序,進行詞法分析,并將分析的結果輸出。 3. 如果發現錯誤,程序將會中止讀取文件進行分析,并輸出錯誤提示 所用單詞的構詞規…

【BZOJ4653】[Noi2016]區間 雙指針法+線段樹

【BZOJ4653】[Noi2016]區間 Description 在數軸上有 n個閉區間 [l1,r1],[l2,r2],...,[ln,rn]。現在要從中選出 m 個區間,使得這 m個區間共同包含至少一個位置。換句話說,就是使得存在一個 x,使得對于每一個被選中的區間 [li,ri],都…

為什么我們需要使用Pandas新字符串Dtype代替文本數據對象

We have to represent every bit of data in numerical values to be processed and analyzed by machine learning and deep learning models. However, strings do not usually come in a nice and clean format and require a lot preprocessing.我們必須以數值表示數據的每…

遞歸方程組解的漸進階的求法——代入法

遞歸方程組解的漸進階的求法——代入法 用這個辦法既可估計上界也可估計下界。如前面所指出,方法的關鍵步驟在于預先對解答作出推測,然后用數學歸納法證明推測的正確性。 例如,我們要估計T(n)的上界,T(n)滿足遞歸方程:…

【轉載】C# 理解泛型

術語表 generics:泛型type-safe:類型安全collection: 集合compiler:編譯器run time:程序運行時object: 對象.NET library:.Net類庫value type: 值類型box: 裝箱unbox: 拆箱implicity: 隱式explicity: 顯式linked list:…

javascript 作用_JavaScript承諾如何從內到外真正發揮作用

javascript 作用One of the most important questions I faced in interviews was how promises are implemented. Since async/await is becoming more popular, you need to understand promises.我在采訪中面臨的最重要的問題之一是如何實現承諾。 由于異步/等待變得越來越流…

linux 文件理解,對linux中文件系統的理解

首先在linux系統當中一個可被掛在的數據為一個文件系統1.在安裝linux過程中我們要進行磁盤分區,可以分根目錄/,‘/home‘,‘/boot’,swap等等這些分區,每一個分區(’/(根目錄)‘,’/home‘...)就是一個文件系統。2.文件系統分配完…

編譯原理—語法分析器(Java)

遞歸下降語法分析 1. 語法成分說明 <語句塊> :: begin<語句串> end <語句串> :: <語句>{&#xff1b;<語句>} <語句> :: <賦值語句> | <循環語句> | <條件語句> <關系運算符> :: < | < | > | > | |…

老筆記整理四:字符串的完美度

今天在寵果網上發現一道題目&#xff0c;求一個字符串的完美度http://hero.pongo.cn/home/index覺得這道題很有趣就挑戰了一下&#xff0c;結果沒有在規定的1小時里面寫完&#xff08;笑&#xff09;&#xff0c;多花了10分鐘終于做出來了。題目是這樣的&#xff1a;我們要給每…

nlp構建_使用NLP構建自殺性推文分類器

nlp構建Over the years, suicide has been one of the major causes of death worldwide, According to Wikipedia, Suicide resulted in 828,000 global deaths in 2015, an increase from 712,000 deaths in 1990. This makes suicide the 10th leading cause of death world…

域名跳轉

案例&#xff1a;當訪問lsx.com網站&#xff0c;是我最早論壇的域名。回車之后會自動跳轉到lshx.com。 為什么藥lsx跳轉到lshx.com呢&#xff1f; 為了統一品牌。建議換成了lshx.com。所有之前的lsx.com就不要用了&#xff0c;就讓它跳轉到lshx.com。是因為之前lsx.com上有很多…

Elastic Stack 安裝

Elastic Stack 是一套支持數據采集、存儲、分析、并可視化全面的分析工具&#xff0c;簡稱 ELK&#xff08;Elasticsearch&#xff0c;Logstash&#xff0c;Kibana&#xff09;的縮寫。 安裝Elastic Stack 時&#xff0c;必須相關組件使用相同的版本&#xff0c;例如&#xff1…

區塊鏈去中心化分布式_為什么漸進式去中心化是區塊鏈的最大希望

區塊鏈去中心化分布式by Arthur Camara通過亞瑟卡馬拉(Arthur Camara) 為什么漸進式去中心化是區塊鏈的最大希望 (Why Progressive Decentralization is blockchain’s best hope) 不變性是區塊鏈的最大優勢和最大障礙。 逐步分權可能是答案。 (Immutability is blockchain’s…

編譯原理—語義分析(Java)

遞歸下降語法制導翻譯 實現含多條簡單賦值語句的簡化語言的語義分析和中間代碼生成。 測試樣例 begin a:2; b:4; c:c-1; area:3.14*a*a; s:2*3.1416*r*(hr); end #詞法分析 public class analyzer {public static List<String> llistnew ArrayList<>();static …

linux問題總結

linux問題總結 編寫后臺進程的管理腳本&#xff0c;使用service deamon-name stop的時候&#xff0c;出現如下提示&#xff1a;/sbin/service: line 66: 23299 Terminated env -i LANG"$LANG" PATH"$PATH" TERM"$TERM" "${SERVICEDIR}/${SE…

linux vi行尾總是顯示顏色,【轉載】Linux 下使用 vi 沒有顏色的解決辦法

vi 是沒有顏色的&#xff0c;vim 是有顏色的。我們可以通過 rpm -qa |grep vim 看看系統中是否安裝了下面 3 個 rpm 包&#xff0c;如果有就是安裝了 vim 。[rootBetty ~]# rpm -qa |grep vimvim-minimal-7.0.109-7.el5vim-enhanced-7.0.109-7.el5vim-common-7.0.109-7.el5如果…

時間序列分析 lstm_LSTM —時間序列分析

時間序列分析 lstmNeural networks can be a hard concept to wrap your head around. I think this is mostly due to the fact that they can be used for so many different things such as classification, identification or just simply regression.神經網絡可能是一個難…

關于計算圓周率PI的經典程序

短短幾行代碼&#xff0c;卻也可圈可點。如把變量s放在PI表達式中&#xff0c;還有正負值的處理&#xff0c;都堪稱經典。尤其是處處考慮執行效率的思想令人敬佩。 /* pi/41-1/31/5-1/71/9-…… */ #include <stdio.h> int main(){ int s1; float pi0.,n1.,…

華為產品技術學習筆記之路由原理(一)

路由器&#xff1a;路由器是一種典型的網絡連接設備&#xff0c;用來進行路由選擇和報文轉發。路由器與它直接相連的網絡的跳數為0&#xff0c;通過一臺路由器可達的網絡的跳數為1.路由協議&#xff1a;路由器之間維護路由表的規則&#xff0c;用以發現路由&#xff0c;生成路由…