婷婷亚洲天堂影院-国产精品豆花视频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>
  • 国产喷水theporn| 日本激情视频在线| 国产一级免费大片| 无码人妻丰满熟妇区毛片| 国产911在线观看| 日韩视频一二三| 国产 欧美 日本| 久久人人爽人人爽人人av| 97中文字幕在线| av女优在线播放| 日韩少妇内射免费播放18禁裸乳| 蜜臀av无码一区二区三区| 国产av人人夜夜澡人人爽麻豆| 日韩精品一区在线视频| 国产91xxx| 久久婷婷国产91天堂综合精品| 免费看污黄网站| 6080国产精品| av 日韩 人妻 黑人 综合 无码| 天堂8在线天堂资源bt| 亚洲熟妇无码av在线播放| 97超碰国产精品| 亚洲自偷自拍熟女另类| 三级a在线观看| 一本二本三本亚洲码| aa视频在线播放| 一女二男3p波多野结衣| 手机看片日韩国产| 人妻有码中文字幕| 亚洲黄色片免费| www.日本少妇| 潘金莲激情呻吟欲求不满视频| 欧美美女黄色网| 亚州精品一二三区| 99视频精品全部免费看| 别急慢慢来1978如如2| 特级毛片在线免费观看| 国产精品视频一区二区三区四区五区| 爱爱爱爱免费视频| 青青草国产精品视频| 向日葵污视频在线观看| 国产一二三在线视频| 波多野结衣国产精品| 日本www在线视频| 欧美日韩亚洲国产成人| 色免费在线视频| 久久网站免费视频| 丰满的少妇愉情hd高清果冻传媒| www.com黄色片| 每日在线更新av| 日韩极品视频在线观看| 91插插插影院| 中文字幕免费高清在线| 国产日韩成人内射视频| 亚洲中文字幕无码av永久| 一区二区三区国产好的精华液| 三级4级全黄60分钟| 91视频 -- 69xx| 老太脱裤让老头玩ⅹxxxx| 成人黄色片免费| 最新视频 - x88av| 午夜免费福利网站| 日韩精品你懂的| www.涩涩涩| 三级在线视频观看| 国产九九在线观看| 99re精彩视频| www.久久久久久久久久久| 少妇一级淫免费播放| 美女在线视频一区二区| 国产原创精品在线| 99精品视频国产| 久久精品国产露脸对白| 午夜免费一级片| 黄色a级在线观看| 国内自拍中文字幕| 美脚丝袜脚交一区二区| 亚洲精品蜜桃久久久久久| 奇米影视亚洲色图| 欧美 日韩精品| 99sesese| 国产精品videossex国产高清 | 亚洲精品国产suv一区88| 青青青在线视频播放| 欧美日韩亚洲第一| 天堂av2020| 亚洲精品天堂成人片av在线播放 | 日韩少妇内射免费播放| 国产精品亚洲二区在线观看| 久久99999| 女人色极品影院| 国产免费视频传媒| 欧美精品一区二区性色a+v| 91午夜在线观看| 天堂中文视频在线| 成人短视频在线观看免费| 免费看的黄色大片| 网站在线你懂的| 色综合久久久久无码专区| 911福利视频| 亚欧无线一线二线三线区别| 黄色在线视频网| 欧美一级欧美一级| 欧美性受xxxxxx黑人xyx性爽| 在线观看污视频| 日本高清久久久| av免费播放网址| 欧美日韩视频免费| 手机av在线免费| 国产男女无遮挡| 成人免费视频91| 国产成人免费高清视频| 免费看污污网站| 亚洲午夜无码av毛片久久| 青青草影院在线观看| 欧美美女性视频| 香蕉视频网站入口| 日本三级免费网站| 成人短视频在线观看免费| а 天堂 在线| 国产欧美一区二| 国产 porn| jizz欧美激情18| 国产精品无码av无码| 黄色av网址在线播放| 日韩欧美一级在线| 9色视频在线观看| 红桃视频一区二区三区免费| 色悠悠久久综合网| 看欧美ab黄色大片视频免费| 任你操这里只有精品| 免费在线激情视频| 青青草原av在线播放| 欧美精品色婷婷五月综合| 一区二区传媒有限公司| 水蜜桃色314在线观看| 成人网站免费观看入口| 国产午夜福利在线播放| 日韩精品 欧美| 成人免费无码av| 在线观看日本一区二区| 爱爱爱视频网站| 男女啪啪免费观看| 男人天堂a在线| 韩国日本在线视频| 黄大色黄女片18第一次| 日韩av加勒比| 亚洲精品天堂成人片av在线播放| 菠萝蜜视频在线观看入口| 国产a级片网站| 99免费视频观看| 二级片在线观看| 免费欧美一级视频| 少妇网站在线观看| 在线观看免费黄色片| www.在线观看av| 亚洲欧美另类动漫| 公共露出暴露狂另类av| 色综合久久久久无码专区| 国产福利影院在线观看| 在线播放 亚洲| 日韩免费毛片视频| 欧美精品一区二区性色a+v| 无码精品a∨在线观看中文| 潘金莲激情呻吟欲求不满视频| 久久久99精品视频| 成人性做爰aaa片免费看不忠| 青少年xxxxx性开放hg| 美女福利视频在线| japanese在线视频| 天天影视综合色| av在线观看地址| 国内av一区二区| 男女爽爽爽视频| 日韩人妻无码精品久久久不卡| 亚洲综合欧美在线| 欧美三级一级片| 黄色三级中文字幕| 中文字幕免费高清在线| av在线播放亚洲| 在线观看17c| 污免费在线观看| 91小视频在线播放| 亚洲一区二区蜜桃| 亚洲中文字幕无码中文字| 日韩视频在线观看视频| 午夜啪啪小视频| 超碰超碰在线观看| 无人在线观看的免费高清视频| 国产精品12345| www插插插无码免费视频网站| 日本成人xxx| 在线无限看免费粉色视频| 91av视频免费观看| 欧美在线aaa| 亚洲综合av在线播放| 天堂在线资源视频| 日本888xxxx| 亚洲另类第一页| 九九九久久久久久久|