【蓝牙Mesh笔记 ①】ESP32-C3 模组上实现天猫精灵蓝牙 BLE Mesh AliGenie 接入,无需WiFi 连接也可以实现天猫精灵语音控制。


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

系列一:ESP32系列模组基础学习系列笔记

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 编译一个档次,支持 ESP32 和 ESP32-C3。
27、windows10平台下自带的Linux安装 ESP8266/ESP32 环境,再无需额外安装虚拟机了。

系列二:ESP32-Camera 摄像头开发板系列笔记

1、安信可 ESP32-Cam 摄像头开发板二次开发 C SDK编程,实现MQTT远程拍照传输到私有服务器。
1、安信可 ESP32-Cam 摄像头开发板二次开发 C SDK编程,实现本地视频流监控。

系列三:ESP32-C3 模组系列笔记

1、【蓝牙Mesh笔记 ①】ESP32-C3 模组上实现天猫精灵蓝牙 BLE Mesh AliGenie 接入,无需WiFi 连接也可以实现天猫精灵语音控制。

在这里插入图片描述


一、前言

     玩了好久的Ble Mesh,忽然在乐鑫GitHub上发现了原厂也支持天猫精灵 BLE Mesh AliGenie 控制了,恰好借着这个机会,给自己做一个蓝牙Mesh笔记专题,学习下Ble Mesh基本协议和使用。本篇文章只介绍简单使用,后续的讲解原理和如何实现其他应用开发噢!

    本篇文章适合于ESP32和ESP32-C3模组系列,要求使用4M Flash。

    如何搭建ESP32环境,请留步到:

    链接:分享下如何在window下使用CMake编译,编译速度提高传统 make 编译一个档次,支持 ESP32 和 ESP32-C3。


二、天猫精灵Mesh AliGenie 例程简介

    支持芯片:ESP32和ESP32-C3模组系列,要求使用4M Flash。

    步骤:

  1. 前往阿里飞燕平台注册设备获取三元组信息,因为阿里飞燕和天猫精灵平台合并了。
  2. 配置代码宏定义为三元组信息。
  3. 下载固件到ESP32-C3 模组里面。
  4. 使用天猫精灵音响或天猫精灵APP配置设备入网和控制。
  5. 配置设备成功后, 就可以天猫精灵语音控制天猫精灵APP控制了。

三、平台配置

1.1 创建天猫精灵应用

    使用阿里物联网平台的第一步是创建一个项目。项目之间的数据是相互隔离的,互不影响,步骤:

  1. 登录阿里飞燕平台 链接。
  2. 创建工程。
  3. 配置并拿到一个设备三元组信息。

在这里插入图片描述

1.2 创建产品

    每一个工程里面,可以创建多个产品。一旦产品创建了,产品创建完成后,您可以通过定义产品功能,将实际产品抽象为一个由属性、服务、事件组成的数据模型,方便云端管理和数据交互。

  1. 在主项目页面上,单击创建新产品。
  2. 配置产品参数。
  3. 单击完成,产品创建成功后,会自动进入产品功能定义页面。

在这里插入图片描述


    节点选择如下:节点类型为需要接入网关(天猫精灵),BLE Mesh接入,非低功耗模式。
在这里插入图片描述

1.3 定义产品功能

    平台为每个类别提供默认的标准功能。产品创建完成后,功能定义页面会自动显示产品默认的标准功能。

    您可以按照以下步骤添加或修改功能。在产品功能定义页面,点击标准功能对应的添加功能。

在这里插入图片描述

1.4 人机交互设置

    生活物联网平台提供App服务,简化App开发任务。您可以通过简单的配置实现App与平台之间的数据通信,达到人机交互的效果。

  1. 点击下一步:人机交互,进入产品人机交互页面。
  2. 使用公版App打开开关即可控制产品。
  3. 单击选择面板。在“选择产品面板”对话框的“主题面板”选项卡中选择设备面板或在自定义面板中自行设计面板。
  4. 安装公版App“云智能”。点击立即安装,选择开发版,然后扫码下载公版App开发版。
  5. 为设备网络配置配置启动页面。

在这里插入图片描述

1.2 添加调试设备

设备必须使用平台颁发的唯一设备证书(ProductIDDeviceNameDeviceSecret)才能访问阿里物联网平台。

  1. 点击下一步:设备调试,进入产品-设备调试页面。
  2. 在认证模块/芯片的选择中选择对应的模块,推荐使用经过阿里认证的模块。
  3. 在测试设备中单击添加测试设备。
  4. 配置设备名称。DeviceName也可以不配置,系统自动生成设备名称,但必须是遵循MAC地址格式。
  5. 单击确定,界面显示测试设备的设备证书。需要烧入设备的激活凭证(ProductIDDeviceNameDeviceSecret)如下图红框所示。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、 工程配置三元组

  1. 进入examples/bluetooth/esp_ble_mesh/aligenie_demo目录,运行 idf.py menuconfig
  2. 配置设备三元组信息,修改后保存退出。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1. 配置 LED GPIO

  1. 要使用颜色可调的 RGB 灯,需要配置三个 GPIO,RED、GREEN 和 BLUE。

在这里插入图片描述

