1、打开微信开发者工具,新建一个项目,按照上一篇【【STM32WBA55CG开发板】DIY蓝牙控制取暖器——2、移植Sht3x驱动,并实现温度上报】https://forum.eepw.com.cn/thread/387592/1的方法创建微信小程。
2、把温度、湿度修改为心跳、血氧,修改代码如下:
<!-- 心跳显示控件 --><view class="display-item"><text>心率:</text><text>{{heartbeat}}次</text></view> <!-- 血氧显示控件 --><view class="display-item"><text>血氧:</text><text>{{bloodOxygen}}%</text></view></view>
3、p2p_server_app.c中增加一个上报血氧、心跳的函数:
//上传心路、血氧 void send_heart_data(uint8_t heart, uint8_t spo2) { P2P_SERVER_Data_t p2p_server_notification_data; p2p_server_notification_data.p_Payload = (uint8_t*)a_P2P_SERVER_UpdateCharData; p2p_server_notification_data.Length = 0; a_P2P_SERVER_UpdateCharData[0] = heart; /* Device Led selection */ a_P2P_SERVER_UpdateCharData[1] = spo2; /* Update notification data length */ p2p_server_notification_data.Length = (p2p_server_notification_data.Length) + 2; P2P_SERVER_UpdateValue(P2P_SERVER_SWITCH_C, &p2p_server_notification_data); }
4、在blood.c中添加上报函数:
/** * ************************************************************************ * @brief 心率血氧循环函数 * * * ************************************************************************ */ void blood_Loop(void) { //血液信息获取 blood_data_update(); //血液信息转换 if(g_fft_index >= FFT_N) { HAL_TIM_Base_Stop_IT(&htim3); blood_data_translate(); SpO2 = (SpO2 > 99.99) ? 99.99:SpO2; LOG_INFO_APP("心率%3d/min; 血氧%2d%%\n", heart, (int)SpO2); g_fft_index = 0; memset(s1,0,sizeof(s1)); memset(s2,0,sizeof(s2)); //执行上报数据功能 send_heart_data((uint8_t)heart, (uint8_t)SpO2); HAL_TIM_Base_Start_IT(&htim3); } }
编译后下载到开发板,打开微信小程,连接开发板,把手指放到MAX30100上,就可以实时查看心跳、血氧指数值了:
这里我添加了一个图表的功能,但是美工不怎么样,大佬们熟悉前端开发的,可以设计一个精美的界面。
【总结】
使用STM32WBA,可以快速的设计出自己的蓝牙产品。