色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

OpenHarmony技術社區 ? 來源:HarmonyOS技術社區 ? 作者:HarmonyOS技術社區 ? 2022-03-30 09:10 ? 次閱讀
本項目基于 OpenHarmony、數字管家開發宿舍全屋智能,實現碰一碰開門、碰一碰開燈、碰一碰開風扇以及煙感檢測

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

因為各項目開發流程大體相似,本文主要以碰一碰開門為例介紹如何在現有 OpenHarmony 開源代碼的基礎上實現我們想要的功能。

需要準備材料下:
  • 搭載 HarmonyOS 系統的手機一臺,API 6+

  • 搭載 Hi3861 模組的主板,不限于 HiSpark、小熊派套件

  • 7.4V 電池、一個舵機、若干導線

最終的碰一碰開門、開燈、風扇體驗如下:


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

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


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

開發流程

項目主要開發流程如下圖,主要包含設備端、數字管家搭建開發環境、下載源碼、修改編譯、下載驗證四個部分。

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

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

①搭建設備端開發

DevEco Device Tools搭建如下:

第一步,在 Ubuntu20.04 系統搭建設備端開發環境,支持源碼編輯、編譯、下載一站式開發。

在 Ubuntu 系統搭建 DevEco Device Tools,官網已經有詳細的搭建流程,參考開發環境準備:

https://device.harmonyos.com/cn/docs/documentation/guide/quickstart-lite-env-prepare-0000001193328250

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

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

其余參考工具鏈管理:

https://device.harmonyos.com/cn/docs/documentation/guide/tools_management-0000001141455367

添加工具后如下圖:

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

Ubuntu 環境編譯工具準備:

#1.基礎依賴
sudoapt-getinstall-ybuild-essentialgccg++makezlib*libffi-dev
#scons
python3-mpipinstallscons
#查看版本,3.0.4以上
scons-v
#2.安裝python模塊
sudopip3installsetuptoolskconfiglibpycryptodomeecdsasix--upgrade--ignore-installedsix
#3.添加gcc_riscv32(WLAN模組類編譯工具鏈)在安裝DevEcoDeviceTools時已經下載
#解壓到根目錄
tar-xvfgcc_riscv32-linux-7.3.0.tar.gz-C~
#添加環境變量
vim~/.bashrc
#最后一行加入:
exportPATH=~/gcc_riscv32/bin:$PATH
#確認安裝是否正常,有返回版本號即可。
riscv32-unknown-elf-gcc-v

設備端源碼下載如下:

第一步,碼云工具安裝。

cd~
curlhttps://gitee.com/oschina/repo/raw/fork_flow/repo-py3>/usr/local/bin/repo
chmoda+x/usr/local/bin/repo
pip3install-ihttps://pypi.tuna.tsinghua.edu.cn/simplerequests

第二步,獲取源碼。openharmony1.0.1 版本。

mkdir~/OpenHarmony1.01
cd~/OpenHarmony1.01
repoinit-ugit@gitee.com:openharmony/manifest.git-bOpenHarmony_1.0.1_release--no-repo-verify
reposync-c
repoforall-c'gitlfspull'

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

//下載產品解決方案到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=y
CONFIG_PWM_SUPPORT=y
//2.修改wifiservice文件夾
路徑:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_hotspot.c
EnableHotspot函數中屏蔽如下字段
139//if(SetHotspotIpConfig()!=WIFI_SUCCESS){
140//returnERROR_WIFI_UNKNOWN;
141//}
//3.DispatchConnectEvent函數下屏蔽StaSetWifiNetConfig相關代碼行
路徑:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_device.c
239//StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);
260//StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED);

第四步,安裝 ohos-build 工具,需要使用 ohos-build 0.2.0 版本編譯。

在 openHarmony1.0.1 源碼根目錄下,執行:

pip3installbuild/lite
//添加環境變量
vim~/.bashrc
exportPATH=~/.local/bin:$PATH
source~/.bashrc
然后執行
hb-h

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

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

第五步,打開工程,編譯源碼。打開 VS code 下的 DevEco Device Tools,導入 1.0.1 工程選擇對應的開發板即可。

