RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32設(shè)計(jì)的智能門(mén)鎖(華為云IOT)

DS小龍哥-嵌入式技術(shù) ? 來(lái)源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-07-11 13:53 ? 次閱讀

1. 前言

隨著智能家居的快速發(fā)展,智能門(mén)鎖作為家庭安全的重要組成部分,受到了越來(lái)越多用戶(hù)的關(guān)注和需求。為了滿(mǎn)足用戶(hù)對(duì)安全和便捷的需求,決定設(shè)計(jì)一款基于STM32的智能門(mén)鎖,并將其與華為云IOT平臺(tái)相結(jié)合。

傳統(tǒng)的門(mén)鎖存在一些弊端,比如使用鑰匙容易丟失、開(kāi)鎖過(guò)程繁瑣等。而智能門(mén)鎖的出現(xiàn),有效地解決了這些問(wèn)題。我選擇使用STM32作為智能門(mén)鎖的核心控制器,因?yàn)镾TM32系列具有低功耗、高性能和豐富的外設(shè)接口等優(yōu)點(diǎn),非常適合嵌入式應(yīng)用。

華為云IOT平臺(tái)作為一個(gè)強(qiáng)大的云服務(wù)平臺(tái),提供了豐富的物聯(lián)網(wǎng)解決方案和強(qiáng)大的數(shù)據(jù)處理能力。將智能門(mén)鎖與華為云IOT平臺(tái)相結(jié)合,可以實(shí)現(xiàn)遠(yuǎn)程控制、數(shù)據(jù)監(jiān)測(cè)和智能化的功能,為用戶(hù)帶來(lái)更加便捷和安全的居家體驗(yàn)。

智能門(mén)鎖設(shè)計(jì)具有以下主要特點(diǎn)和功能:

  1. 安全可靠:采用先進(jìn)的加密算法和身份驗(yàn)證機(jī)制,確保門(mén)鎖的安全性。用戶(hù)可以通過(guò)手機(jī)APP、指紋識(shí)別或密碼等方式進(jìn)行開(kāi)鎖,有效防止非法入侵。
  2. 遠(yuǎn)程控制:通過(guò)與華為云IOT平臺(tái)的連接,用戶(hù)可以通過(guò)手機(jī)APP在任何地方實(shí)現(xiàn)對(duì)門(mén)鎖的遠(yuǎn)程控制。比如,可以遠(yuǎn)程開(kāi)關(guān)門(mén)鎖、查看開(kāi)鎖記錄等。
  3. 多種開(kāi)鎖方式:除了傳統(tǒng)的鑰匙開(kāi)鎖方式外,我們的智能門(mén)鎖還支持多種開(kāi)鎖方式,如指紋識(shí)別、密碼輸入、手機(jī)APP控制等。用戶(hù)可以根據(jù)自己的需求選擇最方便的開(kāi)鎖方式。
  4. 實(shí)時(shí)監(jiān)測(cè):智能門(mén)鎖可以實(shí)時(shí)監(jiān)測(cè)門(mén)鎖狀態(tài)、開(kāi)鎖記錄等信息,并將這些數(shù)據(jù)上傳到華為云IOT平臺(tái)進(jìn)行存儲(chǔ)和分析。用戶(hù)可以通過(guò)手機(jī)APP查看相關(guān)數(shù)據(jù),了解家庭安全狀況。
  5. 智能化功能:基于華為云IOT平臺(tái)的數(shù)據(jù)處理能力,我們的智能門(mén)鎖還可以實(shí)現(xiàn)一些智能化的功能。比如,可以設(shè)置自動(dòng)開(kāi)鎖時(shí)間、遠(yuǎn)程授權(quán)開(kāi)鎖等。

2. 設(shè)備硬件與功能介紹

