- 本系列博客學習由非樂鑫官方人員 半顆心臟 潛心所力所寫,不做開發板。僅僅做個人技術交流分享,不做任何商業用途。如有不對之處,請留言,本人及時更改。
基於樂鑫ESP32 芯片模組 C SDK二次開發的技術全系列筆記目錄
一、【ESP32】RTOS SDK 帶操作操作系統開發
1、 爬坑學習新旅程,虛擬機搭建esp32開發環境,打印 “Hellow World”。
2、 巧用eclipes編輯器,官方教程在在Windows下搭建esp32開發環境,打印 “Hellow World”。
3、 認識基本esp32的GPIO接口,開始點亮您的第一盞 LED和中斷回調實現按鍵功能 。
4、體會esp32的強大的定時器功能, 實現定時2s閃爍一盞LED燈。
5、接觸實踐esp32的pwm寬度脈沖功能, 實現呼吸效果閃爍一盞LED燈。
6、smartConfig和微信airKiss在esp32的實現,一鍵配網輕松快捷連接路由器。
7、利用GPIO中斷做一個按鍵的短按和長按的回調事件,再也無須擔心觸發源。
8、esp32上實現本地 UDP 客戶端和服務端角色,在局域網內實現通訊。
9、esp32上實現本地 TCP 客戶端和服務端角色,可斷線重連原路返回數據。
10、樂鑫esp32 SDK編程利用rmt驅動ws2812七彩燈,實現彩虹漸變效果。
11、入門 樂鑫esp-adf 音頻框架開發,esp32造一個藍牙耳機,實現切換歌曲,獲取歌曲信息等功能。
12、開源一個微信公眾號airkiss配網esp32以及局域網發現功能的工程,分享一個airkiss配網小工具。
13、esp32 內置 dns 服務器,無需外網訪問域名返回指定網頁。
14、esp32 sdk編程實現門戶強制認證,連接esp32熱點之后,自動強制彈出指定的登錄界面。
15、認識本地離線語音喚醒識別框架 esp-skainet ,實現較低成本的硬件語音本地識別控制。
16、學習本地語音喚醒離線識別框架 esp-skainet ,如何修改喚醒詞? 如何自定義命令詞?如何做意圖動作?
17、全網首發,樂鑫esp32 sdk直連京東微聯·小京魚 · IoT開放平台,實現叮咚音響語音智能控制。
18、入門京東微聯·小京魚的控制面板H5開發,讀懂vue語法,做自己的控制頁面。
19、重磅開源,如何在微信小程序上ble藍牙配網esp32,blufi的那些事!
20、一篇好文,開發過程中編譯esp32固件太大,無法正常啟動?教你如何自定義分區表partitions.csv。
21、 esp32藍牙配網blufi的高度封裝,集成簡單、使用簡單、容易上手,提高開發效率!
22、討論下程序員 “青春飯” 那些事,分享在esp32實現多種加密算法md5 |AES CBC-ECB| Sha1 | Sha256 等!
23、安信可 esp32-a1s 音頻開發板移植最新 esp-adf 音頻框架,小試牛刀如何實現在線文字轉語音播放。
25、分享在 esp32 SDK實現冷暖光色溫平滑調節的封裝,輕松集成到您的項目去。
26、分享下如何在window下使用CMake編譯,編譯速度提高傳統 make 編譯一個檔次。
27、windows10平台下自帶的Linux安裝 ESP32/ESP32-S2 環境,再無需額外安裝虛擬機了。
四、【ESP32-S2】RTOS SDK 帶操作操作系統開發
-------- 學習筆記持續更新,歡迎關注我…
很多人怎么聯系我一起學習進步,下面打個小小公告:
玩轉esp8266
帶你飛、加群
esp8266源代碼免費學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp8266
esp32源代碼免費學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp32
文章目錄

