以下內容為本人的著作,如需要轉載,請宣告原文鏈接 微信公眾號「englyf」https://www.cnblogs.com/englyf/p/16663833.html
消費者使用掃地機通常的方式是通過手機APP去遙控它,比如啟動清掃,劃定清掃區域,設定預約清掃任務,還有啟動回充等等,這些功能的實作,都依賴于掃地機的網路接入,業內把這個網路稱呼為物聯網,目前的接入方式其實都依賴現有的網路基礎設施,比如在公網搭建各種 IOT 云服務,方便于終端客戶的掃地機設備和手機APP互聯互通,
為了實作互聯互通,需要和 IOT 云服務對接,這其中包含了兩部分的開發任務,其一是,機器端的接入開發任務,一般是用無線 wifi 技術連接家庭用的路由器進而訪問公網的 IOT 云服務,其二是,配置云平臺后臺相關產品的設定,其三是,手機APP端的接入開發任務,通過云服務商的授權API,APP訪問和更新機器上傳到云服務器的資料快取,進而和掃地機的用戶互動,

說說機器端的聯網開發
掃地機既然要訪問 IOT 云服務,就必須具有聯網的能力,比如通過上面提到的無線 wifi 技術,那么掃地機使用這個無線 wifi 技術是不是就像電腦用網卡上網一樣呢?答案是,肯定的,掃地機屬于嵌入式設備,使用無線 wifi 技術一般通過在主板上外接 wifi 模塊來實作,
由于嵌入式設備的使用場景有著很大的差異,比如設備除了需要訪問專門的 IOT 云服務,有的方案商還會提供一些特殊的內置服務進而需要設備能訪問其它的網路服務(比如讓設備貼心地播放天氣預報,那么就需要能訪問天氣預報服務以獲取天氣資料,除了這個小功能,你的想象力還惦記著什么呢?歡迎留言!),
另外,如果生產商對嵌入式設備的成本很敏感,那么在硬體投入上還是省著點吧,畢竟功能的多少還是以硬體為基礎的,除了必要的云服務(與APP互聯互通的 IOT 云服務)之外,其它功能也不作硬性要求了,那么聯網的硬體是不是可以作出一些犧牲,比如專門面向特定的 IOT 云服務,甚至于只接入某個云服務商,
基于目前的使用需求,wifi 模塊,可以分為普通 wifi 模組和嵌入式 wifi 模組,

