安信可ESP-12K模组学习心得 ② 安信可ESP-12K模组直连苹果智能家居 HomeKit 平台,轻松语音 Siri 控制!

一 前言

     上上个月,乐鑫在2019年推出的新芯片 ESP32-S2 终于量产了,我们安信可紧接着出来了 ESP-12K 模组,也是采用的是 ESP32-S2 芯片,那么目前为止,已在安信可官方某宝店上架:出来 ESP-12K 模组和开发板,模组现在已经出来了 ,价格比 ESP8266 差不多,价格便宜,非常适合这些经费有限的朋友购买;

     而本次博文的是采用安信可 ESP-12K 开发板 ;


在这里插入图片描述

二 ESP32-S2 ,俗称 ESP8266-Plus

     去掉了蓝牙的ESP32 阉割版,增加了三倍多可用IO口的ESP8266增强版,这最好地诠释了 ESP32-S2 这款芯片,但是依然还是不支持 5G 频段,这点依然很可惜!

      据说,价格与 ESP8266 相差不多,绝对是我抛弃 ESP8266 的必选理由,哈哈!

ESP8266 与 ESP32 与 ESP32-S2 的 对比一览表:

/ESP8266ESP32ESP32-S2
发行年份2014年2016年2019年
MCU架构Xtensa单核32bit L106Xtensa单/双核32Bit LX6Xtensa单核32bit LX7
时钟频率80MHz160/240MHz240MHz
协处理器没有超低功耗ULP(RISC-V)
SRAM160 KB520 KB320 KB
RAM没有448 KB128 KB
RTC内存没有16 KB16 KB
外部 SPIRAM高达支持16MB高达支持16MB高达128支持MB
外置 flash没有没有高达1G
Wi-Fi(802.11 b / g / n)HT20HT20HT20
ESP-MESH框架支持
蓝牙协议栈没有BT 4.2 BR / EDR和BLE没有
以太网没有10/100 Mbps没有
CAN没有2.0没有
TOF (Time of flight) 测距不支持不支持支持
GPIO(总计)163443
触控感应器没有1014
SPI244(OSPI)
I2C1(软)22
I2S221个
串口2(实际上是1路和半路)32
ADC1(10位)18(12位)20(12位)
数模转换器没有2(8位)2(8位)
PWM(软)8Bit16Bit8Bit
SDMMC没有没有
RMT没有
USB OTG没有没有
LCD 接口没有没有
摄像头接口没有没有
温度感应器没有
霍尔传感器没有没有
安全没有安全启动Flash加密1024位OTP安全启动闪存加密4096位OTP
加密没有AES,SHA-2,RSA,ECC,RNGAES-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 ,关闭/打开灯;

     但是在开关灯指令代码哪里处理下行动作呢?

在这里插入图片描述

  • 共勉