ESP32S2 與 ESP32 開發方式對比,帶你入門環境搭建

2021-12-25 電子芯吧客

    安信可ESP-12K模塊採用的是樂鑫ESP32-S2晶片,"閹割版ESP32"雖然去掉了藍牙,但依然比 ESP8266 性能更強,有43個可編程 GPIO。模組特性如下:

完整的 802.11b/g/n Wi-Fi SoC 模塊,數據速率高達 150Mbps;內置 ESP32-S2 晶片,Xtensa® 單核 32 位 LX7 微處理器,支持高達 240 MHz 的時鐘頻率,擁有 128KB ROM,320KB SRAM,16KB RTC SRAM;支持 UART/GPIO/ADC/PWM/SPI/I2C/LCD/I2S/Camera/IR/USB/DAC 接口,支持觸摸傳感器、溫度傳感器、脈衝計數器;集成 Wi-Fi MAC/ BB/RF/PA/LNA;支持安卓、IOS 的 Smart Config(APP)/AirKiss(微信) 一鍵配網;
支持二次開發,集成了 Windows、Linux 開發環境

ESP8266 / ESP32 和 ESP32S2的差別一覽表

 ESP32S2 與 ESP32 開發方式對比

    由於ESP32S2 為 ESP32 的閹割版,去掉了藍牙的單核版,所以此晶片是沒有藍牙協議棧的,但是二次開發與 ESP32 類似。

    目前我們推薦使用的是 Linux 環境開發,因此本文教程也是圍繞使用 window 自帶的 Linux 子系統進行的環境搭建。當然了,你也可以用虛擬機實現!

    因此,根據下面文檔,搭建最新的 ** ESP32** 即可支持 ESP32S2 啦!

    Bash on Ubuntu on Windows 是通過 Windows Subsystem for Linux(WSL)這一 Windows 10 的最新特性實現的,使用此功能,你可以在 Windows 中原生運行 Linux 的大多數命令行程序。

    啟用 WSL 功能之後,如果使用 Bash,則 Windows 10 作業系統會下載一個由 Canonical 創建的 Ubuntu用戶模式鏡像Ubuntu user-mode image,然後 Bash 程序以及其他的 Linux 二進位程序就可以運行於該 Ubuntu 鏡像上。此外,微軟也承諾未來會提供更多 Linux 發行版以供選擇。

    Bash on Ubuntu on Windows 功能主要是面向於開發者,我們可以在 Windows 中使用一些 Linux 生態鏈的開發工具。

    由於這個面向的是開發者,所以安裝的window系統務必是專業版,你可以去某寶自行購買一個激活碼。

準備材料:

window 專業版,不能是家庭版 ;

window 應用商店:Microsoft store;

2.1 啟用「適用於Linux的Windows子系統(WSL)」

    通過Win10任務欄中的Cortana搜索框搜索打開「啟用或關閉Windows功能」,向下滾動列表,即可看到「適用於Linux的Windows子系統」項。

    勾選它,確定,然後按提示操作重啟系統:

2.2 啟用開發人員模式

然後進入「設置 - 更新和安全 - 針對開發人員」設置頁面,選中「開發人員模式」。如圖:

2.3 下載並安裝 Ubuntu(可通過微軟商店獲取)

    微軟後來把Ubuntu、openSUSE、SLES和Fedora分發上架到了Microsoft Store(微軟商店),你可以很方便地下載安裝這些Linux發行版。如圖:

    以下載安裝Ubuntu分發為例,點擊 Ubuntu 打開詳情頁面,然後點擊獲取。如圖:

2.4 點擊啟動:


    首次安裝,會提示您輸入帳號和密碼,務必記住!

    之後,任意地方,shift + 滑鼠右擊 --> 「在此處打開 linux shell」 ,即可連接到了 Linux;

3.1  安裝常見的軟體

     我們需要安裝幾個常用的軟體 :

sudo apt-get install vim
sudo apt install git

3.2 開始一堆依賴安裝:

sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev

3.3 【方式一】用博主提供的方式拉取最新代碼

     眾所周知,樂鑫的開放源碼都放在GitHub,而GitHub又被微軟收購了,這一年的訪問下載速度慢得烏龜一樣,哈哈!所以,我克隆一份放在了國內的碼雲網站,這樣就保證我們拉取代碼非常快!

     首先,我們先拉取源碼,先不拉取子模塊!

