国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于STM32F103設計的智能門鎖(支持多種開鎖解鎖方式)

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2022-02-28 13:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

?

一、環境介紹

編程軟件: keil5

主控MCU: STM32F103ZET6

射頻卡讀寫器:RFID-RC522

步進電機: 28BYJ4 4相5線

藍牙: ATK-HC05

WIFI: ATK-ESP8266

物聯網云平臺: 采用騰訊云物聯網平臺,直接支持微信小程序和手機獨立APP控制

二、功能介紹

這是基于STM32設計的智能鎖模型,支持多種開鎖方式,詳情如下:

1. 門禁卡刷卡開鎖:使用RC522射頻卡讀卡器,讀取IC卡卡號和內部數據,驗證身份,開鎖。

2. 藍牙自動開鎖: 業主的手機藍牙在范圍內,自動開鎖(通過連接藍牙地址確認業主身份),范圍是通過藍牙斷開與連接上為準。

3. 微信小程序開鎖、關鎖:通過ESP8266連接騰訊云物聯網平臺,業主可以通過微信小程序“騰訊連連” 進行遠程開鎖和關鎖。

如果沒有使用過騰訊云物聯網平臺的,可以看這里:STM32+ESP8266+MQTT協議連接騰訊物聯網開發平臺_DS小龍哥的專欄-CSDN博客_騰訊物聯網平臺

4. 按鍵開鎖、關鎖: 可以通過開發板上的按鍵進行開鎖和關鎖(模擬物理鑰匙而已)

開鎖和關鎖使用步進電機正轉一圈、反轉一圈模擬。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?

三、使用的相關硬件介紹

3.1 STM32F103ZET6系統板

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

3.2 HC05藍牙模塊

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

3.3 WIFI模塊

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

3.4 RFID-RC522模塊

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

3.5 步進電機

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

四、騰訊物聯網平臺

沒有使用過物聯網云平臺的參考這里:STM32+ESP8266+MQTT協議連接騰訊物聯網開發平臺_DS小龍哥的專欄-CSDN博客_騰訊物聯網平臺

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?

?

五、設備核心源碼

#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "key.h"
#include "usart.h"
#include 
#include "timer.h"
#include "esp8266.h"
#include "mqtt.h"
#include "hc05_Bluetooth.h"
#include "RFID_RC522.h"
#include "motor.h"

/*
硬件連接方式:

ATK-HC-05串口藍牙模塊與STM32的串口2相連接。
PA1--LED 配對狀態輸出; 配對成功輸出高電平,未配對則輸出低電平。
PA4---KEY 用于進入 AT 狀態;高電平有效(懸空默認為低電平)。
PA2--RXD 模塊接收腳
PA3--TXD 模塊發送腳
GND---GND 地
VCC---VCC 電源(3.3V~5.0V)

ATK-ESP8266串口WIFI模塊與STM32的串口3相連接。
PB10--RXD 模塊接收腳
PB11--TXD 模塊發送腳
GND---GND 地
VCC---VCC 電源(3.3V~5.0V)


RC522射頻模塊外部的接口:    
*1--SDA <----->PB5--片選腳
*2--SCK <----->PB4--時鐘線
*3--MOSI<----->PA12--輸出
*4--MISO<----->PA11--輸入
*5--懸空
*6--GND <----->GND
*7--RST <----->PA8--復位腳
*8--VCC <----->VCC


ULN2003控制28BYJ-48步進電機接線:

ULN2003接線:
IN4: PC9   d
IN3: PC8   c
IN2: PC7   b
IN1: PC6   a
+  : 5V
-  : GND
*/

//騰訊物聯網服務器的設備信息
#define MQTT_ClientID "3XM7FNOG4Llock"
#define MQTT_UserName "3XM7FNOG4Llock;12010126;W5WOU;1624006004"
#define MQTT_PassWord "209f8dfc3079a54540aeb4263e99be24c5b0212141d8067e6348036383535941;hmacsha256"

