在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

基于OpenHarmony的智能門鎖設計方案

電子發燒友開源社區 ? 來源:HarmonyOS官方合作社區 ? 作者:HarmonyOS官方合作社 ? 2022-03-25 07:17 ? 次閱讀

1

簡介

本demo是基于Openharmony 3.1 Beta本版開發,不僅可以接收數字管家應用下發的指令來控制門鎖開啟,而且還可以通過數字管家設置不同的開鎖密碼以及一次性密碼,實現給臨時用戶一個臨時密碼,保證門戶安全。當然除了開鎖的功能,智能門鎖還可以通過檢測門與門鎖距離自動上鎖以及如果長時間未上鎖,上報告警消息到數字管家,及時提醒用戶關門關鎖等功能。

1. 交互流程:

1c94497c-ab86-11ec-aa7f-dac502259ad0.png

如上圖所示,智能門鎖整體方案原理圖可以大致分成:智能門鎖設備、數字管家應用、云平臺三部分。智能門鎖通過MQTT協議連接華為IOT物聯網平臺,從而實現命令的接收和屬性上報。關于智能設備接入華為云IoT平臺的詳細細節可以參考 連接IOT云平臺指南;智能設備與數字管家應用之間的設備模型定義可以參考profile

2. 實物簡介:

1ca50212-ab86-11ec-aa7f-dac502259ad0.png

如上圖所示,上面是XR806開發板,中間的是hcsr04超聲波距離傳感器,下面是E53_IA1擴展板。

我們是通過距離傳感器感應門的距離,進行自動上鎖,也可以在一定時間內無法上鎖而產生告警信息上傳到數字管家。

E53_IA1擴展板主要是通過控制電機模擬開關鎖的一個動作。

接線說明:

1cb9f9a6-ab86-11ec-aa7f-dac502259ad0.png

距離傳感器有4根線,其中echo接XR806的PA19,trig接XR806的PA20。

E53_IA1擴展板主需要接3根線,其中IO控制腳接XR806的PA12。

3. 實物操作體驗

2

快速上手

1. 硬件準備

  • xr806模組。

  • hcsr04超聲波模塊。

  • E53_IA1擴展板。

  • 預裝HarmonyOS手機一臺。

2. 環境準備

參照文檔: XR806快速上手指導文檔

3. 編譯前準備設備側代碼下載

具體倉庫地址:https://gitee.com/openharmony-sig/knowledge_demo_smart_home/

下載方式:使用git 命令下載,指令如下(用戶也可以根據需要將該倉庫fork到自己的目錄下后進行下載)

cd ~/git clone git@gitee.com:openharmony-sig/knowledge_demo_smart_home.git

左右滑動查看全部代碼

代碼拷貝

cp -rfa ~/knowledge_demo_smart_home/dev/team_x ~/openharmony/vendor/cp -rfa ~/knowledge_demo_smart_home/dev/third_party/iot_link ~/openharmony/third_party/

左右滑動查看全部代碼

整合并修改完成后的目錄結構如下圖:

1d24feb8-ab86-11ec-aa7f-dac502259ad0.png

SOC代碼下載替換

當前官方soc代碼由于DHCP暫未適配,所以暫時不支持AP模式,這時需要下載并替換之前SOC代碼。如果官方soc代碼已修復該問題,可忽略此步驟。

git clone https://gitee.com/moldy-potato-chips/xr806_-ap_mode.gitmv ~/openharmony/device/soc/allwinner ~/allwinner.org   // 不建議直接刪除,cp -raf xr806_-ap_mode ~/openharmony/device/soc/allwinner

左右滑動查看全部代碼

修改文件

  • 修改編譯依賴

打開 device/soc/allwinner/xradio/xr806/BUILD.gn,添加應用依賴(deps字段):

module_group(module_name) { modules = [   "src",   "project",   "include", ] configs = [  ":SdkLdCconfig", ] deps = [ "http://vendor/team_x/smart_lock/demo_smart_lock:app_smart_lock" ]}

左右滑動查看全部代碼

  • 修改編譯方式

將demo依賴的庫編譯方式(static_library)修改為(source_set):

具體依賴查看demo_smart_lock目錄下的BUILD.gn:

deps = [    "../../common/iot_wifi_xradio:iot_wifi",    "../../common/iot_cloud:iot_cloud",    "../../common/iot_boardbutton_xradio:iot_boardbutton",    "../../common/iot_list:iot_list",    "../../common/iot_sntp:iot_sntp",    "../../common/iot_boardled_xradio",    "http://third_party/cJSON:cJSON"  ]

左右滑動查看全部代碼

其中//third_party/cJSON目錄下的BUILD.gn建議參照下面的修改:

source_set("cJSON") { sources = [  "cJSON.c",  "cJSON_Utils.c", ] ldflags = [ "-lm" ]}

左右滑動查看全部代碼

  • 修改iot_link中的部分文件

third_party/iot_link目錄下文件改動較多,此處以patch方式做修改,patch在路徑在(team_x/smart_lock/iot_link_patch_xr806.patch),主要修改內容:

1.BUILD.gn修改source_set.

2.fd為0時通訊會異常,做了規避操作(socket創建時多創建一個)。

3.部分mbedtl接口未適配,做一些簡單適配以及無法適配的接口需要注釋

4.弱引用導致無法鏈接相關符號,因此需要注釋相關文件中的弱引用。

5.osDelay接口在XR806中未實現,需要替換為OS_Msleep();

以上內容修改的修改均在iot_link_patch_xr806.patch中,只需將該patch文件拷貝到third_party/iot_link目錄下,并執行打補丁即可:

cp -af vendor/team_x/smart_lock/iot_link_patch_xr806.patch third_party/iot_link  // 拷貝patch文件到對應目錄cd third_party/iot_link/               // cd 到對應目錄patch -p1<./iot_link_patch_xr806.patch ? ? ? ? ? ? ? ? ? ? ? ?// 執行打patch動作

左右滑動查看全部代碼

  • 修改GPIO查找方式

因為GPIO框架修改了設備驅動注冊的管腳號,導致應用無法根據HCS的引腳操作對應的GPIO,此問題已經提issue,如果該問題已解決,可以忽略此步驟。

打開drivers/framework/support/platform/src/gpio/gpio_manager.c,將cntlr->start = start;注釋即可。

static int32_t GpioManagerAdd(struct PlatformManager *manager, struct PlatformDevice *device){  uint16_t start;  struct GpioCntlr *cntlr = CONTAINER_OF(device, struct GpioCntlr, device);
  if ((start = GpioCntlrQueryStart(cntlr, &manager->devices)) >= GPIO_NUM_MAX) {    PLAT_LOGE("GpioCntlrAdd: query range for start:%d fail:%d", cntlr->start, start);    return HDF_ERR_INVALID_PARAM;  }
//  cntlr->start = start;  DListInsertTail(&device->node, &manager->devices);  PLAT_LOGI("%s: start:%u count:%u", __func__, cntlr->start, cntlr->count);  return HDF_SUCCESS;}

左右滑動查看全部代碼

  • 將對應的驅動文件復制到drvier對應目錄:

因為主倉代碼中未將對應的驅動文件合并到driver/adpater/platform對應的目錄下,固需要手動將文件拷貝到對應目錄。若主倉已合入,可忽略此步驟。

注意:(如果已用xr806_-ap_mode替換原來的soc文件,則需要將拷貝原來被替換的對應文件,因為xr806_-ap_mode中的驅動文件非最新版

// 拷貝gpio驅動cp -af device/soc/allwinner/xradio/drivers/gpio/gpio_xradio.* driver/adpater/platform/gpio
// 修改driver/adpater/platform/gpio/BUILD.gn文件,加上gpio_xradio的編譯
hdf_driver(module_name) { sources = [] if (defined(LOSCFG_SOC_COMPANY_BESTECHNIC)) {  sources += [ "gpio_bes.c" ] }
 if (defined(LOSCFG_SOC_COMPANY_ALLWINNER)) {  sources += [ "gpio_xradio.c" ] }
 include_dirs = [ "." ]}

左右滑動查看全部代碼

  • 為了節省ram資源,可以把無用的資源先關閉,如關閉內部codec,將 device/soc/allwinner/xradio/xr806/project/prj_config.h中的PRJCONF_INTERNAL_SOUNDCARD_EN設置為0,如下:

/* Xradio internal codec sound card enable/disable */#define PRJCONF_INTERNAL_SOUNDCARD_EN  0

左右滑動查看全部代碼

4. 編譯&燒錄

更新hb

首先可以查看一下hb的版本,如果hb版本為0.4.4就不需要更新。

## 查看hb版本hb --version
## 更新hb, 以下指令需要在openharmony SDK根目錄執行pip3 uninstall ohos_buildpip3 install build/lite

左右滑動查看全部代碼

編譯

1.hb set 選擇demo指令,具體命令如下:

hb set -root

左右滑動查看全部代碼

如下圖所示,使用鍵盤上下鍵選中smart_lock

1d34ac0a-ab86-11ec-aa7f-dac502259ad0.png

2.hb build 全量編譯命令

hb build -f

左右滑動查看全部代碼

1d4e6afa-ab86-11ec-aa7f-dac502259ad0.png

燒錄:參照文檔:XR806快速上手指導文檔

5. 設備配網

  • 在設備上電前需準備好安裝了數字管家應用的HarmonyOS手機,詳情見數字管家應用開發, 并在設置中開啟手機的NFC功能;

  • 寫設備NFC標簽,詳細操作見設備NFC標簽指導文檔;

  • 燒錄完成后,上電。開發者在觀察開發板上狀態LED燈以8Hz的頻率閃爍時,將手機上半部靠近開發板NFC標簽處(無NFC標簽的可用NFC貼紙替代);

  • 碰一碰后手機將自動拉起數字管家應用并進入配網狀態。

  • 配網過程中需要 連接設備的AP熱點,然后填寫需要配置的wifi的密碼。

  • 最后點擊配置,手機會將ssid以及對應的密碼通過AP熱點發送到設備。

  • 當設備端藍燈每5s閃爍一次則代碼設備聯網成功。

6. 設置主密碼并通過主密碼開鎖

  • 數字管家下發修改密碼指令以及修改后的密碼

  • 設備端接收指令以及修改后的密碼進行更新

  • 數字管家下方開鎖指令以及開鎖密碼

  • 設備端接收指令并判斷密碼是否正確,正確的話電機轉動模擬開鎖,否則向數字管家發送密碼錯誤信息

7. 設置臨時密碼

  • 數字管家下發創建臨時密碼指令以及創建臨時密碼時的信息,主要包括臨時密碼標志,臨時密碼信息,臨時密碼生效時間段。

  • 設備端接收指令并保存信息。

  • 臨時用戶通過數字管家下發開鎖指令以及開發密碼。

  • 設備端接收指令并判斷密碼是否正確以及該密碼是否在當前時間段生效,正確的話電機轉動模擬開鎖,否則向數字管家發送密碼錯誤信息。

8. 門未關告警

  • 設備端執行完開門指令后會一直通過超聲波距離傳感器來判斷門是否可以關閉,如果超過5分鐘發現門不能關閉,則主動向數字管家發送門未關的告警信息。

  • 數字管家通過系統消息查看到告警消息。

  • 數字管家可以從設備控制頁面進入到告警消息頁面,也可以通過點擊告警消息進入到告警界面。

9. 模擬自動關門

  • 設備端執行開門動作后,用手或者其他物體靠近超聲波距離傳感器

  • 設備每隔10S檢測一次超聲波距離傳感器,發現在設定范圍內(模擬門已關),則控制電機轉動(模擬關門動作),同時上報關門信息到數字管家

原文標題:OpenHarmony開發樣例:智能門鎖

文章出處:【微信公眾號:HarmonyOS官方合作社區】歡迎添加關注!文章轉載請注明出處。

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

    關注

    0

    文章

    370

    瀏覽量

    40842
  • 智能門鎖
    +關注

    關注

    17

    文章

    1857

    瀏覽量

    43165
  • OpenHarmony
    +關注

    關注

    25

    文章

    3722

    瀏覽量

    16313

原文標題:OpenHarmony開發樣例:智能門鎖

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenHarmony 項目實戰:基于全志 XR806 實現的上下位機雙 OpenHarmony 智能門鎖樣例

    臨時用戶一個臨時密碼,保證門戶安全。當然除了開鎖的功能,智能門鎖還可以通過檢測門與門鎖距離自動上鎖以及如果長時間未上鎖,上報告警消息到數字管家,及時提醒用戶關門關鎖等功能。 1. 交互流程: 如上圖所示,
    的頭像 發表于 02-19 17:25 ?1087次閱讀
    <b class='flag-5'>OpenHarmony</b> 項目實戰:基于全志 XR806 實現的上下位機雙 <b class='flag-5'>OpenHarmony</b> <b class='flag-5'>智能</b><b class='flag-5'>門鎖</b>樣例

    #無線智能電子門鎖設計方案 合適的電源架構選擇

    電子門鎖智能門鎖智慧安防
    電子技術那些事兒
    發布于 :2022年09月18日 16:28:08

    分享----單相智能電表設計方案

    本帖最后由 azsxdcfv1871514 于 2013-1-6 15:15 編輯 分享----單相智能電表設計方案
    發表于 06-05 11:14

    智能門鎖(NFC架構)方案

    LPC11U68, 結合TI Motor Driver DRV8837、NXP NFC Transmission Module PN512的高性能, 高可靠性, 低功耗的智能門鎖(NFC架構)方案
    發表于 06-06 21:17

    藍牙智能門鎖解決方案 BLE藍牙指紋智能門鎖開發方案

    隨著藍牙技術的成熟,全民智能生活大時代已經開啟智能家居的普及,讓家庭生活更加智能化就拿藍牙智能門鎖來說好了,現如今市面上的藍牙
    發表于 07-20 15:42

    藍牙智能門鎖解決方案

    成為別人的鎖。目前,在智能門鎖領域無線通信主要有zigbee、WiFi、藍牙3種,其中藍牙以低功耗,低成本,高安全性等突出優點,成為智能門鎖廠商熱衷的無線
    發表于 11-06 16:40

    基于32位單片機的智能門鎖解決方案

    智能門鎖是指區別于傳統機械鎖的基礎上改進的,在用戶安全性、識別、管理性方面更加智能化簡便化的鎖具。智能門鎖是門禁系統中鎖門的執行部件。
    發表于 12-22 06:05

    基于WiFi模塊的智能門鎖低功耗方案

    WiFi模塊的智能家居應用智能門鎖低功耗WiFi方案優勢分析
    發表于 12-29 06:04

    基于stm32的智能小車設計方案

    基于stm32的智能小車設計方案
    發表于 07-14 06:53

    如何去實現一種基于STM32和freeRTOS智能門鎖設計

    基于STM32和freeRTOS智能門鎖設計方案前言? 項目基于STM32單片機為MCU,通過UART,SPI和藍牙模塊,RC522模塊連接,MCU采用freeRTOS實時操作系統,門鎖
    發表于 02-18 06:47

    無線智能電子門鎖設計方案介紹(3)

    無線智能電子門鎖設計方案分享(三)
    的頭像 發表于 08-23 02:06 ?4930次閱讀

    采用電機驅動的無線智能電子門鎖設計方案(1)

    無線智能電子門鎖設計方案分享(一)
    的頭像 發表于 08-22 00:14 ?5444次閱讀
    采用電機驅動的無線<b class='flag-5'>智能</b>電子<b class='flag-5'>門鎖</b><b class='flag-5'>設計方案</b>(1)

    智能門鎖電機驅動集成電路(IC)設計方案

    本文介紹了一個具有動態過流檢測功能的智能門鎖電機驅動集成電路(IC)設計方案,該設計可支持不同的電源電壓和負載。
    的頭像 發表于 12-03 14:45 ?4449次閱讀
    <b class='flag-5'>智能</b><b class='flag-5'>門鎖</b>電機驅動集成電路(IC)<b class='flag-5'>設計方案</b>

    基于STM32和freeRTOS智能門鎖設計方案

    基于STM32和freeRTOS智能門鎖設計方案前言? 項目基于STM32單片機為MCU,通過UART,SPI和藍牙模塊,RC522模塊連接,MCU采用freeRTOS實時操作系統,門鎖
    發表于 12-23 20:00 ?48次下載
    基于STM32和freeRTOS<b class='flag-5'>智能</b><b class='flag-5'>門鎖</b><b class='flag-5'>設計方案</b>

    基于OpenHarmony智能門鎖設計

    本項目的場景是智能家居。通過 OpenHarmony 源碼與 Hi3861 開發板進行智能門鎖的項目開發。最后可以通過舵機進行開關鎖與通過手機的數字管家進行密碼解鎖。
    的頭像 發表于 04-10 11:05 ?1161次閱讀
    主站蜘蛛池模板: 午夜免费网址| 亚洲国产精品久久久久婷婷老年| 在线日韩一区| 国产免费好大好硬视频| 伊人久久综合成人亚洲| 天天射综合| 欧美三级黄视频| 久久精品国产夜色| 日日干夜夜操| 国语一区| 特级一级毛片| 久久美女视频| 午夜影院网页| 亚洲一二三区在线观看| 日韩高清性爽一级毛片免费| 久久澡人人澡狠狠澡| 综合网在线观看| 日本xxwwwxxxx网站| 免费无码看av的网站| 五月天激激婷婷大综合丁香| 国产吧在线| semimi亚洲综合在线观看| 日本理论片www视频| 天天干天天拍天天操| 日本一二线不卡在线观看| 快色视频在线观看| 午夜视频免费| 性感美女逼| 狠狠婷婷| 日日爽视频| 在线不卡一区| 成 人 免 费 黄 色| 美国人与性xxxxxxx| 亚洲大成色www永久网址| 成年免费大片黄在线观看免费| 性欧美极品| 欧美日韩一区二区三区视频在线观看| 日本综合在线| 免费精品99久久国产综合精品| 激情六月婷婷开心丁香开心| 奇米888在线看奇米999|