git clone https://gitee.com/xuhongv/esp-idf.git

     沒有拉取子模塊的是不完整的代碼,看了下子模塊源路徑是不規範的,這裡,我們再修改為碼雲上的:

記事本打開 .gitmodules ,全部替換為下面這個內容!

然後再更新子模塊 , 你會發現快的一匹 : git submodule update --init --recursive

[submodule "components/esptool_py/esptool"]
path = components/esptool_py/esptool
url = https://gitee.com/xuhongv/esptool.git

[submodule "components/bt/controller/lib"]
path = components/bt/controller/lib
url = https://gitee.com/xuhongv/esp32-bt-lib.git

[submodule "components/bootloader/subproject/components/micro-ecc/micro-ecc"]
path = components/bootloader/subproject/components/micro-ecc/micro-ecc
url = https://gitee.com/xuhongv/micro-ecc.git

[submodule "components/coap/libcoap"]
path = components/coap/libcoap
url = https://gitee.com/xuhongv/libcoap.git

[submodule "components/nghttp/nghttp2"]
path = components/nghttp/nghttp2
url = https://gitee.com/xuhongv/nghttp2.git

[submodule "components/libsodium/libsodium"]
path = components/libsodium/libsodium
url = https://gitee.com/xuhongv/libsodium.git

[submodule "components/spiffs/spiffs"]
path = components/spiffs/spiffs
url = https://gitee.com/xuhongv/spiffs.git

[submodule "components/json/cJSON"]
path = components/json/cJSON
url = https://gitee.com/xuhongv/cJSON.git

