婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 嵌入式系統 >> ESP32 >> 正文

ESP32開發:從入門到精通的全面指南,ESP32入門及Arduino使用教程

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2023/9/5

ESP32開發:從入門到精通的全面指南

ESP32 是一款功能強大的微控制器,它可以幫助開發者構建各種物聯網(IoT)應用。ESP32 擁有 WiFi 和藍牙無線連接功能,并且可以輕松地與各種傳感器和設備進行通信。本文將介紹 ESP32 的基本知識和常用開發工具,以及如何開始 ESP32 的開發。

第一部分:ESP32 入門

ESP32 是一款基于 Xtensa® 雙核 32 位處理器的微控制器,它支持 WiFi 和藍牙無線連接,具有低功耗和高性能。ESP32 還擁有大量的 GPIO 引腳,可以輕松連接各種外部設備。要開始使用 ESP32 進行開發,您需要一些基本知識:

  1. 熟悉 C/C++ 編程語言。

  2. 了解電子電路和傳感器的基本知識。

  3. 掌握基本的無線網絡知識,包括 WiFi 和藍牙。

第二部分:ESP32 開發工具

為了開始 ESP32 開發,您需要準備一些必要的開發工具:

  1. ESP-IDF 開發框架:這是 ESP32 官方開發框架,提供了許多開發工具和示例代碼。

  2. Eclipse IDE:這是一款功能強大的集成開發環境,可以幫助您更輕松地編寫代碼和調試應用程序。

  3. Arduino IDE:如果您熟悉 Arduino 開發,可以使用 Arduino IDE 來編寫 ESP32 應用程序。

  4. Git:這是一款版本控制工具,可以幫助您更好地管理代碼。

第三部分:ESP32 開發示例

為了更好地了解如何使用 ESP32 進行開發,我們將介紹一些常用的 ESP32 開發示例:

  1. WiFi 連接:ESP32 可以輕松連接到 WiFi 網絡。您可以使用 ESP-IDF 提供的 WiFi 示例代碼來開始連接 WiFi。

  2. 藍牙連接:ESP32 還支持藍牙連接。您可以使用 ESP-IDF 提供的藍牙示例代碼來開始使用藍牙。

  3. 傳感器連接:ESP32 可以輕松連接各種傳感器和設備。您可以使用 ESP-IDF 提供的傳感器示例代碼來開始連接傳感器。

第四部分:ESP32 項目示例

為了更好地了解如何使用 ESP32 構建項目,我們將介紹一些常見的 ESP32 項目示例:

  1. 智能家居控制器

ESP32 可以用于開發智能家居控制器,通過 WiFi 連接到智能家居設備并控制其功能,比如燈光、電視和音響等。用戶可以通過手機應用程序遠程控制設備,實現智能化控制。

  1. 溫度監控系統

ESP32 可以用于監測溫度,通過連接溫度傳感器并將數據傳輸到云端進行分析,從而實現溫度監測。這種系統可以用于監測房間、冰箱或者實驗室中的溫度。

  1. 智能農業系統

ESP32 可以用于開發智能農業系統,通過連接各種傳感器,比如土壤濕度、光照和氣壓等,收集農田數據,并將這些數據發送到云端進行分析。這樣,農民可以了解土壤、水分和氣候狀況,從而更好地管理農田和提高作物產量。

  1. 智能健身設備

ESP32 可以用于開發智能健身設備,通過連接傳感器來監測心率、運動量和睡眠質量等指標,并將這些數據傳輸到手機應用程序,從而幫助用戶更好地管理健康和健身計劃。

總結:

ESP32 是一款非常強大的芯片,可以用于開發各種各樣的項目。它具有低功耗、多協議、高性能和豐富的外設等特點。如果您正在尋找一個靈活、可擴展和易于使用的開發板,ESP32 是一個不錯的選擇。


在前面的文章中,簡單地介紹了ESP32開發板和開發環境,從本文開始,正式進入ESP32的開發,如果你對于編程方面并沒有經驗也沒問題,開始可以復制粘貼代碼來嘗試著使用你的開發板。文章也會盡量少用專業術語或艱澀難懂的語氣來介紹ESP32的開發。

