樂鑫Esp32-S2學習之旅① 入門 ESP32-S2 環境搭建 ,分享如何直連蘋果智能家居 HomeKit 平台,輕松語音 Siri 控制!



  • 本系列博客學習由非樂鑫官方人員 半顆心臟 潛心所力所寫,不做開發板。僅僅做個人技術交流分享,不做任何商業用途。如有不對之處,請留言,本人及時更改。

基於樂鑫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 帶操作操作系統開發

1、入門 ESP32-S2 環境搭建 ,分享如何直連蘋果智能家居 HomeKit 平台,輕松語音 Siri 控制!

-------- 學習筆記持續更新,歡迎關注我…

很多人怎么聯系我一起學習進步,下面打個小小公告:
玩轉esp8266帶你飛、加群QQ群,提高門檻,不喜的朋友勿噴勿加:434878850
esp8266源代碼免費學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp8266
esp32源代碼免費學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp32


在這里插入圖片描述


一 前言

     上個月給大家分享了我上半年開源的 XClouds 架構,很多小伙伴問我怎么集成進去自己的服務器,如何玩透全棧開發,好吧,下半年我就主打這個文章帶給大家了。

     跟大家匯報下這2個月進去新公司忙里忙外的事情:

  1. 騰訊物聯網平台的微信小程序全套開發(小程序支持smartconfig和控制ESP8266),預計月底就要和大家見面了,注意,這個是開源的!一定要關注我的博客或者公眾號;
  2. 天貓精靈開源的ble mesh框架學習,后續會有對應的文章出來;
  3. XClouds三端開源架構的方案准備, 因為這個是一個很大的工程,所以也一邊在籌划如何讓大家快速入門玩透物聯網全棧開發;

     上上個月,樂鑫在2019年推出的新芯片 ESP32-S2 終於量產了,安信可公司緊接着出來了 ESP-12K 模組,也是采用的是 ESP32-S2 芯片,那么目前為止,有哪些可以在網上購買的 ESP32-S2 模組或開發板呢?這里給大家給大家介紹下:

  1. 樂鑫官方某寶店:有 ESP32-S2 開發板,三層板(底板+語音板+顯示板),以及有觸摸屏和攝像頭,外設這么多,可謂是真的為開發者考慮了。不過價格嘛,一般的學生覺得有點小貴!
  2. 安信可官方某寶店:出來 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-S2 的環境了,為什么? 因為最新SDK分支已經集成進去了 ESP32-S2 的開發代碼了!

     一般地,在 ESP-IDFexample 目錄除去了與藍牙相關的例子,都可以跑在 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 上打開 “家庭” 應用程序,然后執行以下步驟

  1. 點擊“添加附件”。 選擇“我沒有密碼或無法掃描”選項。
  2. 在附近配件列表中點擊 “ Acme light ”。為“未經認證的附件”提示選擇“仍然添加”選項。
  3. 輸入11122333 作為設置代碼。
  4. 您最終應該看到“添加了Acme燈泡”消息。
  5. 給一個自定義名稱,分配給一個房間,根據需要創建場景即可。

     掃描附近的設備:
在這里插入圖片描述


     輸入 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
  • 關注下面微信公眾號二維碼,干貨多多,第一時間推送!

在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM