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

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

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

如何在OpenHarmony開源代碼基礎上實現(xiàn)數(shù)字管家開發(fā)宿舍全屋智能

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

項目說明

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

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

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

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

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

開發(fā)流程

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

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

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

搭建設備端開發(fā)環(huán)境

DevEco Device Tools搭建

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

第二步,安裝編譯工具鏈,Hi3861V100開發(fā)板Ubuntu環(huán)境工具鏈下載鏈接gn、ninja、gcc_riscv32。

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

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

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

Ubuntu環(huán)境編譯工具準備

// 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時已經(jīng)下載 // -解壓到根目錄 tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~ // -添加環(huán)境變量 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’

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

//下載產(chǎn)品解決方案到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函數(shù)中屏蔽如下字段139行 //if (SetHotspotIpConfig() != WIFI_SUCCESS) {140行 // return ERROR_WIFI_UNKNOWN;141行 //}//3.DispatchConnectEvent函數(shù)下 屏蔽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源碼根目錄下,執(zhí)行:

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

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

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

第五步,打開工程

打開Visual Studio Code下的DevEco Device Tools,導入1.0.1工程選擇對應的開發(fā)板即可。打開終端,cd到源碼路徑,執(zhí)行hb set,選擇smart_lamp,然后執(zhí)行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等問題,需要配置環(huán)境變量,還要檢測ohos-build是不是0.2.0版本。具體可以參考個人總結(jié)的如下措施:

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

第六步,燒錄二進制文件連接開發(fā)板到電腦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節(jié)中只是把開源代碼布置到我們的筆記本中,要實現(xiàn)開門需要添加自己的業(yè)務代碼。例如門鎖需要使用到舵機,我在smart_lamp解決方案的基礎上進行修改。具體操作如下:

第一步,添加舵機控制

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

/* @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;}

第三步,添加業(yè)務代碼

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

數(shù)字管家安裝

DevEco Studio 安裝

第一步,DevEco Studio下載安裝,安裝完成后要配置Windows環(huán)境變量(參考: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

數(shù)字管家APP源碼獲取

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

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

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

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

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

數(shù)字管家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平臺創(chuàng)建項目,然后創(chuàng)建應用

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

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

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

得到如圖配置:

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

第四步,回到上一節(jié)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

第五步,自動簽名。

首先把自己的手機連接到電腦上,打開開發(fā)人員選項–》 開啟USB調(diào)試–》同意調(diào)試 然后打開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,確認后退出。因為數(shù)字管家包含entry、netconfig兩個module,要同時安裝。

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

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

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

配置NFC標簽

申請product ID

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

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

注冊服務

第一步,登陸華為開發(fā)者聯(lián)盟https://developer.huawei.com/consumer/cn/,點擊管理中心,創(chuàng)建原子化服務。

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

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

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

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

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

寫入標簽

打開應用調(diào)測助手,選擇之前申請的ID,在自定義框填入如下數(shù)據(jù):

1246128c7b60ad1ed0286680f19206Lamp01308123456784011512teamX-Lamp01

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

更多設備NFC標簽

實操驗證

門鎖

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

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

電路簡單,將7.4v電源經(jīng)過降壓穩(wěn)壓后分別給模組、舵機供電。

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

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

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

小風扇

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

1246150601d88056b027dd2ca47205Fan01308123456784011511teamX-Fan01

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

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

臺燈

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

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

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

結(jié)語

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

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

    關注

    0

    文章

    36

    瀏覽量

    2953
  • OpenHarmony
    +關注

    關注

    25

    文章

    3722

    瀏覽量

    16317
  • 全屋智能
    +關注

    關注

    2

    文章

    138

    瀏覽量

    2248

原文標題:宿舍全屋智能開發(fā)指南

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

收藏 人收藏

    評論

    相關推薦

    一文帶你讀懂OpenHarmony數(shù)字管家

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

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

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

    OpenHarmony開發(fā)樣例】智能家居相關demo樣例匯總

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

    OpenHarmony開發(fā)樣例】基于志XR806開發(fā)開發(fā)智能門鎖

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

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

    基于OpenHarmony數(shù)字管家開發(fā)宿舍
    發(fā)表于 03-24 09:31

    一文帶你讀懂數(shù)字管家

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

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

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

    宿舍智能開發(fā)指南

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

    基于OpenHarmony數(shù)字管家應用開發(fā)樣例

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

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

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

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

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

    OpenHarmony開源代碼實現(xiàn)碰一碰開門功能

    本項目基于 OpenHarmony、數(shù)字管家開發(fā)宿舍
    的頭像 發(fā)表于 03-30 09:10 ?3266次閱讀

    openharmony開源社區(qū) OpenHarmony開發(fā)樣例新了

    工作委員會負責運作。OpenHarmony 是由華為公司捐贈智能終端操作系統(tǒng)基礎能力相關代碼,由全球開發(fā)者共建的開源分布式操作系統(tǒng),具備面向
    的頭像 發(fā)表于 04-25 16:37 ?2411次閱讀

    何在OpenHarmony開發(fā)服務卡片

    本篇文章我們將分享如何在 OpenHarmony 開發(fā)服務卡片。
    的頭像 發(fā)表于 04-10 11:12 ?1060次閱讀

    開源鴻蒙】下載OpenHarmony 4.1 Release源代碼

    本文介紹了如何下載開源鴻蒙(OpenHarmony)操作系統(tǒng) 4.1 Release版本的源代碼,該方法同樣可以用于下載OpenHarmony最新
    的頭像 發(fā)表于 04-27 23:16 ?926次閱讀
    【<b class='flag-5'>開源</b>鴻蒙】下載<b class='flag-5'>OpenHarmony</b> 4.1 Release<b class='flag-5'>源代碼</b>