首先,每個人所購買的開發板可能不盡相同,開發板有不同的版本,也存在個人或廠家設計開發的異形開發板,從指甲蓋大小到模塊化的,從十多塊到上百塊的。如果入門學習的話,個人的建議是購買時注意該商品的評價就好了,同時,因為有的版本可能是沒有WIFI或藍牙模塊的。學習該開發板大多也是因為針對物聯網方面的開發,所以,最好是購買帶有WIFI和藍牙模塊的。對于芯片的選擇在學習階段并沒有太大的影響,比較新的版本也許只是在運行效率之類的性能加強了,正式開發時,再選擇性能更好更強的也不遲。

經過前面的文章,本文默認看到這里的已經安裝好arduino IDE和開發板支持了。該開發環境打開后,基本就是一個類似記事本的編輯器。

 

這里最重要的就是代碼編輯區了,所有有代碼需要在這里進行編輯設計,代碼設計完成后,可以點擊編譯來測試是否出現錯誤代碼,當出現錯誤代碼時,會在信息反饋區給于提示,并在編輯區把可能錯誤的代碼行顯示為紅底,大多數情況下,出錯的代碼會出現在紅底文字行的提示附近。具體的錯誤,還需要配合信息的反饋來確定。

 

以上圖為例 ,以上的代碼錯誤提示顯示在第3行,但是真正的錯誤是在第2行,在使用arduino IDE中開發,使用的是C語言來進行開發,C語言的一個規則是每一個完整的代碼語句需要用一個引號(;)來代表這一句代碼的結束,在第2行的代碼(int a)在結尾缺少了結束的引號(;),所以導致編譯的出錯。

 

在如上圖的代碼中原本正常可以寫在一行的代碼被分開寫在二行,但編譯依然能正常通過。但強烈建議你不要這樣做,這里只是做為說明在arduino IDE開發時,很多語句可以這樣做,但會造成代碼的可讀性變差。

在以后的開發中,有的情況下利用這個規則也可以讓你的代碼更具有可讀性。

下面,我們可以開始寫我們的代碼了,我們從最基礎的開始,寫一個兩個數相加并得到結果的代碼。

void setup() {            //這句我們可以先不管,之后會詳細介紹
  int a = 1;
  int b = 2;
  int c = a + b;
}                        //這個括號也先不管,之后會詳細介紹
//這里后面的代碼也會在以后詳細介紹
void loop() {
}

在寫完這幾句代碼后,其實已經寫好了一個可以運行的程序了。這個程序的作用是計算1+2的結果,如果運行正確,我們應該得到計算的結果3,這里先詳細解說一下這段代碼的第2、3、4行。我們把它們拿出來解釋一下:

  int a = 1;
  int b = 2;
  int c = a + b;

第1句:int a = 1;

"int" :

對變量的數據類型進行定義,可選的類型還有比如: "char","float","double","long"等,當然,如果有必要也可以自已定義變量的類型。C語言開發中,數據類型的概念是非常重要的知識點。

那么,為什么要對不同的數據進行不同的類型定義呢,這里要先介紹內存的基本概念,我們可以把內存想象成像作文本一樣的一個個格子。每個格子只可以寫一個字,在內存里,我們把每個格式用一個單位:"字節(byte)"來表示,和作文本一樣,格子是有限的,內存也是有限的。

為了節省,也為了方便管理,用正確的類型來定義變量是比較重要的。因為每種數據類型放到內存中,需要的格子數量是不一樣的。比如上面的代碼中所用的數據類型"int",每定義一個"int"類型的數據,需要占用4個格子,也就是占用4個字節,那么就需要電腦在內存的格子里給這個數據保留4個字節的內存。所以,比如在第1句代碼"int a = 1;"中,等于是我們通知電腦,給我保留4個字節內存,并把數字"1"保存在這4個字節的內存中。當然,我們會想,只保存一個數字"1",為什么需要4個格子。這里要說明一下"int"或其它數據類型的大小范圍,"int"類型的數據可以保存從-2,147,483,648 到 2,147,483,647的數字,總范圍是4,294,967,295,為什么是這么奇怪的一個數字。我們用電腦的計算機的程序員模式來查看一下這個值:

 

