【單片機畢業設計選題24053】-基于單片機的WiFi控制門禁系統設計

系統功能:

系統上電后OLED顯示智能門禁系統 Door:xxxxxx

初始化ESP8266完成后顯示 Door:Closed

短按按鍵SW4可打開電磁鎖OLED顯示Door:Open,約五秒后電磁鎖自動關閉OLED

顯示Door:Closed

根據“TCP調試助手使用說明”操作, 在調試助手界面發送Open后電磁鎖

打開OLED顯示Door:Open,約五秒后電磁鎖自動關閉電磁鎖顯示Door:Closed

主要功能模塊原理圖:

電源時鐘燒錄接口:

單片機和按鍵輸入電路:

系統控制電路:

資料獲取地址

系統主要功能模塊代碼

初始化代碼:

  /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_USART2_UART_Init();/* USER CODE BEGIN 2 *///uart2打開接收中斷HAL_UART_Receive_IT(&huart2, (uint8_t*)&uart2RecBuff, 1);InitOled();InitOledDisp();//初始化ESP8266ESP8266_Init();    /* USER CODE END 2 */

系統控制代碼:
?

//系統信息更新void SystemControl(void){static uint8_t doorOpenCnt = 0;if(doorState==false){return;}//門鎖開時間   doorOpenCnt++;if(doorOpenCnt>=5){doorOpenCnt = 0;doorState = false;RELAY_OFF();}}

OLED顯示處理:

//處理OLED顯示內容void SystemDisplay(void){char textBuf[20];if(doorState==false){sprintf(textBuf,"Door:Closed");}else{sprintf(textBuf,"Door:Open  ");}OledShowString(0, 3, (uint8_t*)textBuf, OLED_FONT_8X16);}

ESP8266命令處理:
?

//======================================================================//     函數名稱:    ESP8266_GetCMD//     函數功能:    獲取并處理ESP8266返回的命令//=======================================================================void ESP8266_GetCMD(void){char textBuf[20];//如果接收完成if(ESP8266_WaitRecive()==REV_OK)                                  {if(strstr((const char*)esp8266_buf, "0,CLOSED")){sysConnnect = false;}else if(strstr((const char*)esp8266_buf, "0,CONNECT")){sysConnnect = true;}       else if(strstr((const char*)esp8266_buf, "+IPD,0,5:LedON")){LED_ON();sprintf(textBuf,"LedON OK"); ESP8266_SendData((unsigned char*)textBuf, strlen(textBuf));}else if(strstr((const char*)esp8266_buf, "+IPD,0,6:LedOFF")){LED_OFF();           sprintf(textBuf,"LedOFF OK"); ESP8266_SendData((unsigned char*)textBuf, strlen(textBuf));} else if(strstr((const char*)esp8266_buf, "+IPD,0,4:Open")){doorState = true;RELAY_ON();sprintf(textBuf,"relayOn"); ESP8266_SendData((unsigned char*)textBuf, strlen(textBuf));}        ESP8266_Clear();    //清空緩存 }}

此設計提供的資料包含原理圖PCB(包含PDF,AD,立創EDA三個版本),源代碼,系統框圖,主程序流程圖,物料清單(包含使用到的器件手冊),功能操作說明等。

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

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

相關文章

商城源碼從哪里找

商城源碼可以從多個渠道獲取,具體包括開源平臺、專門的商城系統提供商、代碼分享網站等。不同的渠道可能適合不同的需求和技術水平。下面將詳細分析各個渠道的特點及優缺點: 開源平臺 Gitee:Gitee是一個知名的代碼托管平臺,提供…

【VUE基礎】VUE3第五節—核心語法之ref標簽、props

ref標簽 作用&#xff1a;用于注冊模板引用。 用在普通DOM標簽上&#xff0c;獲取的是DOM節點。 用在組件標簽上&#xff0c;獲取的是組件實例對象。 用在普通DOM標簽上&#xff1a; <template><div class"person"><h1 ref"title1">…

RDNet實戰:使用RDNet實現圖像分類任務(一)

論文提出的模型主要基于對傳統DenseNet架構的改進和復興&#xff0c;通過一系列創新設計&#xff0c;旨在提升模型性能并優化其計算效率&#xff0c;提出了RDNet模型。該模型的主要特點和改進點&#xff1a; 1. 強調并優化連接操作&#xff08;Concatenation&#xff09; 論文…

CF328A IQ Test 題解

思路 依題意模擬即可。 注意要保證是整數。 代碼 #include<bits/stdc.h> #include<cstring> #include<queue> #include<set> #include<stack> #include<vector> #include<map> #define ll long long #define lhs printf("\n…

kotlin flow collect collectLatest 區別

在 Kotlin 協程庫中&#xff0c;collect 和 collectLatest 都是用于收集 Flow 中發射的數據的方法&#xff0c;但它們在處理數據和響應新數據的方式上有所不同。 collect collect 是一個掛起函數&#xff0c;用于收集 Flow 中發射的所有數據。它會按順序處理每一個發射的數據…

UML圖書管理系統用例圖示例

新書速覽|《UML 2.5基礎、建模與設計實踐》新書速覽|《UML 2.5基礎、建模與設計實踐 【例4.4】圖書管理系統用例圖。 圖書管理系統按其業務功能分成借閱者管理、圖書管理、借書、還書和用戶管理等幾部分&#xff0c;這些職能對應于系統的不同組織部門。 1&#xff09;系統參…

echarts 中國地圖json文件

