成人免费在线视频,国产性爱AAA,一道本免费播放视频,成人无码黄色视频

聯(lián)系我們
發(fā)送郵箱
主頁 ? 新聞資訊 ? 新聞動態(tài) ? 靈動微MM32W系列低功耗MCU智能鎖解決方案

靈動微MM32W系列低功耗MCU智能鎖解決方案

2020-06-23 09:36:52

智能鎖方案中使用到靈動微MM32W系列低功耗MCU,配合手機通過APP讀取智能鎖藍牙信息,嘗試配對,配對成功即可正常通訊,手機APP通過藍牙把指令發(fā)送給智能鎖進行解鎖,整個流程簡單可靠,該方案將徹底告別傳統(tǒng)鑰匙開鎖。藍牙智能鎖安全便捷,符合用戶的需求,可應(yīng)用的日常場景廣泛,例如:門鎖(家門、倉庫門、貨車門等);車鎖(電動車鎖、自行車鎖、摩托車鎖等);私人箱柜鎖(抽屜鎖、更衣柜、旅行箱、工具箱等)。接下來靈動微總代理英尚微給大家介紹一個使用場景非常豐富的藍牙應(yīng)用方案——基于MM32W系列開發(fā)的藍牙智能鎖方案。
 

圖1方案場景
 
 
硬件資源如下:
本方案基于MM32BLE_TestBoard進行測試驗證,搭配上一顆微型的雙向直流馬達作為開鎖方式的載體,這里只用馬達驅(qū)動開鎖,關(guān)鎖默認為手動操作,用戶可以通過手機APP來操作開鎖。在硬件原理上,本方案使用到的DC馬達是通過一顆專用的IC芯片來驅(qū)動,其控制引腳連接到MCU的PD2和PD3,通過控制兩個IO的電平可以對馬達進行不同運動狀態(tài)的操作;使用PB1連接到綠色LED指示燈,可作為藍牙連接狀態(tài)的指示;模擬鎖體狀態(tài)功能引腳PA1配置為上拉輸入,低功耗喚醒引腳選擇PA0配置為上拉輸入;藍牙相關(guān)的功能引腳與前面介紹的方案一致,此處不做過多展開。以下為DC馬達驅(qū)動原理圖:
 
 
圖2 方案應(yīng)用圖
 
軟件資源如下:
結(jié)合上述使用到的硬件資源,下面我們著重介紹軟件實現(xiàn)流程以及相關(guān)配置代碼。由于本應(yīng)用方案ble藍牙芯片與APP建立連接過程中需要應(yīng)用到配對的功能,利用藍牙庫的接口函數(shù)可以實現(xiàn),這里將配對秘鑰設(shè)置為“123456”,在連接時候需要設(shè)置正確才能配對成功并且連接上;控制DC馬達的功能引腳全都配成推挽輸出模式,直接連到驅(qū)動IC上去,通過改變高低電平組合來控制電機的正反轉(zhuǎn)和啟停;另外再對測試和模擬功能的引腳進行配置,從而更為直觀地對應(yīng)用效果的觀測和驗證,且使能看門狗復(fù)位功能來保證藍牙服務(wù)的穩(wěn)定性能;由于方案應(yīng)用電池供電對低功耗的需要,本方案低功耗采用STOP模式。
 
以下為主函數(shù)初始化配置內(nèi)容,主要將所有的外設(shè)資源和藍牙協(xié)議棧初始化,并且以中斷服務(wù)程序的方式運行藍牙,主函數(shù)的循環(huán)中主要實現(xiàn)的功能為判斷是否進入低功耗模式,并且喚醒后根據(jù)接收到的藍牙數(shù)據(jù)對DC馬達進行不同的操作,代碼如下:

 
 
下面簡單介紹一下藍牙低功耗和DC馬達操作相關(guān)的幾個函數(shù):
 
//初始化DC馬達控制引腳PD2、PD3,并且全部置為低電平
void MOTOR_Init(void);//停止DC馬達的轉(zhuǎn)動
static void MOTOR_Stop(void);//根據(jù)不同方向參數(shù)去控制DC馬達運轉(zhuǎn)
static void MOTOR_Run(unsigned char direction);
 
 
在MOTOR_Proc()處理函數(shù)中針對藍牙接收到的密碼數(shù)據(jù)進行解析,如果與默認設(shè)置的4位0-9數(shù)字密碼完全匹配上則操作解鎖,將DC馬達按照設(shè)定方向控制運轉(zhuǎn),為了簡易驗證,模擬一個信號表示解鎖成功,這里是通過采集指定IO引腳PA1的輸入來實現(xiàn),采集到輸入為高電平那么停止DC馬達轉(zhuǎn)動,且清零鎖定標志位。以下為代碼實現(xiàn)內(nèi)容:
 
 
 
我們在gatt_user_send_notify_data_callback函數(shù)中給手機發(fā)送數(shù)據(jù),該函數(shù)屬于回調(diào)函數(shù),協(xié)議棧會在系統(tǒng)允許的時候(異步)回調(diào)本函數(shù),該函數(shù)被用于藍牙模塊端主動發(fā)送是否解鎖狀態(tài)信息給手機APP,函數(shù)內(nèi)部不得增加阻塞代碼。詳細實現(xiàn)代碼如下:
 
