本指南详细介绍了如何在基于国民技术N32G45X系列MCU的智能温湿度监测系统中,集成并使用MS-BLE050A蓝牙模块,实现数据的无线传输。
1.蓝牙模块介绍


本项目选用的是MS-BLE050A超低功耗蓝牙5.0模块。该模块基于工业级低功耗蓝牙芯片开发,集成了高性能2.4GHz射频收发机、蓝牙BLE 5.0协议栈及应用程序,并提供丰富的数字接口,适用于各类低功耗无线数据传输场景。
2.硬件接口连接
MS-BLE050A蓝牙模块通过UART接口与N32G45X系列MCU进行通信。本方案中,我们选用MCU的UART2接口与模块连接。
连接示意图说明:


左侧:N32G45X系列芯片
右侧:MS-BLE050A蓝牙模块
连接方式:
MCU的TXD引脚连接至蓝牙模块的RXD引脚。
MCU的RXD引脚连接至蓝牙模块的TXD引脚。
双方共地(GND),并由3.3V电源为蓝牙模块供电(VCC)。
3.软件代码实现
3.1功能需求
使用N32G45XVL-STB开发板连接蓝牙模块。
通过蓝牙模块周期性发送采集到的温湿度数据。
手机端通过配套的小程序接收并显示数据。
3.2核心代码解析
以下是实现数据发送功能的核心代码片段。完整的源代码和开发文档,请联系国民技术授权代理商海凌微半导体(销售:姜小姐,电话:18126156267)获取。
void bluetooth_action( void )
{
uint32_t time_count;
time_count = get_timer1_countMs();
if( time_count%1000 == 0 ) // 1000 ms scan the bluetooth port
{
bluetooth_senglog();
}
}
static void bluetooth_senglog( void )
{
uint8_t dataBuff[36];
double _outVal;
shtOpt *shtOpt = sht2xdrv_getResult();
// tempeture
if(shtOpt->st_Temp.dataValid)
{
memset((char*)dataBuff, '\0', sizeof(dataBuff));
_outVal = shtOpt->st_Temp.outValue;
shtOpt->st_Temp.dataValid = 0;
sprintf((char*)dataBuff, "TM(C): %.2f ", _outVal*0.01);
bluetooth_sendString( dataBuff );
}
// humidity
if(shtOpt->st_RH.dataValid)
{
memset((char*)dataBuff, '\0', sizeof(dataBuff));
_outVal = shtOpt->st_RH.outValue;
shtOpt->st_RH.dataValid = 0;
sprintf((char*)dataBuff, "HM: %.2f \r\n", _outVal*0.01);
bluetooth_sendString( dataBuff );
}
}
4.功能测试
完成硬件连接和代码烧录后,可通过手机端的小程序进行测试。


测试结果:
成功连接设备(示例设备名为mftang-01)后,小程序界面可实时显示当前环境的温度和湿度数据。


温度(°C):18.56
湿度(%):61.74
此外,该小程序还集成了灯光控制等其他功能,验证了蓝牙双向通信的可行性。
