ESP32学习笔记(1) BLE

本文介绍ESP32蓝牙低功耗(BLE)开发过程,包括硬件设备选择、程序开发及调试方法。通过实例演示如何生成UUID并实现BLE服务与特性的定义,最终完成与外部设备的数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESP32学习笔记(1) BLE

1.硬件设备

在这里插入图片描述

2.程序开发

2.1 UUID生成

本次开发只需使用2个UUID,UUID生成在网站如下:

https://www.uuidgenerator.net/
在这里插入图片描述

2.2程序代码

#include <Arduino.h>
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>


#define SERVICE_UUID "fc5b228a-d664-11eb-b8bc-0242ac130003"
#define CHARACTERISTIC_UUID "fc5b2532-d664-11eb-b8bc-0242ac130003"

BLECharacteristic *pCharacteristic;
bool deviceConnected = false;
String rxload = "NoMessage";
String Receive_Message = "";

/*外设*/
#define LED_IO 2

class MyServerCallbacks : public BLEServerCallbacks
{
  void onConnect(BLEServer *pServer)
  {
    deviceConnected = true;
  };
  void onDisconnect(BLEServer *pServer)
  {
    deviceConnected = false;
  }
};

class MyCallbacks : public BLECharacteristicCallbacks
{
  void onWrite(BLECharacteristic *pCharacteristic)
  {
    std::string rxValue = pCharacteristic->getValue();
    if (rxValue.length() > 0)
    {
      rxload = "";
      for (int i = 0; i < rxValue.length(); i++)
      {
        rxload += (char)rxValue[i];
        Serial.print(rxValue[i]);
      }
      Serial.println("");

      if (rxload == "on")
      {
        digitalWrite(LED_IO, 1);
      }
      else if (rxload == "off")
      {
        digitalWrite(LED_IO, 0);
      }
    }
  }
};

void setup()
{
  pinMode(LED_IO, OUTPUT);
  Serial.begin(115200);
  BLEDevice::init("ESP_Server");
  BLEServer *pServer = BLEDevice::createServer();
  pServer->setCallbacks(new MyServerCallbacks);
  BLEService *pService = pServer->createService(SERVICE_UUID);
  BLECharacteristic *pCharacteristic = pService->createCharacteristic(CHARACTERISTIC_UUID, BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_READ);
  pCharacteristic->setCallbacks(new MyCallbacks());
  pCharacteristic->setValue("Welcome To My Server");
  pService->start();
  BLEAdvertising *pAdvertising = pServer->getAdvertising();
  pAdvertising->start();
}

void loop()
{
}

3.程序调试

APP:BLE调试包

在这里插入图片描述

结果就不放了,我太懒了,实现了期望部分控制,后期与开发的APP合并使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值