這篇文章就介紹如何使用華為物聯(lián)網(wǎng)云平臺(tái)實(shí)現(xiàn)智能鎖的應(yīng)用場(chǎng)景構(gòu)建,硬件采用STM32F103ZET6 + ESP8266+步進(jìn)電機(jī)實(shí)現(xiàn)。在華為云IOT物聯(lián)網(wǎng)平臺(tái)構(gòu)建智能鎖項(xiàng)目,配置好云端,設(shè)備端通過(guò)ESP8266連接華為物聯(lián)網(wǎng)平臺(tái),實(shí)現(xiàn)數(shù)據(jù)上報(bào),交互,實(shí)現(xiàn)遠(yuǎn)程開(kāi)鎖、關(guān)鎖、獲取鎖的狀態(tài)等功能,不用擔(dān)心忘記出門(mén)關(guān)鎖,也不用擔(dān)心忘記帶鑰匙無(wú)法開(kāi)門(mén)的情況。

ESP8266是物聯(lián)網(wǎng)解決方案里比較熱門(mén)的WIFI設(shè)備,支持串口+AT指令控制,任意支持串口的單片機(jī)都可以使用ESP8266快速實(shí)現(xiàn)聯(lián)網(wǎng)。

image-20211215173859997

步進(jìn)電機(jī)采用常規(guī)28BYJ-48來(lái)模擬當(dāng)做門(mén)鎖的電機(jī),驅(qū)動(dòng)板采用ULN2003。

image-20211215173730289

3. 創(chuàng)建云端設(shè)備

登錄官網(wǎng): https://www.huaweicloud.com/

直接搜索物聯(lián)網(wǎng),打開(kāi)頁(yè)面。

image-20211215174453102

選擇設(shè)備接入:

image-20211215174521654

選擇免費(fèi)試用:

image-20211215174550243

產(chǎn)品頁(yè)面,點(diǎn)擊右上角創(chuàng)建產(chǎn)品:

image-20211215174642960

填上產(chǎn)品信息:

image-20211215174937965

得到產(chǎn)品ID,保存好ID,點(diǎn)擊查看詳情:

產(chǎn)品ID為:61b9ba3a2b2aa20288c1e7f1.

image-20211215175007908

點(diǎn)擊設(shè)備頁(yè)面,注冊(cè)設(shè)備:

image-20211215175814693

填充信息進(jìn)行注冊(cè):

image-20211215180006268

保存設(shè)備密匙和設(shè)備ID,點(diǎn)擊保存關(guān)閉會(huì)自動(dòng)下載文件保存,后面生成密碼和登錄賬號(hào)需要使用

image-20211215180041077

關(guān)閉后就看到創(chuàng)建好的設(shè)備了:

image-20211215180732602

點(diǎn)擊產(chǎn)品頁(yè)面,選擇剛才創(chuàng)建的產(chǎn)品:

image-20211215180939201

選擇自定義模型---創(chuàng)建數(shù)據(jù)模型服務(wù):

image-20211215181036122

image-20211215181144359

選擇新增屬性,創(chuàng)建設(shè)備的屬性

image-20211215181424235

4. 創(chuàng)建MQTT登錄賬號(hào)和密匙

設(shè)備創(chuàng)建完成接來(lái)下生成MQTT登錄賬號(hào)、密匙,方便設(shè)備登錄云端平臺(tái)。

官網(wǎng)工具地址: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/

image-20211215181625067

打開(kāi)剛才創(chuàng)建設(shè)備時(shí),下載的密匙文件,把內(nèi)容復(fù)制出來(lái)對(duì)應(yīng)的填進(jìn)去,生成即可。

image-20211215181747129

5. 拼接主題訂閱與發(fā)布的格式

官方文檔介紹: https://support.huaweicloud.com/devg-iothub/iot_01_2127.html

image-20211215182442581

在產(chǎn)品頁(yè)面可以,看到主題的全部格式:

image-20211215183137006

總結(jié)的格式如下:

