본문 바로가기

ESP32

ESP32S3 Super Mini 블루투스 사용법 3

반응형

 

하드웨어 연결

 

본 튜토리얼의 전체 포스팅 내용입니다.

 

ESP32S3 Super Mini 시작하기 1

ESP32S3 Super Mini WiFi 사용 2

ESP32S3 Super Mini 블루투스 사용법 3

ESP32S3 Super Mini 블루투스 ChatGPT 4

ESP32S3 Super Mini GPIO 핀 사용법 5 

 

아두이노, 라즈베리파이b5, ESP32, OpenCV에 관한 빠르게 시작하기 기술 문서는 다음 링크에서 다운받으세요.

캐어랩 기술 문서 다운로드

 

 

1단계. USB Type-C 케이블을 통해 ESP32S3SuperMini를 컴퓨터에 연결합니다.

 

 

블루투스 스캔

 

ESP32S3SueprMini를 사용하여 주변에 있는 사용 가능한 블루투스 장치를 검색합니다.

 

1단계. 다음 코드를 복사하여 Arduino IDE에 붙여넣습니다.

 

#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEScan.h>
#include <BLEAdvertisedDevice.h>

int scanTime = 5; //In seconds
BLEScan* pBLEScan;

class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
    void onResult(BLEAdvertisedDevice advertisedDevice) {
      Serial.printf("Advertised Device: %s \n", advertisedDevice.toString().c_str());
    }
};

void setup() {
  Serial.begin(115200);
  Serial.println("Scanning...");

  BLEDevice::init("");
  pBLEScan = BLEDevice::getScan(); //create new scan
  pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
  pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
  pBLEScan->setInterval(100);
  pBLEScan->setWindow(99);  // less or equal setInterval value
}

void loop() {
  // put your main code here, to run repeatedly:
  BLEScanResults foundDevices = pBLEScan->start(scanTime, false);
  Serial.print("Devices found: ");
  Serial.println(foundDevices.getCount());
  Serial.println("Scan done!");
  pBLEScan->clearResults();   // delete results fromBLEScan buffer to release memory
  delay(2000);
}

 

2단계. 코드를 업로드하고 직렬 모니터를 열어 Bluetooth 장치 스캔을 시작합니다.

 

 

 

블루투스 서버로서

 

이 예제에서는 ESP32S3 Super Mini를 블루투스 서버로 사용합니다. 여기서는 스마트폰을 사용하여 ESP32S3SuperMini 보드를 검색하고 시리얼 모니터에 표시할 문자열을 전송합니다.

 

1단계. 다음 코드를 복사하여 Arduino IDE에 붙여넣습니다.

 

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

// See the following for generating UUIDs:
// https://www.uuidgenerator.net/

#define SERVICE_UUID        "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"


class MyCallbacks: public BLECharacteristicCallbacks {
    void onWrite(BLECharacteristic *pCharacteristic) {
      std::string value = pCharacteristic->getValue();

      if (value.length() > 0) {
        Serial.println("*********");
        Serial.print("New value: ");
        for (int i = 0; i < value.length(); i++)
          Serial.print(value[i]);

        Serial.println();
        Serial.println("*********");
      }
    }
};

void setup() {
  Serial.begin(115200);

  BLEDevice::init("MyESP32");
  BLEServer *pServer = BLEDevice::createServer();

  BLEService *pService = pServer->createService(SERVICE_UUID);

  BLECharacteristic *pCharacteristic = pService->createCharacteristic(
                                         CHARACTERISTIC_UUID,
                                         BLECharacteristic::PROPERTY_READ |
                                         BLECharacteristic::PROPERTY_WRITE
                                       );

  pCharacteristic->setCallbacks(new MyCallbacks());

  pCharacteristic->setValue("Hello World");
  pService->start();

  BLEAdvertising *pAdvertising = pServer->getAdvertising();
  pAdvertising->start();
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(2000);
}

 

2단계. 코드를 업로드하고 직렬 모니터를 엽니다.

 

3단계. 스마트폰에 LightBlue 앱을 다운로드하고 설치하세요.

 

LightBlue 앱(안드로이드)

 

LightBlue 앱(iOS)

 

4단계. 휴대폰의 블루투스를 켜고 휴대폰을 ESP32S3SuperMini에 가까이 가져가서 장치를 스캔하고 MyESP32 장치에 연결합니다.

 

 

5단계. LightBlue 앱을 열고 Bonded 탭을 클릭하세요.

 

 

6단계. MyESP32 옆에 있는 CONNECT를 클릭하세요.

 

 

7단계. "읽기 가능" 및 "쓰기 가능"이라고 적힌 하단 섹션을 클릭하세요.

 

 

8단계. 데이터 형식 드롭다운 메뉴에서 UTF-8 문자열을 선택합니다.

 

 

9단계. "WRITTEN VALUES"에 "Hello"를 입력하고 "WRITE"를 클릭합니다.

 

 

 

Arduino IDE의 직렬 모니터에 "Hello" 텍스트 문자열 출력이 표시됩니다.

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