본문 바로가기

[ST_MICRO]/STM32WB

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.setAdvertisedServiceUuid(SerialBLE.uuid());

    BLE.addService(SerialBLE);
    
    BLE.advertise();

    delay(1000);
}

void loop()
{ 
    float temp;
    
    if (!BLE.advertising() && !BLE.connected()) {
        BLE.advertise();
    }

    temp = STM32WB.readTemperature();
    SerialBLE.println(temp);
    
    delay(200);
}

 

 

 

 

이번에는 MAX31856 써모 커플 센서의 온도 값을 읽어 올 수 있도록 코드를 수정 해 보자

#include "Arduino.h"
#include "STM32WB.h"
#include "BLE.h"

#include <Adafruit_MAX31856.h>

BLEUart SerialBLE(BLE_UART_PROTOCOL_NORDIC);
Adafruit_MAX31856 maxthermo = Adafruit_MAX31856(4);
void setup()
{
  Serial.begin(115200);

  while (!Serial) { }

  if (!maxthermo.begin())
  {
    Serial.println("Could not initialize thermocouple.");
    while (1) delay(10);
  }

  maxthermo.setThermocoupleType(MAX31856_TCTYPE_K);
  maxthermo.setConversionMode(MAX31856_CONTINUOUS);

  BLE.begin();
  BLE.setLocalName("STM32WB");
  BLE.setAdvertisedServiceUuid(SerialBLE.uuid());
  BLE.addService(SerialBLE);
  BLE.advertise();

  delay(1000);
}

void loop()
{ 
    float temp;
    
    if (!BLE.advertising() && !BLE.connected()) {
        BLE.advertise();
    }

    //temp = STM32WB.readTemperature();
    temp = maxthermo.readThermocoupleTemperature();
    
    Serial.println(temp);    
    
    SerialBLE.print(temp);
    SerialBLE.println();

    delay(1000);
}

 

 

반응형