打開終端,cd 到源碼路徑,執行 hb set,選擇 smart_lamp,然后執行 hb build 編譯。

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

在 ~/openharmony1.01/out/bearpi_hm_nano/smart_lamp 下生成 Hi3861_wifiiot_app_allinone.bin 說明一切操作正常。

如果遇到 uninstall clang、not found gn、ninja 等問題,需要配置環境變量,還要檢測 ohos-build 是不是 0.2.0 版本。

具體可以參考個人總結的如下措施:

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

第六步,燒錄二進制文件。連接開發板到 usb,在 devco Device tools 點擊配置工程,設置串口號,具體如下圖:

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

然后將第五步生成的 Hi3861_wifiiot_app_allinone.bin 拷貝到 ~/openharmony1.01/out/hispark_pegasus/wifiiot_hispark_pegasus 下(因為工具默認下載該路徑下的 bin 文件)。

點擊 Project Task 下的 upload,按下板子上的復位即可燒錄。

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

設備端修改編譯:上節中只是把開源代碼布置到我們的筆記本中,要實現開門需要添加自己的業務代碼。

例如門鎖需要使用到舵機,我在 smart_lamp 解決方案的基礎上進行修改。

具體操作如下:

第一步,添加舵機器控制

打開操作 GPIO 的如下文件:

vendor/team_x/smart_lamp/demo_smartlamp/E53_SC1/E53_SC1.c
添加如下函數:
/*@briefServocontrol*
@paramangleinputvalue:0-200*
*/
voidMy_servo(intangle)
{
intj=0;
intk=20000/200;//實際應該是20000/180
angle=k*angle;
for(j=0;j<5;j++)
{
GpioSetOutputVal(servoID,1);
hi_udelay(angle);//anglems
GpioSetOutputVal(servoID,0);
hi_udelay(20000-angle);//
}//20ms控制舵機
}

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

#defineSERVO_1_GPIO10
intE53SC1_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);
return0;
}

第三步,添加業務代碼

intE53SC1_SetMainLed(intstatus,intdutyCycle)
{
intret=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);
return0;
}

第四步,編譯、下載,參考上節第五步、第六步,直接編譯即可無需再次導入工程。

因為我使用的是 ubuntu 物理機器,為實現一站式開發特地安裝 DevEco Device tools,OpenHarmony2.0、3.0 版本完全可以脫離 hb 工具編譯。

燒錄完成后,按下板子復位鍵,手機可以發現模組發出的 Wifi 信號 teamX-Lamp01。

②數字管家安裝

DevEco Studio 安裝如下:

第一步,DevEco Studio下載安裝,直接安裝即可,安裝完成后要配置 Windows 環境變量。

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/software_install-0000001053582415

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/environment_config-0000001052902427

第二步,打開 DevEco Studio 設置下的 SDK Manger,安裝 SDK(API6) 紅框中的都需要下載。

值得注意的是第一步安裝 Studio 時會下載 OpenHarmony SDK,第二步的 SDK 不一樣,不能在同一個路徑下,否則會被替換掉原有的。

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

數字管家 APP 源碼獲取如下:

數字管家在 windows 平臺編譯安裝到手機上,下載鏈接為:

https://gitee.com/openharmony-sig/knowledge_demo_smart_home

下載后解壓在非中文路徑下即可。

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

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

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

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

數字管家 APP 安裝如下:

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

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

第二步,進入 AGC 平臺 AGC(AppGallery Connect)

地址:

https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/

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

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

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

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

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

得到如圖配置:

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

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

./entry/src/config.json
./netconfig/src/main/config.json
./netconfig/src/main/js/default/pages/index/index.js

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

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

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

第五步,自動簽名。

首先把自己的手機連接到電腦上,打開開發人員選項→開啟 USB 調試→同意調試。

然后打開 DevEco Studio 的 file–Projet Structure–Project–Signing Configs–automatically generating singing。

如下圖:

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

第六步,編譯下載。

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

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

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

第七步,安裝數字管家 APP。

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

如果遇到問題,可以查看該鏈接:DevEco Studio 常見錯誤

https://developer.huawei.com/consumer/cn/forum/topic/0202519812104750498?fid=26

③配置 NFC 標簽

申請 product ID:將搭載鴻蒙系統的手機,登錄你的華為賬號,并在華為應用市場中下載安裝應用應用調測助手。

打開選擇 NFC,申請即可。

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

注冊服務:第一步,登陸華為開發者聯盟:

https://developer.huawei.com/consumer/cn/

點擊管理中心,創建原子化服務:

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

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

第二步,按照提示填寫即可,在標簽配置頁面,填寫在應用調測助手申請的 Product ID 型號 00。

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

在 FA 配置頁面,一定要查看第 2.3 節第四步自己寫的包名,模塊名就是 entry,添加設備就是 com.example.distschedule.AddDeviceAbility:

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

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

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

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

1246128c7b60ad1ed0286680f19206Lamp01308123456784011512teamX-Lamp01

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

更多設備 NFC 標簽:

https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/NFC_label_definition/more_nfc_netconfig_info.md

④具體實操

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

https://ost.51cto.com/posts/9822

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

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

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

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

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


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

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

1246150601d88056b027dd2ca47205Fan01308123456784011511teamX-Fan01

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

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

臺燈:需要一個電磁繼電器、5V 充電頭,可以同時為模組和臺燈供電(并聯)。

在臺燈源碼中初始化 GPIO 9 為輸出,將繼電器的信號端與 GPIO 9 相連即可。開燈時,接通繼電器的 NC-COM 端,斷開 NO-COM。

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

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



結語

去年立下的 Flag,NFC 開門已經實現。不過以上案例實質上還使用現有的解決方案、數字管家的服務器實現,甚至連開門的操作 UI 都是臺燈的,雖然這個可以在數字管家修改圖標,但本質還是沒有變化。

教程目的在于記錄數字管家碰一碰的開發入門,為后期再添加自己的解決方案、服務器作為參考。

原文標題:基于OpenHarmony開發宿舍全屋智能

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

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

    關注

    8

    文章

    1709

    瀏覽量

    117487
  • 檢測
    +關注

    關注

    5

    文章

    4480

    瀏覽量

    91443
  • OpenHarmony
    +關注

    關注

    25

    文章

    3713

    瀏覽量

    16254

