iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
自我挑戰組

一個營建系學生的韌體之路-ESP32篇系列 第 7

ESP32_DAY7 介紹ESP32

終於要開始介紹ESP32了!前幾天都在慢慢地舖成,就是為了這次的主角ESP32,但可能大家會覺得很納悶,昨天明明花了一大篇幅去介紹Arduino,Arduino又便宜又容易上手,使用的人很多、資源很豐富,下面這些連結都是用Arduino作的酷東西。

那為什麼我還要改成使用ESP32呢?

ESP32

https://ithelp.ithome.com.tw/upload/images/20210922/201404339D2cpMFpbl.png
ESP32是一系列由中國上海樂鑫科技(Espressif)推出的晶片、模組、開發板,採用Tensilica Xtensa LX6微處理器,包括雙核心和單核變體,支援Arduino開放性架構,內建WiFi及低功率藍芽BLE,可用腳位也擴增到約26根,大部分腳位同時支援類比及數位,內建霍爾、溫度、觸控感測器,主頻高達240mHz的雙核心CPU,傳輸界面SPI、I2C、UART等強大的功能。
https://ithelp.ithome.com.tw/upload/images/20210922/20140433CXp9IMibvt.png
它的前身是ESP8266系列,ESP8266也是由Espressif推出,也自帶WiFi模組,方便連接網路。於2014年推出,因為一開始國外的maker還不熟悉中文,所以使用者還不多,但隨著Espressif努力的發展,加上平價的價格,很快的就有越來越多的人開始發現它的美妙之處,Espressif也於2016年推出升級後的版本-ESP32,現在不管是ESP8266、ESP32都深受國內、外maker喜愛。
雖然說Arduino自己也有推出自帶WiFi模組的Arduino MKR WiFi 1010,待其售價為台幣750。Arduino UNO 雖也可以另外購買網路、藍牙(HC05)模組,卻也增加接線與設定上的麻煩,怎麼想都還是便宜又萬能的ESP32大勝!

詳細差異可以參考下列表格
https://ithelp.ithome.com.tw/upload/images/20210922/20140433dJ7L6po5RX.png

不專業名詞解釋(有的沒提到的未來會講 吧)
時脈: 處理器一秒鐘可以跑幾個運算單位(單位: GHz、MHz)
OTA: Over-the-Air Technology 空中下載技術,通過電信網路的無線技術來做軟體更新
霍爾感測: 是測量磁場用

以下是ESP32微控制器的功能區塊圖
https://ithelp.ithome.com.tw/upload/images/20210922/20140433WM3nfVT2mS.png

個人不專業小筆記:
微控制器簡稱MCU,跟微處理器MPU是不同東西

常見的ESP32種類

https://ithelp.ithome.com.tw/upload/images/20210922/20140433QsTSx3ZGIP.png
我自己手上有NodeMCU-32s、DOIT DEVKIT V1、ESP32-CAM,主要都是使用前兩個版本的ESP32,它們本質上沒有差異,只有腳位數量、板子大小稍微不同,我自己比較喜歡用NodeMCU-32s,它插在麵包板上剛好會在兩邊都留下一格來使用,但老師說沒事別插麵包板!!!減少硬體出錯率XD
稍微簡單介紹其他版本:

  1. TTGO ESP32:附帶電池座,搭配深度睡眠
  2. Lolin ESP32:附帶OLED,可快速開發萬年曆,微型氣象站等顯示裝置
  3. ESP32-CAM:附帶相機及SD與卡槽,可開發具AI影像辨識裝置
  4. HaloCode光環板:附帶麥克風及光環LED燈,可開發語音辨識並透過LED互動
  5. WeMos ESP32 mini:很迷你,可以開發穿戴裝置
  6. HELTEC WiFi LoRa 32:32M記憶體並內建OLED及長距離LoRa通訊

參考資料:https://makeradvisor.com/esp32-development-boards-review-comparison/

來看看開發板長怎樣

因為暑訓課程,大家主要是使用DOIT DEVKIT V1,所以我接下來會以它為主來介紹,但應該跟其他板子大同小異!
DOIT DEVKIT V1的USB埠是使用Micro USB,除了電源的那顆紅色LED燈,還有一顆是藍色的LED燈,它會被GPIO 2控制,而微控制器是ESP-WROOM-32D,能使用的GPIO接腳共有30根。
https://ithelp.ithome.com.tw/upload/images/20210922/20140433HAKraX4IKq.png
https://ithelp.ithome.com.tw/upload/images/20210922/20140433QhUvCTtgLk.png

GPIO 是種具有彈性且可以藉由軟體控制(software-controlled) 的數位訊號。
常見於開發版邊緣, 以針腳 (Pin) 的形式呈現,這些針腳即是開發版與外界溝通的重要橋樑。
簡單例子, 想像成是開關, 使用者可以打開或關閉 (input), 或由開發版來打開或關閉 (output)
每個 GPIO 可以被當成 input, output, analog 或 alternate function~

alternate function 是指其他的的功能, 如 I2C, SPI, USART, PWM, Clock 等。如何控制則取決於外部設備(peripheral)

詳細接腳功能圖
https://ithelp.ithome.com.tw/upload/images/20210922/20140433ptGFNl06lG.png

請注意!GPIO 34、35、36、39只能input
大家要小心使用,不要和我一樣不注意就踩到坑了...

接下來的內容就會慢慢帶大家了解數位、類比、UART、SPI、I2C在做什麼囉!


上一篇
ESP32_DAY6 介紹Arduino
下一篇
ESP32_DAY8 開發好夥伴-麵包板
系列文
一個營建系學生的韌體之路-ESP32篇12

尚未有邦友留言

立即登入留言