【單片機畢業設計3-基于stm32c8t6的智能家居系統】

【單片機畢業設計3-基于stm32c8t6的智能家居系統】

  • 前言
  • 一、功能介紹
  • 二、硬件部分
  • 三、軟件部分
  • 總結


前言

🔥這里是小殷學長,單片機畢業設計篇3 基于stm32的智能家居控制系統
🧿創作不易,拒絕白嫖(有需可點擊最后鏈接)可私
企鵝號:2836235214

在這里插入圖片描述


一、功能介紹

------------------------------------------智能家居系統-----------------------------------------
a. 通過DHT11溫濕度傳感器模塊與顯示屏結合將實時采集的環境溫濕度的數據進行顯示監控,當溫度低于或高于我們所設閾值時則會觸發蜂鳴器發出相應的警報;
b. 紅外傳感器模塊,通過紅外感應進行燈光的控制。
c. MQ2煙霧傳感器進行可燃氣體的檢測;
d. 雨滴傳感器檢測是否有下雨,通過發出警報提醒居家者;
e. 火焰傳感器實時檢測當前環境是否有火災,并發出警報警示居家者及時處理;
f. 震動傳感器,類似聲控燈,檢測到震動后就會打開燈光;
g. 8組繼電器實現電器的模擬控制(空凋、冰箱、電視、風扇、燈等);
h. 語音模塊(SU-03T)通過智能公元AI平臺進行相應命令配置從而與單片機進行串口通信控制;
i. 藍牙模塊(HC-05)通過手機端藍牙APP實現控制;
j. WIFI (ESP826601s)模塊,通過OneNet云端平臺進行數據上傳監測和指令下發控制。
功能可定制


在這里插入圖片描述

🔥 實物展示

在這里插入圖片描述

在這里插入圖片描述

二、硬件部分

下面為該畢設中所用到的相關硬件說明,具體參數不做細節描述

硬件材料

在這里插入圖片描述
在這里插入圖片描述

PCB和原理圖

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

三、軟件部分

在這里插入圖片描述

部分流程圖

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

程序

