物联网技能大赛Lora开发------温湿度

LORA 模块控制功能开发

一个lora模块,一个温湿度,光照一体模块,通过I2C总线采集温湿度传感器数据。

任务要求:

         1.液晶屏上实时显示当前温度湿度信息如下:

          Temperature:xxx 

           Humidity:xxxx

         2.按下Key2后,板上的LED2进入呼吸灯状态

         3.按下Key3后,板上的LED2常亮

         4.按下Key4后,板上的LED2灭


#include <string.h>
#include "board.h"
#include "hal_key.h"
#include "tim-board.h"
#include "timer_handles.h"
#include "sht3x.h"                //调用温湿度
#include "adc_reader.h"           //调用ADC

void Init() {

    BoardInitMcu();
    BoardInitPeriph();
    keys_init();
    setTimer2Callback(Time2Handler);
    Tim2McuInit(1);
	 
}


void KeyDownHandler(void) {
	
}


void handlerPre10Ms(void) {
    for (int delay = 0; delay < 30; delay++) {
        HAL_Delay(10);
        
    }
}


void delay(int time)
{
	while(time--);
}



void jiemian()                      //界面
{
	OLED_ShowString(0,0,"Temperature:");
	OLED_ShowString(0,2,"Humidity:");
}


uint8_t a[50];

void get_temphum()                  //温湿度
{
    hal_temHumInit();
	float temp,hum;
	call_sht11(&temp,&hum);
    sprintf((char*)a,"%.1f",temp);
    OLED_ShowString(95,0,a);
    sprintf((char*)a,"%.1f",hum);
	OLED_ShowString(95,2,a);
}

void huxi()                          //呼吸灯
{
		for(int i=0;i<1000;i++)
			{
				GpioWrite(&Led2,0);
				delay(i);
				GpioWrite(&Led2,1);
				delay(1000-i);
			}
			for(int i=0;i<1000;i++)
			{
				GpioWrite(&Led2,0);
				delay(1000-i);
				GpioWrite(&Led2,1);
				delay(i);
			}
}



unsigned int pd = 0;

int main( void )
{
  Init();
  OLED_Init();
  jiemian();
  ADCS_Init();
    while( 1 )
    {
			get_temphum();
			if(isKey2Pressed())
			{
			  pd=1;
				resetKey2();
			}
			
			else if(isKey3Pressed())
			{
			  pd=2;
				resetKey3();
			}
			
			else if(isKey4Pressed())
			{
			 pd=3;
				resetKey4();
			}
			
			if(pd==1)
			{
			huxi();
			}
			else if(pd==2)
			{
			GpioWrite(&Led2,0);
			}
			else if(pd==3)
			{
			GpioWrite(&Led2,1);
			}
		
    }
}

     第一次尝试发表文章,如有不足,请告知我,谢谢!!!!

  • 10
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值