博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  • 本系列博客学习由非乐鑫官方人员 半颗心脏 潜心所力所写,不做开发板。仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。

基于乐鑫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 的 对比一览表:

/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 ,关闭/打开灯;

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

在这里插入图片描述

另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!

  • 玩转esp8266带你飞、加群QQ群,不喜的朋友勿喷勿加:434878850
  • 个人邮箱:xuhongv@yeah.net 24小时在线,有发必回复!
  • esp8266源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
  • esp32源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32
  • 关注下面微信公众号二维码,干货多多,第一时间推送!

在这里插入图片描述