2. 下载和烧录

  1. 所有配置完成后,idf.py set-target esp32c3,设置为 esp32c3,如果您手上是esp32的模组,无需配置;
  2. 运行 idf.py flash monitor下载监控了。
  3. 下载完成后,可以看到这个日志。

在这里插入图片描述

3. 使用说明

  1. 设备第一次上电时,绿灯闪烁,表示设备处于配对模式。
  2. 我们可以对 天猫精灵音响 扬声器说“天猫精灵,发现智能设备”。
  3. 当扬声器找到设备并提示是否连接时,我们对天猫精灵音响 说“连接”,您就可以开始配置设备了。
  4. 接下来我们可以用天猫精灵音响语音来控制灯光,例如:“天猫精灵,开灯”、“天猫精灵,关灯”、“天猫精灵,把灯调整成蓝色”、“天猫精灵,把关灯”灯调整成绿色”…………

4. 如何重置进去配网模式

  1. 反复复位设备3次即可复位设备。
  2. 每次复位操作都需要等到灯亮后才能继续。

五. 其他

  • 关注本人微信公众号 “徐宏blog” 或扫描下方二维码,发送 210506 获取源码!

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

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

在这里插入图片描述

### 回答1: esp32是一种强大的微控制器,具备内置蓝牙模块的能力,可以实现蓝牙自动重连功能。在使用esp32连接蓝牙设备时,我们可以采取以下步骤来实现蓝牙自动重连。 首先,我们需要在esp32的代码中设置蓝牙自动重连的功能。我们可以使用esp32蓝牙库函数来实现这一功能。通过调用`esp_bt_gap_register_callback`函数,并注册一个回调函数来监听蓝牙连接事件。 当蓝牙连接事件发生时,回调函数会被触发。我们可以在回调函数中判断蓝牙连接状态。如果蓝牙连接断开,我们可以调用`esp_bt_gap_connect`函数来自动重新连接蓝牙设备。 其次,为了确保蓝牙自动重连的可靠性,我们需要采取一些额外的措施。例如,我们可以使用定时器功能来定期检查蓝牙连接状态。如果连接断开,我们可以再次调用`esp_bt_gap_connect`函数来发起重连操作。 另外,我们还可以设置最大重连次数,以防止无限次的重连。当达到最大重连次数时,我们可以停止尝试重连,并执行其他的操作,如提醒用户或记录日志等。 总之,通过在esp32的代码中实现相应的逻辑和功能,我们可以实现蓝牙自动重连。这对于保持设备与蓝牙设备稳定连接非常重要,尤其是在需要持续通信或数据传输的应用中。 ### 回答2: ESP32是一款功能强大的微控制器,具备蓝牙功能,可用于构建蓝牙连接的应用程序。ESP32蓝牙自动重连功能是指在设备之间建立的蓝牙连接断开后,ESP32能够自动重新建立连接无需人为干预。 要实现ESP32蓝牙自动重连功能,可以按照以下步骤进行设置: 1. 首先,确保你的ESP32固件已经安装支持蓝牙功能的适当固件。 2. 在ESP32的代码中,使用适当的库和函数来初始化蓝牙功能。这些库和函数可在ESP32的开发环境中提供。 3. 在蓝牙连接断开时,ESP32可以通过监听蓝牙连接状态的变化来检测蓝牙连接是否中断。一旦检测到连接中断,ESP32将开始自动尝试重新连接。 4. 在重新连接期间,可以使用适当的库和函数来进行连接请求,并监听连接状态的变化。如果连接成功,ESP32将恢复与另一个设备的通信。 需要注意以下几点: 1. 确保蓝牙设备允许自动重连。有些设备可能不支持自动重连或者需要进行特殊设置。 2. 确保ESP32的固件和代码具备自动重连功能。有些固件和库可能不支持自动重连或者需要进行特殊编码设置。 3. 自动重连可能需要一定的时间来完成,具体时间取决于设备之间的距离和环境条件。 总之,ESP32蓝牙自动重连功能使得设备之间的蓝牙连接可以在断开后自动重新建立,无需人为干预。这极大地简化了蓝牙连接的操作,提高了系统的可靠性和用户体验。 ### 回答3: ESP32蓝牙模块是一种低功耗的蓝牙无线通信设备,它可以与其他蓝牙设备进行通信。对于ESP32蓝牙自动重连的实现,可以采取以下步骤: 1. 首先,确保ESP32蓝牙模块已经成功配对并与目标设备建立了连接。可以通过调用适当的API函数来实现这一步骤。 2. 在成功连接后,可以设置一个定时器,以一定的时间间隔来检测与目标设备的连接状态。可以使用ESP32的定时器模块来实现这一点。 3. 在定时器的回调函数中,可以通过调用适当的API函数来检查与目标设备的连接状态。如果连接断开,则可以尝试自动重连。 4. 自动重连可以通过调用适当的API函数来实现。一般来说,可以通过触发一个重连事件或者重新扫描目标设备的方式来进行自动重连。 5. 在重连期间,可以设置一些延时,以避免频繁的重连尝试。可以使用延时函数来实现这一点。 6. 重连成功后,可以更新连接状态并进行相关的操作。可以通过回调函数来处理重连成功的事件。 需要注意的是,ESP32蓝牙自动重连实现可能会因具体的应用场景和需求而有所不同。可以根据实际情况进行适当的修改和调整。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半颗心脏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值