燚智能硬件開發網
用簡單的語言,講複雜的技術!
前面我們講了藍牙的幾個冷知識
鏈接在此:
總結下來,就是:藍牙BLE,是物聯網低功耗近距離傳輸的最佳手段之一。
本文主要講:藍牙BLE協議的那些事
主機和從機的關係
BLE系統中,有主機(Central)和從機(Peripheral)。
從機負責發送廣播,主機負責收聽廣播併發起連接。
主機不發廣播,從機無法主動連接主機,只能由主機主動連接從機。
一個主機能夠連接多個從機,一個從機只能被一個主機連接。
因此在各種物聯網和智能硬件應用中,主要是以手機作為主機,外圍設備做為從機。一般都是1主對1從或1主對多從的使用。例如一臺手機掛了好幾個手環。
反面案例:我們以前遇到一個特殊場景,充分體現了BLE連接的侷限性:有一款智能鎖,要求用手環能開鎖,用手機也能開鎖,但要求手環也能連接手機。
只實現前兩個功能很容易,智能鎖作為從機,手機作為主機,手環也作為主機。但是要實現手環連手機,雙主機是無法連接的,就需要其中一個作為從機,這種情況下只能讓手環的BLE做成雙模的。最終因為不靠譜,放棄掉了這套設計方案。
廣播,也能傳數據
從機發送廣播,廣播內容中可以包含31字節的數據。這些數據可以被從機周圍所有的BLE主機接收到。
BLE室內定位標籤,用的也是這種方式,標籤不斷的發送廣播,BLE基站收到廣播信息,並根據信號強度判斷所處的位置。
廣播,可以理解為不斷的向外發射電磁波,感覺是比較耗電的。但是BLE本身發射功率很低,每次廣播只需要1mS的時間,廣播間隔可以調大到10秒以上,所以實際上耗電量非常小。一個iBeacon的基站,靠紐扣電池都可以工作大半年。
連接
廣播,只能做到從機到主機的單向小數據傳輸。
BLE連接之後,就可以做到雙向傳輸了。雖然速度只有幾K,但也足夠傳輸控制指令和傳感器信息這些簡單數據了。
從機一旦被連接,就無法發送廣播,也
無法被其他設備連接。從機這麼容易被搶佔,豈不是設備也很容易被入侵?從機可以和主機約定一個自己做的“握手協議”,如果握手不成功,就把主機給踢出去,然後繼續廣播等待其他主機。
像很多ofo和摩拜的共享單車,可以用BLE軟件連上去,並且發送數據過去。只不過發了數據過去單車不會理你的。
BLE的安全性
從上面講的特性來看,BLE的勝在低功耗和方便使用,但安全性不太好。
未加密的BLE數據,就是公開數據。如果要加密,必須對BLE上傳輸的明文做加密才行。BLE的智能鎖,都需要在密鑰算法上加密, 不能直接就發明文了。也要做到動態密鑰,防止被截獲之後仿造的密鑰。
燚智能開發大講堂
物聯網開發實戰派!
前期精彩內容回顧:
閱讀更多 燚智能 的文章