ble 아두이노 예제

권장 읽기: 아두 이노 IDE와 ESP32 블루투스 클래식을 사용하여 ESP32와 안드로이드 스마트 폰 간에 데이터를 교환하는 방법을 알아봅니다. 요약하자면, 당신 (클라이언트)이 월마트 (서비스)를 체크 아웃 할 때 감자 칩 (특성)을 찾고 프링글스 (설명자)를 선택할 수 있습니다. 제품에 “프링글스”라는 라벨이 붙지 않고 “훌륭한 가치”가 아니기 때문에 어떤 제품 중에서 무엇을 선택할지 알 수 있습니다. 이것은 BLE 장치가 작동하는 방식의 일종입니다. 이 예제에서는 가장 중요한 “서비스”에서 TX와 RX라는 두 가지 다른 특성을 사용하여 이러한 두 채널을 통해 클라이언트(Android 장치)로 데이터를 보내고 데이터를 수신합니다. ESP32(서버 역할을 함)는 TX 특성 UUID를 통해 클라이언트를 “통보”하고 데이터는 ESP32로 전송되고 RX 특성 UUID를 통해 수신됩니다. 그러나, 보내고 수신 하기 때문에, ESP32에 TX는 실제로 안 드 로이드 애플 리 케이 션에 RX, 그래서 Thunkable 내부 UUID의 아두 이노 스케치에서 그에서 교환 됩니다. 저항(220Ω-1KΩ) 사이를 통해 아두이노의 13핀에 LED 포지티브를 연결합니다. GND에 부정적인 연결, 당신은 회로완료! 설명: 직렬 라이브러리를 포함하고 직렬 통신을 활성화하기 위해 직렬 개체를 만들어야 하며 LED 상태에 대한 문자열 변수를 정의해야 합니다. 설치 섹션에서 우리는 프로그램의 창 크기를 설정하고 직렬 통신을 시작해야합니다. COM 포트 번호에 관해서는 여기에서 우리는 이전에 장치 관리자에서 발견 한 두 개의 COM 포트 번호 중 하나를 시도해야합니다.

다음 줄은 직렬 포트의 버퍼링을 정의하며, 새 줄이 있을 때까지 실제로 Arduino가 println() 기능으로 인해 문자열 “LED: OFF” 또는 “LED ON”을 보낼 때마다 새 줄이 있습니다. 다음으로 serialEvent() 함수를 사용하여 읽을 직렬 포트에 사용 가능한 데이터가 있는지 확인합니다. 그렇다면 readStringUntil() 함수를 사용하여 Arduino에서 전송된 직렬 포트와 문자열 “LED: OFF” 또는 “LED: ON”의 데이터를 읽습니다. 설명: 먼저 LED가 연결될 핀과 스마트폰에서 나오는 데이터를 저장하는 변수를 정의해야 합니다. 설정 섹션에서 우리는 출력으로 LED 핀을 정의하고 바로 낮게 설정해야합니다. 앞에서 언급했듯이, 우리는 직렬 통신을 사용하므로 Bluetooth 모듈의 기본 baud 속도인 38400 baud 속도로 직렬 통신을 시작해야합니다. Serial.available() 함수가 있는 루프 섹션에서읽을 직렬 포트에 사용 가능한 데이터가 있는지 확인합니다. 즉, Bluetooth 모듈에 데이터를 보낼 때이 문은 true이므로 Serial.read() 함수를 사용하여 해당 데이터를 읽고 “상태”변수에 넣습니다. 따라서 아두 이노가 문자 `0`을 받으면 LED를 끄고 Serial.println() 기능을 사용하여 직렬 포트인 문자열 “LED : OFF”를 통해 스마트 폰으로 다시 보냅니다. 또한 위의 두 줄이 한 번만 실행되도록 “상태” 변수를 0으로 재설정합니다. 여기서 “상태” 변수는 정수이므로 스마트폰에서 나오는 문자 `0`을 받으면 ASCII 테이블에 따라 문자 `0`에 해당하는 정수 “state” 변수의 실제 값은 48입니다.