日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ESP8266的网状网络(Mesh Network)

發(fā)布時(shí)間:2025/3/21 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESP8266的网状网络(Mesh Network) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

網(wǎng)狀網(wǎng)絡(luò)(Mesh Network)是一種在網(wǎng)絡(luò)節(jié)點(diǎn)間透過(guò)動(dòng)態(tài)路由的方式來(lái)進(jìn)行資料與控制指令的傳送。這種網(wǎng)絡(luò)可以保持每個(gè)節(jié)點(diǎn)間的連線完整,當(dāng)網(wǎng)絡(luò)拓?fù)渲杏心彻?jié)點(diǎn)失效或無(wú)法服務(wù)時(shí),這種架構(gòu)允許使用“跳躍”的方式形成新的路由后將訊息送達(dá)傳輸目的地。

在網(wǎng)狀網(wǎng)絡(luò)中,所有節(jié)點(diǎn)都可與拓?fù)渲兴泄?jié)點(diǎn)進(jìn)行連線而形成一個(gè)“局域網(wǎng)絡(luò)”。網(wǎng)狀網(wǎng)絡(luò)與一般網(wǎng)絡(luò)架構(gòu)的差異處在于,所有節(jié)點(diǎn)可以透過(guò)多次跳躍進(jìn)行數(shù)據(jù)通信,但它們通常不是移動(dòng)式裝置。網(wǎng)狀網(wǎng)絡(luò)可以視為是一種點(diǎn)對(duì)點(diǎn)的架構(gòu)。移動(dòng)式點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)與網(wǎng)狀網(wǎng)絡(luò)在架構(gòu)上是非常相似的,只是移動(dòng)式點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)還必須隨時(shí)更新組態(tài)以因應(yīng)各節(jié)點(diǎn)移動(dòng)的情形。

網(wǎng)狀網(wǎng)絡(luò)自我調(diào)校機(jī)制:即使在拓?fù)渲杏泄?jié)點(diǎn)無(wú)法服務(wù)或過(guò)于忙碌,網(wǎng)絡(luò)還是可以正常運(yùn)作。因而形成一個(gè)高度可信賴的網(wǎng)絡(luò)架構(gòu)。這種架構(gòu)適用于無(wú)線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)甚至是軟件架構(gòu)。

當(dāng)一個(gè)節(jié)點(diǎn)啟動(dòng)時(shí)(綠色LED燈亮),所有節(jié)點(diǎn)會(huì)定時(shí)收集廣播訊息來(lái)決定拓?fù)涞男纬伞A硗?#xff0c;當(dāng)一個(gè)節(jié)點(diǎn)失效時(shí),原本透過(guò)此節(jié)點(diǎn)進(jìn)行通信的路徑會(huì)重新找一條替代路徑,因此網(wǎng)絡(luò)可以保持連接性不被中斷。無(wú)線網(wǎng)絡(luò)是網(wǎng)狀網(wǎng)絡(luò)最典型的應(yīng)用,無(wú)線網(wǎng)狀網(wǎng)絡(luò)無(wú)線最初是軍事用途,但在近十年來(lái)已歷經(jīng)重大的改進(jìn)。

無(wú)線網(wǎng)狀網(wǎng)絡(luò)至今已歷經(jīng)三代的進(jìn)化,每次反復(fù)的演進(jìn)都提供了更好的可靠度以及多樣的功能。隨著無(wú)線電的成本快速下降,單一頻段的無(wú)線網(wǎng)狀網(wǎng)絡(luò)節(jié)點(diǎn)產(chǎn)品逐步發(fā)展成可支援多頻段,利用額外的無(wú)線電波提供額外的功能-例如:客戶端存取、后置網(wǎng)絡(luò)(最后一哩)或在行動(dòng)應(yīng)用中掃描信道以提供快速的信號(hào)切換。網(wǎng)狀網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)也逐漸模組化-一個(gè)可以支援多張復(fù)合頻段網(wǎng)卡的盒子-每張網(wǎng)卡可以在不同的頻率下運(yùn)作。因此,第三代的網(wǎng)狀網(wǎng)絡(luò)技術(shù)賦予了一套全新的應(yīng)用。包括了即時(shí)的影像監(jiān)控、邊界安全或語(yǔ)音通信。

網(wǎng)狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)

實(shí)例