//藍牙連接成功后協(xié)議在空閑的時候會調(diào)用本回調(diào)函數(shù)
 void gatt_user_send_notify_data_callback(void)
{
static u8 LockFlagBak = 1;
if (LockFlagBak != LockFlag)
{
LockFlagBak = LockFlag;//LockFlag標志位會在MOTOR_Proc()中清零和置位      
sconn_notifydata(&LockFlagBak,1);
}
}
 
藍牙協(xié)議會周期性回調(diào)本UsrProcCallback()函數(shù),無論是在廣播狀態(tài)還是連接狀態(tài),在該函數(shù)中可以做運行和低功耗模式切換的超時計數(shù),給IrqMcuGotoSleepAndWakeup()來處理是否進入低功耗模式,并且針對獲取到的是否連接信息用LED指示燈做不同的狀態(tài)顯示。詳細實現(xiàn)代碼如下:
 
//藍牙協(xié)議會周期性回調(diào)本函數(shù)
void UsrProcCallback(void) 
{
static unsigned char led_flash = 0;    
IWDG_ReloadCounter();
StandbyTimeout ++; 
if(gConnectedFlag){  //連接成功
StandbyTimeout = 0;
LED_ONOFF(1);
}else{
led_flash ++;
LED_ONOFF(!(led_flash%10)); //藍牙未連接,指示燈快閃
}
}
 
除了上述關(guān)鍵的藍牙數(shù)據(jù)發(fā)送函數(shù)外,下面再簡單介紹一些與藍牙相關(guān)的特征值定義,在const BLE_CHAR AttCharList[] 中定義了本案中的兩個特征值:
 
{TYPE_CHAR,0x0011,{ATT_CHAR_PROP_W_NORSP,0x12,0,0xf1,0xff}, UUID16_FORMAT},//解鎖命令
{TYPE_CHAR,0x0013,{ATT_CHAR_PROP_RD|ATT_CHAR_PROP_NTF,0x14,0,0xf2,0xff}, UUID16_FORMAT},//鎖體狀態(tài)
在void att_server_rdByGrType( u8 pdu_type, u8 attOpcode, u16 st_hd, u16 end_hd, u16 att_type )中實現(xiàn)了自定義特征值服務(wù)聲明;
在void ser_write_rsp()中實現(xiàn)對手機APP發(fā)送的藍牙數(shù)據(jù)接收和存儲:
if (StartEncryption)
{
    if (valueLen_w < 9)//對藍牙數(shù)據(jù)進行解析和存儲
    {
     Password_wr[0] = valueLen_w;
     memcpy(&Password_wr[1], attValue, valueLen_w);
     }
     }else{ //無效數(shù)據(jù),不保存
     Password_wr[0] = 0;
}
 
在void server_rd_rsp(u8 attOpcode, u16 attHandle, u8 pdu_type)中實現(xiàn)把鎖體狀態(tài)回復(fù)給手機APP:
att_server_rd( pdu_type, attOpcode, attHandle, &LockFlag, 1); //將LockFlag 標志位返回給手機APP
 
 
手機操作流程如下:
使用手機原生藍牙界面查找設(shè)備,找到MM32_Lock后點擊進行配對。默認配對密碼為123456,配對成功后MM32_LOCK設(shè)備自動保存到配對設(shè)備列表,以后不需要該步驟;
 
手機打開App,開始搜索BLE設(shè)備,選擇對應(yīng)名稱(MM32_LOCK)的藍牙設(shè)備并進行配對,等待連接成功。連接成功后會有相應(yīng)提示,按鈕Connect名字會變成Disconnect;
 
連接成功后,對UUID為fff1的特征值寫0x31323334(模擬用戶輸入密碼”1234”),測試板上連接的馬達開始轉(zhuǎn)動,執(zhí)行開鎖動作;
 
給PA1輸入低電平模擬鎖開啟完成,UUID為fff2的特征值結(jié)果為0表示鎖體開啟,給PA1輸入高電平模擬鎖體鎖上,UUID為fff2的特征值結(jié)果為1表示鎖體鎖上。這里只用馬達驅(qū)動開鎖,關(guān)鎖默認為手動操作。
 
  
 
圖3 手機APP圖
 

本文關(guān)鍵詞: 靈動微   MM32W系列低功耗MCU

相關(guān)文章:?靈動總代理MM32F103C8T6 PIN2PIN兼容STM32F103C8T6


深圳市英尚微電子有限公司是一家專業(yè)的靜態(tài)隨機記憶體產(chǎn)品及方案提供商,十年來專業(yè)致力代理分銷存儲芯片IC, SRAM、MRAM、pSRAM、 FLASH芯片、SDRAM(DDR1/DDR2/DDR3)等,為客人提供性價比更高的產(chǎn)品及方案。
英尚微電子中國區(qū)指定的授權(quán)代理:VTI代理、NETSOL、JSC濟州半導(dǎo)體(EMLSI)、Everspin 、IPSILOG、LYONTEK、ISSI、CYPRESS、ISOCOME、PARAGON、SINOCHIP、UNIIC; 著名半導(dǎo)體品牌的專業(yè)分銷商  如:RAMTROM、ETRON、FUJITSU、LYONTEK、WILLSEMI。
 

?更多資訊關(guān)注SRAMSUN.   m.gokiburiinfo.com    0755-66658299
展開