找回密碼
 立即註冊
搜索
查看: 898|回復: 4

推介 ESP32 ---- 林雲生 VR2CQ ( 中無通訊 第 104 期)

[複製鏈接]
發表於 20-10-2023 16:08:16 | 顯示全部樓層 |閱讀模式
                                                     本文原刋載於 中無通訊 第104期 ( 2023年10月版 ),作者 林雲生 VR2CQ。


ESP32 簡介
      ESP32 - 是樂鑫最新發佈的新一代 WiFi與藍牙雙模雙核無線通訊晶片。晶片集成了藍牙4.2和WiFi HT40技術於一身,擁有高性能 Tensilica LX6 雙核處理器,支援超低功耗待機,是移動設備、可穿戴電子產品和物聯網應用的最佳拍檔。
      相比於上一代的ESP8266,除了突破性地集成了低功耗藍牙 4.2 (BLE 4.2) 技術外,ESP32在性能和功能上也有顯著的提升,搭載了雙核 32-bit MCU,一核處理高速連接、一核獨立應用開發。雙核主頻高達 240 MHz,計算能力高達 650 DMIPS。並且晶片擁有更多的管腳資源。
      ESP32 晶片集成了豐富的硬體外殼,包括電容式觸摸感測器、霍爾感測器、低雜訊傳感放大器,SD卡介面、乙太網介面、高速SDIO/SPI、UART、I2S 和I2C 等。


ESP32 配搭
       ESP32 可以取代 Arduino 的應用嗎? 當然可以 ! ESP32 支援相當多的平台開發,除了官方有提供對應的SDK,如果平常習慣了用 Arduino IDE 開發的話,樂鑫公司也開發對應的函式庫,可以直接用先前Uno習慣的開發方式,無痛轉換過來。
       先闡述一下關於 ESP32 的一些基礎觀念,怕有些朋友會搞混,官方在 ESP32 的相關產品線,有提供了三種的產品開發方式 – ESP32 晶片、ESP32 模組、ESP32 開發板,這邊廂來簡單地說明一下它們的分別:



 樓主| 發表於 25-10-2023 20:41:16 | 顯示全部樓層
1a.jpg
•        ESP32晶片: 通常要直接使用 ESP32 晶片進行設計的,都是 R&D 工程師,因為要讀超厚的 chip datasheet,了解硬體設計、PCB layout 等的注意事項,加上這個晶片整合藍芽與 WiFi 功能,對於天線板端的設計也須有所涉獵,簡單的說,就是你會使用 ESP32 這顆 SoC 開發市場產品,需要專業知識很高,這種方式老實說不適合我們這種業餘或DIY的玩家。

1b.jpg


•        ESP32 模組: 因為要直接使用晶片開發難度較高,官方就將 ESP 晶片搭配周邊包裝成一塊模組,主要是將藍芽+Wifi的相關設計搞在一起發售 (包含天線與對應的軟體 stack),並通過相關的無線通訊認證,開發者就只需要設計 IO 與電源的相關 PCB ,大大簡化了開發的流程。當然如果你要用模組開發的話,你還是得設計一塊 PCB (只是比較沒那麼複雜)。 注意到了嗎? 其實模組也是一塊小小的 PCB,但是將 PCB 板邊設計成可以焊接的接點。

1e.jpg
•        ESP32 開發板 : 因為上述兩種方式開發起來要耗費時間,所以最適合我們這種想要快速實現想法就是利用現有的開發板,這個開發板的種類就非常眾多了!各家廠商都有其不一樣的特色,樂鑫公司也有不同ESP32的開發,像 ESP32-DevKitC、ESP32-EYE等等,如果喜歡用官方資源開發的,可以考慮這樣的擴展板。(不過價格就貴一點點)

      上面這些資訊,如果有興趣的話可以到樂鑫公司的官網 https://www.espressif.com/zh-hans 去了解,點選’產品’這個類別,應該就可以了解ESP32這些系列的產品架構,更可以了解自己應該選擇那類的開發方式。
 樓主| 發表於 25-10-2023 20:59:18 | 顯示全部樓層
ESP32 模組
      ESP32 有基本概念後,再來講講ESP32有哪幾種模組,這關係到你選的是單核或雙核,FLASH 有多大,有沒有 PSRAM,先來看看官方針對ESP32的模組介紹:

1c.jpg

      其實就是3個系列,單核、雙核、雙核+多一點的內存,不是很了解?好啦,我們直接來看不同模組核心規格比較快:

清楚多了吧!最高階就是 ESP32-WROVER系列,主要為多了 PSRAM 的設定,建議大家如果沒有額外 RAM 的需求,可以買ESP32-WROOM+4M Flash 的開發板即可。(SOLO單核,市面上應該不好找)

不同的 ESP32 擴展板

下面是一些在市場上比較流行的樣板 :


1d.jpg                                                           1g.jpg
1.Aithinker Nodemcu-32s(安信可科技)                                               2.Espressif ESP32-DevKitC v4(官方出的)
                                                                                                              