網(wǎng)狀網(wǎng)絡(luò)有可能由固定或是移動(dòng)裝置所構(gòu)成,所以實(shí)際的解決方案也會(huì)因?yàn)橥ㄐ怒h(huán)境所改變。VoIP是網(wǎng)狀網(wǎng)絡(luò)的應(yīng)用之一,借由相關(guān)QoS機(jī)制可以讓語(yǔ)音分組盡速在網(wǎng)狀網(wǎng)絡(luò)中傳遞。 某些近期的應(yīng)用如下:

  • 美軍已經(jīng)使用無(wú)線網(wǎng)狀網(wǎng)絡(luò)去連接在戰(zhàn)場(chǎng)上的軍用電腦,這可以讓軍隊(duì)知道每一個(gè)軍人的位置,這樣就可以加強(qiáng)軍隊(duì)協(xié)同行動(dòng)的能力。
  • 某些城市已經(jīng)在安裝電子水表或是電表,這些水表或電表可以一個(gè)接著一個(gè)傳送他們的讀數(shù)直到水電公司,如此就不需要額外抄表人員或是另外安裝電纜線傳送數(shù)據(jù)。
  • 學(xué)生可以持有具有網(wǎng)狀網(wǎng)絡(luò)路由器功能的筆記型電腦,這樣學(xué)生間不僅可以交換檔案,也可以透過(guò)其他具有網(wǎng)絡(luò)連線能力的人連上互聯(lián)網(wǎng)。
  • 由66顆衛(wèi)星組成的[銥衛(wèi)星]系統(tǒng)本身就是一個(gè)網(wǎng)狀網(wǎng)絡(luò)系統(tǒng),相鄰的銥衛(wèi)星會(huì)互相連接成網(wǎng)狀拓普。一通電話會(huì)經(jīng)由銥衛(wèi)星網(wǎng)狀網(wǎng)絡(luò)路由通往目的端,完全不需要地面通信站的協(xié)助,這樣減少了傳輸距離也減少了通信延遲。
  • esp8266-station

    Mesh網(wǎng)絡(luò)的優(yōu)勢(shì)

    與傳統(tǒng)的WLAN相比,無(wú)線Mesh網(wǎng)絡(luò)具有幾個(gè)無(wú)可比擬的優(yōu)勢(shì):

    1.快速部署和易于安裝。 安裝Mesh節(jié)點(diǎn)非常簡(jiǎn)單,將設(shè)備從包裝盒里取出來(lái), 接上電源就行了。由于極大地簡(jiǎn)化了安裝,用戶可以很容易增加新的節(jié)點(diǎn)來(lái)擴(kuò)大無(wú)線網(wǎng)絡(luò)的覆蓋范圍和網(wǎng)絡(luò)容量。在無(wú)線Mesh網(wǎng)絡(luò)中,不是每個(gè)Mesh節(jié)點(diǎn)都 需要有線電纜連接,這是它與有線AP最大的不同。 Mesh的設(shè)計(jì)目標(biāo)就是將有線設(shè)備和有線AP的數(shù)量降至最低,因此大大降低了總擁有成本和安裝時(shí)間,僅這一點(diǎn)帶來(lái)的成本節(jié)省就是非常可觀的。無(wú)線Mesh 網(wǎng)絡(luò)的配置和其他網(wǎng)管功能與傳統(tǒng)的WLAN相同,用戶使用WLAN的經(jīng)驗(yàn)可以很容易應(yīng)用到Mesh網(wǎng)絡(luò)上。
    2.非視距傳輸(NLOS)。利用無(wú)線Mesh技術(shù)可以很容易實(shí)現(xiàn)NLOS配 置,因此在室外和公共場(chǎng)所有著廣泛的應(yīng)用前景。與發(fā)射臺(tái)有直接視距的用戶先接收無(wú)線信號(hào),然后再將接收到的信號(hào)轉(zhuǎn)發(fā)給非直接視距的用戶。按照這種方式,信 號(hào)能夠自動(dòng)選擇最佳路徑不斷從一個(gè)用戶跳轉(zhuǎn)到另一個(gè)用戶,并最終到達(dá)無(wú)直接視距的目標(biāo)用戶。這樣,具有直接視距的用戶實(shí)際上為沒(méi)有直接視距的鄰近用戶提供 了無(wú)線寬帶訪問(wèn)功能。無(wú)線Mesh網(wǎng)絡(luò)能夠非視距傳輸?shù)奶匦源蟠髷U(kuò)展了無(wú)線寬帶的應(yīng)用領(lǐng)域和覆蓋范圍。
    3.健壯性。實(shí)現(xiàn)網(wǎng)絡(luò)健壯性通常的方法是使用多路由器來(lái)傳輸數(shù)據(jù)。如果某個(gè)路由 器發(fā)生故障,信息由其他路由器通過(guò)備用路徑傳送。E-mail就是這樣一個(gè)例子,郵件信息被分成若干數(shù)據(jù)包,然后經(jīng)多個(gè)路由器通過(guò)Internet發(fā)送, 最后再組裝成到達(dá)用戶收件箱里的信息。Mesh網(wǎng)絡(luò)比單跳網(wǎng)絡(luò)更加健壯,因?yàn)樗灰蕾囉谀骋粋€(gè)單一節(jié)點(diǎn)的性能。在單跳網(wǎng)絡(luò)中,如果某一個(gè)節(jié)點(diǎn)出現(xiàn)故障,整 個(gè)網(wǎng)絡(luò)也就隨之癱瘓。而在Mesh網(wǎng)絡(luò)結(jié)構(gòu)中,由于每個(gè)節(jié)點(diǎn)都有一條或幾條傳送數(shù)據(jù)的路徑。如果最近的節(jié)點(diǎn)出現(xiàn)故障或者受到干擾,數(shù)據(jù)包將自動(dòng)路由到備用 路徑繼續(xù)進(jìn)行傳輸,整個(gè)網(wǎng)絡(luò)的運(yùn)行不會(huì)受到影響。
    4.結(jié)構(gòu)靈活。在單跳網(wǎng)絡(luò)中,設(shè)備必須共享AP。如果幾個(gè)設(shè)備要同時(shí)訪問(wèn)網(wǎng)絡(luò),就可能產(chǎn)生通信擁塞并導(dǎo)致系統(tǒng)的運(yùn)行速度降低。而在多跳網(wǎng)絡(luò)中,設(shè)備可以通過(guò)不同的節(jié)點(diǎn)同時(shí)連接到網(wǎng)絡(luò),因此不會(huì)導(dǎo)致系統(tǒng)性能的降低。Mesh網(wǎng)絡(luò)還提供了更大的冗余機(jī)制和通信負(fù)載平衡功能。在無(wú)線Mesh網(wǎng)絡(luò)中,每個(gè)設(shè)備都有多個(gè)傳輸路徑可用,網(wǎng)絡(luò)可以根據(jù)每個(gè)節(jié)點(diǎn)的通信負(fù)載情況動(dòng)態(tài)地分配通信路由,從而有效地避免了節(jié)點(diǎn)的通信擁塞。而目前單跳網(wǎng)絡(luò)并不能動(dòng)態(tài)地處理通信干擾和接入點(diǎn)的超載問(wèn)題。
    5.高帶寬。無(wú)線通信的物理特性決定了通信傳輸?shù)木嚯x越短就越容易獲得高帶寬,因?yàn)殡S著無(wú)線傳輸距離的增加,各種干擾和其他導(dǎo)致數(shù)據(jù)丟失的因素隨之增加。因此選擇經(jīng)多個(gè)短跳來(lái)傳輸數(shù)據(jù)將是獲得更高網(wǎng)絡(luò)帶寬的一種有效方法,而這正是Mesh網(wǎng)絡(luò)的優(yōu)勢(shì)所在。

    在Mesh網(wǎng)絡(luò)中,一個(gè)節(jié)點(diǎn)不僅能傳送和接收信息,還能充當(dāng)路由器對(duì)其附近節(jié)點(diǎn)轉(zhuǎn)發(fā)信息,隨著更多節(jié)點(diǎn)的相互連接和可能的路徑數(shù)量的增加,總的帶寬也大大增加。

    此外,因?yàn)槊總€(gè)短跳的傳輸距離短,傳輸數(shù)據(jù)所需要的功率也較小。既然多跳網(wǎng)絡(luò)通常使用較低功率 將數(shù)據(jù)傳輸?shù)洁徑墓?jié)點(diǎn),節(jié)點(diǎn)之間的無(wú)線信號(hào)干擾也較小,網(wǎng)絡(luò)的信道質(zhì)量和信道利用效率大大提高,因而能夠?qū)崿F(xiàn)更高的網(wǎng)絡(luò)容量。比如在高密度的城市網(wǎng)絡(luò)環(huán) 境中,Mesh網(wǎng)絡(luò)能夠減少使用無(wú)線網(wǎng)絡(luò)的相鄰用戶的相互干擾,大大提高信道的利用效率。

    Mesh網(wǎng)絡(luò)在IoT領(lǐng)域的意義

    在前面說(shuō)了一大堆的理論,那Mesh網(wǎng)絡(luò)到底對(duì)于IoT的應(yīng)用有何意義呢?

    首先,我們現(xiàn)在普遍的WIFI都是有距離限制的,這個(gè)距離是由連接節(jié)點(diǎn)與路由器之間的距離所決定的。現(xiàn)在延長(zhǎng)這種傳輸距離的辦法主要有兩種:

  • 用大功率的能穿墻的路由器(形成星型網(wǎng))
  • 在主路由器與節(jié)點(diǎn)之間的有效距離內(nèi)增加中繼器(AP) (形成樹型網(wǎng))
  • 但這些做法都要求接入到網(wǎng)絡(luò)的設(shè)備必須先連接到路由器或者中繼器中。換一個(gè)說(shuō)法,如果用ESP8266來(lái)舉例的話就是說(shuō)你的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地址后我們才能通過(guò)TCP/IP的方式與其它的節(jié)點(diǎn)進(jìn)行通信。

    思考:如果我們的環(huán)境內(nèi)沒(méi)有路由器呢?兩個(gè)ESP8266之間能愉快地通信嗎?

    答案是:能!

    ESP8266 實(shí)現(xiàn)的Mesh Node

    將以下的程序分別寫入兩個(gè)不同的ESP8266,然后在兩臺(tái)機(jī)器上通過(guò)串口分別連接ESP8266并打開(kāi)串口監(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); }

    請(qǐng)注意,我以上的代碼是沒(méi)有進(jìn)行任何的WIFI連接的!接下來(lái)打開(kāi)串口監(jiān)視器查看運(yùn)行效果:

    總結(jié)

    以上是生活随笔為你收集整理的ESP8266的网状网络(Mesh Network)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。