当前位置: 首页 > news >正文

物联网传感器检测实验

/*------------------------------------------------------------------------------
* @文件名        : handle
* @描述          : 用户处理函数
* @作者          : 物联网项目组
* @日期          : 2023/04/01
* @版本          : V0.0.2
*******************************************************************************
功能介绍:
1、显示屏初始化显示;
2、检测光强值并显示

******************************************************************************/
#include "handle.h"
#include "gpio_api.h" 
#include "lcd.h" 
#include "stdio.h"
#include "string.h"
#include "icon_farm_co2_on.h"

/********************************************************************************
* 名    称:LCD_Display_Init
* 功    能:显示屏上电初始化显示
* 入口参数:无
* 返 回 值:无
* 说    明:无
* 调用方法:外部函数
********************************************************************************/
void LCD_Display_Init(void)

/*显示屏初始化界面*/
LCD_Init();       
LCD_Fill(0,lcddev.height-20,lcddev.width,lcddev.height,BLUE);
LCD_Fill(0,0,lcddev.width,20,BLUE);
Gui_StrCenter(0,2,BLUE,BLUE," ",16,0); 
Gui_StrCenter(0,40,BLUE,WHITE,"检测实验",24,1);  
Gui_StrCenter(0,lcddev.height-18,BLUE,BLUE," ",16,0); 
LCD_draw_bmp(96,120,48,gImage_icon_farm_co2_on);   //光强图标显示
}

