【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十八:ESP32 CYD开发板WiFi蓝牙2.8寸240*320智能液晶显示屏带触摸屏TFT模块
项目实验之十五:ESP32 CYD液晶板使用经典蓝牙SPP进行数据传输,并在TFT屏幕上显示连接情况
实验开源代码
- /*
- 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
- 实验二百三十八:ESP32 CYD开发板WiFi蓝牙2.8寸240*320智能液晶显示屏带触摸屏TFT模块
- 项目实验之十五:ESP32 CYD液晶板使用经典蓝牙SPP进行数据传输,并在TFT屏幕上显示连接情况
- */
-
- #include <SPI.h>
- #include <TFT_eSPI.h>
- #include <BluetoothSerial.h>
-
- TFT_eSPI tft = TFT_eSPI();
- BluetoothSerial SerialBT;
-
- // 存储聊天记录的缓冲区
- String chatHistory = "";
-
- void setup() {
- // 初始化TFT屏幕
- tft.init();
- tft.setRotation(0); // 设置屏幕旋转为0度
- tft.fillScreen(TFT_BLACK);
- tft.setTextColor(TFT_WHITE, TFT_BLACK); // 设置文本颜色为白色,背景颜色为黑色
- tft.setTextFont(4);
- tft.setCursor(20, 10);
- tft.println("Starting Bluetooth...");
-
- // 初始化蓝牙
- if(!SerialBT.begin("ESP32_SPP")) { // 设备名称为ESP32_SPP
- tft.setCursor(20, 50);
- tft.setTextColor(TFT_RED);
- tft.println("Bluetooth start failed");
- } else {
- tft.setCursor(20, 50);
- tft.setTextColor(TFT_GREEN);
- tft.println("Bluetooth started");
- }
- }
-
- void loop() {
- // 检查蓝牙连接状态
- if(SerialBT.hasClient()) {
- // 读取数据
- while (SerialBT.available()) {
- String incoming = SerialBT.readString();
- chatHistory += incoming + "\n"; // 将收到的消息添加到聊天记录中
- updateDisplay(); // 更新显示内容
- }
- } else {
- tft.fillScreen(TFT_BLACK);
- tft.setCursor(20, 10);
- tft.setTextColor(TFT_WHITE, TFT_BLACK);
- tft.println("Waiting for client...");
- delay(1000); // 每秒检查一次连接状态
- }
- }
-
- // 更新显示内容的函数
- void updateDisplay() {
- tft.fillScreen(TFT_BLACK);
- tft.setCursor(20, 10);
- tft.setTextColor(TFT_GREEN, TFT_BLACK);
- tft.println("Client Connected!");
- tft.setTextColor(TFT_BLUE, TFT_BLACK);
- tft.setCursor(20, 50);
- tft.println(chatHistory);
- }
复制代码
|