如何利用 ESP - NOW 技術實現高效物聯網通訊

物聯網應用急促發展,市場需要一種高效、低成本的解決方案,本期將為你詳細探討 ESP - NOW 技術在物聯網應用中的應用,包括其技術特點、適用場景以及如何利用它實現多設備之間的高效無線通訊。

本系列第三集,依然是我們的老朋友 DFRobot 高級工程師夏青(Rockets Xia)給大家帶來:《深度應用: ESP - NOW 技術介紹和應用》


-主講嘉賓:-
夏青(Rockets Xia),DFRobot 高級工程師,蘑菇雲創客空間共同創始人

夏青經常活躍於國內外創客社群。從 2008 起開始致力推廣創客文化,促進創客運動在中國的發展,2010 年與中國創客教父李大維等打造國內首個創客空間 —— 新車間。2013 年在 DFRobot 和浦軟集團的支持下建設蘑菇雲創客空間。作為蘑菇雲創客空間共同創始人,經常鼓勵和推動社群創客專案的推進。作為 DFRobot 高級工程師,積極致力於推動人工智慧、物聯網等先進技術在創客及創客教育領域的落地和推廣。


訪談影片在這裡
↓↓↓

Cover_00


技術介紹:

本期影片首先介紹了 ESP - NOW,這是一種由樂鑫公司定義的無連接 WiFi 通訊協議,類似於低功耗的 2.4GHz 無線連接。ESP - NOW 在通訊前需要對設備進行配對,配對完成後連接是安全、點對點且持久的,適合於多設備的低功耗低延遲數據傳輸。但同時也與傳統 WiFi 不同,ESP - NOW 不需要路由器或接入點,而是通過設備 MAC 地址進行識別和通訊。


(圖片來源:DFRobot)

接下來,我們來看一看由DFRobot 提供的Beetle ESP32-C3。它不僅支援 ESP - NOW 通訊,還具備低功耗和小尺寸的優勢。


(圖片來源:DFRobot)

Beetle ESP32 - C3 在僅有硬幣大小的體積上,引出了多達 13 個 I/O 口,同時主控板還集成鋰電池充電管理功能,可以直接連接鋰電池,不需要外圍模組。



(圖片來源:DFRobot)

Beetle ESP32 - C3 配套的擴展板在未增加太大體積的情況下,引出了更多的接口,在製作專案時焊接更加方便。板載的 GDI 顯示屏接口,解決使用螢幕時的接線煩惱。Beetle ESP32 - C3 支援 Wi - Fi 和 Bluetooth 5 (LE) 双模通訊,並且擁有詳細的示例教程,通過教程可以輕鬆地使用控制器的無線功能,連接物聯網平台。


(圖片來源:DFRobot)

DFRobot 的 Beetle 系列開發板以其小巧且功能強大的設計著稱,非常適合空間有限的專案。無論在性能還是靈活性方面,相信它們都能夠完美滿足大家的需求。

運動按鈕專案:

接下來介紹基於 Beetle ESP32 - C3 開發板的運動按鈕專案。Beetle ESP32 - C3 具有小尺寸、低功耗、支援 WiFi 和藍牙等優點,非常適合該專案。專案包括 4 個運動按鈕、WS2812 燈帶、蜂鳴器等組件,通過 ESP - NOW 實現設備間的同步和交互。專案設計了 3 種遊戲模式:打地鼠、接力和擊鼓傳花,可以用於多人遊戲或智慧家居控制等應用場景。




(圖片來源:DFRobot)

硬件組裝完成後,進入編程環節。首先我們將使用 Arduino IDE 來編寫和上傳代碼。如果你習慣使用其他編程環境,也可以選擇自己熟悉的工具和代碼。選取 Arduino 中的 ESP - NOW 的示例代碼,我們來看看 ESP - NOW 的能力到底怎麼樣。


(圖片來源:DFRobot)

上傳燒錄以後我們就可以看到,發射和接收資訊的延時是 2~4ms 左右,單向傳播的延時約為 2ms 左右,相當於 1/100 秒,速度非常快。


(圖片來源:DFRobot)

確保每個設備都能正常識別和通訊後,接下來就可以進入下一步的功能實現。為了方便大家理解,這裡用腦圖的方式將程式結構做了梳理,供大家參考。


(圖片來源:DFRobot)

遊戲規則:

現在和大家簡單說下遊戲規則的設定。在現有的程式裡預設了三個模式,可以用短按來選擇,長按 3 秒來確認選擇。需要切換的時候,隨時可以用長按來進入選單。

模式 1 是打地鼠模式,這個模式下,我們的程式會隨機在 4 個運動按鈕上出現紅色的信號,需要在最短時間內按下,才能獲得成績。


(圖片來源:DFRobot)

模式 2 是接力模式,在這個模式下,每按一次運動按鈕上出現綠色按鈕,下一個運動按鈕就會變成另外一個顏色,也就是說你需要依次按動按鈕,這個時候就是接力模式。


(圖片來源:DFRobot)

模式 3 是擊鼓傳花模式,進入此模式時 4 個按鈕依次循環亮藍燈,按下帶螢幕的主按鈕,此時亮藍燈的那個按鈕,就是被選中的 “天之驕鈕” 了。


(圖片來源:DFRobot)

在這個專案中,按鈕的狀態將通過 ESP - NOW 即時同步到所有設備,LED 和蜂鳴器會根據按鈕狀態作出相應的反饋。此外,此專案還可以展示不同的遊戲模式,比如多人對戰或合作模式,讓大家看到這個專案在實際應用中的各種可能性和互動方式。

運動按鈕專案不僅可以用於簡單的遊戲和互動,還可以擴展到其他領域,比如智慧家居控制器、物聯網專案等。歡迎大家發揮創意,探索 ESP - NOW 和 DFRobot 開發板的更多可能性。無論是改進現有專案,還是開發新的應用,這些技術都能為你帶來無限的創作空間。

這就是本期影片的所有內容啦,感謝大家觀看,希望大家可以從中獲得有用的資訊和靈感。下一期我們會進一步介紹 ESP32 另外一個高階玩法,**《**ESP32 在邊緣計算使用 tinyML 專案的應用》 ,歡迎大家關注。

本期影片相關資源:

樂鑫社區 - 著重於技術討論
https://www.esp32.com/

DFRobot 社區 - 著重於應用分享
https://mc.dfrobot.com.cn/forum-211-1.html

Beetle

  • DFR0868: 基於 ESP32 - C3 RISC - V 32 位單核處理器晶片的主控板,專為物聯網 (IoT) 設備而設計。
  • FIT0612: 炫彩 WS2812 RGB LED 可剪裁黑色燈帶。
  • DFR0032: Gravity:數位蜂鳴器模組。
  • DFR0468: HT1632C LED 陣列 Opto FireBeetle 平台評估擴展板。