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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2249|回復: 1
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主

系統框架圖
   主函數
#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)

1681871704160.jpg (56.01 KB, 下載次數: 98)

手機操作流程

手機操作流程

1681871640509.jpg (62.5 KB, 下載次數: 90)

程序流程圖

程序流程圖

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1102334 發表于 2023-12-24 10:30 | 只看該作者
可惜沒有APP
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕日韩高清 | 国产精品福利视频 | 久久视频这里只有精品 | 国产网友自拍 | 国产成人三级一区二区在线观看一 | 久久久久亚洲 | 国产精品久久 | 国产三级成人 | 国产亚洲一区二区三区 | 韩日一区二区 | 一区二区三区高清 | 国产精品天堂 | 欧美精品久久久久久久多人混战 | 日韩精品视频免费在线观看 | 日韩精品久久久久久久 | 免费的黄色大片 | 国产福利在线 | 日韩一级免费视频 | 少妇视频网站 | 国产一区二区三区免费视频 | 97视频免费在线观看 | 欧美日韩精品一区二区 | 国产成人精品一区二 | 日产精品久久久一区二区 | 成人伊人网 | 久久精品久久久久 | 久久久久久久久国产 | 国产无精乱码一区二区三区 | 国产又粗又猛又黄又爽的视频 | 亚洲天堂男人 | 免费观看一区二区三区 | 精品国产福利 | 久久精品欧美一区二区 | 蜜桃在线观看视频 | 亚洲精品伦理 | 91av视频在线播放 | 亚洲久久久久 | 久热99 | 欧美日韩一区二区三区视频 | 视频在线一区 | 黄色一级在线观看 |