可以看到,當這個值轉換為16進制時,值為FFFFFFFF,為2進制時,值為1111 1111 1111 1111 1111 1111 1111 1111,F在,是不是感覺4個字節可能寫不下一個"int"了,不然,因為每個字節的內存可以保存的最大值并不是F或1111,而是每個字節的內存可以保存FF或1111 1111?吹竭@里,大多人已經開始凌亂,因為,雖然我們說作文本的一個格子只可以寫一個字,但電腦中的內存定義每個字節里可以有8個位(bit),相當于作文本的每個格子可以寫筆劃數量為8的字。位(bit),才是計算機中最小的單位。8位(bit) = 1字節(byte)。說到為什么是8位(bit)等于1字節(byte),原因主要是當年創造計算機的并非中國人吧。詳細大家可以自行搜索了解一下。

"a" :

變量名,變量的名稱可以自定義,但有一些固定的規則,比如一些系統保留的字和用數字開頭,一部份特殊符號不能作為變量名或不能作為變量名的一部份。變量本身并不占用內存,變量名可以理解為一個代號,這個代號今天可以指代張三,明天可以指代李四。變量名稱的引入,可以讓人類用比較直觀地管理一些數據或理解這個數據的作用,比如,我們有一個數據35874,我們要把這個數據和另一個數據68794相加。數據并不大,花點時間還是能記住的,但如果我們用一個名稱來分別指代這兩個數據,如:data1和data2,是不是能很直觀地理解這個數據的作用了。

"= 1 ;":

等號,在這里的這個等號,并非數學中的等號,在C語言中,等號(=)稱為賦值運算符,他的作用是告訴計算機,該變量指代的數據改變為當前提供的數據(本例中為1),等號(=)右邊的值即為左邊變量名所指代的數據。在后續的使用中,只要該變量名未被重新賦值,當使用該變量時,就可以說是相當于使用該變量所指代的數據。最后的分號(;)在之前已經介紹過了,定義一句(并非一行)語句的結束。

第二句可以參考第一句的解釋。

第三句 int c = a + b;

這句代碼和第一句以及第二句有小許區別。

在賦值運算符后面是一個算式: "a + b",不用懷疑,他就是數學里的一個加法算術,但這個加法算的并非數字,怎么能得到結果呢,這里的a和b就是之前所定義的變量名,所以在這里,我們可以把這兩個變量所指代的數據代入該算術里,a指代的是數字1,b指代的是數字2,那么這個算術相當于是"1+2",最后,計算機會把這個算術的結果通過賦值運算符(=)賦值給c這個變量。

如何觀察程序運行狀態

現在,可以點擊編譯并上傳我們的代碼了,如果你是第一次使用ESP32,先要用數據線把計算機和ESP32進行連接,有的版本可能需要安裝驅動。連接后,如果你的電腦系統是win10,右鍵點擊些電腦,點擊管理,找到設置管理器,在右邊找到端口(COM和LPT),點擊它前面的小箭頭,展開可以看到你的通信端口的數量和名稱。如果你的電腦沒有連接過多的串口通信設備,應該能看到一到兩個通信的設備。大部份情況下,端口號(比如COM3)最高的那個就是你的ESP32設備。如果設備過多或并不確定可以斷開它們的連接,看是否有端口連接消失,重新連接又再次出現的應該就是你的ESP32設備了。記住它的端口號(比如COM3),回到arduino IDE,點擊工具菜單,找到端口:COM1(也許為空),在子菜單里選擇你的ESP32端口號(比如COM3)。

如果通過之前的文章正確的安裝了ESP32支持,點擊工具菜單,找到開發板:

 

如果安裝正確,會出現ESP32字樣的菜單,如果不確定你購買的是哪個開發板,可以觀察你的ESP32的芯片上的文字來查看比較對應的來設置。如果實在不知道怎么選擇,某寶店家里也很多高手的。

完成以上設置后,就可以點擊編譯并上傳了。

可以發現當這個程序上傳到你的ESP32上運行時,只是使用了ESP32上的一些內存,我們看不到運行后有任何的變化,又或許他根本就沒有運行。所以,我們需要一個能直觀地看到程序的確有在運行的方法。

