ESP8266的网状网络(Mesh Network)
網(wǎng)狀網(wǎng)絡(luò)(Mesh Network)是一種在網(wǎng)絡(luò)節(jié)點(diǎn)間透過動態(tài)路由的方式來進(jìn)行資料與控制指令的傳送。這種網(wǎng)絡(luò)可以保持每個節(jié)點(diǎn)間的連線完整,當(dāng)網(wǎng)絡(luò)拓?fù)渲杏心彻?jié)點(diǎn)失效或無法服務(wù)時,這種架構(gòu)允許使用“跳躍”的方式形成新的路由后將訊息送達(dá)傳輸目的地。
在網(wǎng)狀網(wǎng)絡(luò)中,所有節(jié)點(diǎn)都可與拓?fù)渲兴泄?jié)點(diǎn)進(jìn)行連線而形成一個“局域網(wǎng)絡(luò)”。網(wǎng)狀網(wǎng)絡(luò)與一般網(wǎng)絡(luò)架構(gòu)的差異處在于,所有節(jié)點(diǎn)可以透過多次跳躍進(jìn)行數(shù)據(jù)通信,但它們通常不是移動式裝置。網(wǎng)狀網(wǎng)絡(luò)可以視為是一種點(diǎn)對點(diǎn)的架構(gòu)。移動式點(diǎn)對點(diǎn)網(wǎng)絡(luò)與網(wǎng)狀網(wǎng)絡(luò)在架構(gòu)上是非常相似的,只是移動式點(diǎn)對點(diǎn)網(wǎng)絡(luò)還必須隨時更新組態(tài)以因應(yīng)各節(jié)點(diǎn)移動的情形。
網(wǎng)狀網(wǎng)絡(luò)自我調(diào)校機(jī)制:即使在拓?fù)渲杏泄?jié)點(diǎn)無法服務(wù)或過于忙碌,網(wǎng)絡(luò)還是可以正常運(yùn)作。因而形成一個高度可信賴的網(wǎng)絡(luò)架構(gòu)。這種架構(gòu)適用于無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)甚至是軟件架構(gòu)。
當(dāng)一個節(jié)點(diǎn)啟動時(綠色LED燈亮),所有節(jié)點(diǎn)會定時收集廣播訊息來決定拓?fù)涞男纬伞A硗?#xff0c;當(dāng)一個節(jié)點(diǎn)失效時,原本透過此節(jié)點(diǎn)進(jìn)行通信的路徑會重新找一條替代路徑,因此網(wǎng)絡(luò)可以保持連接性不被中斷。無線網(wǎng)絡(luò)是網(wǎng)狀網(wǎng)絡(luò)最典型的應(yīng)用,無線網(wǎng)狀網(wǎng)絡(luò)無線最初是軍事用途,但在近十年來已歷經(jīng)重大的改進(jìn)。
無線網(wǎng)狀網(wǎng)絡(luò)至今已歷經(jīng)三代的進(jìn)化,每次反復(fù)的演進(jìn)都提供了更好的可靠度以及多樣的功能。隨著無線電的成本快速下降,單一頻段的無線網(wǎng)狀網(wǎng)絡(luò)節(jié)點(diǎn)產(chǎn)品逐步發(fā)展成可支援多頻段,利用額外的無線電波提供額外的功能-例如:客戶端存取、后置網(wǎng)絡(luò)(最后一哩)或在行動應(yīng)用中掃描信道以提供快速的信號切換。網(wǎng)狀網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)也逐漸模組化-一個可以支援多張復(fù)合頻段網(wǎng)卡的盒子-每張網(wǎng)卡可以在不同的頻率下運(yùn)作。因此,第三代的網(wǎng)狀網(wǎng)絡(luò)技術(shù)賦予了一套全新的應(yīng)用。包括了即時的影像監(jiān)控、邊界安全或語音通信。
網(wǎng)狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)實(shí)例
網(wǎng)狀網(wǎng)絡(luò)有可能由固定或是移動裝置所構(gòu)成,所以實(shí)際的解決方案也會因?yàn)橥ㄐ怒h(huán)境所改變。VoIP是網(wǎng)狀網(wǎng)絡(luò)的應(yīng)用之一,借由相關(guān)QoS機(jī)制可以讓語音分組盡速在網(wǎng)狀網(wǎng)絡(luò)中傳遞。 某些近期的應(yīng)用如下:
Mesh網(wǎng)絡(luò)的優(yōu)勢
與傳統(tǒng)的WLAN相比,無線Mesh網(wǎng)絡(luò)具有幾個無可比擬的優(yōu)勢:
1.快速部署和易于安裝。 安裝Mesh節(jié)點(diǎn)非常簡單,將設(shè)備從包裝盒里取出來, 接上電源就行了。由于極大地簡化了安裝,用戶可以很容易增加新的節(jié)點(diǎn)來擴(kuò)大無線網(wǎng)絡(luò)的覆蓋范圍和網(wǎng)絡(luò)容量。在無線Mesh網(wǎng)絡(luò)中,不是每個Mesh節(jié)點(diǎn)都 需要有線電纜連接,這是它與有線AP最大的不同。 Mesh的設(shè)計(jì)目標(biāo)就是將有線設(shè)備和有線AP的數(shù)量降至最低,因此大大降低了總擁有成本和安裝時間,僅這一點(diǎn)帶來的成本節(jié)省就是非常可觀的。無線Mesh 網(wǎng)絡(luò)的配置和其他網(wǎng)管功能與傳統(tǒng)的WLAN相同,用戶使用WLAN的經(jīng)驗(yàn)可以很容易應(yīng)用到Mesh網(wǎng)絡(luò)上。
2.非視距傳輸(NLOS)。利用無線Mesh技術(shù)可以很容易實(shí)現(xiàn)NLOS配 置,因此在室外和公共場所有著廣泛的應(yīng)用前景。與發(fā)射臺有直接視距的用戶先接收無線信號,然后再將接收到的信號轉(zhuǎn)發(fā)給非直接視距的用戶。按照這種方式,信 號能夠自動選擇最佳路徑不斷從一個用戶跳轉(zhuǎn)到另一個用戶,并最終到達(dá)無直接視距的目標(biāo)用戶。這樣,具有直接視距的用戶實(shí)際上為沒有直接視距的鄰近用戶提供 了無線寬帶訪問功能。無線Mesh網(wǎng)絡(luò)能夠非視距傳輸?shù)奶匦源蟠髷U(kuò)展了無線寬帶的應(yīng)用領(lǐng)域和覆蓋范圍。
3.健壯性。實(shí)現(xiàn)網(wǎng)絡(luò)健壯性通常的方法是使用多路由器來傳輸數(shù)據(jù)。如果某個路由 器發(fā)生故障,信息由其他路由器通過備用路徑傳送。E-mail就是這樣一個例子,郵件信息被分成若干數(shù)據(jù)包,然后經(jīng)多個路由器通過Internet發(fā)送, 最后再組裝成到達(dá)用戶收件箱里的信息。Mesh網(wǎng)絡(luò)比單跳網(wǎng)絡(luò)更加健壯,因?yàn)樗灰蕾囉谀骋粋€單一節(jié)點(diǎn)的性能。在單跳網(wǎng)絡(luò)中,如果某一個節(jié)點(diǎn)出現(xiàn)故障,整 個網(wǎng)絡(luò)也就隨之癱瘓。而在Mesh網(wǎng)絡(luò)結(jié)構(gòu)中,由于每個節(jié)點(diǎn)都有一條或幾條傳送數(shù)據(jù)的路徑。如果最近的節(jié)點(diǎn)出現(xiàn)故障或者受到干擾,數(shù)據(jù)包將自動路由到備用 路徑繼續(xù)進(jìn)行傳輸,整個網(wǎng)絡(luò)的運(yùn)行不會受到影響。
4.結(jié)構(gòu)靈活。在單跳網(wǎng)絡(luò)中,設(shè)備必須共享AP。如果幾個設(shè)備要同時訪問網(wǎng)絡(luò),就可能產(chǎn)生通信擁塞并導(dǎo)致系統(tǒng)的運(yùn)行速度降低。而在多跳網(wǎng)絡(luò)中,設(shè)備可以通過不同的節(jié)點(diǎn)同時連接到網(wǎng)絡(luò),因此不會導(dǎo)致系統(tǒng)性能的降低。Mesh網(wǎng)絡(luò)還提供了更大的冗余機(jī)制和通信負(fù)載平衡功能。在無線Mesh網(wǎng)絡(luò)中,每個設(shè)備都有多個傳輸路徑可用,網(wǎng)絡(luò)可以根據(jù)每個節(jié)點(diǎn)的通信負(fù)載情況動態(tài)地分配通信路由,從而有效地避免了節(jié)點(diǎn)的通信擁塞。而目前單跳網(wǎng)絡(luò)并不能動態(tài)地處理通信干擾和接入點(diǎn)的超載問題。
5.高帶寬。無線通信的物理特性決定了通信傳輸?shù)木嚯x越短就越容易獲得高帶寬,因?yàn)殡S著無線傳輸距離的增加,各種干擾和其他導(dǎo)致數(shù)據(jù)丟失的因素隨之增加。因此選擇經(jīng)多個短跳來傳輸數(shù)據(jù)將是獲得更高網(wǎng)絡(luò)帶寬的一種有效方法,而這正是Mesh網(wǎng)絡(luò)的優(yōu)勢所在。
在Mesh網(wǎng)絡(luò)中,一個節(jié)點(diǎn)不僅能傳送和接收信息,還能充當(dāng)路由器對其附近節(jié)點(diǎn)轉(zhuǎn)發(fā)信息,隨著更多節(jié)點(diǎn)的相互連接和可能的路徑數(shù)量的增加,總的帶寬也大大增加。
此外,因?yàn)槊總€短跳的傳輸距離短,傳輸數(shù)據(jù)所需要的功率也較小。既然多跳網(wǎng)絡(luò)通常使用較低功率 將數(shù)據(jù)傳輸?shù)洁徑墓?jié)點(diǎn),節(jié)點(diǎn)之間的無線信號干擾也較小,網(wǎng)絡(luò)的信道質(zhì)量和信道利用效率大大提高,因而能夠?qū)崿F(xiàn)更高的網(wǎng)絡(luò)容量。比如在高密度的城市網(wǎng)絡(luò)環(huán) 境中,Mesh網(wǎng)絡(luò)能夠減少使用無線網(wǎng)絡(luò)的相鄰用戶的相互干擾,大大提高信道的利用效率。
Mesh網(wǎng)絡(luò)在IoT領(lǐng)域的意義
在前面說了一大堆的理論,那Mesh網(wǎng)絡(luò)到底對于IoT的應(yīng)用有何意義呢?
首先,我們現(xiàn)在普遍的WIFI都是有距離限制的,這個距離是由連接節(jié)點(diǎn)與路由器之間的距離所決定的。現(xiàn)在延長這種傳輸距離的辦法主要有兩種:
但這些做法都要求接入到網(wǎng)絡(luò)的設(shè)備必須先連接到路由器或者中繼器中。換一個說法,如果用ESP8266來舉例的話就是說你的ESP8266必須先執(zhí)行以下的代碼:
void setup() {WiFi.mode(WIFI_STA);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected"); Serial.println("IP address: ");Serial.println(WiFi.localIP()); }只有WIFI連接上獲取了IP地址后我們才能通過TCP/IP的方式與其它的節(jié)點(diǎn)進(jìn)行通信。
思考:如果我們的環(huán)境內(nèi)沒有路由器呢?兩個ESP8266之間能愉快地通信嗎?
答案是:能!
ESP8266 實(shí)現(xiàn)的Mesh Node
將以下的程序分別寫入兩個不同的ESP8266,然后在兩臺機(jī)器上通過串口分別連接ESP8266并打開串口監(jiān)視器。
#include <ESP8266WiFi.h> #include <ESP8266WiFiMesh.h>unsigned int request_i = 0; unsigned int response_i = 0;String manageRequest(String request);/* Create the mesh node object */ ESP8266WiFiMesh mesh_node = ESP8266WiFiMesh(ESP.getChipId(), manageRequest);/*** Callback for when other nodes send you data** @request The string received from another node in the mesh* @returns The string to send back to the other node*/ String manageRequest(String request) {/* Print out received message */Serial.print("received: ");Serial.println(request);/* return a string to send back */char response[60];sprintf(response, "Hello world response #%d from Mesh_Node%d.", response_i++, ESP.getChipId());return response; }void setup() {Serial.begin(115200);delay(10);Serial.println();Serial.println();Serial.println("Setting up mesh node...");/* Initialise the mesh node */mesh_node.begin(); }void loop() {/* Accept any incoming connections */mesh_node.acceptRequest();/* Scan for other nodes and send them a message */char request[60];sprintf(request, "Hello world request #%d from Mesh_Node%d.", request_i++, ESP.getChipId());mesh_node.attemptScan(request);delay(1000); }請注意,我以上的代碼是沒有進(jìn)行任何的WIFI連接的!接下來打開串口監(jiān)視器查看運(yùn)行效果:
總結(jié)
以上是生活随笔為你收集整理的ESP8266的网状网络(Mesh Network)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zabbix server is not
- 下一篇: linux 系统之三