原文標題:基于OpenHarmony開發宿舍全屋智能

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    小熊派&鴻蒙實現一碰聯網+遠程控制的智能臺燈

    小熊派BearPi-HM_Nano開發板實現一碰聯網及遠程控制的智能臺燈教程正在編寫中.....收藏該貼不迷路,教程鏈接將發在評論區,敬請期待!!!
    發表于 05-26 19:19

    一碰”版本的藍牙鍵盤,來啦

    摘要:基于Neptune開發板的鍵盤藍牙模塊DIY指南0.3版本,實現一碰”連接、支持Linux下HUAWEI DevEco Device Tool編譯燒錄1.引入手機敲字回復,總因為大小寫切換
    發表于 07-28 18:04

    HarmonyOS原子化服務掃一碰完整體驗

    HarmonyOS原子化服務掃掃,一碰完整體驗。前提,已經上架的原子化服務與服務卡片并申請鴻蒙碼,進行了NFC的配置和設置;用已經是HarmonyOS設備服務中心掃碼工具掃掃拉起
    發表于 01-14 14:55

    【視頻】解決方案第5期:一碰(NFC)介紹

    本期主要對HarmonyOS Connect一碰(NFC)功能進行技術解讀,重點介紹極簡交互方式中NFC一碰關鍵特性、體驗,NFC標簽規
    發表于 03-09 14:43

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

    基于OpenHarmony、數字管家開發宿舍全屋智能,實現一碰開門
    發表于 03-24 09:31

    玩轉OpenHarmony智能家居:如何實現樹莓派“一碰”設備控制

    裝TCP通信相關的接口函數。五、總結本文介紹了如何使用NFC實現OpenHarmony一碰”設備控制。首先,需要基于樹莓派PN532模塊驅動開發NFC智能感知的應用,
    發表于 12-27 11:34

    hispark 3861智能家居套件可以實現一碰拉起原子化服務嗎

    中實驗手冊顯示可以通過一碰拉取原子化服務 HCIA-HarmonyOS Device Developer V2.0 實驗手冊-HiSpark.pdf 這個有點存疑,往nfc模塊中一碰
    發表于 06-05 17:38

    一碰”就能支付!華為聯合銀聯推出黑科技

    日前,華為終端宣布,Huawei Pay聯合銀聯推出了“一碰”支付,只要將華為手機靠近NFC標簽,輸入金額,就能完成支付。
    的頭像 發表于 07-04 09:08 ?5661次閱讀

    智慧家電不會用?Leader“一碰”即刻開啟智慧生活

    家,不知道怎么用。以海爾智家Leader為例,TA向用戶提供了“一碰”智慧方案,通過NFC貼、手機、家電間的互聯互通,開啟智慧生活。但到底該怎么用呢? 9月24日,Leader“一碰
    發表于 09-24 22:14 ?604次閱讀

    不會用智慧功能?Leader洗衣機只需“一碰”“拍拍”!

    Leader洗衣機智慧功能很便捷,然而也有部分用戶反應,智慧功能不太會用。 9月24日,Leader發布了則《“”著了,不見得都是壞事
    發表于 09-30 10:37 ?874次閱讀
    不會用智慧<b class='flag-5'>功能</b>?Leader洗衣機只需“<b class='flag-5'>碰</b><b class='flag-5'>一碰</b>”“拍<b class='flag-5'>一</b>拍”!

    HarmonyOS一碰基本功能如何實現

    一碰簡單來說就是,使用 NFC 拉起配網 FA,入網之后,使用控制 FA 進行設備控制。
    的頭像 發表于 01-04 14:58 ?3980次閱讀

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

    基于OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)、數字管家開發宿舍全屋智能,實現一碰
    的頭像 發表于 08-26 09:55 ?1822次閱讀

    鴻蒙3.0上配置NFC一碰

    最近更新了 HarmonyOS 3.0 系統,按照過去的方法配置 NFC 一碰方法配置應用,發現出現了些問題,在些摸索測試中總結了
    的頭像 發表于 12-26 10:02 ?3193次閱讀

    玩轉OpenHarmony智能家居:如何實現樹莓派“一碰”設備控制

    開源基金會觀點 、簡介 “一碰”設備控制,依托NFC短距通信協議,通過一碰的交互方式,將O
    的頭像 發表于 12-26 23:05 ?1063次閱讀

    【玩轉OH】如何實現樹莓派“一碰”設備控制

    OpenHarmony(簡稱“OpenHarmony”)標準系統設備和全場景設備連接起來,解決了應用與設備之間接續慢、傳輸難的問題,實現一碰拉起應用,為用戶帶來無縫切換的流暢體驗。
    的頭像 發表于 01-11 02:05 ?878次閱讀
    主站蜘蛛池模板: 日韩欧美一区二区三区在线视频| 男男腐文污高干嗯啊快点1V1| 韩剧19禁啪啪无遮挡大尺度| 果冻传媒 在线播放观看| 久久高清内射无套| 蜜饯1V1高H-| 日本精品久久无码影院| 午夜宅宅伦电影网| 亚洲中文字幕欧美自拍一区| 97视频在线观看视频最新| 超碰97人在线视频| 国产美女影院| 久久黄色精品视频| 欧美精品一区二区在线电影| 偷拍亚洲色自拍| 亚洲中文字幕无码一久久区| 97在线播放视频| 国产成人自产拍免费视频| 黑人阴茎插女人图片| 男女交性视频无遮挡全过程| 色尼玛亚洲综合| 亚洲中文字幕永久在线全国| 99久久久久精品国产免费麻豆| 国产白丝JK被疯狂输出视频| 精品国产乱码久久久久久口爆 | 99国产电影| 国产AV精品国语对白国产| 久草色香蕉视频在线| 欧美日韩国产在线一区二区| 午夜向日葵高清在线观看| 纵欲(高H)| 国产成人精品亚洲线观看| 久久久免费热线精品频| 肉色无边(高h)| 尤物99久久久合集一区区| 大乳牛奶女在线观看| 久久精品国产亚洲AV影院| 日本艳妓BBW高潮一19| 中文字幕视频免费在线观看| 国产36d在线观看| 麻美ゆま夫の目の前で犯|