//訂閱與發布的主題
#define SET_TOPIC  "$thing/down/property/3XM7FNOG4L/lock"  //訂閱
#define POST_TOPIC "$thing/up/property/3XM7FNOG4L/lock"  //發布

#define CONNECT_WIFI  "CMCC-Cqvn"   //將要連接的路由器名稱 --不要出現中文、空格等特殊字符
#define CONNECT_PASS "99pu58cb"     //將要連接的路由器密碼

#define CONNECT_SERVER_IP "106.55.124.154"  //服務器IP地址
#define CONNECT_SERVER_PORT 1883            //服務器端口號

char mqtt_message[200];//上報數據緩存區


unsigned char SN[4]; //存放讀出的卡號
unsigned char CheckSN[4]={71,151,114,179}; //用于驗證的卡號--業主的卡號用于開鎖
char SendBuff[10];


/*
函數功能: 打印卡號
*/
void print_info(unsigned char *p,int cnt)
{
  int i;
	for(i=0;i=50)
        {
            time_cnt=0;
            LED2=!LED2;
        }
			 
        //微信小程序開鎖方式: 接收WIFI返回的數據
        if(USART3_RX_FLAG)
        {
            USART3_RX_BUFFER[USART3_RX_CNT]='\0';
            
		    printf("UART3收到數據.....\r\n");
            //向串口打印微信小程序返回的數據
            for(i=0;i5)
            {
                //使用字符串查找函數
                //開鎖
                if(strstr((char*)&USART3_RX_BUFFER[5],""Motor":1"))
                {
                    LED1=0;  //亮燈--表示開鎖
                     //開鎖
                    //執行開鎖代碼--電機正轉
                    Motorcw_ring(1,300);   //電機正轉1圈
                     Motor=1;
                }
                //關鎖
                else if(strstr((char*)&USART3_RX_BUFFER[5],""Motor":0"))
                {
                    LED1=1;  //滅燈--表示關鎖
                    
                    //關鎖
                    //執行開鎖代碼--電機反轉
                   Motorccw_ring(1,300);  //電機反轉1圈  
                   Motor=0;
                }
            }
           
            USART3_RX_CNT=0;
            USART3_RX_FLAG=0;
        }
				
	   //RC522開鎖方式:  讀取IC卡號
        if(ReadCardNumber())
        {
            sprintf(SendBuff,"%x%x%x%x\r\n",SN[0],SN[1],SN[2],SN[3]);
             
            //比較卡號是否是業主的卡號,決定是否需要開鎖
            int i=0;
            for(i=0;i<4;i++)
            {
                if(CheckSN[i]!=SN[i])break;
            }
            
            //如果是業主,就開鎖
            if(i==4)
            {
                 LED1=0;  //亮燈--表示開鎖
                
                //更新微信小程序
                sprintf(mqtt_message,"{\"method\":\"report\",\"clientToken\":\"123\",\"params\":{\"Motor\":%d}}",Motor);
                MQTT_PublishData(POST_TOPIC,mqtt_message,0);
                USART1_Printf("更新門鎖狀態:開鎖\r\n");
                 
                 Motor=1;
                 //執行開鎖代碼--電機正轉
                 Motorcw_ring(1,300);   //電機正轉1圈	  
            }
        }
        
        
        if(USART2_RX_FLAG)
        {
            USART2_RX_BUFFER[USART2_RX_CNT]='\0';
            USART1_Printf("藍牙:%s\r\n",USART2_RX_BUFFER);
            USART2_RX_CNT=0;
            USART2_RX_FLAG=0;
        }
        
        //藍牙解鎖方式: 離開范圍就自動關鎖   連接上就自動解鎖
        // 區分業主身份方式: 使用藍牙的配對密碼區分.
        if(HC05_LED==1 && Motor==0) //關鎖狀態才需要開始
        {
            LED1=0;  //亮燈--表示開鎖
            ble_connect_flag=1; //表示藍牙已經連接過
            printf("藍牙已經連接.\r\n");
             Motor=1;
            
            //更新微信小程序
            sprintf(mqtt_message,"{\"method\":\"report\",\"clientToken\":\"123\",\"params\":{\"Motor\":%d}}",Motor);
            MQTT_PublishData(POST_TOPIC,mqtt_message,0);
            USART1_Printf("更新門鎖狀態:開鎖\r\n");
            
              //開鎖
            //執行開鎖代碼--電機正轉
            Motorcw_ring(1,300);   //電機正轉1圈
        }      
        else
        {
            //之前藍牙連接過
            if(ble_connect_flag)
            {
                ble_connect_flag=0; //清除標記
                LED1=1;  //關燈--表示上鎖
                printf("藍牙已經斷開.\r\n");
                Motor=0;
                //關鎖
                //執行開鎖代碼--電機反轉
                Motorccw_ring(1,300);  //電機反轉1圈

                //更新微信小程序
                sprintf(mqtt_message,"{\"method\":\"report\",\"clientToken\":\"123\",\"params\":{\"Motor\":%d}}",Motor);
                MQTT_PublishData(POST_TOPIC,mqtt_message,0);
                USART1_Printf("更新門鎖狀態:關鎖\r\n");
            }   
        }
	 }
}
;i++)>;i++)>
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

