博客專欄

        EEPW首頁 > 博客 > 老宇哥帶你玩轉ESP32:01入門介紹

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

        發布人:芯片之大家 時間:2023-07-06 來源:工程師 發布文章
        image.png


        接觸物聯網差不多10年了。

        先跟大家聊聊,老宇哥11年進入大學,大一就在實驗室開始了電子研發,記得那時候師兄介紹我買了一塊郭天祥老師的51開發板,還有配套的一本書,雖然從小非常喜歡電子,經常折騰,有一些硬件相關知識,但是軟件可是從來沒接觸過,看到第一行代碼就懵逼了,這是啥?

        后來問隔壁師兄,師兄很耐心,跟我簡單講解了一下,然后讓我看一本C語言的書,說先簡單看一看,不用看的很深,邊看邊學,就這樣,在無數次的逃課以及晚上挑燈奮斗之后,我成功點亮第一個燈了,那時候的興奮無以言表。郭老師的那本神作通俗易懂,我也是激動的做一個個的小實驗,邊學邊補充,遇到不懂的先查資料,實在不會的,就跟實驗室的伙伴們討論,那時候的求知欲非常強烈,實驗室也是經常呆到晚上10點之后,慢慢的小小的入門了。

        后來大二參加比賽,第一個應該是合泰杯吧,比賽要求必須要用合泰的芯片開發,當時拿到幾個合泰的開發板,開始也是不知所措,我只用過51呀,這芯片怎么開發?后來也是跟伙伴們討論交流,安裝對應的開發環境,驅動,跑第一個點燈例程,簡單熟悉串口,定時器等外設,再添加自己的邏輯。

        image.png


        當時做了一個WiFi智能排插,也是我做的第一個智能家居類小制作,當時的條件并不像現在這么高級,我自己做硬件以及嵌入式軟件這邊,找同學介紹了一個計算機學院的同學,做APP的開發,還有一個用java簡單做了一個小服務器,用于數據轉發,然后開始惡補網絡方便的一些知識,什么路由器,TCP,UDP,WiFi模塊,端口映射、內網穿透什么的,用有人的WiFi模塊,花生殼做的內網穿透,也是實現了簡單的遠程以及局域網控制,不過最后只拿了一個三等獎。

        從這開始,基本上都很關注物聯網行業,到現在從事做家電相關產品,一直都是圍繞物聯網相關在做。

        關于做產品或者是小制作,從方案角度,一般有以下幾種:

        • 用一些開源硬件平臺,類似Arduino,樹莓派等,網上學習資料,各種庫,開源項目非常多,簡單易懂,但是靈活性、效率沒那么高,創客們用的多;

        • 用51,STM8,MSP430,STM32等單片機,最接地氣的方式,可以深入控制到寄存器,MCU品牌,資料也是非常多,原子,野火等開發板都非常不錯,簡單點的裸機開發即可,結合一些嵌入式的實時操作系統,FreeRTOS、UCOS、RTT等,可以做一些復雜點的項目;

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

        image.png


        老宇哥打算寫一些基礎的文章,跟大家一起做一些好玩有趣的項目,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 芯片或模組具有下列特點:

        image.png


        功能框圖:

        image.png


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

        image.png


        2、開發環境搭建
        • Arduino軟件安裝,下載Arduino IDE并安裝,當然也可以用其它編輯器,VSCode + PlatformIO IDE插件等方式,這個后續介紹。https://www.arduino.cc/en/software

        • Arduino IDE中添加對應開發板,在文件->首選項->附加開發板管理****中,添加ESP32的管理****:https://dl.espressif.com/dl/package_esp32_index.json

        image.png


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

        image.png


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

        image.png


        3、程序測試
        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();打印輸出了。

        選中對應串口并點擊編譯下載

        image.png


        通過串口觀察實際效果

        image.png


        今天我們先介紹到這里,先有個大概的感覺,后面我們會一一介紹ESP32的外設,然后分享很多好玩有趣的物聯網項目,敬請期待!


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: 芯片

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 北流市| 定南县| 巴中市| 类乌齐县| 瑞金市| 临西县| 神池县| 时尚| 洛浦县| 汶川县| 磐石市| 固阳县| 甘泉县| 无棣县| 曲周县| 汝州市| 阜康市| 济宁市| 神池县| 微山县| 游戏| 辽阳县| 长沙县| 碌曲县| 鸡西市| 柘城县| 西安市| 定兴县| 峨边| 博野县| 辽宁省| 安阳市| 泌阳县| 惠东县| 嘉峪关市| 隆子县| 祁东县| 定远县| 朔州市| 隆德县| 潍坊市|