老宇哥帶你玩轉ESP32:01入門介紹

接觸物聯網差不多10年了。
先跟大家聊聊,老宇哥11年進入大學,大一就在實驗室開始了電子研發,記得那時候師兄介紹我買了一塊郭天祥老師的51開發板,還有配套的一本書,雖然從小非常喜歡電子,經常折騰,有一些硬件相關知識,但是軟件可是從來沒接觸過,看到第一行代碼就懵逼了,這是啥?
后來問隔壁師兄,師兄很耐心,跟我簡單講解了一下,然后讓我看一本C語言的書,說先簡單看一看,不用看的很深,邊看邊學,就這樣,在無數次的逃課以及晚上挑燈奮斗之后,我成功點亮第一個燈了,那時候的興奮無以言表。郭老師的那本神作通俗易懂,我也是激動的做一個個的小實驗,邊學邊補充,遇到不懂的先查資料,實在不會的,就跟實驗室的伙伴們討論,那時候的求知欲非常強烈,實驗室也是經常呆到晚上10點之后,慢慢的小小的入門了。
后來大二參加比賽,第一個應該是合泰杯吧,比賽要求必須要用合泰的芯片開發,當時拿到幾個合泰的開發板,開始也是不知所措,我只用過51呀,這芯片怎么開發?后來也是跟伙伴們討論交流,安裝對應的開發環境,驅動,跑第一個點燈例程,簡單熟悉串口,定時器等外設,再添加自己的邏輯。

當時做了一個WiFi智能排插,也是我做的第一個智能家居類小制作,當時的條件并不像現在這么高級,我自己做硬件以及嵌入式軟件這邊,找同學介紹了一個計算機學院的同學,做APP的開發,還有一個用java簡單做了一個小服務器,用于數據轉發,然后開始惡補網絡方便的一些知識,什么路由器,TCP,UDP,WiFi模塊,端口映射、內網穿透什么的,用有人的WiFi模塊,花生殼做的內網穿透,也是實現了簡單的遠程以及局域網控制,不過最后只拿了一個三等獎。
從這開始,基本上都很關注物聯網行業,到現在從事做家電相關產品,一直都是圍繞物聯網相關在做。
關于做產品或者是小制作,從方案角度,一般有以下幾種:
用一些開源硬件平臺,類似Arduino,樹莓派等,網上學習資料,各種庫,開源項目非常多,簡單易懂,但是靈活性、效率沒那么高,創客們用的多;
用51,STM8,MSP430,STM32等單片機,最接地氣的方式,可以深入控制到寄存器,MCU品牌,資料也是非常多,原子,野火等開發板都非常不錯,簡單點的裸機開發即可,結合一些嵌入式的實時操作系統,FreeRTOS、UCOS、RTT等,可以做一些復雜點的項目;
用Linux或者FPGA開發,有一些要求高的項目,單片機等滿足不了,例如做一些高級的顯示,工控板,復雜的應用等,門檻比較高,韋東山,原子,野火,朱友鵬老師等都有出了一些非常好的教程,真正深入進去,才能體會到Linux的博大精深。

老宇哥打算寫一些基礎的文章,跟大家一起做一些好玩有趣的項目,ESP8266,ESP32等樂鑫推出的芯片深受國內外愛好者的喜歡,業內人士應該沒多少人沒聽過ESP8266,我們本次選用ESP32系列的模塊進行開發,以最簡單的方式給大家展示。
關于ESP32的開發,有幾種開發方式:
Arduino方式開發,得益于簡單易上手的體驗,Arduino無疑成為最成功的開源硬件平臺之一,結合眾多的開源庫,可玩性非常非常高;
Espressif IDF,這是樂鑫官方的原生開發方式,設置工具鏈,自己安裝CMake Ninja編譯構建工具,獲取ESP-IDF軟件開發框架,運行工具鏈腳本,Windows,Linux,macOS下均可以開發,新手配置略顯復雜,但代碼效率最高;
在VSCode下添加ESP-IDF插件,跟第二種一樣,但可以一鍵配置好環境,編譯工具什么的都會自動安裝好,體驗還是不錯的,產品級別的ESP32推薦此方式開發;
microPython方式開發,類似Arduino的開發方式,大部分語法都能跟Python兼容;
AT命令開發方式。
這里我們選擇用Arduino的方式開發(后續會介紹VSCode下添加ESP-IDF插件的開發),Arduino core for the ESP32是樂鑫官方主導開發維護的,看到這里可能有部分同學要批我,為啥還用Arduino這么“low”的開發方式,有一些骨子里不太看得起Arduino,其實Arduino這些年發展非常好,效率雖然比傳統開發可能會慢一丟丟,但是在這么強的芯片性能下基本上可以忽略了,還有一些說底層屏蔽了太多的東西,看不到實際的寄存器操作,其實用官方SDK開發也不是一樣,都是在調庫,當我們想了解實際怎么控制的,同樣的可以打開庫,去看庫是怎么實現的。最最重點的一點,Arduino有很多很多優秀的庫,非常方便我們做一些小制作。
接下來進入正式的開發,完全沒Arduino基礎的,先自行學習一下。
1、ESP32介紹ESP32 芯片是由樂鑫公司繼 ESP8266 芯片后推出的又一款集成 WiFi/BLE 功能的微控制器。性能比 ESP8266 更加強大,ESP32 芯片或模組具有下列特點:

功能框圖:

引腳圖,初期開發我們就用ESP32-DevKit開發板,便宜好用。

Arduino軟件安裝,下載Arduino IDE并安裝,當然也可以用其它編輯器,VSCode + PlatformIO IDE插件等方式,這個后續介紹。https://www.arduino.cc/en/software
Arduino IDE中添加對應開發板,在文件->首選項->附加開發板管理****中,添加ESP32的管理****:https://dl.espressif.com/dl/package_esp32_index.json

添加開發板,在工具->開發板->開發板管理中,搜索esp32,如下圖所示,安裝Arduino core for esp32,過程可能比較慢,也可能需要科學上網才能安裝好

然后選擇中對應的開發板,我們可以看到這里有很多不同的ESP32開發板,這里選擇ESP32 Dev Module就可以了

void setup() { Serial.begin(115200); Serial.println(""); }void loop() { Serial.println("Hello World!"); Serial.println("This is my first esp32 code!"); delay(1000); }
非常非常簡單,默認已經引用了ESP32的頭文件,通過Serial.begin(115200);初始化串口波特率之后,就可以通過Serial.println();打印輸出了。
選中對應串口并點擊編譯下載

通過串口觀察實際效果

今天我們先介紹到這里,先有個大概的感覺,后面我們會一一介紹ESP32的外設,然后分享很多好玩有趣的物聯網項目,敬請期待!
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。