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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2043|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产在线播 | 欧美成人aaa级毛片在线视频 | 99久久久国产精品 | 黄a在线播放 | 97久久精品| 日韩精品久久久久久 | 日韩欧美在线观看 | 成人国产精品 | 老熟女毛片| 人人草人人干 | 伊人网综合 | 亚洲精品视频网站在线观看 | 午夜国产一区 | 秋霞电影院午夜伦 | 日韩在线视频一区 | 中文字幕亚洲国产 | 久久里面有精品 | 综合自拍| 99精品久久 | 天天操天天射天天 | 伊人狠狠干 | 成年人在线视频 | 拍戏被cao翻了h承欢 | 一区二区三区国产精品 | 国产a区| 亚洲精品成人网 | 波多野结衣精品在线 | a爱视频| 中文字幕在线观看第一页 | 欧美韩一区二区 | av福利网站 | 9999国产精品欧美久久久久久 | 欧美激情精品久久久久久变态 | 久草网址| 久久青青 | 国产精品一级 | 久久99久久99久久 | 久久99蜜桃综合影院免费观看 | 国产一区二区三区视频在线观看 | 久久一视频 | 国产精品毛片一区二区三区 |