完整項目源碼下載地址:https://download.csdn.net/download/xiaolong1126626497/19101807

審核編輯:符乾江

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373399
  • 智能門鎖
    +關注

    關注

    18

    文章

    1929

    瀏覽量

    45921
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CW32L012與STM32F103的三角運算性能對比

    沒有硬件浮點運算單元。 但在運算三角函數時,CW32L012支持CORDIC算法。 二、 三角運算性能具體分析 1:標準庫浮點運算(如 math.h 的 sinf, cosf) 這是最常用但也是最慢的方式STM32F103C
    的頭像 發表于 12-29 15:32 ?2305次閱讀
    CW32L012與<b class='flag-5'>STM32F103</b>的三角運算性能對比

    【新品上市】華清遠見AIoT實戰平臺-STM32F103&amp;amp;ESP32-S3 AI開發板套件,玩轉小智AI桌寵機器狗智能車等項目

    F103&ESP32-S3AI開發板是華清遠見針對嵌入式與AI開發市場需求,打造的高性能、低成本AIoT實戰平臺。該開發板采用雙核心設計,整合了STM32F103與ESP32-S3兩款芯片
    的頭像 發表于 11-03 16:18 ?1337次閱讀
    【新品上市】華清遠見AIoT實戰平臺-<b class='flag-5'>STM32F103</b>&amp;amp;ESP32-S3 AI開發板套件,玩轉小智AI桌寵機器狗<b class='flag-5'>智能</b>車等項目

    MH32F103A系列單片機的功能特性

    MH32F103A是一款硬件完美兼容ST32的國產32位單片機,使用高性能的ARM Cortex-M3 內核,最高工作頻率216 MHz。內置最大512K Flash,96K Sram存儲器。MH32F103A 軟硬件兼容STM32F1
    的頭像 發表于 09-12 10:58 ?1115次閱讀
    MH32<b class='flag-5'>F103</b>A系列單片機的功能特性

    STM32F103長時間運行,串口發送失敗怎么解決?

    STM32F103長時間運行,串口發送失敗,目前定位到一致卡在USART_FLAG_TC判斷那里,我們采用輪詢的方式發送數據,然后判斷USART_FLAG_TC是否發送成功,在大量發送后出現了一次發送后USART_FLAG_TC沒有置位,然后就一直卡在這里了,這可如何是好
    發表于 07-30 07:55

    STM32F103c8上做DLQR最優控制算法的C編程資料

    這是我近期做的一個項目--基于STM32F103c8的DLQR控制算法的C編程,涉及DLQR最優控制算法、嵌入式STM32F103編程、CMSIS-DSP庫使用。? ??附有完整的程序。
    發表于 07-23 15:30 ?0次下載

    STM32F103驅動LD3320語音識別模塊

    本文介紹了如何使用STM32F103微控制器驅動LD3320語音識別模塊,該模塊具備非特定人語音識別功能,支持動態編輯關鍵詞,且無需額外Flash和RAM。通過SPI接口連接并配置代碼,實現在不同指令下執行相應操作,如流水燈、閃爍等。實驗結果顯示,
    的頭像 發表于 06-28 14:16 ?1630次閱讀
    <b class='flag-5'>STM32F103</b>驅動LD3320語音識別模塊

    低功耗藍牙智能門鎖應用

    ,無需繁瑣的門卡,鑰匙,更加智能便捷,給用戶帶來更佳的使用體驗。 功能特性: 1、多種開門方式支持近場手機藍牙開鎖及遠程
    發表于 06-25 09:47

    【硬核項目】STM32F103 智能小車全棧開發:紅外循跡 / 避障算法 + WiFi 遠程控制,附原理圖與代碼

    今天為大家推薦一款功能強大的STM32多功能智能小車——華清遠見STM32F103智能云控小車。這款小車集紅外遙控、遠程物聯控制、智能循跡、
    的頭像 發表于 05-16 17:11 ?2218次閱讀
    【硬核項目】<b class='flag-5'>STM32F103</b> <b class='flag-5'>智能</b>小車全棧開發:紅外循跡 / 避障算法 + WiFi 遠程控制,附原理圖與代碼

    CS32F103RB有無驅動例程,是否可用stm32F103的驅動代碼?

    如果不能使用stm32F103驅動的話,請把驅動例程發送1830665518@qqcom
    發表于 05-15 10:54

    手機靠近自動開鎖,讓出行更智能便捷

    智能化浪潮的推動下,傳統鑰匙逐漸被淘汰,人們對無感、便捷、安全的開鎖方式提出了更高的需求。如今,一種全新的開鎖方式——“手機靠近自動
    的頭像 發表于 04-23 14:37 ?2008次閱讀
    手機靠近自動<b class='flag-5'>開鎖</b>,讓出行更<b class='flag-5'>智能</b>便捷

    【零基礎逆襲軟硬件工程師】華清遠見STM32F103智能小車開發實戰,手把手帶你從硬件組裝到WiFi遠程控制,解鎖

    STM32F103智能云控小車是由華清遠見傾力打造的一款多功能智能小車,專為高校教學、學生畢業設計、創新競賽、單片機入門學習及項目實踐量身定制。這款小車集紅外遙控、遠程物聯網控制、智能
    的頭像 發表于 04-17 14:49 ?1743次閱讀
    【零基礎逆襲軟硬件工程師】華清遠見<b class='flag-5'>STM32F103</b><b class='flag-5'>智能</b>小車開發實戰,手把手帶你從硬件組裝到WiFi遠程控制,<b class='flag-5'>解鎖</b>

    STM32F103x8 STM32F103xB單片機數據手冊

    STM32F103x8STM32F103xB單片機數據手冊
    發表于 04-14 14:55 ?8次下載

    兩輪電動車智能藍牙無鑰匙開鎖模組

    隨著科技的進步與移動互聯網的普及,傳統的實體車鑰匙正在逐步被智能化的開鎖方式取代。針對兩輪電動車市場,我們推出了全新的智能藍牙鑰匙開鎖解決方
    發表于 03-31 10:49

    STM32F103×8/STM32F103×B MCU手冊

    本文提供了STM32F103x8和STM32F103xB中密度高性能系列微控制器的訂購信息和機械器件特性。有關整個STMicroelectronics STM32F103xx系列的更多信息,請
    發表于 03-18 16:37 ?0次下載

    使用stm32F103的USART的lin通訊模式,TX,RX,GND,三根線怎么和lin總線連接?

    使用stm32F103的USART的lin通訊模式,TX,RX,GND,三根線怎么和lin總線連接
    發表于 03-14 07:39