我們的ESP32大部份不會有屏幕,聲光模塊,所以,大部份情況下,需要觀察代碼的運行情況,我們需要他把運行的情況發送到計算機上方便我們調試或查看測試運行的情況。所以,我們需要增加一些代碼來實現。

 

先點擊右上角放大鏡樣子的按鈕,打開串號監視器窗口。查看右下角的當前波特率(這里是9600波特率)設置,或設置成你喜歡的波特率,記下來。先別關閉該窗口,回到編輯窗口,完善代碼

void setup() {            //這句我們可以先不管,之后會詳細介紹
  Serial.begin(9600);     //初始化串口通信
  int a = 1;
  int b = 2;
  int c = a + b;
  Serial.print(c);        //把變量c的數據發送到串口監視窗口
}                         //這個括號也先不管,之后會詳細介紹
//這里后面的代碼也會在以后詳細介紹
void loop() {
 
}

這里增加了兩句代碼,第一句作用是初始化串口通信,至于為什么要初始化這個東西,難道電腦不會自動初始化嗎,請記住,ESP32或者計算機不會做你沒有通知它要做的事。

第二句的作用是把c這個變量所指代的數據發送到串口監視窗口,現在姑且這么說。串口通信是一種通信的協議,就是一種用規定的信號來發送或接收信息的一種規則,所有的通信(包括有線或無線:如摩斯碼通信,電腦上網的通信,電視的遙控器)都有相應的協議來進行通信,這里就不展開來說了,我們大部份情況下只要知道這句代碼可以實現這個功能就可以了。

現在,我們再把代碼上傳,同時要注意觀察串口監視窗口,如果代碼沒有出錯并成功上傳運行,我們應該可以在串口監視器里看到一個數字3在窗口里顯示出來。

 

如果并未出現,不要著急,只要確定上傳成功,出現類似的文字

 

我們可以按一下ESP32上的重啟按鈕來重啟ESP32,在重啟過程中,注意不要過于晃動設備,以免連線接觸不斷開與計算機的連接,同時保持觀察串口監視窗口。

最后,祝大家成功

在之后的文章會繼續詳細地介紹關于ESP32的更多基礎入門知識

