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

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

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

3天內不再提示

OpenHarmony南向開發案例:【智能門鎖】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-13 22:38 ? 次閱讀

一. 簡介

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

1. 交互流程:

如上圖所示,智能門鎖整體方案原理圖可以大致分成:智能門鎖設備、數字管家應用、云平臺三部分。智能門鎖通過MQTT協議連接華為IOT物聯網平臺,從而實現命令的接收和屬性上報。 關于智能設備接入華為云IoT平臺的詳細細節;智能設備與數字管家應用之間的設備模型定義可以參考;鴻蒙開發文檔:qr23.cn/AKFP8k點擊或者復制轉到即可。

2. 實物簡介:

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

搜狗高速瀏覽器截圖20240326151547.png
鴻蒙next開發指導文檔mau123789是v直接前往拿學習
我們是通過距離傳感器感應門的距離,進行自動上鎖,也可以在一定時間內無法上鎖而產生告警信息上傳到數字管家。

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

接線說明:

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

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

3. 實物操作體驗

二. 快速上手

1. 硬件準備

  • xr806模組。
  • hcsr04超聲波模塊。
  • E53_IA1擴展板。
  • 預裝HarmonyOS手機一臺。

2. 環境準備

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

3. 編譯前準備

設備側代碼下載

下載方式:使用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/

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

SOC代碼下載替換

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

git clone https://gitee.com/moldy-potato-chips/xr806_-ap_mode.git
mv ~/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_build
pip3 install build/lite
編譯
  1. hb set 選擇demo指令,具體命令如下:
hb set -root

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

  1. hb build 全量編譯命令
    hb build -f
    

燒錄

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

5. 設備配網

  • 在設備上電前需準備好安裝了數字管家應用的HarmonyOS手機, 并在設置中開啟手機的NFC功能;
  • 寫設備NFC標簽;
  • 燒錄完成后,上電。開發者在觀察開發板上狀態LED燈以8Hz的頻率閃爍時,將手機上半部靠近開發板NFC標簽處(無NFC標簽的可用NFC貼紙替代);
  • 碰一碰后手機將自動拉起數字管家應用并進入配網狀態。
  • 配網過程中需要 連接設備的AP熱點,然后填寫需要配置的wifi的密碼。
  • 最后點擊配置,手機會將ssid以及對應的密碼通過AP熱點發送到設備。
  • 當設備端藍燈每5s閃爍一次則代碼設備聯網成功。

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

  • 數字管家下發修改密碼指令以及修改后的密碼
  • 設備端接收指令以及修改后的密碼進行更新
  • 數字管家下方開鎖指令以及開鎖密碼
  • 設備端接收指令并判斷密碼是否正確,正確的話電機轉動模擬開鎖,否則向數字管家發送密碼錯誤信息

7. 設置臨時密碼

  • 數字管家下發創建臨時密碼指令以及創建臨時密碼時的信息,主要包括臨時密碼標志,臨時密碼信息,臨時密碼生效時間段。
  • 設備端接收指令并保存信息。
  • 臨時用戶通過數字管家下發開鎖指令以及開發密碼。
  • 設備端接收指令并判斷密碼是否正確以及該密碼是否在當前時間段生效,正確的話電機轉動模擬開鎖,否則向數字管家發送密碼錯誤信息。

8. 門未關告警

  • 設備端執行完開門指令后會一直通過超聲波距離傳感器來判斷門是否可以關閉,如果超過5分鐘發現門不能關閉,則主動向數字管家發送門未關的告警信息。
  • 數字管家通過系統消息查看到告警消息。
  • 數字管家可以從設備控制頁面進入到告警消息頁面,也可以通過點擊告警消息進入到告警界面。

9. 模擬自動關門

  • 設備端執行開門動作后,用手或者其他物體靠近超聲波距離傳感器
  • 設備每隔10S檢測一次超聲波距離傳感器,發現在設定范圍內(模擬門已關),則控制電機轉動(模擬關門動作),同時上報關門信息到數字管家

審核編輯 黃宇

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

    關注

    17

    文章

    1858

    瀏覽量

    43446
  • 鴻蒙
    +關注

    關注

    57

    文章

    2395

    瀏覽量

    43087
  • HarmonyOS
    +關注

    關注

    79

    文章

    1983

    瀏覽量

    30630
  • OpenHarmony
    +關注

    關注

    25

    文章

    3751

    瀏覽量

    16660
收藏 人收藏

    評論

    相關推薦

    OpenHarmony南向開發案例:【智能風扇】

    智能風扇設備不僅可以接收數字管家應用下發的指令來控制風扇開啟的時間,調節風扇擋位,更改風扇定時時間,而且還可以加入到數字管家的日程管理中。通過日程可以設定風扇相關的任務,使其在特定的時間段內,風扇自動打開或者關閉,調節擋位大小和定時時間;通過日程管家還可以實現風扇和其他的智能
    的頭像 發表于 04-09 17:35 ?960次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>智能</b>風扇】

    OpenHarmony南向開發案例:【分布式畫板】

    使用OpenHarmony3.1-Release開發的應用。通過OpenHarmony的分布式技術,使多人能夠一起畫畫。
    的頭像 發表于 04-12 14:40 ?1106次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【分布式畫板】

    OpenHarmony南向開發案例:【智能油煙機】

    基于Hi3516開發板,使用開源OpenHarmony開發的應用。
    的頭像 發表于 04-18 15:54 ?1114次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>智能</b>油煙機】

    OpenHarmony鴻蒙南向開發案例:【智能加濕器】

    智能加濕器具有實時監控其所處環境溫度、濕度,并通過數字管家設置日程,自動打開加濕器控制濕度功能。
    的頭像 發表于 04-19 15:50 ?1479次閱讀
    <b class='flag-5'>OpenHarmony</b>鴻蒙<b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>智能</b>加濕器】

    OpenHarmony鴻蒙南向開發案例:【智能貓眼(基于Hi3518開發板)】

    基于Hi3518開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用。達到將Hi3518開發板中攝像頭獲取的數據通過RTSP協議傳輸到手機并顯示 。
    的頭像 發表于 04-22 15:46 ?2152次閱讀
    <b class='flag-5'>OpenHarmony</b>鴻蒙<b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>智能</b>貓眼(基于Hi3518<b class='flag-5'>開發</b>板)】

    OpenHarmony南向能力征集令

    1、適配過程中缺少哪些接口能力或者南向能力,需要OpenHarmony去補齊的?例如內核、編譯、器件適配、單板適配等; 2、對標linux,需要OpenHarmony提供哪些能力?比如V4L2
    發表于 04-09 15:32

    鴻蒙OpenHarmony南向/北向快速開發教程-迅為RK3568開發

    P2_OpenHarmony功能框架 P3_OpenHarmony技術特性 P4_OpenHarmony支持設備類型 p5_南向開發和北向
    發表于 07-23 10:44

    華為開發者分論壇HarmonyOS學生公開課-OpenHarmony Codelabs開發案

    2021華為開發者分論壇HarmonyOS學生公開課-OpenHarmony Codelabs開發案
    的頭像 發表于 10-24 11:25 ?1972次閱讀
    華為<b class='flag-5'>開發</b>者分論壇HarmonyOS學生公開課-<b class='flag-5'>OpenHarmony</b> Codelabs<b class='flag-5'>開發案</b>例

    OpenHarmony Dev-Board-SIG專場:南向共建案例分享

    OpenHarmony南向共建案例分享: 審核編輯:金巧
    的頭像 發表于 12-28 14:16 ?996次閱讀
    <b class='flag-5'>OpenHarmony</b> Dev-Board-SIG專場:<b class='flag-5'>南向</b>共建案例分享

    基于OpenHarmony智能門鎖設計

    本項目的場景是智能家居。通過 OpenHarmony 源碼與 Hi3861 開發板進行智能門鎖的項目開發
    的頭像 發表于 04-10 11:05 ?1211次閱讀

    鴻蒙NEXT南向開發案例:【智能臺燈】

    鴻蒙南向開發智能臺燈案例
    的頭像 發表于 04-03 18:00 ?1098次閱讀
    鴻蒙NEXT<b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>智能</b>臺燈】

    OpenHarmony南向開發案例:【智能中控屏】

    基于Hi3516開發板,使用開源OpenHarmony開發的應用。通過控制面板可以控制同一局域網內的空調,窗簾,燈等智能家居設備。
    的頭像 發表于 04-17 16:12 ?443次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>智能</b>中控屏】

    OpenHarmony南向開發案例:【智能照相機】

    基于Hi3516開發板,使用OpenHarmony3.0-LTS開發的應用。通過獲取攝像頭數據,實現預覽拍照以及路視頻等功能。并且通過后臺AI服務識別喚醒詞來進行語音控制拍照及錄制視頻。
    的頭像 發表于 04-18 22:19 ?499次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>智能</b>照相機】

    OpenHarmony鴻蒙南向開發案例:【智能門鈴】

    智能門鈴通過監控來訪者信息,告訴主人門外是否有人按鈴、有陌生人靠近或者無人狀態。
    的頭像 發表于 04-19 15:35 ?698次閱讀
    <b class='flag-5'>OpenHarmony</b>鴻蒙<b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>智能</b>門鈴】

    OpenHarmony鴻蒙南向開發案例:【智能貓眼(基于3516開發板)】

    基于Hi3516開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用。達到將Hi3516開發板中攝像頭獲取的數據通過RTSP協議傳輸到手機并顯示 。
    的頭像 發表于 04-19 22:01 ?709次閱讀
    <b class='flag-5'>OpenHarmony</b>鴻蒙<b class='flag-5'>南向</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>智能</b>貓眼(基于3516<b class='flag-5'>開發</b>板)】
    主站蜘蛛池模板: 四虎影院精品在线观看 | 色妞色综合久久夜夜 | 日韩一级在线视频 | 香蕉视频网站在线播放 | 日韩美aaa特级毛片 日韩美a一级毛片 | 国产美女一区 | 久久天天躁狠狠躁夜夜2020一 | 天天躁夜夜躁狠狠躁2021 | 免费性bbbb台湾 | 午夜精品视频任你躁 | 九九热视频免费在线观看 | 欧美日韩在线成人看片a | 免费看真人a一级毛片 | 二级黄的全免费视频 | 中文字幕第五页 | 激情亚洲婷婷 | 看全色黄大色大片免费久久怂 | 午夜三级国产精品理论三级 | 国产未成女年一区二区 | 一色桃子juy774在线播放 | 国产视频久 | 日韩高清性爽一级毛片免费 | 国产精品免费久久 | 天天撸夜夜操 | 色综合天天射 | 天天拍拍天天爽免费视频 | 日本aaaa毛片在线看 | 国产精品成人观看视频国产奇米 | 奇米影视一区 | 久久久午夜毛片免费 | www.色午夜 | 毛片免费观看 | 香蕉网影院在线观看免费 | 日韩黄色免费 | 国产黄色小视频在线观看 | 国产精品9999| 色婷婷综合久久久久中文一区二区 | 综合天天 | 亚洲国产午夜看片 | 手机在线免费观看视频 | 久青草国产在线视频_久青草免 |