详情
ESP32系列模组 以其卓越的性能和丰富的外设而闻名,集成了WiFi、传统蓝牙、低功耗蓝牙,提供了高度集成的物联网解决方案。本文以ESP32传统蓝牙为例,介绍了如何利用蓝牙驱动电子纸的整个过程。
1. 蓝牙配置
1.1 蓝牙设置
首先,我们需要引入蓝牙串口的头文件并将其重新命名为SerialBT。
//BT
#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
BluetoothSerial SerialBT;
接着,在设置中初始化蓝牙串口,命名为“ESP32test”。
void setup() {
//BT
SerialBT.begin("ESP32test"); //Bluetooth device name
}
1.2 蓝牙数据接收
在主循环中检测蓝牙是否有数据接收,如果有则通过串口发送出去。
if (SerialBT.available()) { //Bluetooth receiving data
Serial.write(SerialBT.read()); //Sending Bluetooth data through serial port
}
2. 蓝牙连接及电子纸显示
2.1 蓝牙连接
手机端需安装SPP蓝牙调试助手APP,选择传统蓝牙,找到并连接“ESP32test”设备,确认UUID并进行蓝牙配对。通过APP发送数据,例如“01”表示ESP32蓝牙接收OK。
手机端操作流程:
- 蓝牙找到“ESP32test”
- 确认UUID
- 蓝牙配对
- 输入要发送的数据“01”
- 观察计算机串口调试助手,会接收到“01”数据,代表ESP32蓝牙接收OK
① 发现设备
② 确认UUID
③ 蓝牙配对
④ 发送数据“01”
⑤ 串口助手收到“01” → 蓝牙接收成功
2.2 电子纸显示屏显示
当ESP32蓝牙接收到0x01数据后,开始执行电子纸显示屏刷新显示操作。以下是相应的程序操作:
if (SerialBT.available()) { // Listen in Bluetooth data
if (SerialBT.read() == 0x01) { // Bluetooth received 0x01
Serial.println("SerialBT==1"); // Bluetooth serial port data printing
// Data initialization settings
Paint_NewImage(BlackImage, EPD_WIDTH, EPD_HEIGHT, 180, WHITE); // Set screen size and orientation
Paint_SelectImage(BlackImage);
// BW Image
Paint_Clear(WHITE);
Paint_DrawString_EN(0, 0, "Good Display", &Font8, WHITE, BLACK); //5*8
Paint_DrawString_EN(0, 10, "Good Display", &Font12, WHITE, BLACK); //7*12
Paint_DrawString_EN(0, 25, "Good Display", &Font16, WHITE, BLACK); //11*16
Paint_DrawString_EN(0, 45, "Good Display", &Font20, WHITE, BLACK); //14*20
Paint_DrawString_EN(0, 80, "Good Display", &Font24, WHITE, BLACK); //17*24
PIC_display(BlackImage); // EPD picture -- R
EPD_sleep(); // EPD_sleep, must not delete!!!
}
}
通过这样的流程,ESP32可以通过蓝牙接收到的数据来触发电子纸显示屏的显示操作。这种整合为物联网应用提供了一种方便而灵活的解决方案。
扫二维码用手机看
下一个:
电子墨水屏如何取模?
下一个:
电子墨水屏如何取模?