main.c部分代碼

 int main(void){	unsigned char *dataPtr = NULL;unsigned short timeCount = 0;	//發送間隔變量delay_init();	    	   //延時函數初始化	  NVIC_Configuration();  //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級Led_Init();            //LED初始化Init_MQ2();            //MQ2初始化Beep_Init();           //蜂鳴器初始化InitRelay();           //繼電器初始化Fire_Init();           //火焰初始化Rain_Init();           //雨滴初始化Shake_Init();          //震動初始化Infrared_Init();       //紅外初始化TIMER3_Init();         //定時器初始 1msInit_Usart();          //串口初始化LCD_Init();	           //液晶屏初始化//溫度初始化if(!DHT11_Init()){printf(" Error! T DHT11 HAS NO RESPOND...\n");}else{printf("\r\n THE DHT11 HAS RESPOND");}Init_Inteface();	      //界面初始化ESP8266_Init();					//初始化ESP8266 //printf("8266_INIT_END\n");while(OneNet_DevLink())			//接入OneNETdelay_ms(500);printf("接入onenet成功");delay_ms(500);Show_Str(180,280,RED,BLUE,(unsigned char *)"WIFI加載成功...",16,0);	LCD_Clear(WHITE);delay_ms(500);	onenet_flag = 1;          //WIFI接入成功后將其標志位置1 在定時器中進行相關OneNet數據上報處理while(1) {		if(temp > set_temp || humi > set_humi){Buzzer_Action(5);}Param_Interface();      //參數界面實時刷新Sensor_Task();          //傳感器任務Usart_Task();           //串口任務if(++timeCount >= 150)		//時間間隔1s{//傳感器檢測if(DHT11_Read_Data(&temp,&humi) == 1){delay_ms(100);//printf("temp:%02d  humi:%02d \r\n",temp,humi);}OneNet_SendData();//發送數據給onenet//printf("send_data_end\n");timeCount = 0;ESP8266_Clear();}	dataPtr = ESP8266_GetIPD(0);//獲取平臺返回的數據if(dataPtr != NULL)//如果返回數據不為空OneNet_RevPro(dataPtr);//平臺返回數據檢測		delay_ms(10); 		}
}//1 藍牙 RX- PA9  TX-PA10
void USART1_IRQHandler(void)
{if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中斷{Usart_cmd = USART_ReceiveData(USART1);USART_ClearFlag(USART1, USART_FLAG_RXNE);}
}//2 語音 RX-  PA2  TX-PA3
void USART2_IRQHandler(void)
{if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET){Usart_cmd = USART_ReceiveData(USART2);				USART_ClearFlag(USART2, USART_FLAG_RXNE);}
}void TIM3_IRQHandler()
{static unsigned int t = 0,set_t = 0,set_t1 = 0,temp_t,onenet_t,t2 = 0,t3 = 0;  if(TIM_GetITStatus(TIM3, TIM_IT_Update)){t++;                //時間變量temp_t++;           //溫度刷新變量if(t == 1000)  //1s{t = 0;sec++;if(sec == 60) //1hour{sec = 0;hour++;if(hour == 24){hour = 0;}}sprintf(strtime,"%4d-%02d-%02d %02d:%02d:%02d\r\n",year,month,day,hour,min,sec);  //更新時間//printf("%02d:%02d:%02d\r\n",hour,min,sec);  //調試打印信息 不用的時候屏蔽}//========================定時功能==============================if(light_flag == 1)  //開啟燈光定時模式{corridor_light(1);set_t++;  if(set_t  == 1000)  //1s{set_t = 0;set_light_timer--;if(set_light_timer == 0)  //時間到{corridor_light(0);light_flag = 0;        //關閉定時標志set_light_timer = 10;          //再次重裝初值}}}if(fan_flag == 1)  //開啟定時模式{//打開風扇Relay3_ON();set_t1++;  if(set_t1  == 1000)  //1s{set_t1 = 0;set_fan_timer--;if(set_fan_timer == 0)  //時間到{//關閉風扇Relay3_OFF();fan_flag = 0;        //關閉定時標志set_fan_timer = 10;          //再次重裝初值}}}	//下面為溫濕度數據更新 200msif(temp_t == 200){temp_t = 0;DHT11_Read_Data(&temp,&humi);	}//下面為OneNet云平臺數據上報 2S更新一次/*if(onenet_flag == 1){onenet_t++;}if(onenet_t == 2000){OneNet_SendData();//發送數據給onenetonenet_t = 0;}*///下面為紅外檢測后的功能處理 走廊燈亮5s后自動關閉if(people_flag == 1){corridor_light(1);status[15] = 1;t2++;if(t2 == 5000)     //5s時間到 關閉走廊燈標志位清零  燈光狀態置0 {t2 = 0;corridor_light(0);status[15] = 0;people_flag = 0;}}//下面為震動傳感器檢測后的功能處理 臥室燈亮5s后熄滅if(shake_flag == 1){Relay8_ON();status[7] = 1;	t3++;if(t3 == 5000)   //5s時間到 關閉臥室燈標志位清零  燈光狀態置0 {t3 = 0;Relay8_OFF();status[7] = 0;	shake_flag = 0;}}TIM_ClearITPendingBit(TIM3, TIM_IT_Update);}
}

總結

上面為基于stm32f103c8t6的智能家居控制系統相關的大致介紹,源碼,pcb和原理圖以及相關文檔說明做了詳細說明,有需可私

🧿創作不易,拒絕白嫖

很有幸獲得2023屆優秀本科畢業論文和畢業設計

在這里插入圖片描述

實物+資料

在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35727.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35727.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35727.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python自動化測試框架:Pytest和Unittest的區別

pytest和unittest是Python中常用的兩種測試框架,它們都可以用來編寫和執行測試用例,但兩者在很多方面都有所不同。本文將從不同的角度來論述這些區別,以幫助大家更好地理解pytest和unittest。 1. 原理 pytest是基于Python的assert語句和Pytho…

consul安裝啟動流程

普通軟件包安裝 首先cd /opt ,將安裝包放到該目錄下 下載consul安裝包 進入consul官網找到自己開發平臺對應的安裝包下載 https://www.consul.io/downloads.html 或使用命令 wget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_linux_amd64.zip (如果…

vue3 table動態合并,自定義參數合并單元格

<template><div><el-table :data"tableData" :span-method"objectSpanMethod" border:header-cell-style"{ textAlign: center}"><el-table-column prop"area" label"區域" align"center"&g…

HW樣本《關于“XXXX”微信視頻號發布短視頻的信息說明.exe》的逆向分析

一、概述 樣本運行后會釋放《關于“XXXX”微信視頻號發布短視頻的信息說明.doc》并打開&#xff1b;同時釋放ncloud.exe惡意文件并啟動&#xff1b;調用cmd命令刪除樣本母體&#xff1b;其中ncloud.exe會從互聯網下載類似字母表的數據解密出CS木馬&#xff0c;在內存加載并運行…

《玩轉Python數據分析專欄》大綱

歡迎來到《玩轉Python數據分析分類專欄》&#xff01;在這個專欄中&#xff0c;我們將帶您深入探索數據分析的世界&#xff0c;以Python為工具&#xff0c;解析各個領域的實際應用場景。通過100篇教程&#xff0c;我們將逐步引領您從入門級到高級&#xff0c;從基礎知識到實戰技…

前端安全:探秘安全 HTTP 頭的設置

在當今數字化時代&#xff0c;前端安全至關重要。除了應對常見的攻擊方式外&#xff0c;通過設置安全 HTTP 頭&#xff0c;我們可以加強網站的安全性&#xff0c;減少潛在的威脅。本文將為您詳細解釋什么是安全 HTTP 頭&#xff0c;以及如何通過設置它們來保護您的前端應用。 1…

真就逮住23屆了使勁薅唄,24屆笑了

作者&#xff1a;阿秀 InterviewGuide大廠面試真題網站&#xff1a;https://top.interviewguide.cn 小伙伴們大家好&#xff0c;我是阿秀。 最近在朋友圈看到不少動態說"24屆明顯好轉"的消息&#xff0c;也收到不少私信問是不是24屆的相比于23屆好多了&#xff0c;更…

深度學習階段性回顧

本文針對過去兩周的深度學習理論做階段性回顧&#xff0c;學習資料來自吳恩達老師的2021版deeplearning.ai課程&#xff0c;內容涵蓋深度神經網絡改善一直到ML策略的章節。視頻鏈接如下&#xff1a;吳恩達深度學習視頻鏈接 &#xff08;注&#xff1a;本文出自深度學習初學者&a…

Vue中如何更好地封裝組件?

子組件接受父組件傳遞的事件 1.子組件使用事件名"$emit(父組件中傳遞的事件名,想給父組件傳遞的參數(可選))" click"$emit(click)" 2.子組件使用 v-on"$listeners" 父組件&#xff1a; <template><div id"app"><myCo…

MyBatis的XML映射文件

Mybatis的開發有兩種方式&#xff1a; 注解 XML配置文件 通過XML配置文件的形式來配置SQL語句&#xff0c;這份兒XML配置文件在MyBatis當中也稱為XML映射文件。 導學&#xff1a;在MyBatis當中如何來定義一份兒XML映射文件&#xff1f; 在MyBatis當中&#xff0c;定義XML…

使用 HTML、CSS 和 JavaScript 創建多步驟表單

使用 HTML、CSS 和 JavaScript 創建多步驟表單 為了處理又長又復雜的表單&#xff0c;我們需要將它們分成多個步驟。通過一次只在屏幕上顯示一些輸入&#xff0c;表單會感覺更容易理解&#xff0c;并防止用戶感到被大量的表單字段淹沒。 在本文中&#xff0c;我將逐步指導如何…

有哪些可能引起前端安全的問題?

跨站腳本 (Cross-Site Scripting, XSS) ?種代碼注??式,為了與 CSS 區分所以被稱作 XSS。早期常?于?絡論壇, 起因是?站沒有對?戶的輸?進?嚴格的限制, 使得攻擊者可以將腳本上傳到帖?讓其他?瀏覽到有惡意腳本的??, 其注??式很簡單包括但不限于 JavaScript / CSS …

基礎堆排序(Java 實例代碼)

目錄 基礎堆排序 一、概念及其介紹 二、適用說明 三、過程圖示 四、Java 實例代碼 src/runoob/heap/Heapify.java 文件代碼&#xff1a; 基礎堆排序 一、概念及其介紹 堆排序&#xff08;Heapsort&#xff09;是指利用堆這種數據結構所設計的一種排序算法。 堆是一個近…

Linux_5_Shell腳本編程

目錄 1 基礎1.1 程序組成1.2 程序編程風格1.3 編程語言1.4 編程邏輯處理方式 2 shell 腳本語言的基本結構2.1 shell腳本的用途2.2 shell腳本基本結構2.3 創建shell腳本過程2.4 腳本注釋規范2.5 第一個腳本2.6 腳本調試2.7 變量2.7.1 變量2.7.2 變量類型2.7.3 編程語言分類2.7.4…

【MAC】 M2 brew安裝 docker 運行失敗 解決

MAC 安裝 brew install --cask docker 之后一直顯示docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. 網上看了一些文章 發現 這個不適用于M2 所以要從官網上下載 docker 安裝成功

C++ 動態規劃經典案例解析之最長公共子序列(LCS)_窺探遞歸和動態規劃的一致性

1. 前言 動態規劃處理字符相關案例中&#xff0c;求最長公共子序列以及求最短編輯距離&#xff0c;算是經典中的經典案例。 講解此類問題的算法在網上一抓應用一大把&#xff0c;即便如此&#xff0c;還是忍不住有寫此文的想法。畢竟理解、看懂都不算是真正掌握&#xff0c;唯…

多線程與并發編程面試題總結

多線程與并發編程 多線程 線程和進程的區別&#xff1f; 從操作系統層面上來講&#xff1a;進程(process)在計算機里有單獨的地址空間&#xff0c;而線程只有單獨的堆棧和局部內存空間&#xff0c;線程之間是共享地址空間的&#xff0c;正是由于這個特性&#xff0c;對于同…

Vim入門教程vimtutor1.7總結

vimtutor命令可以打開教程文檔 原文特別提示 ??? 特別提示&#xff1a;切記您要在使用中學習&#xff0c;而不是在記憶中學習 Vim模式 正常模式&#xff08;Normal Mode&#xff09;&#xff1a;默認模式&#xff0c;可以使用基礎命令進行操作命令模式&#xff08;Command…

阿里云國際版云服務器防火墻怎么設置呢?

入侵防御頁面為您實時展示云防火墻攔截流量的源IP、目的IP、阻斷應用、阻斷來源和阻斷事件詳情等信息。本文介紹了入侵防御頁面展示的信息和相關操作&#xff0c;下面和012一起來了解阿里云國際版云服務器防火墻設置&#xff1a; 前提條件 您需要先在防護配置頁面&#xff0c;開…

vscode debug python 帶參數

兩種方法 第一種&#xff1a; 1&#xff0c;側邊欄選擇運行和調試 2&#xff0c;請先創建一個launch.json文件 3&#xff0c;并選擇配置文件為python文件 此時你的工作目錄下會多一個目錄.vscode和該目錄下一個launch.json文件&#xff0c;該文件則配置了你的debug配置。在…