[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
url = https://gitee.com/xuhongv/mbedtls.git

[submodule "components/asio/asio"]
path = components/asio/asio
url = https://gitee.com/xuhongv/asio.git

[submodule "components/expat/expat"]
path = components/expat/expat
url = https://gitee.com/xuhongv/libexpat.git

[submodule "components/lwip/lwip"]
path = components/lwip/lwip
url = https://gitee.com/xuhongv/esp-lwip.git

[submodule "components/mqtt/esp-mqtt"]
path = components/mqtt/esp-mqtt
url = https://gitee.com/xuhongv/esp-mqtt.git

[submodule "components/protobuf-c/protobuf-c"]
path = components/protobuf-c/protobuf-c
url = https://gitee.com/xuhongv/protobuf-c.git

[submodule "components/unity/unity"]
path = components/unity/unity
url = https://gitee.com/xuhongv/Unity.git

[submodule "examples/build_system/cmake/import_lib/main/lib/tinyxml2"]
path = examples/build_system/cmake/import_lib/main/lib/tinyxml2
url = https://gitee.com/xuhongv/tinyxml2.git

[submodule "components/bt/host/nimble/nimble"]
path = components/bt/host/nimble/nimble
url = https://gitee.com/xuhongv/esp-nimble.git

[submodule "components/cbor/tinycbor"]
path = components/cbor/tinycbor
url = https://gitee.com/xuhongv/tinycbor.git

[submodule "components/esp_wifi/lib"]
path = components/esp_wifi/lib
url = https://gitee.com/xuhongv/esp32-wifi-lib.git

[submodule "components/tinyusb/tinyusb"]
path = components/tinyusb/tinyusb
url = https://gitee.com/xuhongv/tinyusb.git

[submodule "examples/peripherals/secure_element/atecc608_ecdsa/components/esp-cryptoauthlib"]
path = examples/peripherals/secure_element/atecc608_ecdsa/components/esp-cryptoauthlib
url = https://gitee.com/xuhongv/esp-cryptoauthlib.git



3.4 【方式二】用官方方式拉取最新代碼

     帶子模塊遞歸方式拉取GitHub,此時需要稍等一下!

git clone https://gitee.com/xuhongv/esp-idf.git

3.5 設置 IDF_PATH 路徑

     這裡就簡單很多,就設置變量即可!先拿到上述的SDK路徑即為IDF路徑!
     以我的環境為例:

export IDF_PATH=/home/xuhongv/ESPRESSIF/ESP32/esp-idf

之後按下 i 表示嵌入代碼: vim ~/.bashrc

任意一處添加 表示嵌入上面代碼!

按下esc 再 :wq 表示寫入保存: source ~/.bashrc

IDF_PATH 路徑測試是否設置成功: echo $IDF_PATH

3.6 安裝其他工具

     除了 ESP-IDF 本身,您還需要安裝 ESP-IDF 使用的各種工具,比如編譯器、調試器、Python 包等!

cd/home/xuhongv/ESPRESSIF/ESP32/esp-idf
./install.sh

     出現這個 , 表示 安裝成功!

3.7 設置編譯環境的變量

     此時,您剛剛安裝的工具尚未添加至 PATH 環境變量,無法通過「命令窗口」使用這些工具。因此,必須設置一些環境變量,這可以通過 ESP-IDF 提供的另一個腳本完成。

     注意下面命令2個小數點中間有一個空格!

. ./export.sh

     成功後,便這樣提示:

     打開 IDF/esp-idf/examples/get-started下面的hello_world工程;

idf.py set-target esp32s2 menuconfig : 配置編譯晶片為esp32s2,並配置面板;

idf.py build : 編譯代碼;

idf.py flash : 燒錄程序進去設備裡面;

idf.py erase_flash : 擦除設備裡面的程序;

Q1:運行install.sh 運行報錯$'\r': command not found ?

Q2:編譯報錯 No certificate found?

Q3:在下載或安裝依賴時候,有時候會突然卡住?

Q4:如何掛載串口?

原價:24.9元 現價:21.9元

快速購買

精彩回顧

相關焦點

  • 故障燈esp什麼意思
    esp系統涉及到的傳感器很多,所以一般故障原因都是出在傳感器上面,可能是接線頭鬆脫傳感器功能失效、也有可能是誤報等等。esp又稱電子穩定程序,它通過對從各傳感器傳來的車輛行駛狀態信息進行分析,然後向abs、ebd等發出糾偏指令,來幫助車輛維持動態平衡。esp可以使車輛在各種狀況下保持最佳的穩定性,在轉向過度或轉向不足的情形下效果更加明顯。
  • 徐州esp民謠吉他那個專賣店好_南京秦俑琴行詳情請致電溝通
    徐州esp民謠吉他那個專賣店好,南京秦俑琴行詳情請致電溝通,從學員的興趣著手,引導學員進入專業領域。徐州esp民謠吉他那個專賣店好, 礎入門款民謠吉他,秒殺好價再來。立個Flag,我要買把帥帥的PRS!給電吉他換拾音器真的那麼神奇?一篇教會新手如何挑選吉他!前幾天,上大學的表弟問我吉他好學嗎?
  • 車上的esp是什麼功能?起到什麼樣的作用?
    有些人認為esp是安全保障功能,就如氣囊,安全帶等!有人認為esp屬於汽車駕駛輔助功能,如acc,上坡輔助,陡坡緩降!那麼汽車esp汽車車身穩定系統嚴格意義上來講屬於什麼功能?
  • 32位以及64位棧遷移的具體分析與學習
    >log.info("*****第二個講解:洩露libc_base********************")payload_2 = p32(buf2) + p32(puts_plt) + p32(pop_ebx_ret) + p32(puts_got) + p32(read_plt) + p32(leave_ret)
  • 今天你pwn了嗎(三)
    :Ubuntu 16.04首先查看下文件屬性:可以看到 是 32位的elf 程序,且 沒有開啟任何 保護,於是 首先考慮shellcode 的方式去pwn 掉程序。babyfengshui_33c3_2016這題 是個很好的 堆入門題。我們一起來分析下吧。
  • 上古捲軸5:天際 H.Q人物精品美化整合包 v2.0
    《上古捲軸5:天際》H.Q人物精品美化整合包 v2.0使用說明:1.安裝一個MOD管理工具,比如NMM2.先解壓H.Q,將所得的「Data」文件夾直接丟進遊戲主目錄。
  • 漫畫「喰靈」作者瀨川初新作「東京ESP」動畫化決定
    本作是瀨川初在漫畫「喰靈」完結後馬不停蹄開始連載的最新漫畫作品,自2010年「月刊少年ACE」4月號(角川書店)上連載至今,第1部與2012年6月完結,2012年8月開始了第2部的連載。
  • 本田「神級」踏板車,搭ESP發動機,自動啟停+靜音啟動
    時尚動感,顏值爆表這款PCX在外觀的設計上變化最大的就屬它的前臉設計了,就它的大燈設計來說它的造型看起來更加的狹長,而且給人一種銳利的感覺,在夜晚大燈點亮之後,給人一種水晶聖翼的感覺,它的兩條LED日行燈燈眉造型看起來微微上挑,給整個車頭增加了不少時尚感,除此之外它的轉向燈設計在日行燈燈眉的最上方,這樣的設計方式跟老款設計方式大不相同
  • 汽車上有個「ESP OFF」按鍵,有什麼作用?老司機為你解答
    老司機為你解答。說到ESP的話也就是車身的穩定系統,對於很多人來說,他們在買車的過程中也是會特意留意下車輛上面到底有沒有這個配置?但是對於esp off這個案件,他的意思也就是說需要關閉車身穩定系統,off的英文意思也就是說關閉了,但是基本上這個案件也就是處於中控臺附近的位置,對於不同的車型,它的安裝位置也是有一些不太一樣的,可是在平常的生活中幾乎這個按鍵是不怎麼用到的,正常情況下也都是打開的狀態,也只有說在一些比較特殊的情況下才會把這個按鍵給關掉了,就比如說車輛在越野狀態的時候,或者說是在陷入泥潭的過程中才會用到的
  • VS Code 搭建 Rust 開發環境
    上一篇文章安裝和配置好了 Rust 環境後,我們是使用的是簡單的文本工具編寫 Hello World 入門代碼,但是為了提高我們的學習效率,下面安利大家 VS Code 搭建 Rust 開發環境,讓我們開始享受 IDE 帶來的便利。
  • AVR 開發工具與入門晶片選擇
    要開發AVR系統,編寫AVR程序,你需要有軟體環境【ICC+AVRstudio環境配置】,也需要有硬體環境,本文介紹硬體環境的選擇與入門晶片的配備。這是本網站最新開發的功能小板,考慮到了實際中的不同應用場合的需要。 2. 本網站的新手入門系列範例,及即將公布的系列應用範例,均以這塊小板作為開發板。 3. 這塊小板集成了以下的功能: (1). 採用3v3/5V 電壓,兩種電壓可隨意切換。供電輸入電壓7.5V-9V,可使用本網站推薦的9V開關電源。 (2).
  • 最低成本DIY視頻遙控車方案:ESP32-CAM視頻遙控車
    引言:ESP32系列模塊由於可以用ESP32來進行編程,因此廣受歡迎。而ESP32 CAM模塊由於經濟小巧並自帶攝像頭而更為創客們所青睞。今天給大家介紹一個互動性強的ESP32 CAM遊戲,用ESP32 CAM來做一款攝像頭小車,帶LED燈光控制和伺服電機控制。
  • PHP開發環境搭建工具有哪些?
    對於php開發小白來說搭建一個php運行環境就是一道坎!因為要做php開發,搭建一個能夠運行php網站的伺服器環境是第一步,傳統的php環境軟體非常複雜,好在很多公司開發了一鍵搭建php安裝環境,一鍵進行php環境配置,大大節省了搭建php mysql環境的時間!對老手來說安裝配置php環境也不再是一件煩瑣的事。
  • Linux pwn 之 ret2_dl_resolve
    +0h] [ebp-18h]setvbuf(stdin, 0, 2, 0);setvbuf(stdout, 0, 2, 0);setvbuf(_bss_start, 0, 2, 0);my_read((int)&name, 0x1000
  • 利用ESP32晶片DIY有線鍵盤轉無線鍵盤模塊軟鍵篇
    ESP32軟體的開發並沒有使用樂鑫原廠的SDK來開發,原因有這麼幾個:第一:每個晶片都有自己的一套開發環境,我的電腦上安裝的東西實在太多了。正好樂鑫官方對Arduino有了很好的支持。第二:使用arduino開發的話沒有什麼學習成本,同時有很多通用的庫可以使用,省時省力。
  • 萌新帶你開車上p站(番外篇)
    定義的OBJ結構體中一個指針4位元組,buf[]數組8位元組2. Unlink()的過程其實就是雙向鍊表中摘下中間那一塊的過程3. 主函數中malloc了三個結構體,並通過指針連成了雙向鍊表A<->B<->C4.