1f.jpg                                                           1h.jpg
3.Wemos d32 lolin                                                                           4.Lilygo TTGO T-Display ESP32

      這幾塊 ESP32 擴展板應該都市面上都算好買的,除了官方出的kit應該價格上偏高,其他的都算 CP 值高,基本上就看各位喜歡那種就買哪種,前三塊都是採用 ESP-WROOM-32 模組 (ai-thinker 的 EPS32-S 模組就是WROOM Remark 版)。
      總括來說,使用者可以不用管這些細節,確認好是韌體是 ESP32 的版本後,就可以進行相關的測試。
      這裡主要為介紹 ESP32 的相關知識,像是晶片、模組或開發板等等,讓後續如果想進行相關實驗的朋友可以有一些基礎認知,可以快速地買到符合需求的零件,另外當你在使用ESP32開發板時,有個重點要先知道,那就是有些腳位是不建議拿來使用的!!
      這裡主要來講講 ESP32 這個模組在一開始在使用上需要注意的地方,最重要的就是 ESP32 IO 的限制啦!有些腳位在我們做實驗時,最好事先避開或事先了解,可以少走一些冤枉路,不管是你日後要使用官方的 SDK、Arduino IDE 或者是接下來要分享的 micropython 的平台,都是很有用的,這方面大家一定要了解一下!

 樓主| 發表於 25-10-2023 21:10:42 | 顯示全部樓層
本帖最後由 VR2ZWP 於 25-10-2023 21:13 編輯

ESP32 IO 腳位
      目前市面上的 ESP32 各家開發板本質差異不大,大多是針對ESP模組拉出來的GPIO腳位不同,我們這邊會使用大家最常用的 nodemcu-32s 硬體板來做介紹,這片的特色就是 ESP32 模組的腳位幾乎全部都拉到PIN腳上,好處就是彈性很大,壞處就是要事先了解一下那只gpio的功能和用處,不可貿然單看字面就接上去。下面先來看一下 nodemcu-32s 的 PIN 位置圖。(圖片源自官網 datasheet )

      因為各家廠商的擴展板腳位定義不同,所以建議大家腳位都以『ESP32模組』的本身的gpio定義來當作標準,想了解更多些,可以在網路上搜尋ESP32 datasheet。

1j.jpg

IO 規劃重點事項
     下面有一些關於IO腳位的規劃重點與大家分享一下:(務必要看看)
1.        GPIO6.7.8.9.10.11:這些是不可以使用的,因為這些腳位預設是給ESP32內部的記憶體使用的。
2.        GPIO0:決定開機時所需要設定的模式,在正常啟動時跟uart download模式,通常這隻腳都會接到一顆按鈕來決定開始時進入哪種模式,建議不要使用。
3.        GPIO2:預設有接到1顆LED,如果要進入uart download模式的話,此腳位比必須floating或驅動到GND,建議可以跳過不要使用,或單純利用內建LED電路操作即可。
4.        GPIO1 & 3 : 是模組預設的UART通訊TX/RX,建議在腳位規劃時跳過這兩支,這兩支腳位在nodemcu板內部已經接到usb-ttl晶片,除了可以初期顯示資訊外,因為micropython底層預設也
        是透過uart來建立所謂的REFL(Read-Eval-Print Loop)模式,如果使用的話,可能會有顯示或鍵盤輸入異常。
5.        GPIO12 & GPIO15:與bootloader模式與flash有關,內部分別預設有pull-down 和pull-high電阻,使用上須注意,特別是GPIO12關係到FLASH的內部電壓值,建議不要使用。
6.        GPIO 34.35.36.39:這幾隻只有Input Only,所以不要設定成output模式。
7.        GPIO5:與SDIO Slave模式有關,如果有需要使用到這界面,請注意使用。
      
       以上就是基本上需要注意的地方,為方便使用,整理成下面表格參考。
                                                

  
Antenna
  
Pin
Def
須留意


Pin
Def
須留意
20
3.3  Vin

19
GND

21
EN/RST
Reset  按鈕
18
gpio23

22
gpio36
input  only
17
gpio22

23
gpio39
input  only
16
gpio1
TX0
24
gpio34
input  only
15
gpio3
RX0
25
gpio35
input  only
14
gpio21

26
gpio32

13
GND

27
gpio33

12
gpio19

28
gpio25

11
gpio18

29
gpio26

10
gpio5
sdio相關
30
gpio27

9
gpio17

31
gpio14

8
gpio16

32
gpio12
啟動模式相關
7
gpio4

33
GND

6
gpio0
啟動模式相關
34
gpio13

5
gpio2
啟動模式相關
35
gpio9
inter-flash
4
gpio15
啟動模式相關
36
gpio10
inter-flash
3
gpio8
inter-flash
37
gpio11
inter-flash
2
gpio7
inter-flash
38
Vin  5V

  
  
  
  
1
gpio6
inter-flash


筆者都在附圖的書本上參考了許多實習資料或按指引來作學習的典範,更在網上買來一個硬件(見附圖屋仔) 作實在的體驗。


 樓主| 發表於 25-10-2023 21:15:27 | 顯示全部樓層
屋仔制作實例.jpg

ESP32 書1.jpg

ESP32 書3.jpg

ESP32 書2.jpg

ESP32 書4.jpg
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

手機版|小黑屋|存檔|中華業餘無線電研究會網站

GMT+8, 28-4-2024 12:08 , Processed in 0.062071 second(s), 23 queries , Gzip On.

本討論區基於 Discuz! X3.5

版權所有 © 2001-2024 中華業餘無線電研究會有限公司,保留一切權利


重要聲明:本討論區是以即時上載留言的方式運作,中華業餘無線電研究會對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們。中華業餘無線電研究會有權刪除任何留言及拒絕任何人士上載留言(刪除前或不會作事先警告及通知),同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。

快速回復 返回頂部 返回列表