久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2198|回復: 1
收起左側

stm32c8t6智能窗戶控制系統代碼流程圖

[復制鏈接]
ID:1003388 發表于 2023-4-19 10:35 | 顯示全部樓層 |閱讀模式

系統框架圖

系統框架圖

系統框架圖
   主函數
#include "rain.h"
#include "delay.h"
#include "sys.h"
#include "timer.h"
//#include "usart.h"
#include "dht11.h"
#include "oled.h"
#include "stdio.h"
#include "sg90.h"
#include "lanya.h"
#include "mq2.h"
#include "sr501.h"
#include "beep.h"
//u8 alarmFlag = 0;//是否報警的標志
//u8 alarm_is_free = 10;//報警器是否被手動操作,如果被手動操作即設置為0
volatile uint16_t data;//為了保存串口的數據   volatile 代表變量是易變的
u8 humidityH;          //濕度整數部分
u8 humidityL;          //濕度小數部分
u8 temperatureH;   //溫度整數部分
u8 temperatureL;
int i=0;
u8 buf[5];

//溫度小數部分
extern char oledBuf[20];

int fputc(int ch,FILE* f)
{
        USART_SendData(USART3,ch);
        while( USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET );//等待數據發送完成
        return ch;
}



int main(void)
{        
        HC_SR501Configuration();
        RAIN_Init();
        BEEP_Init();
  MQ2_Init();
  delay_init();
        usart3_init();
        DHT11_Init();
        SG90_pwm_init();
  OLED_Init();
        OLED_ColorTurn(0);
        OLED_DisplayTurn(0);
        TIM2_Int_Init(4099,7199);
        while(1)
        {
               
                        DHT11_Read_Data(&humidityH,&humidityL,&temperatureH,&temperatureL);
        
                //手機控制模式:1、2、3、4、5
                if(data ==0X01)//如果收到0x01,手動開窗戶
                {

                                TIM_SetCompare3(TIM3, 175);//開窗
                }
                else if(data==0x02)//手動關窗
                {
                        TIM_SetCompare3(TIM3, 195);//關?
               
                }
                else if(data==0x03)//自動模式
                {
                        if(MQ2 == 0)//有害氣體,一級優先開窗
                        {
                            TIM_SetCompare3(TIM3, 175);//開窗
                                        BEEP_bi3();
                                        printf("可燃氣體超標 \n");
                        }
                        else
                        {
                           if(HC_SR501 == 1)//有人靠近,二級優先關窗
                        {
                            TIM_SetCompare3(TIM3, 195);//關窗
                                        BEEP_bi1();
                                        printf("注意窗邊 \n");
                                          delay_ms(500);
                        }
      else
                        {
                                        if(RAIN1 == 0)//外面下雨,三級優先關窗
                        {
                            TIM_SetCompare3(TIM3, 195);//關窗
                        }
                                        else
                                        {
                                                
                                                        if(humidityH >= 70)//如果濕度大于70
                                                        {

                                                                        TIM_SetCompare3(TIM3, 195);//關?
                                                        }
                                                        else
                                        TIM_SetCompare3(TIM3, 175);//開窗
                                        }               
                          }
                        }
          }  
               
        else        if(data ==0X04)//如果收到0x04,讀取溫度
                {
      printf("溫度=%d.%d \n",temperatureH,temperatureL);//中文輸出藍牙采用gbk
                        delay_ms(1500);
                }

               
               
        else        if(data ==0X05)//如果收到0x05,讀取濕度
                {
      printf("濕度=%d.%d \n",humidityH,humidityL);
                        delay_ms(1500);
                }
        
        
else if(data !=1|2|4|5 )
        {
                                //上電默認自動
                        if(MQ2 == 0)//有害氣體,一級優先開窗
                        {
                            TIM_SetCompare3(TIM3, 175);//開窗
                                        BEEP_bi3();
                                        printf("可燃氣體超標 \n");
                        }
                        else
                        {
                           if(HC_SR501 == 1)//有人靠近,二級優先關窗
                        {
                                        delay_ms(1000);
                                 if(HC_SR501 == 1)//有人靠近,二級優先關窗
                                 {
                            TIM_SetCompare3(TIM3, 195);//關窗
                                        BEEP_bi1();
                                        printf("注意窗邊 \n");
                                          delay_ms(500);
                                 }
                        }
      else
                        {
                                        if(RAIN1 == 0)//外面下雨,三級優先關窗
                        {
                            TIM_SetCompare3(TIM3, 195);//關窗
                        }
                                        else
                                        {
                                                
                                                        if(humidityH >= 70)//如果濕度大于70
                                                        {

                                                                        TIM_SetCompare3(TIM3, 195);//關?
                                                        }
                                                        else
                                        TIM_SetCompare3(TIM3, 175);//開窗
                                        }               
                          }
                        }
        
                }
               
                          
        }

}



//}

void  USART3_IRQHandler(void)
{
        uint16_t n;//為了接收數據
        

        //判斷中斷是否發生
        if( USART_GetITStatus(USART3,USART_IT_RXNE) != RESET )//代表發生
        {
               
                //處理數據(一般都是為了接收數據)
                n =  USART_ReceiveData(USART3);//通過串口3接受數據
                data = n;
        

               
                USART_ClearITPendingBit(USART3 ,USART_IT_RXNE);
        }

}
        

原理圖: 無
仿真: 無
APP:無
Keil代碼下載: 程序.7z (210.87 KB, 下載次數: 38)

手機操作流程

手機操作流程

程序流程圖

程序流程圖

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1102334 發表于 2023-12-24 10:30 | 顯示全部樓層
可惜沒有APP
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久国产精品视频 | 一区二区三区视频在线观看 | 国产精品毛片一区二区三区 | 七七婷婷婷婷精品国产 | 久久久精 | 精品一区二区久久久久久久网精 | 日韩一区二区在线视频 | 亚洲成人高清 | 日韩在线大片 | 国产精品久久久久久久久久东京 | 国产精品成人69xxx免费视频 | 欧美jizzhd精品欧美巨大免费 | 欧美日韩三区 | 国产999精品久久久久久 | 欧美极品在线观看 | 日韩在线欧美 | 亚洲一区二区电影网 | 精久久久 | 韩日在线| 一级黄色片日本 | 黄色日批视频 | 欧美日韩电影免费观看 | 羞羞的视频免费观看 | 久久精品国产久精国产 | 色视频免费 | 在线播放亚洲 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 久久久久国产一级毛片 | 久久精品电影 | 99re在线视频 | 亚洲天堂成人在线视频 | 亚洲午夜精品一区二区三区他趣 | 欧美一区二区在线观看 | 99福利视频| 欧美激情一区二区三区 | 日韩免费网站 | 在线免费观看视频黄 | 视频二区国产 | 午夜影院网站 | 日本免费视频 | 国产成人在线播放 |