【ESP32專欄】ESP32評比與教學推薦NodeMCU-32s的理由

作者:尤濬哲

近年來隨著人工智慧及物聯網產業的興起,教育部也越來越重視如何帶領學生實做這類程式教育課程,而Arduino易學易用,能快速開發感測與互動程式,成為程式課程的主流教材。Arduino的特點是所有軟硬體都開源,感測器種類繁多價格便宜,學生在設計程式專題時,能很快的找到合適的元件接線組裝,完成程式撰寫,可以說是初學者學習程式最重要的教材之一。

目前市面上最普遍的是Arduino UNO板,網路售價大概在100~200之間。UNO板最容易取得,可用感測器也多,不過卻缺少了網路及藍牙元件,物聯網課程中「通訊」是非常重要的一環,缺少了網路通訊,只能做本地端感測互動,沒有資料收集、雲端圖表、LINE互動、智慧家庭、語音或圖像分析…等功能,筆者覺得物聯網課程缺少了網路,不能叫做物聯網了。

UNO雖然可以加裝網路、藍牙(HC05)元件,但要另外採購,且接線、通訊設定、AT COMMAND等問題,會打亂教學流程,此時由樂鑫科技(ESPRESSIF)所開發內建WiFi的ESP8266晶片則是承接了這個需求缺口。

ESP8266一樣採用Arduino開放性架構,呼叫內建的ESP8266 WiFi.h函式庫就可以連上網路讀取資料,因此ESP8266曾經風靡一陣子,但後來發現ESP8266只有一組類比感測(analogRead),如果學生在製作專題需要使用到兩組類比感測器時,就必須再回去使用UNO,並沒有改善教學上的問題。

因此樂鑫再次推出ESP32這款殺手級Arduino相容晶片,ESP32不僅內建有WiFi及低功率藍牙BLE,可用腳位也擴增到約26根,大部分腳位同時支援類比及數位,內建霍爾、溫度、觸控感測器,主頻高達260mHz的雙核心CPU,傳輸界面SPI、I2C、UART等強大的功能,而價格上也相當有競爭力,不僅可以演練所有目前現有UNO課程,也可以利用內建的網路及藍牙等通訊元件完成更多的應用專題。

下表整理目前常見物聯網課程所使用的UNO、ESP8266及ESP32等三種開發板的規格比較:

由上表比較可知,ESP32充分改進ESP8266的缺失,加上經濟實惠的價格,足以讓ESP32成為IoT課程最佳的教學工具,且ESP32與UNO所有週邊感測元件完全相容,可以無痛直接升級ESP32。

常見的ESP32版本

與Arduino相同,ESP32也有很多不同版本,每種都各有特色,目前市面上常見包括下列幾種:價格便宜的Doit ESP32 Dev Kit、附帶OLED的Lolin ESP32、18650電池座ESP32-TTGO、附帶相機及SD卡槽的ESP32-CAM、附帶光環LED及麥克風的HaloCode、縮小板ESP32-mini…等等,使用者可以依據需求採購合適的ESP32,常見的ESP32版本製表如下:

教學推薦版本-NodeMCU-32s

至於老師在教學上要選擇哪種ESP32版本較為合適呢?例如ESP32-CAM帶相機看起來很炫,卻不適合國高中教學,因為製作上為了縮小體積,刪除了USB-TTL晶片,且腳位剩下16根且大多跟內部共用,因此非常不適合初學者,在筆者歷年來的教學經驗中,較推薦Ai-Thinker的NodeMCU-32s,主要原因如下:

1.價格公道:

網路價格大概在200~300之間,物超所值。

2. 尺寸適中:

NodeMCU-32s尺寸剛好能塞入麵包板中,且留兩邊腳位通道,其他產品尺寸較寬,插入麵包板後,只能留下一邊可用,教學上較為不方便。


3. 運作穩定:

筆者的經驗,當開啟WiFi或藍牙時,它牌的產品較為不穩定,經常連不上網路,要經多次Reset後才能連上,NodeMCU-32s則大多一次就可連上,傳輸穩定。

4. 電壓輸出:

較多的ESP32都僅有3.3V輸出,缺少5V常發生Relay推不動、Servo不會轉等問題。而NodeMCU-32s則同時提供5V及3.3V。

5. 腳位數量:

許多ESP32並沒有將腳位完全拉出,導致腳位數量較少,例如較為便宜的DOIT僅有30根腳,而NodeMCU則保留完整38根腳,可以發揮最大效益。

6. 預留外接天線:

ESP32雖然都有板載PCB天線,但若距離AP較遠或要放置在金屬容器內時,則時會收訊不良,而NodeMCU-32s預留外接天線,透過外接ipex天線可大幅增加傳輸距離,使用外接天線須改0R電阻由預設1的位置改至2的位置,如下圖。

外接天線須修改0R電阻

如上所述,在眾多ESP32中,筆者一直以NodeMCU-32s為主要教材,在上課過程中運作穩定、價格合適、功能齊全的優點,避免教學過程中要協助排除故障、錯誤等問題。

而在程式開發上,ESP32可用原廠的ESP-IDF開發工具開發之外,也可進一步使用MicroPython,但ESP32開發相容於Arduino IDE,僅需安裝ESP32開發核心。

下集將簡略說明如何安裝及設定ESP32的開發環境,敬請期待。

(責任編輯:王姵文)

尤濬哲

Author: 尤濬哲

身兼助理教授/專欄作家/知名部落客,以及點點滴滴科技研發總監等身份,專長包括人工智慧、多媒體互動(Unity)、智慧互動裝置(APP、Arduino)、虛擬實境與擴增實境互動、IoT 實做開發。 學歷:中山大學資訊管理研究所 博士

Share This Post On
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x