物联网竞赛Lora通用库获取温湿度
在进行获取温湿度之前有以下几个注意点
一、想要获取温湿度必须插上温湿度模块,不然数值一直为空
二、温湿度是使用总线型协议,而不是使用ADC协议!!!
三、如果使用新大陆最新的温湿度光照三合一的传感器,必须使用通用库当中的"sht3x.h" 如果使用旧版的温湿度模块就使用“sht1x.h”
这里我们以新版的温湿度光照三合一的传感器为例
一、导入竞赛选手想要自行添加的包
#include "sht3x.h"
#include "hal_oled.h"
二、初始化
hal_temHumInit(); //温湿度模块初始化
OLED_Init(); //液晶屏初始化
三、声明全局变量
float tem,hum; //存放温湿度变量
char tem_data[10]={0};
char hum_data[10]={0}; //存放温湿度数组
四、main函数(核心代码)
int main(void)
{
Init();
hal_temHumInit();
OLED_Init();
while(1)
{
OLED_ShowCHinese(0*16,0,22);
OLED_ShowCHinese(1*16,0,23);
OLED_ShowCHinese(0*16,2,24);
OLED_ShowCHinese(1*16,2,23);
call_sht11(&tem,&hum); //获取温湿度
sprintf(tem_data,":%2.2fC",tem);//格式化保存到的温度,存入数组当中
sprintf(hum_data,":%2.2fRH",hum);
OLED_ShowString(2*16,0,(uint8_t *)tem_data);
OLED_ShowString(2*16,2,(uint8_t *)hum_data);
HAL_Delay(1000);
}
}