Tags:ESP32開發,ESP32,入門,開發  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章:
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    推薦文章
    • 此欄目下沒有推薦文章
    最新推薦
    熱門文章
    • 此欄目下沒有熱點文章
    關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢
    婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
    <button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • aⅴ在线免费观看| 九九九九九九九九| 中文字幕黄色大片| 免费在线观看的av网站| 超碰10000| 欧美日韩中文不卡| 无码人妻精品一区二区三区66| 一区二区三区四区免费观看| 少妇性l交大片| 国产中文字幕二区| 2019日韩中文字幕mv| 91视频福利网| 亚洲一区精品视频在线观看| 免费激情视频在线观看| 国产白丝袜美女久久久久| 成人在线免费高清视频| 亚洲一二区在线观看| 在线观看高清免费视频| 成人性做爰aaa片免费看不忠| 91好吊色国产欧美日韩在线| 加勒比成人在线| cao在线观看| 天天夜碰日日摸日日澡性色av| 日韩人妻精品一区二区三区| 想看黄色一级片| 亚洲热在线视频| 久久av秘一区二区三区| 色乱码一区二区三区熟女| 日韩国产精品毛片| 美女黄色片网站| 免费的一级黄色片| 日韩黄色短视频| 成年人视频网站免费观看| 国产主播在线看| 少妇一级淫免费放| 天天干天天色天天干| 久久久久久久免费视频| www.亚洲视频.com| 777久久久精品一区二区三区| 成年人观看网站| 美女网站视频黄色| 欧美日韩久久婷婷| 农民人伦一区二区三区| 欧美综合在线观看视频| 中文字幕在线综合| 97av中文字幕| 国产免费人做人爱午夜视频| 成人日韩在线视频| 久久久久久www| 天堂在线资源视频| 日韩在线观看a| 日本男人操女人| 精品嫩模一区二区三区| 国产二区视频在线播放| 日韩av自拍偷拍| 成人黄色大片网站| www.激情小说.com| 久久亚洲a v| 亚洲天堂2018av| 99视频在线免费播放| 一本岛在线视频| 欧美 日韩 亚洲 一区| 欧美成人乱码一二三四区免费| 亚洲国产一二三精品无码| 国产一区视频免费观看| 青青青在线观看视频| 污污的网站18| 日韩免费一级视频| 91精品国产毛片武则天| 黄色手机在线视频| av观看免费在线| 国产一区 在线播放| 亚洲综合伊人久久| 久久久久久久久久久久91| 分分操这里只有精品| 夜夜爽久久精品91| wwwwwxxxx日本| 日韩avxxx| 日韩免费视频播放| 日本老太婆做爰视频| 在线观看日本www| 自拍偷拍一区二区三区四区 | gogogo高清免费观看在线视频| 成人免费观看cn| 嫩草影院中文字幕| 成人短视频在线观看免费| 欧美午夜精品理论片| a在线观看免费视频| 一区二区三区视频在线观看免费| 欧美精品一区免费| 国内精品视频一区二区三区| 日韩精品一区二区三区电影| 日韩欧美国产片| 加勒比av中文字幕| 亚洲免费黄色网| 亚洲精品国产一区二区三区| 中文字幕在线视频精品| 国产精品区在线| 污污的视频免费| 国产永久免费网站| 丰满女人性猛交| 国产精品自拍合集| 欧美视频在线观看视频| 人妻无码久久一区二区三区免费| 国产 欧美 日韩 一区| 国产精品久久久久久久乖乖| 亚洲熟妇国产熟妇肥婆| 国产v亚洲v天堂无码久久久| 日韩视频在线免费看| 伊人网在线综合| 超薄肉色丝袜足j调教99| 日本一级黄视频| 2022亚洲天堂| 一级淫片在线观看| 女人色极品影院| 黄色动漫在线免费看| 五月天亚洲视频| 老司机午夜网站| 欧美深夜福利视频| 色啦啦av综合| 日本人体一区二区| 无人在线观看的免费高清视频 | 亚洲综合激情五月| 美脚丝袜脚交一区二区| 免费在线观看毛片网站| 黄色a级三级三级三级| 欧美视频在线第一页| 精品久久久噜噜噜噜久久图片 | 欧洲xxxxx| 无码aⅴ精品一区二区三区浪潮| 一女二男3p波多野结衣| 日本福利视频网站| 性欧美videossex精品| 99er在线视频| wwww.国产| 久久久久久久午夜| 可以免费看的黄色网址| 成人免费视频91| 黄色一级视频播放| 国产一二三区av| 成年人免费在线播放| 黄色网zhan| 欧美一级小视频| 日本www高清视频| 人人干视频在线| 欧美日韩一级在线| 亚洲另类第一页| 东京热加勒比无码少妇| 黄色一级片在线看| 91精品国产吴梦梦| 污免费在线观看| 另类小说色综合| 国产一区视频免费观看| 鲁一鲁一鲁一鲁一澡| 国产精品一色哟哟| 成人短视频在线看| 91精产国品一二三产区别沈先生| 日韩无套无码精品| 国产l精品国产亚洲区久久| 17c丨国产丨精品视频| 警花观音坐莲激情销魂小说| 三级黄色片播放| 在线视频观看一区二区| 亚洲天堂伊人网| 日本高清免费在线视频| 一级网站在线观看| 91欧美一区二区三区| 亚洲美女爱爱视频| 亚洲五月激情网| 手机精品视频在线| 中文字幕在线视频一区二区| 午夜精品免费看| 中文字幕av久久| 日韩中文字幕亚洲精品欧美| 福利网在线观看| 国产xxxx振车| 能在线观看的av| 欧美性猛交xxx乱久交| 日本不卡一区在线| 青娱乐国产精品视频| 国产欧美综合一区| 日韩欧美一级在线| 久久综合久久久久| 成人免费观看视频在线观看| 亚洲成人av免费看| 国产精品自在自线| 成人国产在线看| www.国产区| 久久精品国产精品亚洲精品色| 国产911在线观看| 动漫av网站免费观看| 三上悠亚在线一区二区| 97超碰人人看| 北条麻妃在线视频观看| 久久黄色片网站| 久久亚洲精品无码va白人极品| 大肉大捧一进一出好爽动态图| 97人人爽人人| www.-级毛片线天内射视视| 你真棒插曲来救救我在线观看|