博客專欄

EEPW首頁(yè) > 博客 > 老宇哥帶你玩轉(zhuǎn)ESP32:01入門(mén)介紹

老宇哥帶你玩轉(zhuǎn)ESP32:01入門(mén)介紹

發(fā)布人:芯片之大家 時(shí)間:2023-07-06 來(lái)源:工程師 發(fā)布文章
image.png


接觸物聯(lián)網(wǎng)差不多10年了。

先跟大家聊聊,老宇哥11年進(jìn)入大學(xué),大一就在實(shí)驗(yàn)室開(kāi)始了電子研發(fā),記得那時(shí)候師兄介紹我買(mǎi)了一塊郭天祥老師的51開(kāi)發(fā)板,還有配套的一本書(shū),雖然從小非常喜歡電子,經(jīng)常折騰,有一些硬件相關(guān)知識(shí),但是軟件可是從來(lái)沒(méi)接觸過(guò),看到第一行代碼就懵逼了,這是啥?

后來(lái)問(wèn)隔壁師兄,師兄很耐心,跟我簡(jiǎn)單講解了一下,然后讓我看一本C語(yǔ)言的書(shū),說(shuō)先簡(jiǎn)單看一看,不用看的很深,邊看邊學(xué),就這樣,在無(wú)數(shù)次的逃課以及晚上挑燈奮斗之后,我成功點(diǎn)亮第一個(gè)燈了,那時(shí)候的興奮無(wú)以言表。郭老師的那本神作通俗易懂,我也是激動(dòng)的做一個(gè)個(gè)的小實(shí)驗(yàn),邊學(xué)邊補(bǔ)充,遇到不懂的先查資料,實(shí)在不會(huì)的,就跟實(shí)驗(yàn)室的伙伴們討論,那時(shí)候的求知欲非常強(qiáng)烈,實(shí)驗(yàn)室也是經(jīng)常呆到晚上10點(diǎn)之后,慢慢的小小的入門(mén)了。

后來(lái)大二參加比賽,第一個(gè)應(yīng)該是合泰杯吧,比賽要求必須要用合泰的芯片開(kāi)發(fā),當(dāng)時(shí)拿到幾個(gè)合泰的開(kāi)發(fā)板,開(kāi)始也是不知所措,我只用過(guò)51呀,這芯片怎么開(kāi)發(fā)?后來(lái)也是跟伙伴們討論交流,安裝對(duì)應(yīng)的開(kāi)發(fā)環(huán)境,驅(qū)動(dòng),跑第一個(gè)點(diǎn)燈例程,簡(jiǎn)單熟悉串口,定時(shí)器等外設(shè),再添加自己的邏輯。

image.png


當(dāng)時(shí)做了一個(gè)WiFi智能排插,也是我做的第一個(gè)智能家居類(lèi)小制作,當(dāng)時(shí)的條件并不像現(xiàn)在這么高級(jí),我自己做硬件以及嵌入式軟件這邊,找同學(xué)介紹了一個(gè)計(jì)算機(jī)學(xué)院的同學(xué),做APP的開(kāi)發(fā),還有一個(gè)用java簡(jiǎn)單做了一個(gè)小服務(wù)器,用于數(shù)據(jù)轉(zhuǎn)發(fā),然后開(kāi)始惡補(bǔ)網(wǎng)絡(luò)方便的一些知識(shí),什么路由器,TCP,UDP,WiFi模塊,端口映射、內(nèi)網(wǎng)穿透什么的,用有人的WiFi模塊,花生殼做的內(nèi)網(wǎng)穿透,也是實(shí)現(xiàn)了簡(jiǎn)單的遠(yuǎn)程以及局域網(wǎng)控制,不過(guò)最后只拿了一個(gè)三等獎(jiǎng)。

從這開(kāi)始,基本上都很關(guān)注物聯(lián)網(wǎng)行業(yè),到現(xiàn)在從事做家電相關(guān)產(chǎn)品,一直都是圍繞物聯(lián)網(wǎng)相關(guān)在做。

關(guān)于做產(chǎn)品或者是小制作,從方案角度,一般有以下幾種:

  • 用一些開(kāi)源硬件平臺(tái),類(lèi)似Arduino,樹(shù)莓派等,網(wǎng)上學(xué)習(xí)資料,各種庫(kù),開(kāi)源項(xiàng)目非常多,簡(jiǎn)單易懂,但是靈活性、效率沒(méi)那么高,創(chuàng)客們用的多;

  • 用51,STM8,MSP430,STM32等單片機(jī),最接地氣的方式,可以深入控制到寄存器,MCU品牌,資料也是非常多,原子,野火等開(kāi)發(fā)板都非常不錯(cuò),簡(jiǎn)單點(diǎn)的裸機(jī)開(kāi)發(fā)即可,結(jié)合一些嵌入式的實(shí)時(shí)操作系統(tǒng),F(xiàn)reeRTOS、UCOS、RTT等,可以做一些復(fù)雜點(diǎn)的項(xiàng)目;

  • 用Linux或者FPGA開(kāi)發(fā),有一些要求高的項(xiàng)目,單片機(jī)等滿足不了,例如做一些高級(jí)的顯示,工控板,復(fù)雜的應(yīng)用等,門(mén)檻比較高,韋東山,原子,野火,朱友鵬老師等都有出了一些非常好的教程,真正深入進(jìn)去,才能體會(huì)到Linux的博大精深。

image.png


