其他分享
首页 > 其他分享> > 物联网竞赛LoRa模块采集温湿度

物联网竞赛LoRa模块采集温湿度

作者:互联网

LoRa模块采集温湿度数据

采集SHT3温湿度光照集成模块的温湿度

代码实现

int main( void )
{
  Init();
  OLED_Init();	     //初始化OLED屏
  OLED_Clear();      //清空屏幕
  hal_temHumInit();   //初始化温湿度模块  
  OLED_ShowString(0,0,(uint8_t *)"Temperature:");
  OLED_ShowString(0,4,(uint8_t *)"Humidty:");
    while( 1 )
    {
   	float tem,hum;
   	char StrBuf[64]={0};
   	memset(StrBuf, '\0', 64);    //清空缓存区数据
   	call_sht11(&tem, &hum);    //把变量的地址传进去,保存温湿度数据
  	sprintf(StrBuf,"%2.2f",tem); //格式化温度数据,并保存到StrBuf数组中
   	OLED_ShowString(32,2,(uint8_t *)StrBuf);  //实时输出温度数据
   	memset(StrBuf, '\0', 64);    //清空缓存区数据
   	sprintf(StrBuf,"%2.2f RH",hum);       //格式化湿度数据,并保存到StrBuf数组中
   	OLED_ShowString(32,6,(uint8_t *)StrBuf);  //实时输出温度数据
   	HAL_Delay(1000);
    }
}

代码分析

memset(); 清空数组缓冲区的数据,每次使用完进行清空一次,存储下一个数据
也可以使用两个数组来格式化输出,不用memset()清空数组。

call_sht11(); 是一个封装好获取温湿度的函数,把变量的地址传进去就能带出温湿度数据。

sprint(); 格式化输出函数,把温湿度数据格式化需要的格式存储到数组缓存区中,实现
实时更新OLED屏的温湿度数据。

OLED_ShowString(); OLED打印字符串数据,注意第三个参数得强制类型转换为(uint8_t *)无符号字符型的指针类型。

最终实现效果

在这里插入图片描述

标签:ShowString,StrBuf,数据,温湿度,OLED,模块,清空,LoRa
来源: https://blog.csdn.net/a6662580/article/details/121366539