作者:黃東正
繼上一篇介紹ESP-NOW的基本觀念後,本文將介紹它的通訊拓樸架構。
ESP-NOW這種通信協定可以使用在ESP8266或ESP32這兩種WiFi裝置上,而且在同一個場域中兩種元件可以混合使用,如果以傳輸方向跟裝置的數目的不同,可以分成下面幾種拓樸形態:
1. 一對一單向傳輸

一對一單向傳輸(圖片來源)
這種配置是最容易實現的一種,由兩片ESPxx(ESP8266或ESP32)模組板所構成,非常適合將數據從一塊稱為發送板的發送到另一塊作為接收用的接收板,例如感測器讀數或控制 GPIO 的 ON 和 OFF 命令。
2. 一對一雙向傳輸

一對一雙向傳輸(圖片來源)
在許多應用場合發送資料數據是否傳送成功?或是GPIO的控制指令是否動作正確?我們都會希望接收端能回應(這和一般WiFi連線的交握(Handshake)不同)作動的結果給發送端,這時透過雙向的資料送就可以達到需求;在此每塊電路板都可以同時作為發送器和接收器,如此,您可以在兩片ESPxx模組板之間建立雙向通信。
3. 多對一單向傳輸

多對一單向傳輸(圖片來源)
如果你想將多個感測器節點的數據或是開關狀態收集到一個主要的 ESPxx模組板上,則此種配置是個理想的選擇。例如,可以將這個主要的 ESPxx模組板(即圖中央的從Slave模組板)配置為 Web 伺服器,以顯示來自所有其他板的數據;如果再將這個主要的 ESPxx模組板連上已連接網際網路(Internet)的WiFi分享器(Router),那麼就可以在世界上的任何一個地方讀取到這些資料或開關的狀態了。
4. 單向一對多傳輸

單向一對多傳輸(圖片來源)
這種架構是由一個 ESPxx 板向不同的 ESPxx 板發送相同或不同的命令。這種配置非常適合構建遙控器之類的系統。你可以在房子周圍放置幾個從(Slave)接收 ESPxx 板,然後再由一個主(Master) ESPxx 板控制同時或分別去發送控制開關用的指令碼。當然如果再將這個主要的主 ESPxx模組板配置為 Web 伺服器,然後再連上已連接網際網路(Internet)的WiFi分享器(Router),那麼就可以在世界上的任何一個地方去控制這些開關了!
5. 雙向一對多傳輸

雙向一對多傳輸(圖片來源)
這種配置等於是前面2~4的混合版,在前面我們說過許多應用場合會希望知道發送資料數據是否傳送成功?或是GPIO的控制指令是否動作正確?這時透過雙向的資料送就可以達到需求。
6. 多對多雙向傳輸

多對多雙向傳輸(圖片來源)
這種配置等於是前面二、2~二、5的混合版,看起來就像是區域性的Mesh網路一樣,你可以在其中添加更多的ESPxx模組板,就可以擁有看起來像網絡的東西,而其中所有 ESPxx 板都可以相互通信及傳送資料。
(作者為本刊專欄作家,本文同步表於作者部落格,原文連結;責任編輯:謝嘉洵)
註:本文圖片皆取材自本篇文章,僅此致謝。
- 認識ESP-NOW協定 Part 4:雙向多對多架構 - 2023/01/09
- 認識ESP-NOW協定 Part 3:一對一單向架構 - 2023/01/09
- 認識ESP-NOW協定 Part 2:拓樸架構介紹 - 2022/12/01
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!