老宇哥打算寫(xiě)一些基礎(chǔ)的文章,跟大家一起做一些好玩有趣的項(xiàng)目,ESP8266,ESP32等樂(lè)鑫推出的芯片深受?chē)?guó)內(nèi)外愛(ài)好者的喜歡,業(yè)內(nèi)人士應(yīng)該沒(méi)多少人沒(méi)聽(tīng)過(guò)ESP8266,我們本次選用ESP32系列的模塊進(jìn)行開(kāi)發(fā),以最簡(jiǎn)單的方式給大家展示。

關(guān)于ESP32的開(kāi)發(fā),有幾種開(kāi)發(fā)方式:

  • Arduino方式開(kāi)發(fā),得益于簡(jiǎn)單易上手的體驗(yàn),Arduino無(wú)疑成為最成功的開(kāi)源硬件平臺(tái)之一,結(jié)合眾多的開(kāi)源庫(kù),可玩性非常非常高

  • Espressif IDF,這是樂(lè)鑫官方的原生開(kāi)發(fā)方式,設(shè)置工具鏈,自己安裝CMake Ninja編譯構(gòu)建工具,獲取ESP-IDF軟件開(kāi)發(fā)框架,運(yùn)行工具鏈腳本,Windows,Linux,macOS下均可以開(kāi)發(fā),新手配置略顯復(fù)雜,但代碼效率最高;

  • 在VSCode下添加ESP-IDF插件,跟第二種一樣,但可以一鍵配置好環(huán)境,編譯工具什么的都會(huì)自動(dòng)安裝好,體驗(yàn)還是不錯(cuò)的,產(chǎn)品級(jí)別的ESP32推薦此方式開(kāi)發(fā);

  • microPython方式開(kāi)發(fā),類(lèi)似Arduino的開(kāi)發(fā)方式,大部分語(yǔ)法都能跟Python兼容;

  • AT命令開(kāi)發(fā)方式。

這里我們選擇用Arduino的方式開(kāi)發(fā)(后續(xù)會(huì)介紹VSCode下添加ESP-IDF插件的開(kāi)發(fā)),Arduino core for the ESP32是樂(lè)鑫官方主導(dǎo)開(kāi)發(fā)維護(hù)的,看到這里可能有部分同學(xué)要批我,為啥還用Arduino這么“l(fā)ow”的開(kāi)發(fā)方式,有一些骨子里不太看得起Arduino,其實(shí)Arduino這些年發(fā)展非常好,效率雖然比傳統(tǒng)開(kāi)發(fā)可能會(huì)慢一丟丟,但是在這么強(qiáng)的芯片性能下基本上可以忽略了,還有一些說(shuō)底層屏蔽了太多的東西,看不到實(shí)際的寄存器操作,其實(shí)用官方SDK開(kāi)發(fā)也不是一樣,都是在調(diào)庫(kù),當(dāng)我們想了解實(shí)際怎么控制的,同樣的可以打開(kāi)庫(kù),去看庫(kù)是怎么實(shí)現(xiàn)的。最最重點(diǎn)的一點(diǎn),Arduino有很多很多優(yōu)秀的庫(kù),非常方便我們做一些小制作。

接下來(lái)進(jìn)入正式的開(kāi)發(fā),完全沒(méi)Arduino基礎(chǔ)的,先自行學(xué)習(xí)一下。

1、ESP32介紹

ESP32 芯片是由樂(lè)鑫公司繼 ESP8266 芯片后推出的又一款集成 WiFi/BLE 功能的微控制器。性能比 ESP8266 更加強(qiáng)大,ESP32 芯片或模組具有下列特點(diǎn):

image.png


功能框圖:

image.png


引腳圖,初期開(kāi)發(fā)我們就用ESP32-DevKit開(kāi)發(fā)板,便宜好用。

image.png


2、開(kāi)發(fā)環(huán)境搭建
  • Arduino軟件安裝,下載Arduino IDE并安裝,當(dāng)然也可以用其它編輯器,VSCode + PlatformIO IDE插件等方式,這個(gè)后續(xù)介紹。https://www.arduino.cc/en/software

  • Arduino IDE中添加對(duì)應(yīng)開(kāi)發(fā)板,在文件->首選項(xiàng)->附加開(kāi)發(fā)板管理****中,添加ESP32的管理****:https://dl.espressif.com/dl/package_esp32_index.json

image.png


  • 添加開(kāi)發(fā)板,在工具->開(kāi)發(fā)板->開(kāi)發(fā)板管理中,搜索esp32,如下圖所示,安裝Arduino core for esp32,過(guò)程可能比較慢,也可能需要科學(xué)上網(wǎng)才能安裝好

image.png


  • 然后選擇中對(duì)應(yīng)的開(kāi)發(fā)板,我們可以看到這里有很多不同的ESP32開(kāi)發(fā)板,這里選擇ESP32 Dev Module就可以了

image.png


3、程序測(cè)試
void setup()
{  Serial.begin(115200);  Serial.println("");
}void loop()
{  Serial.println("Hello World!");  Serial.println("This is my first esp32 code!");  delay(1000);
}

非常非常簡(jiǎn)單,默認(rèn)已經(jīng)引用了ESP32的頭文件,通過(guò)Serial.begin(115200);初始化串口波特率之后,就可以通過(guò)Serial.println();打印輸出了。

選中對(duì)應(yīng)串口并點(diǎn)擊編譯下載

image.png


通過(guò)串口觀察實(shí)際效果

image.png


今天我們先介紹到這里,先有個(gè)大概的感覺(jué),后面我們會(huì)一一介紹ESP32的外設(shè),然后分享很多好玩有趣的物聯(lián)網(wǎng)項(xiàng)目,敬請(qǐng)期待!


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: 芯片

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