阿里云地理網址 DataV.GeoAtlas地理小工具系列 (aliyun.com) 地圖cp 修改參考 {"type": "FeatureCollection","features": [{"type": "Feature","properties": { "id": "65", "size&…

Actor-Critic 算法

在強化學習&#xff08;Reinforcement Learning, RL&#xff09;中&#xff0c;Actor-Critic 算法是一類強大的策略梯度方法&#xff0c;結合了策略&#xff08;Policy&#xff09;和價值函數&#xff08;Value Function&#xff09;兩種方法的優點。本文將詳細介紹 Actor-Crit…

[TypeScript]手擼LFU

[TypeScript]手擼LFU 最近做筆試的時候遇到了要手擼LFU的題目&#xff0c;LFU在vue源碼里還是有使用的&#xff0c;例如keep-alive的實現機制就是基于它來搞的。不多說了&#xff0c;直接上代碼。 代碼 // 雙向鏈表node class DoubleLinkNode {key: number;val: number;freq…

阿一課代表今日分享之使用dnscat2 進行dns隧道反彈shell(直連模式linux對linux)

DNS介紹 DNS是域名系統(Domain Name System)的縮寫&#xff0c;是因特網的一項核心服務&#xff0c;它作為可以將域名和IP地址相互映射的一個分布式數據庫&#xff0c;能夠使人更方便的訪問互聯網&#xff0c;而不用去記住能夠被機器直接讀取的IP數串。 DNS的記錄類型有很多&a…

歸并排序算法Python實現

歸并排序原理和步驟 1. 將數組分成兩半&#xff0c;直到每個子數組的長度為1 首先&#xff0c;將數組分成兩半。如果數組的長度大于1&#xff0c;將其從中間分割為兩個子數組。對每個子數組繼續進行這個過程&#xff0c;直到每個子數組的長度為1。此時&#xff0c;所有子數組…

L4 Persistence and Streaming

參考自https://www.deeplearning.ai/short-courses/ai-agents-in-langgraph&#xff0c;以下為代碼的實現。 這里主要是加入了memory&#xff0c;這樣通過self.graph graph.compile(checkpointercheckpointer)就可以加入持久性的檢查點通過thread {"configurable"…

項目實戰--Spring Boot + GraphQL實現實時數據推送

背景 用戶體驗不斷提升而3對實時數據的需求日益增長&#xff0c;傳統的數據獲取方式無法滿足實時數據的即時性和個性化需求。 GraphQL作為新興的API查詢語言&#xff0c;提供更加靈活、高效的數據獲取方案。結合Spring Boot作為后端框架&#xff0c;利用GraphQL實現實時數據推…

Java筆試|面試 —— 對多態性的理解

談談對多態性的理解&#xff1a; 一個事物的多種形態&#xff08;編譯和運行時狀態不一致性&#xff09; 實現機制&#xff1a;通過繼承、重寫和向上轉型&#xff08;Object obj new 子類()&#xff09;來實現。 1.廣義上的理解 子類對象的多態性&#xff0c;方法的重寫&am…

visual studio 2022 在使用open3d出現的問題及解決方式

當出現以下問題&#xff1a; 使用open3d::utility::LogInfo系列出現LNK2001問題&#xff0c;如下所示&#xff1a;LNK2001 無法解析的外部符號 “char __cdecl fmt::v6::internal::decimal_point_impl(class fmt::v6::internal::locale_ref)” LNK2001 無法解析的外部符號 “p…

【C/C++】SDKDDKVer.h和WinSDKVer.h詳解及二者區別

一.SDKDDKVer.h介紹 SDKDDKVer.h 是一個在 Windows 軟件開發中常見的頭文件&#xff0c;它用于定義軟件開發工具包&#xff08;SDK&#xff09;和驅動開發工具包&#xff08;DDK&#xff09;的版本信息。這個文件通常位于 Visual Studio 安裝目錄下的 Include 子目錄中。 …

GD32MCU如何實現掉電數據保存?

大家在GD32 MCU應用時&#xff0c;是否會碰到以下應用需求&#xff1a;希望在MCU掉電時保存一定的數據或標志&#xff0c;用以記錄一些關鍵的數據。 以GD32E103為例&#xff0c;數據的存儲介質可以選擇內部Flash或者備份數據寄存器。 如下圖所示&#xff0c;片內Flash具有10年…

學習數據庫的增刪改查

一、創建數據庫和表 在進行增刪改查操作之前&#xff0c;我們需要創建一個數據庫和表。 1. 創建數據庫 使用 CREATE DATABASE 語句創建數據庫&#xff1a; CREATE DATABASE test_db;2. 選擇數據庫 使用 USE 語句選擇數據庫&#xff1a; USE test_db;3. 創建表 使用 CREA…

詳解C語言結構體

文章目錄 1.結構體的聲明1.1 結構體的基礎知識1.2 結構的聲明1.3 結構成員的類型 1.4結構體變量的定義和初始化2.結構體成員的訪問3.結構體傳參 1.結構體的聲明 1.1 結構體的基礎知識 結構是一些值的集合&#xff0c;這些值稱為成員變量。結構的每個成員可以是不同類型的變量 …

【密碼學】分組密碼概述

一、分組密碼的定義 分組密碼和流密碼都是對稱密碼體制。 流密碼&#xff1a;是將明文視為連續的比特流&#xff0c;對每個比特或字節進行實時加密&#xff0c;而不將其分割成固定的塊。流密碼適用于加密實時數據流&#xff0c;如網絡通信。分組密碼&#xff1a;是將明文數據…