一 前言
上個月給大家分享了我上半年開源的 XClouds 架構,很多小伙伴問我怎么集成進去自己的服務器,如何玩透全棧開發,好吧,下半年我就主打這個文章帶給大家了。
跟大家匯報下這2個月進去新公司忙里忙外的事情:
- 騰訊物聯網平台的微信小程序全套開發(小程序支持smartconfig和控制ESP8266),預計月底就要和大家見面了,注意,這個是開源的!一定要關注我的博客或者公眾號;
- 天貓精靈開源的ble mesh框架學習,后續會有對應的文章出來;
- XClouds三端開源架構的方案准備, 因為這個是一個很大的工程,所以也一邊在籌划如何讓大家快速入門玩透物聯網全棧開發;
上上個月,樂鑫在2019年推出的新芯片 ESP32-S2
終於量產了,安信可公司緊接着出來了 ESP-12K
模組,也是采用的是 ESP32-S2
芯片,那么目前為止,有哪些可以在網上購買的 ESP32-S2
模組或開發板呢?這里給大家給大家介紹下:
- 樂鑫官方某寶店:有
ESP32-S2
開發板,三層板(底板+語音板+顯示板),以及有觸摸屏和攝像頭,外設這么多,可謂是真的為開發者考慮了。不過價格嘛,一般的學生覺得有點小貴! - 安信可官方某寶店:出來
ESP-12K
模組和開發板,模組現在已經出來了 ,價格比 ESP8266 差不多,價格便宜,非常適合這些經費有限的朋友購買;
而本次博文的是采用安信可 ESP-12K
開發板 ;
二 ESP32-S2 ,俗稱 ESP8266-Plus
去掉了藍牙的ESP32 閹割版,增加了三倍多可用IO口的ESP8266增強版,這最好地詮釋了 ESP32-S2 這款芯片,但是依然還是不支持 5G 頻段,這點依然很可惜!
據說,價格與 ESP8266 相差不多,絕對是我拋棄 ESP8266 的必選理由,哈哈!
ESP8266 與 ESP32 與 ESP32-S2 的 對比一覽表:
/ | ESP8266 | ESP32 | ESP32-S2 |
---|---|---|---|
發行年份 | 2014年 | 2016年 | 2019年 |
MCU架構 | Xtensa單核32bit L106 | Xtensa單/雙核32Bit LX6 | Xtensa單核32bit LX7 |
時鍾頻率 | 80MHz | 160/240MHz | 240MHz |
協處理器 | 沒有 | 超低功耗 | ULP(RISC-V) |
SRAM | 160 KB | 520 KB | 320 KB |
RAM | 沒有 | 448 KB | 128 KB |
RTC內存 | 沒有 | 16 KB | 16 KB |
外部 SPIRAM | 高達支持16MB | 高達支持16MB | 高達128支持MB |
外置 flash | 沒有 | 沒有 | 高達1G |
Wi-Fi(802.11 b / g / n) | HT20 | HT20 | HT20 |
ESP-MESH框架支持 | 否 | 是 | 是 |
藍牙協議棧 | 沒有 | BT 4.2 BR / EDR和BLE | 沒有 |
以太網 | 沒有 | 10/100 Mbps | 沒有 |
CAN | 沒有 | 2.0 | 沒有 |
TOF (Time of flight) 測距 | 不支持 | 不支持 | 支持 |
GPIO(總計) | 16 | 34 | 43 |
觸控感應器 | 沒有 | 10 | 14 |
SPI | 2 | 4 | 4(OSPI) |
I2C | 1(軟) | 2 | 2 |
I2S | 2 | 2 | 1個 |
串口 | 2(實際上是1路和半路) | 3 | 2 |
ADC | 1(10位) | 18(12位) | 20(12位) |
數模轉換器 | 沒有 | 2(8位) | 2(8位) |
PWM(軟) | 8Bit | 16Bit | 8Bit |
SDMMC | 沒有 | 是 | 沒有 |
RMT | 沒有 | 是 | 是 |
USB OTG | 沒有 | 沒有 | 是 |
LCD 接口 | 沒有 | 沒有 | 是 |
攝像頭接口 | 沒有 | 沒有 | 是 |
溫度感應器 | 沒有 | 是 | 是 |
霍爾傳感器 | 沒有 | 是 | 沒有 |
安全 | 沒有 | 安全啟動Flash加密1024位OTP | 安全啟動閃存加密4096位OTP |
加密 | 沒有 | AES,SHA-2,RSA,ECC,RNG | AES-128/192/256,SHA-2,RSA,RNG,HMAC,數字簽名 |
低功耗 | 20微安 | 10uA深度睡眠 | 空閑模式下自動射頻功率管理5uA |
三 環境搭建
因為現在樂鑫出來了 ESP-IDF 自研的物聯網操作框架,所以日后的新品也正是基於此框架上二次開發的,而我前面早已經為大家帶來各種環境搭建博文,入門不再難堪!
現在趨勢我也是各種芯片用 Linux 環境開發, 速度真的快的一匹,也希望大家往后學習下 Linux ;下面二選一吧!
- ESP32專題分享下如何在window下使用CMake編譯,編譯速度提高傳統 make 編譯一個檔次!
- 帶你在Windows10平台下用自帶的Linux安裝 ESP8266/ESP32 環境,再無需額外安裝虛擬機了。
上述環境正常搭建好了之后,就可以編譯 ESP32-S2
的環境了,為什么? 因為最新SDK分支已經集成進去了 ESP32-S2
的開發代碼了!
一般地,在 ESP-IDF
的 example
目錄除去了與藍牙相關的例子,都可以跑在 ESP32-S2
上!下面列下常見的幾個命令!
//設置燒錄的串口
export ESPPORT=COM12
//設置編譯目標芯片為 esp32s2
idf.py set-target esp32s2
//編譯和燒錄
idf.py flash
//監聽端口
idf.py monitor
四 集成 Apple HomeKit 環境
4.1 什么是 Apple HomeKit
Apple HomeKit 技術提供了一種簡單、安全的方式,使用戶可以通過 iPhone、iPad 或 Apple Watch 控制燈,門,恆溫器等家居設備。
而樂鑫移植后的 Espressif HomeKit SDK 全面集成了全新的 Apple HomeKit 協議,是一套完整的解決方案,方便廠商快速生產出能夠接入 Apple HomeKit 的產品。
這里還必須強調,本文章介紹 Espressif HomeKit SDK 接入 Apple HomeKit ,不可用於商業用途,如果違背則自行承擔全部責任! 如果要商業用途,請到官方商務申請授權!
4.2 拉取 Espressif HomeKit SDK
第1步:設置 ESP-IDF
確保已經拉取完整的 IDF ,然后需要切換到一個具體的 commit:
git checkout 012b111d6d46812a768838c87417f5e3754bc90e
第2步:設置 MbedTLS 版本
ESP-IDF當前使用 MbedTLS 2.16.x,而HomeKit ADK需要 2.18。這里維護着一個分支mbedtls-2.16.6-adk,該分支具有 2.16.6 之上的 2.18版本所需的補丁。若要切換到此,請按照下列步驟操作:
$ cd $IDF_PATH/components/mbedtls/mbedtls
$ git pull
$ git checkout -b mbedtls-2.16.6-adk origin/mbedtls-2.16.6-adk
截圖:
第3步 獲取esp-apple-homekit-adk
git clone --recursive https://github.com/espressif/esp-apple-homekit-adk.git
第4步 編譯和燒錄
您可以將esp-apple-homekit-adk與任何ESP32或ESP32-S2開發板一起使用。我們提供了一個燈泡示例供參考。編譯並刷新如下:
$ cd /path/to/esp-apple-homekit-adk/examples/Lightbulb
$ export ESPPORT=/dev/tty.SLAB_USBtoUART #設置串口
$ idf.py set-target esp32s2 #設置編譯目標
$ idf.py menuconfig #Example Configuration -> WiFi SSID/Password 設置家庭路由器wifi賬號和密碼
$ idf.py flash #燒錄主程序
$ esptool.py -p $ESPPORT write_flash 0x340000 accessory_setup.bin #燒錄校對碼
$ idf.py monitor
五 操作演示
在iPhone / iPad 上打開 “家庭” 應用程序,然后執行以下步驟
- 點擊“添加附件”。 選擇“我沒有密碼或無法掃描”選項。
- 在附近配件列表中點擊 “ Acme light ”。為“未經認證的附件”提示選擇“仍然添加”選項。
- 輸入11122333 作為設置代碼。
- 您最終應該看到“添加了Acme燈泡”消息。
- 給一個自定義名稱,分配給一個房間,根據需要創建場景即可。
掃描附近的設備:
輸入 11122333,以添加設備:
添加設備OK:
設置好備注名之后,您可以對蘋果手機說: Hi Siri ,關閉/打開燈;
但是在開關燈指令代碼哪里處理下行動作呢?
另外,不要把我的博客作為學習標准,我的只是筆記,難有疏忽之處,如果有,請指出來,也歡迎留言哈!
- 玩轉
esp8266
帶你飛、加群QQ
群,不喜的朋友勿噴勿加:434878850 - 個人郵箱:xuhongv@yeah.net 24小時在線,有發必回復!
- esp8266源代碼學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp8266
- esp32源代碼學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp32
- 關注下面微信公眾號二維碼,干貨多多,第一時間推送!