普通 wifi 模組的特點是不內置 wifi 協議和驅動,一般通過 USB 或者 SDIO 等介面和設備主控芯片連接,設備的主控芯片需要支持 wifi 協議堆疊和驅動,性能要求比較高,通常選擇通用性 CPU,因而業務開發更靈活,方便于拓展豐富的應用領域,這種配置,你的想象力可大可小,千萬別辜負了,
嵌入式 wifi 模組的特點就是內置了 WiFi 協議和驅動,一般通過專用協議串口等介面和設備主控芯片連接,設備的主控芯片,性能要求不高,通常選擇 MCU,便于降成本,但是業務場景相對受限,這種配置下,你的設備能訪問什么服務,完全看 wifi 模塊提供商的配置,
并不是所有 IOT 云服務商都支持上面的兩種 wifi 模組,只有部分 IOT 云服務商會同時支持,理論上所有的 IOT 云服務商都支持普通的 wifi 模組連接,而提供了嵌入式 wifi 模塊的服務商,已知的有涂鴉和華為 HI-LINK 等,
說說云平臺的后臺配置
開發掃地機設備端的聯網任務,除了硬體上的投入之外,還需要做一些和云平臺后臺有關的事情,
目前國內主流的 IOT 云服務商有涂鴉智能云、阿里生活物聯網、亞馬遜 AWS、華為 HI-LINK 等,這其中接入門檻最低的要數涂鴉智能云吧,因為它不僅提供了廉價的云服務,還有現成的公共APP,所以終端機器運營商如果考慮成本的因素還可以免去開發自己APP,就算初次開發APP也能使用云服務商提供的 SDK(開發套件)快速推出成品APP,
要宣告的是每個云服務商的具體開發流程和有關術語會有差異,可以翻照具體的云平臺提供的開發檔案指引,
這里介紹一下通用的流程:
1. 選擇 IOT 云服務平臺
可以針對自己的需求選擇最合適的云服務供應商,如果你自己是有掃地機設備開發團隊的,但是APP開發的投入想省掉,那就選涂鴉吧,上文已介紹原因,如果你沒有掃地機設備開發團隊,掃地機的開發任務是交給方案商去做的話,建議選擇阿里生活物聯網,這個平臺的互聯網基因大家都是知道的,開發除錯會非常方便(作為曾經在某個方案商呆過,這是真心話,題外話:有沒有人喜歡玩真心話大冒險?),除了開發的因素,還要考慮成本價格,一般收費的原則是按照單個接入設備一次性收費,
是的,還有很多平臺可以選擇,各位老板自己喜歡吧,
2. 注冊開發者賬號
登錄 IOT 云服務平臺的網站,用公司的名義注冊個主體賬號,如果你需要授權該賬號的權限給開發人員或者方案商,可以查看一下該平臺是否支持產品開發的權限授權,
3. 創建產品
各平臺都提供了創建產品的模板,選擇一個型別和掃地機業務類似或者匹配的模板,這一步會自動生成一個 product_id,后邊有提到,
4. 配置功能
IOT 云平臺配置功能都是通過 物模型 清單來實作,為了直觀說明,下面展示涂鴉平臺的一個掃地機物模型例子給大家看看:
| DP ID | 功能點名稱 | 識別符號 | 資料傳輸型別 | 資料型別 | 功能點屬性 |
|---|---|---|---|---|---|
| 1 | 電源開關 | power | 可下發可上報(rw) | bool | |
| 2 | 清掃開關 | switch_go | 可下發可上報(rw) | bool | |
| 3 | 清掃模式 | mode | 可下發可上報(rw) | enum | 列舉值: standby, random, smart, wall_follow, mop, spiral, left_spiral, right_spiral, right_bow, left_bow, partial_bow, chargego |
| 5 | 作業狀態 | status | 只上報(ro) | enum | 列舉值: standby, smart_clean, wall_clean, spot_clean, mop_clean, goto_charge, charging, charge_done, paused, cleaning, sleep |
| 13 | 尋找機器 | seek | 可下發可上報(rw) | bool | |
| 101 | 清掃 | clean_switch | 可下發可上報(rw) | bool | |
| 102 | 暫停 | pause_switch | 可下發可上報(rw) | bool | |
| 103 | 回充 | charge_switch | 可下發可上報(rw) | bool | |
| 104 | 清掃模式: | clean_mode | 可下發可上報(rw) | enum | 列舉值: smart, pose, zone, backcharge, curpointing, selectroom, null |
| 105 | 當前狀態: | robot_state | 可下發可上報(rw) | enum | 列舉值: idle, pointing, areaing, totaling, sweep, mop, fault, pause, chargring, tocharge, fullcharge, remotectl, dormant, curpointing, selectroom, chargingwash, dusting, selfclean |
| 106 | 剩余電量 | battery | 可下發可上報(rw) | value | "數值范圍: 0-100, 間距: 1, 倍數: 0, 單位: %" |
| 107 | 清掃時間 | cur_clean_time | 可下發可上報(rw) | value | "數值范圍: 0-2147483647, 間距: 1, 倍數: 0, 單位: 秒" |
| 108 | 清掃面積 | cur_clean_area | 可下發可上報(rw) | value | "數值范圍: 0-2147483647, 間距: 1, 倍數: 0, 單位: " |
| 109 | 吸力 | fan_mode | 可下發可上報(rw) | enum | 列舉值: quiet, auto, strong, max |
| 110 | 水量設定 | water_mode | 可下發可上報(rw) | enum | 列舉值: low, mid, high |
可以看到首先需要建立一個 DP 點(對應著一個功能),然后命名功能點對應的名稱,并且有對應的功能識別符號,定義可讀可寫的資料傳輸型別(對于云端而言),定義當前功能的資料型別,以及具體的列舉值或者數值范圍等,
5. 購買聯網許可
掃地機在聯網時,需要憑證云平臺提供的 liscense 才可以順利使用該平臺的資訊互動服務,用賬號登錄平臺就可以申購對應設備數量的 liscense,然后在生產的時候把 liscense 燒錄進機器,用戶把掃地機帶回家里后,在使用APP成功控制機器之前,需要按照使用說明書的指引觸發掃地機進入配網模式,然后按照APP的配網流程把機器系結到云平臺,機器能否成功系結,首先是掃地機需要通過藍牙或者wifi的AP熱點模式直連手機從APP獲取到家庭的路由器 wifi 名和密碼,然后通過家庭網路把機器內部存下來的 liscense 發給云平臺校驗并獲取授權通過,
在開發階段,一般平臺會提供一定數量的免費 liscense 用于除錯設備,需要在平臺上面申請,這個 liscense 在有的平臺也會稱呼為三元組,一般包含有代表產品的 product_id,代表設備唯一識別碼的 UUID 或者 MAC,和代表設備授權的鍵值 author_key,product_id 在前面的創建產品時就已生成,后邊的兩項資訊只會在購買 liscense 成功后才可以看到,
6. 除錯功能
有的云平臺為了方便開發者除錯設備功能點,提供了比較詳細的除錯功能,比如設備在線狀態,實時查看平臺針對設備收發的資料日志等,
7. 發布產品
關于產品的各項準備作業完成后,需要讓該產品在云端進入發布狀態,這樣該產品下的設備才能被云平臺提供資料處理服務,
8. 上傳 OTA 升級包和多語言包
產品上市后,是有極大可能需要在客戶手中更新機器韌體的,比如大量客戶發現了機器作業例外,這樣就需要通過云服務給設備遠程更新韌體,一般通過在APP頁面預置升級按鈕,當用戶點擊 升級 按鈕后,云平臺就會把提前上傳到后臺的韌體升級包下發給機器,機器接收完整升級包后自動執行后續所有操作,這個程序就是 OTA(over the air update),
有些產品提供多語言的功能,只要用戶在APP頁面點擊切換對應的語言包,云平臺就會把提前上傳到后臺的對應語言包下發給機器,機器接收完整語言包后自動執行后續所有操作,
關于APP端的開發這里略過,,,
好了,簡單介紹到這里,下次見,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/505329.html
標籤:其他
上一篇:用python反彈shell
