ESP-WROOM-32模組入坑指南

寫在最前面:本文僅僅只是ESP32的入門指南,對官網以及其他不負責任的博主文章的勘誤。

搞笑的是,我後來發現這樣焊接出來的ESP32的模塊不是很穩固,尤其是接線進行燒錄那裏,所以後面換用了ESP8266開發板,用一句流行的話表達我的心情“真香!”

一、什麼是ESP-WROOM-32模組

       ESP-WROOM-32(ESP32)是樂鑫最新發布的新一代 WiFi & 藍牙 雙模雙核無線通信芯片。芯片集成藍牙4.2WiFi HT40技術爲一身,擁有高性能Tensilica LX6 雙核處理器,支持超低功耗待機,是移動設備、可穿戴電子產品和物聯網應用的最佳拍檔。而且官方對該模組軟硬件進行了開源,原理圖與PCB佈局均可以免費下載。是我們開發物聯網設備時候的良好選擇。關於此芯片的詳細介紹,可以參考官網。官網開源資料也很豐富,本指南也是參考着官網資料纔開始進行的。

       這裏插一句嘴,樂鑫官網的資料十分給力,包括github上面的源碼也很多,超級棒。ESP32的教程可以參考txgcwm的博客,個人認爲很有效果,而ESP8266的教程可以參考半顆心臟的博客。

二、我爲什麼要買ESP-WROOM-32模組

      首先是爲了開發和學習XDDDDDD以及任何不可描述的原因。其次就是價格啦,我們打開某寶。看看模組的價格:


再看看官網給的開發板的價格:


:(快遞費都夠一個模組的價格了。所以還是選擇模組划算一點。但是!!!!這個模組就是個裸片,要啥啥沒有,如果想要豐富而且完整的功能,需要自己焊電路,而且要自己焊出串口來。所以總結一下就是:開發板開發方便,門檻低上手快,功能豐富,但是價格較高;模組門檻高,需要自己焊接外圍電路,需要一些硬件開發經驗,但是價格低。如果是想鼓搗鼓搗玩一玩,或者是爲了開發硬件,推薦使用模組,這樣對於這個模組的細節會更加了解,但是若是爲了軟件開發,還是建議使用開發板,可以節省大量的時間。

      那麼,我爲什麼要選擇這個模組呢?以上說的種種都不是我選擇的原因==。我選擇買模組主要是因爲。。。。。。我下單下錯了:(。想買開發板買成了模組,這到手一看是個裸片,沒辦法只好硬着頭皮上了,發揚Geek精神。

三、模組的食用方法

3.1硬件準備
      我們想燒錄固件的話,就必須在芯片上接上串口,這裏的主要工作也就是如何接出ESP-WROOM-32的串口來。我們所需要的硬件主要有:
      USB轉TTL小板 1個;
      杜邦線、銅導線若干;
      電烙鐵 1個;
      松香    1塊;
      焊錫 1坨。


      電烙鐵、焊錫、松香主要是焊接引腳時使用;銅導線要細一點,因爲模組的引腳只要大概1平方毫米的樣子,所以先用銅導線引出來,然後將杜邦線焊接到銅導線的另一頭,這樣方便我們插在TTL小板子上,上面第二幅圖裏黑黑的東西,是我用來夾住模組的。USB轉TTL小板主要是爲了鏈接電腦,如上面第一張圖。那麼我們買的模組到底有多難焊呢?請看圖片:

3.2原理圖準備

      這麼多引腳,乍一看有點懵,我們主要借鑑官方提供的WROOM-32的數據手冊以及官方提供的ESP32串口鏈接圖。首先根據官方給出的入門指導,以及ESP32的數據手冊,找到ESP32通用的串口鏈接電路。


      EN和3V3、GND、TXD、RXD不必細說,大家應該都懂。主要是IO15與IO0的管腳比較在意,根據手冊中寫的IO15的功能是GPIO15、MTDO、HSPICS、UART0_RTS;IO0的功能是GPIO0。模組不同,引腳的定義也不同。那麼上述兩種功能的引腳在ESP-WROOM-32模組中的定義爲:UART0_RTS在管腳IO22;GPIO0的定義在管腳IO0。其餘管腳都在模組上寫的很清楚。根據官方的描述過程,給出ESP-WROOM-32UART下載模式的電路原理圖:


      大家可以根據這個電路自行焊接,有一點要注意,IO0和GND之間最好用杜邦線做一個活鏈接或者焊一個開關,因爲下載模式時IO0要拉低,而正常工作模式要拉高。給大家看下我焊的醜圖。


3.3編譯環境搭建

      編譯環境的搭建,主要參考官方入門手冊,有中文而且超級詳細。我這裏做下簡單地說明。

1.首先是安裝編譯工具鏈,我是用的ubuntu 64位系統,首先下載對應系統版本的工具鏈。

64-bit Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
32-bit Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz
下載完成後,將它解壓到 ~/esp 目錄:

mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
工具鏈將會被解壓到 ~/esp/xtensa-esp32-elf/ 目錄。

2.要使用工具鏈,你還需要在 ~/.profile 文件中更新環境變量 PATH。要使 xtensa-esp32-elf 在所有的終端會話中都有效,需要將下面這一行代碼添加到你的 ~/.profile 文件中:

export PATH="$PATH:$HOME/esp/xtensa-esp32-elf/bin"
3.退出並重新登錄以使 .profile 更改生效。
4.獲取ESP-IDF,這個就是我們的開發庫。

cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git

5.下載完成之後,~/esp/esp-idf/example下面有很多示例代碼。我們可以先編譯一下hello_world。

3.4 hello_world的編譯與燒寫

1.將IO0接GND,插入小板。使用lsusb查看是否已經小板是否連接成功;並且使用ls -l 命令查看是否可以使用。一般來講USB轉TTL是不需要ubuntu的驅動的,直接插入之後,輸入指令,可以看到如下所示的圖片。


2.進入到hello_world的文件夾,文件夾下面你應該能夠看到Makefile文件。在此文件夾下打開terminal,使用make menuconfigure命令能夠進入到配置頁面。

      這裏面有很多編譯的選項,當然對於一個hello_world來說,我們並不需要進行過多的設置。直接右箭頭選擇exit。之後執行make flash指令進行編譯以及燒寫。make flash指令是make與flash的合併體,一條命令就可以編譯處bin文件並且進行燒寫。
3.燒寫完成之後,把IO0和GND之間的連接線拔下來,使模塊進入工作模式。並且輸入make monitor查看串口輸出信息,或者使用串口調試助手也是可以的。

PS:請不要跟着網上的一些教程進入windows下面燒寫,那個工具我在測試的時候燒固件成功,但是無法正常運行,切換到ubuntu環境下流暢運行,還是ubuntu對開發者更友好一些!!!!
      
      到此爲止,入坑指南就結束了!但是開發工作仍在繼續,大家一起努力吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章