格式: $oc/devices/{device_id}/sys/messages/down
 //訂閱主題: 平臺(tái)下發(fā)消息給設(shè)備
 $oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/messages/down
 ?
 ?
 格式: $oc/devices/{device_id}/sys/properties/report
 //設(shè)備上報(bào)數(shù)據(jù)
 $oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/properties/report
 ?
 上屬性的數(shù)據(jù)格式:
 //上報(bào)的屬性消息 (一次可以上報(bào)多個(gè)屬性,在json里增加就行了)
 {"services": [{"service_id": "lock","properties":{"門(mén)鎖":1}}]}

上面屬性里的服務(wù)ID和屬性里的名稱(chēng),在設(shè)備頁(yè)面,影子設(shè)備頁(yè)面查看。

image-20211215184220051

6. MQTT客戶(hù)端模擬設(shè)備登錄云端

下面使用MQTT客戶(hù)端模擬設(shè)備登錄服務(wù)器測(cè)試,看設(shè)備創(chuàng)建的是否OK。

服務(wù)器的IP地址是: 121.36.42.100

端口號(hào)是: 1883

打開(kāi)MQTT客戶(hù)端軟件,按照提示,輸入相關(guān)參數(shù)后,點(diǎn)擊連接,然后再點(diǎn)擊訂閱主題,發(fā)布主題即可:

image-20211215184435114

查看云端服務(wù)器的情況: 可以看到設(shè)備已經(jīng)在線(xiàn)了,并且收到上傳的數(shù)據(jù)。

image-20211215184612394

修改一下鎖的狀態(tài),上報(bào)屬性再查看:

image-20211215184712687

發(fā)現(xiàn)云端的狀態(tài)也已經(jīng)改變,現(xiàn)在設(shè)備上報(bào)已經(jīng)OK。

image-20211215184735239

接下來(lái)測(cè)試命令下發(fā),實(shí)現(xiàn)遠(yuǎn)程開(kāi)鎖關(guān)鎖的功能:

打開(kāi)產(chǎn)品頁(yè)面,新增加命令:

image-20211215185156127

image-20211215185232075

image-20211215185302157

命令添加成功:

image-20211215185325872

在設(shè)備頁(yè)面,選擇同步命令下發(fā):

image-20211215185445720

image-20211215185523035

點(diǎn)擊確定后,查看MQTT客戶(hù)端,發(fā)現(xiàn)已經(jīng)收到數(shù)據(jù)了:

image-20211215185612755

$oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497/sys/commands/request_id=88e2626f-290d-405e-962d-51554445a8fd{"paras":{"lock":1},"service_id":"lock","command_name":"lock"}

設(shè)備端解析收到的數(shù)據(jù),就可以完成多步進(jìn)電機(jī)的控制,完成開(kāi)鎖關(guān)鎖。

7. STM32+ESP8266連接云端

2021-12-16_095526

image-20211215190612026

工程是keil5工程

項(xiàng)目源碼:https://download.csdn.net/download/xiaolong1126626497/81993720

main函數(shù)代碼如下:

#include "stm32f10x.h"
 #include "led.h"
 #include "delay.h"
 #include "key.h"
 #include "usart.h"
 #include < string.h >
 #include "timer.h"
 #include "bluetooth.h"
 #include "esp8266.h"
 #include "mqtt.h"
 ?
 //華為物聯(lián)網(wǎng)服務(wù)器的設(shè)備信息
 #define MQTT_ClientID "61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510"
 #define MQTT_UserName "61b9ba3a2b2aa20288c1e7f1_QQ1126626497"
 #define MQTT_PassWord "385ce91dfe7da5b7431868d5d87e7998163c493344040935d5a00024d6324242"
 ?
 //訂閱與發(fā)布的主題
 #define SET_TOPIC  "$oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/messages/down"  //訂閱
 #define POST_TOPIC "$oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/properties/report"  //發(fā)布
 ?
 char mqtt_message[200];//上報(bào)數(shù)據(jù)緩存區(qū)
 ?
 int main()
 {
    u32 time_cnt=0;
    u32 i;
    u8 key;
    LED_Init();
    BEEP_Init();
    KEY_Init();
    USART1_Init(115200);
    TIMER1_Init(72,20000); //超時(shí)時(shí)間20ms
    USART2_Init(9600);//串口-藍(lán)牙
    TIMER2_Init(72,20000); //超時(shí)時(shí)間20ms
    USART3_Init(115200);//串口-WIFI
    TIMER3_Init(72,20000); //超時(shí)時(shí)間20ms
    USART1_Printf("正在初始化WIFI請(qǐng)稍等.\\n");
    if(ESP8266_Init())
    {
       USART1_Printf("ESP8266硬件檢測(cè)錯(cuò)誤.\\n");  
    }
    else
    {
       //非加密端口
       USART1_Printf("WIFI:%d\\n",ESP8266_STA_TCP_Client_Mode("CMCC-Cqvn","99pu58cb","121.36.42.100",1883,1));
   
    }
    
     //2. MQTT協(xié)議初始化  
     MQTT_Init(); 
     //3. 連接華為服務(wù)器        
     while(MQTT_Connect(MQTT_ClientID,MQTT_UserName,MQTT_PassWord))
     {
         USART1_Printf("服務(wù)器連接失敗,正在重試...\\n");
         delay_ms(500);
     }
     USART1_Printf("服務(wù)器連接成功.\\n");
     
     //3. 訂閱主題
     if(MQTT_SubscribeTopic(SET_TOPIC,0,1))
     {
         USART1_Printf("主題訂閱失敗.\\n");
     }
     else
     {
         USART1_Printf("主題訂閱成功.\\n");
     }        
     
     while(1)
     {    
         key=KEY_Scan(0);
         if(key==2)
         {
             time_cnt=0;
             sprintf(mqtt_message,"{"services": [{"service_id": "lock","properties":{"門(mén)鎖":1}}]}");
             MQTT_PublishData(POST_TOPIC,mqtt_message,0);
             USART1_Printf("發(fā)送狀態(tài)1\\r\\n");
         }
         else if(key==3)
         {
             time_cnt=0;
             sprintf(mqtt_message,"{"services": [{"service_id": "lock","properties":{"門(mén)鎖":0}}]}");
             MQTT_PublishData(POST_TOPIC,mqtt_message,0);
             USART1_Printf("發(fā)送狀態(tài)0\\r\\n");
         }  
 ?
         if(USART3_RX_FLAG)
         {
             USART3_RX_BUFFER[USART3_RX_CNT]='\\0';
             for(i=0;i< USART3_RX_CNT;i++)
             {
                 USART1_Printf("%c",USART3_RX_BUFFER[i]);
             }
             USART3_RX_CNT=0;
             USART3_RX_FLAG=0;
         }
 ?
         //定時(shí)發(fā)送心跳包,保持連接
         delay_ms(10);
         time_cnt++;
         if(time_cnt==500)
         {
             MQTT_SentHeart();//發(fā)送心跳包
             time_cnt=0;
         }
     }
 }

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355715
  • 智能家居
    +關(guān)注

    關(guān)注

    1928

    文章

    9553

    瀏覽量

    184920
  • IOT
    IOT
    +關(guān)注

    關(guān)注

    187

    文章

    4202

    瀏覽量

    196674
  • 智能門(mén)鎖
    +關(guān)注

    關(guān)注

    17

    文章

    1856

    瀏覽量

    43132
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2445

    瀏覽量

    17406
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于STM32+ESP8266+華為IoT設(shè)計(jì)的健康管理系統(tǒng)并完成應(yīng)用側(cè)開(kāi)發(fā)

    這篇文章就利用STM32加上各種外設(shè)傳感器配合華為IOT物聯(lián)網(wǎng)平臺(tái)設(shè)計(jì)一個(gè)健康管理設(shè)備,通過(guò)ESP8266+MQTT協(xié)議將數(shù)據(jù)傳輸導(dǎo)致華為
    的頭像 發(fā)表于 07-11 09:09 ?2703次閱讀
    基于<b class='flag-5'>STM32</b>+ESP8266+<b class='flag-5'>華為</b><b class='flag-5'>云</b><b class='flag-5'>IoT</b>設(shè)計(jì)的健康管理系統(tǒng)并完成應(yīng)用側(cè)開(kāi)發(fā)

    基于STM32+ESP8266+華為IoT設(shè)計(jì)的智能門(mén)鎖

    近幾年物聯(lián)網(wǎng)發(fā)展非常迅猛、周邊各種設(shè)備都已經(jīng)接入互聯(lián)網(wǎng),遠(yuǎn)程集成控制。例如: 智慧交通、森林防火、智慧小區(qū)、智慧停車(chē)場(chǎng)、智慧牧業(yè)、智慧農(nóng)業(yè)等等。為了降低用戶(hù)的成本、門(mén)檻,各大廠(chǎng)商平臺(tái)也都開(kāi)發(fā)了自己的物聯(lián)網(wǎng)IOT平臺(tái),方便用戶(hù)接入快速搭建自己的應(yīng)用場(chǎng)景。
    的頭像 發(fā)表于 05-27 10:51 ?4941次閱讀
    基于<b class='flag-5'>STM32</b>+ESP8266+<b class='flag-5'>華為</b><b class='flag-5'>云</b><b class='flag-5'>IoT</b>設(shè)計(jì)的<b class='flag-5'>智能</b><b class='flag-5'>門(mén)鎖</b>

    基于STM32+NBIOT+華為IOT設(shè)計(jì)的智能井蓋

    智能井蓋是一種通過(guò)物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)對(duì)井蓋狀態(tài)監(jiān)測(cè)和管理的設(shè)備。當(dāng)前介紹基于STM32微控制器,BC26 NBIOT模組以及華為IOT平臺(tái)設(shè)計(jì)
    的頭像 發(fā)表于 04-26 11:06 ?3835次閱讀
    基于<b class='flag-5'>STM32</b>+NBIOT+<b class='flag-5'>華為</b><b class='flag-5'>云</b><b class='flag-5'>IOT</b>設(shè)計(jì)的<b class='flag-5'>智能</b>井蓋

    基于STM32設(shè)計(jì)的智能家居控制系統(tǒng)(華為IOT

    設(shè)計(jì)了一款基于華為物聯(lián)網(wǎng)平臺(tái)的智能家居控制系統(tǒng),硬件采用了STM32和ESP8266的組合,實(shí)現(xiàn)了設(shè)備的上連接。
    的頭像 發(fā)表于 07-11 13:58 ?3493次閱讀
    基于<b class='flag-5'>STM32</b>設(shè)計(jì)的<b class='flag-5'>智能</b>家居控制系統(tǒng)(<b class='flag-5'>華為</b><b class='flag-5'>云</b><b class='flag-5'>IOT</b>)

    智能家居教程:基于機(jī)智物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái)的智能門(mén)鎖v1.0(APP)

    25RMB左右的成本+接入機(jī)智AIoT平臺(tái)后,簡(jiǎn)單的門(mén)鎖也能變?yōu)?b class='flag-5'>智能門(mén)鎖。可實(shí)現(xiàn)以下功能:1、安裝配置簡(jiǎn)單2、APP遠(yuǎn)程控制3、可分享:
    發(fā)表于 09-25 16:32

    NB-IoT技術(shù)在智能門(mén)鎖上的應(yīng)用是什么?

    什么是NB-IoT傳輸技術(shù)?NB-IoT技術(shù)在智能門(mén)鎖上的應(yīng)用是什么?
    發(fā)表于 06-30 06:27

    如何實(shí)現(xiàn)基于stm32智能門(mén)鎖系統(tǒng)的設(shè)計(jì)?

    如何實(shí)現(xiàn)基于stm32智能門(mén)鎖系統(tǒng)的設(shè)計(jì)?
    發(fā)表于 12-13 06:05

    使用MQTT方式對(duì)接華為IoT平臺(tái)的具體過(guò)程

    摘要:本文主要講述使用MQTT方式對(duì)接華為IoT平臺(tái)的具體過(guò)程。使用的方案:目標(biāo)板為STM32L431BearPI(帶E53擴(kuò)展板); TCPIP功能由開(kāi)發(fā)板的ESP8266提供;M
    發(fā)表于 01-27 07:13

    全球首款鴻蒙 HarmonyOS 智能門(mén)鎖哪些新特性呢?

    華為舉行 2022 華為全屋智能及全場(chǎng)景新品春季發(fā)布會(huì),余承東帶來(lái)了華為智能門(mén)鎖 Pro 新品。
    發(fā)表于 03-18 11:42

    基于OpenHarmony的華為IoT智慧路燈實(shí)現(xiàn)

    。前面的文章介紹了基于OpenHarmony的智慧路燈實(shí)現(xiàn),本文將在前面文章的基礎(chǔ)上,添加華為IoT功能,實(shí)現(xiàn)基于OpenHarmony系統(tǒng)的IoT智慧路燈。小凌派RK2206開(kāi)發(fā)板
    發(fā)表于 05-10 09:36

    基于OpenHarmony的華為IoT智慧路燈

    。前面的文章介紹了基于OpenHarmony的智慧路燈實(shí)現(xiàn),本文將在前面文章的基礎(chǔ)上,添加華為IoT功能,實(shí)現(xiàn)基于OpenHarmony系統(tǒng)的IoT智慧路燈。小凌派RK2206開(kāi)發(fā)板
    發(fā)表于 05-11 10:06

    【合作伙伴】華為--智能見(jiàn)未來(lái)

    華為華為IoT,致力于提供極簡(jiǎn)接入、智能化、安全可信等全棧全場(chǎng)景服務(wù)和開(kāi)發(fā)、集成、托管、運(yùn)營(yíng)
    發(fā)表于 12-12 10:35

    基于STM32F103做的WIFI指紋智能門(mén)鎖

    基于STM32F103做的WIFI指紋智能門(mén)鎖,WIFI使用的是ESP8266+機(jī)智連接,指紋模塊是FPM10A光學(xué)指紋模塊,加12864屏幕顯示,還有矩陣鍵盤(pán)輸入密碼,用舵機(jī)控制
    發(fā)表于 09-27 07:47

    華為智能門(mén)鎖正式發(fā)布

    4月28日,華為召開(kāi)折疊旗艦及全場(chǎng)景新品發(fā)布會(huì),推出了華為智能門(mén)鎖,華為智能
    的頭像 發(fā)表于 04-29 09:53 ?2727次閱讀

    基于 STM32 和機(jī)智智能門(mén)鎖的實(shí)現(xiàn)

    關(guān)鍵詞:智能門(mén)鎖、STM32、機(jī)智、APP目錄1、功能實(shí)現(xiàn)2、軟、硬件系統(tǒng)設(shè)計(jì)3、系統(tǒng)調(diào)試4、結(jié)論1功能實(shí)現(xiàn)本系統(tǒng)基于STM32和機(jī)智
    的頭像 發(fā)表于 03-23 08:09 ?1697次閱讀
    基于 <b class='flag-5'>STM32</b> 和機(jī)智<b class='flag-5'>云</b><b class='flag-5'>智能</b><b class='flag-5'>門(mén)鎖</b>的實(shí)現(xiàn)
    RM新时代网站-首页