在做esp32兼职的时候,直接将16进制的数据给了手机,导致手机端收数据还原复杂,最好的做法是将原数据转成json后再传给手机蓝牙
为了实现 ESP32 S3 与手机微信小程序通过蓝牙进行 JSON 数据通信,我们需要使用 ESP-IDF 开发框架来完成蓝牙通信,并利用 cJSON 库来处理 JSON 数据格式。以下是如何使用 ESP32 S3 和微信小程序进行蓝牙通信的示例代码。
### 1. **准备工作**
确保你已经安装了 ESP-IDF,并且在项目中包含了 Bluetooth 和 cJSON 库。在 `CMakeLists.txt` 文件中,确保添加了如下依赖:
```cmake
set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/components/cJSON)
```
### 2. **cJSON 库的使用**
我们首先需要安装并包含 `cJSON` 库用于处理 JSON 格式的数据。可以使用 `cJSON_CreateObject`, `cJSON_AddNumberToObject`, `cJSON_PrintUnformatted` 等函数来创建并格式化 JSON 数据。
### 3. **蓝牙通信**
ESP32 S3 支持 BLE(蓝牙低功耗),可以通过 `ESP32` 的 BLE API 进行通信。我们将创建一个 BLE 服务,并将数据通过通知(Notify)发送到手机。
### 4. **代码实现**
以下是实现此功能的代码示例:
#### `main.c`
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>