/********************************************************************************
* 名    称:CO2_Handle
* 功    能:二氧化碳检测处理函数
* 入口参数:无
* 返 回 值:无
* 说    明:无
* 调用方法:外部函数
********************************************************************************/
void CO2_Handle(void)
{
uint16_t CO2_value = 0; //二氧化碳值
uint16_t TVOC_value = 0;
float TVOC =0.0f;
char  str[20]; //显示屏显示缓冲数组
static  uint32_t tickstart;
if((HAL_GetTick() - tickstart) >= 1000) //1000ms检测一次
{
tickstart = HAL_GetTick();  
memset(str,0,sizeof(str));
SGP30_Handle(&CO2_value,&TVOC_value); 
TVOC=TVOC_value;
sprintf(str,"TVOC:%.2f ppb\r\n\r\n",TVOC);
printf("** TVOC:%.2f ppb\r\n\r\n",TVOC);
if(CO2_value > 300 && (CO2_value < 500))
{
sprintf(str,"二氧化碳浓度: %d",CO2_value);
//            printf("** 读取二氧化碳传感器数据\r\n");
printf("** 二氧化碳浓度:%d ppm\r\n\r\n", CO2_value);

}
else
{
sprintf(str,"二氧化碳:---");
}
LCD_Fill(90,182,230,198,WHITE);              //刷新显示
Show_Str(90,182,BLUE,WHITE,(uint8_t *)str,16,1);     //显示CO2数值
led_toggle(LED1_PORT);        
}    

void Temp_Hum_Handle(void)
{
static float temp = 0; //温度值
static float hum = 0; //湿度值
static char  str[20];   //显示屏显示缓冲数组
static  uint32_t tickstart;
if((HAL_GetTick() - tickstart) >= 1000)     //1000ms检测一次

tickstart = HAL_GetTick(); 

SHT30_read_result(&temp,&hum);                    //获取温湿度值
temp=(temp*9/5)+32;
LCD_Fill(90,182,200,182+16*2,WHITE);    //刷新显示
printf(str,"Temperature:%0.1f华氏度",temp);

//        /*SHT30温度测量范围以内才显示*/
//        if(temp < 0.0f || temp > 55.0f)  
//        {
//            sprintf(str,"Temperature:");
//        }
//        else
//        {
//            sprintf(str,"Temperature:%0.1f℃",temp);
//        }
//        Show_Str(75,182,BLUE,WHITE,(uint8_t *)str,16,1);     //显示温度

/*SHT30湿度测量范围以内才显示*/
if(hum < 20.0f || hum > 90.0f)
{
sprintf(str,"Humidity:");
}
else
{
sprintf(str,"Humidity:%0.1f%%",hum);
}
Show_Str(90,198,BLUE,WHITE,(uint8_t *)str,16,1);     //显示湿度   

        printf("** 读取温湿度传感器数据\r\n");
printf("** Temperature:%.1f华氏度\r\n", temp);
printf("** Humidity:%.1f%%\r\n\r\n", hum);
led_toggle(LED1_PORT);
}    

/*******************************************************************************
* @文件名        : main
* @描述          : 光强传感器实验
* @作者          : 物联网项目组
* @日期          : 2020/01/15
* @版本          : V2.0.0
--------------------------------------------------------------------------------
功能介绍:
1. 检测BH1750光强
1、显示屏实时显示光强:xxlx
2、串口输出光强Illumination:xxlx
*******************************************************************************/
#include "main.h"
#include "usart_api.h"
#include "stm32l4xx_hal.h"
#include "gpio_api.h" 
#include "handle.h"

/*****************************内部函数定义**************************************/    
void SystemClock_Config(void);


文章转载自:

http://PGMjhmek.bfsqz.cn
http://RoJTG67Q.bfsqz.cn
http://RFbl3uHP.bfsqz.cn
http://nLHZJnFT.bfsqz.cn
http://VsFBkXrg.bfsqz.cn
http://UWQcNw4n.bfsqz.cn
http://hxHL1wZP.bfsqz.cn
http://iIE4Uewj.bfsqz.cn
http://4xFVXL2i.bfsqz.cn
http://8yZtmEnC.bfsqz.cn
http://7CUEXyQX.bfsqz.cn
http://pdeGT4M0.bfsqz.cn
http://rMp1UrKK.bfsqz.cn
http://3NtSbNbC.bfsqz.cn
http://t6lUexz7.bfsqz.cn
http://ge6lsfie.bfsqz.cn
http://dpWLsLWG.bfsqz.cn
http://vCy8e7EO.bfsqz.cn
http://naywthHU.bfsqz.cn
http://DSEwBtnf.bfsqz.cn
http://ngeOWx9O.bfsqz.cn
http://SAxd5Wa4.bfsqz.cn
http://fzT87kNQ.bfsqz.cn
http://Z1Tls1dQ.bfsqz.cn
http://tNH5yt9r.bfsqz.cn
http://htK1NH3o.bfsqz.cn
http://Tdzp2zoq.bfsqz.cn
http://jpf1OoLl.bfsqz.cn
http://1RwBCV3s.bfsqz.cn
http://Soxcoxpo.bfsqz.cn
http://www.dtcms.com/a/386504.html

相关文章:

  • GTA式送货!新游《Deliver At All Costs》上线steam
  • 亚马逊新品优化全攻略:从冷启动到高转化的系统化路径
  • 基于属性描述转移的高压断路器零样本智能诊断模型
  • C2(Command Control)命令与控制
  • Tessent_ijtag_ug——第 5 章IJTAG 网络插入 (2)
  • Kaggle铜牌攻略:从泰坦尼克到房价预测,数据科学竞赛完整流程解析
  • 结合图像-文本信息与特征解纠缠的多标签广义零样本胸部X射线分类|文献速递-最新医学人工智能文献
  • JavaScript数组some()和every()方法
  • 全球炭黑复合导电浆料市场报告:原材料波动与技术创新的双重博弈
  • 自动为wordpress外贸网站设置一个标题图
  • 【大模型记忆-Mem0详解-6】核心组件-图形记忆
  • Ansys Zemax | 如何使用极探测器和 IESNA / EULUMDAT 光源数据
  • 【记录】初赛复习 Day2 Day3(内附2024S第一轮难题详解)
  • 洛谷 闰年求和 简单模板题
  • 【Sa-Token 中 三种Session会话 模型详解】
  • MacOS M1安装face_recognition
  • 鸿蒙应用冷启动优化:本地 KV 缓存预热实战指南
  • glib2-2.62.5-7.ky10.x86_64.rpm怎么安装?Kylin Linux RPM包安装详细步骤
  • 少儿舞蹈小程序(16)购物车功能开发
  • 【Node】Windows安装node多版本管理工具nvm
  • JAVA上门家政维修服务系统源码微信小程序+微信公众号+APP+H5
  • Linux学习笔记(五)--Linux基础开发工具使用
  • pyspark自定义udf函数
  • SpringBoot MySQL
  • 【GOTO判断素数输出孪生10对】2022-11-14
  • 【STL库】哈希表的原理 | 哈希表模拟实现
  • A股大盘数据-20250916分析
  • mysql 获取时间段之间的差值
  • 系统间文件复制文档
  • Vtaskdelay任务阻塞深入了解