【花雕学编程】Arduino动手做(238)---ESP32 CYD液晶板使用经典蓝牙SPP进行数据传输,并在TFT屏幕上显示连接情况

2024-11-07378
AI 快速预览详细 收起
本项目展示了如何使用ESP32 CYD液晶板通过经典蓝牙SPP协议进行数据传输,并在TFT屏幕上显示连接情况。硬件清单包括ESP32 CYD液晶板和手机。最终效果是能够在TFT屏幕上实时显示从手机发送的消息。难度等级适合零基础新手。

0-2.jpg

ESP32-CYD(2432S028)液晶2.8寸屏开发板使用ESP32-WROOM-32模块作为主控,主控是一款双核MCU,集成了Wi-Fi和蓝牙功能,主频可达240MHz,具有520KB的SRAM、448KB的ROM,闪存容量为4MB+4MB,显示分辨率为240x320,采用电阻式触控式屏幕。该模块包括LCD显示器、背光控制电路、触控式屏幕控制电路、扬声器驱动电路、光敏电路和RGB LED控制电路。支持TF卡界面、序列界面、温湿度感测器界面(DHT11界面)和保留的IO口界面,该模块支持在Arduino IDE、ESP IDE、MicroPython和Mixly中进行开发。

 

00.jpg

 【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);
}

实验场景图

 

02-22.jpg

在手机端打开蓝牙,连接ESP32_SPP

 

 

02-24.jpg

在聊天上发送信息

 

02-25.jpg

屏幕上显示信息

 

02-23.jpg

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -