<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

如何在OpenHarmony開源代碼基礎上實現數字管家開發宿舍全屋智能

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-08-26 09:55 ? 次閱讀

項目說明

基于OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)、數字管家開發宿舍全屋智能,實現碰一碰開門、碰一碰開燈、碰一碰開風扇以及煙感檢測。因為各項目開發流程大體相似,本文主要以碰一碰開門為例介紹如何在現有OpenHarmony開源代碼的基礎上實現我們想要的功能。

需要提前準備的設備:搭載HarmonyOS系統的手機一臺,API 6+;搭載Hi3861模組的主板,不限于HiSpark、小熊派套件;7.4V電池、一個舵機、若干導線。最終的碰一碰開門、開燈、風扇效果如下:

cbbe8de4-24c7-11ed-ba43-dac502259ad0.gifcbe696cc-24c7-11ed-ba43-dac502259ad0.gifcc156d76-24c7-11ed-ba43-dac502259ad0.gif

智能臺燈與風扇(包括門鎖)、數字管家應用、云平臺三部分數據流如下圖所示。數字管家應用下發風速、亮度調節等設備控制指令到云平臺,云平臺發送到指定設備,同時風扇、臺燈等設備上報當前狀態到云平臺,云平臺再發送至數字管家應用,實現用戶可視化操作,實時控制智能設備。

cc56d676-24c7-11ed-ba43-dac502259ad0.jpg

開發流程

項目主要包含:①搭建設備端開發環境、②數字管家安裝、③配置NFC標簽、④實操驗證,共四個部分。開發過程中各關鍵環節如下圖,整體思路是準備軟硬件環境,編寫業務代碼,燒錄測試,若開發時遇到問題可參考該圖進行排查。

cc7c34ca-24c7-11ed-ba43-dac502259ad0.jpg

開發環境搭建主要分為設備端環境、數字管家兩部分。設備端使用DevEco Device Tools最新版本,在ubuntu平臺開發,在本項目中使用該工具編輯源碼、下載二進制文件;數字管家使用DevEco Studio Beta3.1及以上版本,在windows平臺開發。

搭建設備端開發環境

DevEco Device Tools搭建

第一步,在Ubuntu20.04系統搭建設備端開發環境,支持源碼編輯、編譯、下載一站式開發。在Ubuntu系統搭建DevEco Device Tools,詳細搭建流程參考開發環境準備(https://docs.openharmony.cn/pages/v3.1/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md/)。

第二步,安裝編譯工具鏈,Hi3861V100開發板Ubuntu環境工具鏈下載鏈接gn、ninja、gcc_riscv32。

cc8ea0ec-24c7-11ed-ba43-dac502259ad0.png

其余參考工具鏈管理。添加工具后如下圖:

cca00f4e-24c7-11ed-ba43-dac502259ad0.png

Ubuntu環境編譯工具準備

// A.基礎依賴 sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev // -安裝 scons python3 -m pip install scons // -查看版本,3.0.4以上 scons -v // B.安裝python模塊 sudo pip3 install setuptools kconfiglib pycryptodome ecdsa six --upgrade --ignore-installed six// C.添加gcc_riscv32(WLAN模組類編譯工具鏈) 在安裝DevEco Device Tools時已經下載 // -解壓到根目錄 tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~ // -添加環境變量 vim ~/.bashrc // -最后一行加入:export PATH=~/gcc_riscv32/bin:$PATH // -確認安裝是否正常,有返回版本號即可。riscv32-unknown-elf-gcc -v

設備端源碼下載

第一步,碼云工具安裝

cd ~curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 》 /usr/local/bin/repochmod a+x /usr/local/bin/repopip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

第二步,獲取源碼。OpenHarmony 1.0.1版本

mkdir ~/OpenHarmony1.01cd ~/OpenHarmony1.01repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verifyrepo sync -crepo forall -c ‘git lfs pull’

獲取相關產品解決方案,并復制到源碼中,具體操作如下:

//下載產品解決方案到ubuntu,解壓在非中文路徑下即可。下載鏈接為:https://gitee.com/openharmony-sig/knowledge_demo_smart_home //拷貝解決方案cp -rfa ~/knowledge_demo_smart_home/dev/device/bearpi ~/OpenHarmony1.01/device/ cp -rfa ~/knowledge_demo_smart_home/dev/team_x ~/OpenHarmony1.01/vendor/cp -rfa ~/knowledge_demo_smart_home/dev/third_party/iot_link ~/OpenHarmony1.01/third_party/

第三步(可選,若使用HiSpark套件需要修改)

//1.修改usr_config.mk 文件路徑:device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk使能如下配置項CONFIG_I2C_SUPPORT=yCONFIG_PWM_SUPPORT=y//2.修改wifiservice 文件夾 路徑:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_hotspot.cEnableHotspot函數中屏蔽如下字段139行 //if (SetHotspotIpConfig() != WIFI_SUCCESS) {140行 // return ERROR_WIFI_UNKNOWN;141行 //}//3.DispatchConnectEvent函數下 屏蔽StaSetWifiNetConfig相關代碼行路徑:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_device.c239行 //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);260行 //StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED);

第四步,安裝ohos-build工具

需要使用ohos-build 0.2.0 版本編譯。在OpenHarmony 1.0.1源碼根目錄下,執行:

pip3 install build/lite// 添加環境變量vim ~/.bashrcexport PATH=~/.local/bin:$PATHsource ~/.bashrc// 然后執行hb -h

返回一下信息說明正確安裝:

ccb1d44a-24c7-11ed-ba43-dac502259ad0.png

第五步,打開工程

打開Visual Studio Code下的DevEco Device Tools,導入1.0.1工程選擇對應的開發板即可。打開終端,cd到源碼路徑,執行hb set,選擇smart_lamp,然后執行hb build 編譯。

ccc1d246-24c7-11ed-ba43-dac502259ad0.png

在~/openharmony1.01/out/bearpi_hm_nano/smart_lamp下生成Hi3861_wifiiot_app_allinone.bin說明一切操作正常。如果遇到uninstall clang、not found gn、ninja等問題,需要配置環境變量,還要檢測ohos-build是不是0.2.0版本。具體可以參考個人總結的如下措施:

ccef253e-24c7-11ed-ba43-dac502259ad0.png

第六步,燒錄二進制文件連接開發板到電腦USB,在DevEco Device Tools點擊配置工程,設置串口號,具體如下圖:

cd07e556-24c7-11ed-ba43-dac502259ad0.png

然后將第五步生成的Hi3861_wifiiot_app_allinone.bin拷貝到~/openharmony1.01/out/hispark_pegasus/wifiiot_hispark_pegasus下【因為工具默認下載該路徑下的bin文件】 點擊Project Task下的upload,按下板子上的復位即可燒錄。

cd427a7c-24c7-11ed-ba43-dac502259ad0.png

設備端編譯

1.3節中只是把開源代碼布置到我們的筆記本中,要實現開門需要添加自己的業務代碼。例如門鎖需要使用到舵機,我在smart_lamp解決方案的基礎上進行修改。具體操作如下:

第一步,添加舵機控制

打開操作GPIO的vendor/team_x/smart_lamp/demo_smartlamp/E53_SC1/E53_SC1.c文件添加如下函數:

/* @brief Servo control * @param angle input value: 0-200 * */void My_servo(int angle){ int j=0; int k=20000/200; //實際應該是20000/180 angle = k*angle; for (j=0;j《5;j++) { GpioSetOutputVal(servoID, 1); hi_udelay(angle); //angle ms GpioSetOutputVal(servoID, 0); hi_udelay(20000-angle);// }//20ms 控制舵機 }

第二步,添加初始化GPIO 10的語句

#define SERVO_1_GPIO 10int E53SC1_InitMainLed(void){ IoTGpioInit(CN_MAIN_LED_GPIO); IoTGpioSetFunc(CN_MAIN_LED_GPIO, CN_MAIN_LED_GPIO_FUNC); IoTGpioSetDir(CN_MAIN_LED_GPIO, IOT_GPIO_DIR_OUT); IoTPwmInit(CN_MAIN_LED_PWDOUT); IoTGpioInit(SERVO_1_GPIO); IoTGpioSetFunc(SERVO_1_GPIO, IOT_GPIO_FUNC_GPIO_10_GPIO); IoTGpioSetDir(SERVO_1_GPIO, IOT_GPIO_DIR_OUT); return 0;}

第三步,添加業務代碼

int E53SC1_SetMainLed(int status, int dutyCycle){ int ret = 0; if (status == CN_BOARD_SWITCH_ON) { ret = IoTPwmStart(CN_MAIN_LED_PWDOUT, dutyCycle, CN_MAIN_LED_FRE); My_servo(1000); //開門 } else { ret = IoTPwmStop(CN_MAIN_LED_PWDOUT); My_servo(10000); //上鎖 } RaiseLog(LOG_LEVEL_INFO, “status=%d, dutyCycle=%d, ret = %d”, status, dutyCycle, ret); return 0;}

第四步,編譯、下載

參考1.3節第五步、第六步,直接編譯即可無需再次導入工程。因為我使用的是ubuntu物理機器,為實現一站式開發特地安裝DevEco Device tools,OpenHarmony 2.0、3.0版本完全可以脫離hb工具編譯。燒錄完成后,按下板子復位鍵,手機可以發現模組發出的WIFI信號teamX-Lamp01。

數字管家安裝

DevEco Studio 安裝

第一步,DevEco Studio下載安裝,安裝完成后要配置Windows環境變量(參考:https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/quick-start/start-overview.md/)。第二步,打開DevEco Studio設置下的SDK Manager,安裝SDK(API6)紅框中的都需要下載。值得注意的是第一步安裝Studio時會下載OpenHarmony SDK,第二步的SDK不一樣,不能在同一個路徑下,否則會被替換掉原有的。

cd550520-24c7-11ed-ba43-dac502259ad0.png

數字管家APP源碼獲取

數字管家在windows平臺編譯安裝到手機上,下載鏈接為:https://gitee.com/openharmony-sig/knowledge_demo_smart_home下載后解壓在非中文路徑下即可。

cd6bc9c2-24c7-11ed-ba43-dac502259ad0.png

使用DevEco Studio打開數字管家,路徑如下:

cd7f669e-24c7-11ed-ba43-dac502259ad0.png

cd907844-24c7-11ed-ba43-dac502259ad0.png

數字管家APP安裝

第一步,點擊右上角個人頭像,登錄

cda644b2-24c7-11ed-ba43-dac502259ad0.png

第二步,進入AGC平臺AGC(AppGallery Connect) 地址:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/

cdb9fb56-24c7-11ed-ba43-dac502259ad0.png

第三步,在AGC平臺創建項目,然后創建應用

cdd05018-24c7-11ed-ba43-dac502259ad0.png

cdf7ed62-24c7-11ed-ba43-dac502259ad0.png

ce0b3cc8-24c7-11ed-ba43-dac502259ad0.png

得到如圖配置:

ce196352-24c7-11ed-ba43-dac502259ad0.png

第四步,回到上一節DevEco Studio 打開的工程,修改三個地方,具體路徑如下:

。/entry/src/config.json

。/netconfig/src/main/config.json

。/netconfig/src/main/js/default/pages/index/index.js

ce2ed958-24c7-11ed-ba43-dac502259ad0.png

ce43cf34-24c7-11ed-ba43-dac502259ad0.png

ce508328-24c7-11ed-ba43-dac502259ad0.png

第五步,自動簽名。

首先把自己的手機連接到電腦上,打開開發人員選項–》 開啟USB調試–》同意調試 然后打開DevEco Studio的file–Project Structure–Project–Signing Configs–automatically generate signing 如下圖:

ce5deb4e-24c7-11ed-ba43-dac502259ad0.png

第六步,編譯下載。

點開entry,進入debug configuration,在entry下勾選deploy multi haps packages,確認后退出。因為數字管家包含entry、netconfig兩個module,要同時安裝。

ce77e04e-24c7-11ed-ba43-dac502259ad0.png

ce88bcf2-24c7-11ed-ba43-dac502259ad0.png

第七步,安裝數字管家APP 點擊運行,稍等片刻手機上即可出現數字管家APP,輸入手機號,登錄即可。

配置NFC標簽

申請product ID

將搭載HarmonyOS的手機,登錄你的華為賬號,并在華為應用市場中下載安裝應用調測助手打開選擇NFC,申請即可。

ce9bd54e-24c7-11ed-ba43-dac502259ad0.png

注冊服務

第一步,登陸華為開發者聯盟https://developer.huawei.com/consumer/cn/,點擊管理中心,創建原子化服務。

ceb3951c-24c7-11ed-ba43-dac502259ad0.png

第二步,按照提示填寫即可,在標簽配置頁面,填寫在應用調測助手申請的Product ID 型號00。在FA配置頁面,一定要查看第2.3節第四步自己寫的包名,模塊名就是entry,添加設備就是com.example.distschedule.AddDeviceAbility:

cedc0b1e-24c7-11ed-ba43-dac502259ad0.png

第三步,創建測試,填寫華為賬號對應的手機號即可

ceed3d12-24c7-11ed-ba43-dac502259ad0.png

寫入標簽

打開應用調測助手,選擇之前申請的ID,在自定義框填入如下數據:

1246128c7b60ad1ed0286680f19206Lamp01308123456784011512teamX-Lamp01

cf03e6f2-24c7-11ed-ba43-dac502259ad0.jpg

更多設備NFC標簽

實操驗證

門鎖

開門需要一個簡單的裝置,之前有設計,參考hi3861 web端開門。

cf187626-24c7-11ed-ba43-dac502259ad0.jpg

電路簡單,將7.4v電源經過降壓穩壓后分別給模組、舵機供電。

cf286f0e-24c7-11ed-ba43-dac502259ad0.png

手機連上wifi,打開NFC開關,碰一下標簽即可喚起原子化界面(不能使用校園網,會導致設備無法連接)測試效果如下圖:

cf39b61a-24c7-11ed-ba43-dac502259ad0.gif

小風扇

hb set時需要編譯smart_fan,同樣的下載源碼后,寫入NFC標簽

1246150601d88056b027dd2ca47205Fan01308123456784011511teamX-Fan01

手上的風扇的驅動電路如下圖,PWM控制風速:

cfda5c6e-24c7-11ed-ba43-dac502259ad0.png

臺燈

首先需要一個電磁繼電器、5V充電頭,可以同時為模組和臺燈供電(并聯)。在臺燈源碼中初始化GPIO 9為輸出,將繼電器的信號端與GPIO 9 相連即可。開燈時,接通繼電器的NC-COM端,斷開NO-COM。

cfecc57a-24c7-11ed-ba43-dac502259ad0.png

cffd758c-24c7-11ed-ba43-dac502259ad0.png

結語

以上案例實質上還是在使用現有的解決方案、數字管家的服務器實現,甚至連開門的操作UI都是臺燈的,雖然這個可以在數字管家修改圖標,但本質還是沒有變化,本教程目的在于記錄數字管家碰一碰的開發入門,為后期再添加自己的解決方案、服務器作為參考。

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

    關注

    0

    文章

    27

    瀏覽量

    2869
  • OpenHarmony
    +關注

    關注

    23

    文章

    3328

    瀏覽量

    15172
  • 全屋智能
    +關注

    關注

    2

    文章

    127

    瀏覽量

    2170

原文標題:宿舍全屋智能開發指南

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    開源OpenHarmony 是每個人的 OpenHarmony

    `開放原子開源基金會于 2020 年 9 月接受華為捐贈的智能終端操作系統基礎能力相關代碼,隨后進行開源,并根據命名規則為該開源項目命名為
    發表于 06-06 19:54

    一文帶你讀懂OpenHarmony數字管家

    、如何貢獻到數字管家體驗完數字管家,你是否也想為數字管家添磚加瓦呢?
    發表于 11-05 16:11

    OpenHarmony開發樣例】基于 BearPi-HM Nano 套件開發智能臺燈

    自動調節相應時間段臺燈的亮度;通過日程管家還可以實現臺燈和其他的智能設備聯動。1.交互流程如上圖所示,智能臺燈整體方案原理圖可以大致分成:智能
    發表于 03-04 15:01

    OpenHarmony開發樣例】智能家居相關demo樣例匯總

    設備聯動。9、基于志XR806開發開發智能體重秤本demo基于OpenHarmony3.1Beta版本
    發表于 03-04 16:32

    OpenHarmony開發樣例】基于BearPi-HM Nano套件開發智能窗簾

    日程管家還可以實現窗簾和其他的智能設備聯動。1.交互流程如上圖所示,智能窗簾整體方案原理圖可以大致分成:智能窗簾設備、
    發表于 03-07 10:48

    OpenHarmony開發樣例】基于BearPi-HM Nano套件開發智能煙感系統

    ,可以添加-f 選項詳細的代碼編譯及固件燒錄步驟,請參考 編譯和燒錄指南6、設備配網在設備電前需準備好安裝了數字管家應用的HarmonyOS手機,詳情見
    發表于 03-08 10:43

    OpenHarmony開發樣例】基于志XR806開發開發智能門鎖

    一. 簡介本demo是基于Openharmony 3.1 Beta本版開發,不僅可以接收數字管家應用下發的指令來控制門鎖開啟,而且還可以通過數字
    發表于 03-11 10:29

    基于OpenHarmony數字管家設計的智能門鎖(開發流程+實操)

    基于OpenHarmony、數字管家開發宿舍
    發表于 03-24 09:31

    一文帶你讀懂數字管家

    ,共同組建不同的場景,打破硬件設備之間的壁壘,成為你工作生活的好幫手;開源的運作模式讓所有志同道合的開發者參與進來,共同開發各種智能設備,完善各種場景,讓設備品類越來越豐富。 圖 1
    發表于 03-31 16:58

    【課程匯總】OpenHarmony全場景Demo數字管家系列課(附鏈接)

    進入夢鄉;出門遠行,也不擔心家里的“多肉”植物和寵物無人照顧……這樣的生活體驗是不是很棒?OpenHarmony數字管家”,或許可以實現你的愿望。
    發表于 04-02 10:15

    宿舍智能開發指南

    項目說明基于OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)、數字管家開發
    發表于 09-01 14:28

    基于OpenHarmony數字管家應用開發樣例

    :DevEco Studio 3.0 Beta2注:HarmonyOS是華為基于開源項目OpenHarmony開發的面向多種全場景智能設備的商用版本??焖偕鲜譁蕚溆布h境搭載Harmo
    發表于 09-14 14:07

    openharmony是什么 OpenHarmony開源代碼在哪下載

    OpenHarmony 是由基金會孵化及運營的開源項目,由基金會的 OpenHarmony 項目群工作委員會負責運作,遵循 Apache 2.0 等開源協議,目標是面向全場景、全連接、
    的頭像 發表于 06-24 17:16 ?1972次閱讀

    OpenHarmony Dev-Board-SIG專場:BearPi-HM Nano開發板提供一套數字管家開發示例代碼

    OpenHarmony Dev-Board-SIG專場:BearPi-HM Nano開發板提供一套數字管家開發示例
    的頭像 發表于 12-28 14:31 ?1402次閱讀
    <b class='flag-5'>OpenHarmony</b> Dev-Board-SIG專場:BearPi-HM Nano<b class='flag-5'>開發</b>板提供一套<b class='flag-5'>數字</b><b class='flag-5'>管家</b><b class='flag-5'>開發</b>示例<b class='flag-5'>代碼</b>

    OpenHarmony開源代碼實現碰一碰開門功能

    本項目基于 OpenHarmony、數字管家開發宿舍全屋智能,
    的頭像 發表于 03-30 09:10 ?2615次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>