본문 바로가기

[ST_MICRO]

(264)
STM32WB55 SSM - Arduino BLE UART MAX31856 온도 그래프 출력 테스트 Arduino BLE의 가장 큰 장점은 호환성과 유연한 코드 작성일것 같다. BLE코드에 MAX31856과 같은 온도 센서를 추가 하려면 라이브러리를 이용해서 간단히 온도 값을 가져오고 BLE로 전송할 수 있다. 우선 가장 간단하게 STM32WB의 칩내부 온도 센서의 온도 값을 BLE그래프로 출력 하는 프로그램을 작성해 보자. #include "Arduino.h" #include "STM32WB.h" #include "BLE.h" BLEUart SerialBLE(BLE_UART_PROTOCOL_NORDIC); void setup() { Serial.begin(115200); while (!Serial) { } BLE.begin(); BLE.setLocalName("STM32WB"); BLE.setAdve..
STM32WB55 SSM - Arduino BLE 램프제어 테스트 ST에서 제공하는 ST BLE Sensor 앱을 이용하여 LED제어 Service로 BLE 램프 제어를 해보자. ST BLE Sensor 앱의 LED Sevice를 등록하고 BLE로 전송되는 데이터를 처리 하는 콜백 함수에서 GPIO 로 릴레이를 제어 해서 램프를 On/Off 하는 코드를 작성 할 수 있다. #include "Arduino.h" #include "BLE.h" #define LED_BUILTIN 10 typedef struct __attribute__((packed)) { uint16_t timestamp; uint8_t led; } blue_st_led_t; blue_st_led_t ledFeature; BLEService sensorService("00000000-0001-11e1-9a..
STM32WB55 SSM - Arduino BLE HRS(Heart Rate Service) 테스트 ST에서 제공하는 ST BLE Toolbox앱을 이용하여 STM32CubeIDE BLE HRM(Heart Rate) 테스트 코드는 복잡하고 쉽게 수정하기 어려운 구조 이므로 Arduino 환경에서 쉽고 간단하게 다양한 라이브러리를 추가 해서 테스트 해볼 수 있다. 우선 기본 코드를 작성하자. BLE Service 생성하고 BLE HRS Characteristic을 등록 해 주면 된다. 이후 일정 주기로 HRS특성(ESP32-C3 HRS 테스트 예제 참고)에 맞게 값을 전송하면 된다. #include "Arduino.h" #include "BLE.h" uint16_t hrs_location = 1; int16_t hrs_ctrl = 1; byte hrs_mesure[8] = { 0b00001110, 60,..
STM32WB55 SSM - Arduino BLE UART PWM 제어 BLE UART Service는 Nordic사에서 거의 표준 처럼 제공하는 Service로 다양한 앱들이 이 표준을 따르고 있다. 그렇기 때문에 이 표준으로 작성하면 기존 앱을 사용해서 다양한 제어를 쉽게 해 볼 수 있다. 이번에는 BLE UART 서비스로 PWM LED를 제어 하는 예제를 작성해 보자. 가장 간단하게 BLE UART 서비스를 등록하고 데이터 수신후 처리 하는 코드로 기본 코드를 작성해 보자. #include "Arduino.h" #include "STM32WB.h" #include "BLE.h" BLEUart SerialBLE(BLE_UART_PROTOCOL_NORDIC); void setup() { Serial.begin(115200); while (!Serial) { } BLE.be..
STM32WB55 SSM - Arduino BLE Custom 테스트 Arduino STM32WB BLE UART 테스트에서는 라이브러리에서 기본 제공하는 코드를 이용하였지만 Custom 데이터 송수신이 필요한 어플리케이션을 위해 테스트 코드를 작성해 보았다. nRF52 UART 테스트 코드 와 유사하게 코드를 작성했다. #include "Arduino.h" #include "BLE.h" //#define Serial USBSerial #define PA10 0 #define PA4 4 #define LED_BUILTIN PA4 #define SW1_PORT PA10 //#define LED_BUILTIN 23 //PA4 #define SERVICE_UUID "6E400001-B5A3-F393-E0A9-E50E24DCCA9E" // UART service UUID #def..
STM32WB55 SSM - Aduino 환경에서 BLE UART 테스트 STM32WB55 용으로 STM32CubeIDE 에서 제공하는 BLE 개발 예제는 많이 않고 독자적인 라이브러리를 사용하기 때문에 호환성이 많이 떨어진다. ST에서 제공하는 Arduino 도 BLE 기능을 제공하지만 거의 안되는 기능이 많아 사용하기 힘들다. 찾아보니 STM32WB 용 BLE 라이브러리를 Arduino 코드로 제공하는 곳이 있다. https://github.com/GrumpyOldPizza/ArduinoCore-stm32wb GitHub - GrumpyOldPizza/ArduinoCore-stm32wb: Arduino Core for STM32WB Arduino Core for STM32WB. Contribute to GrumpyOldPizza/ArduinoCore-stm32wb deve..
STM32WB55 SSM - STM32CubeIDE BLE HRS(Heart Rate Service) 테스트 BLE Service중 간단하면서 ST BLE앱에서 쉽게 테스트 해 볼수 있는 Heart Rate Service 예제를 테스트 해보자. STM32_WPAN 폴더에 HRS 관련 기능 구현이 되어있다. 타이머 인터럽트를 생성해서 주기적으로 심박수 측정 결과를 보내는 구조이다. void HRSAPP_Init(void) { UTIL_SEQ_RegTask( 1
STM32WB55 SSM - STM32CubeIDE BLE Custom 데이터 송수신 테스트 STM32W 시리즈는 두개의 STM32 MCU로 구성되어 있고 Core2에 무선 관련 바이너리 파일을 Write 할 수 있다. BLE 바이너리를 이용해서 BLE 통신 테스트를 해 보자 STM32WB55 Zigbee 테스트에서와 같이 BLE Wireless Coprocessor Binary 파일(stm32wb5x_BLE_Stack_full_fw.bin)을 다운로드 해야 한다. ST에서 제공하는 STM32CubeIDE용 예제의 구조는 Zigbee예제와 비슷하게 \STM32_WPAN\APP 폴더에 있다. 각 어플리케이션 별로 코드를 작성해서 테스트 하면된다. 우선 간단한 BLE Custom 데이터 송수신 예제를 테스트 해 보자 void Custom_Switch_c_Send_Notification(void) /..