做软件下载网站违法吗,晋江网络推广公司,智能音箱功能ui设计效果图,网站做访问追踪项目说明
基于OpenAtom OpenHarmony#xff08;以下简称“OpenHarmony”#xff09;、数字管家开发宿舍全屋智能#xff0c;实现碰一碰开门、碰一碰开灯、碰一碰开风扇以及烟感检测。因为各项目开发流程大体相似#xff0c;本文主要以碰一碰开门为例介绍如何在现有OpenHar…项目说明
基于OpenAtom OpenHarmony以下简称“OpenHarmony”、数字管家开发宿舍全屋智能实现碰一碰开门、碰一碰开灯、碰一碰开风扇以及烟感检测。因为各项目开发流程大体相似本文主要以碰一碰开门为例介绍如何在现有OpenHarmony开源代码的基础上实现我们想要的功能。
需要提前准备的设备搭载HarmonyOS系统的手机一台API 6搭载Hi3861模组的主板不限于HiSpark、小熊派套件7.4V电池、一个舵机、若干导线。最终的碰一碰开门、开灯、风扇效果如下 智能台灯与风扇包括门锁、数字管家应用、云平台三部分数据流如下图所示。数字管家应用下发风速、亮度调节等设备控制指令到云平台云平台发送到指定设备同时风扇、台灯等设备上报当前状态到云平台云平台再发送至数字管家应用实现用户可视化操作实时控制智能设备。 开发流程
项目主要包含①搭建设备端开发环境、②数字管家安装、③配置NFC标签、④实操验证共四个部分。开发过程中各关键环节如下图整体思路是准备软硬件环境编写业务代码烧录测试若开发时遇到问题可参考该图进行排查。 开发环境搭建主要分为设备端环境、数字管家两部分。设备端使用DevEco Device Tools最新版本在ubuntu平台开发在本项目中使用该工具编辑源码、下载二进制文件数字管家使用DevEco Studio Beta3.1及以上版本在windows平台开发。
搭建设备端开发环境
DevEco Device Tools搭建
第一步在Ubuntu20.04系统搭建设备端开发环境支持源码编辑、编译、下载一站式开发。在Ubuntu系统搭建DevEco Device Tools。
第二步安装编译工具链Hi3861V100开发板Ubuntu环境工具链下载链接gn、ninja、gcc_riscv32。 其余参考工具链管理。添加工具后如下图 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_riscv32WLAN模组类编译工具链 在安装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/repo
chmod ax /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests第二步获取源码。OpenHarmony 1.0.1版本
mkdir ~/OpenHarmony1.01
cd ~/OpenHarmony1.01
repo init -u gitgitee.com:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c
repo 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_SUPPORTy
CONFIG_PWM_SUPPORTy
//2.修改wifiservice 文件夹
路径device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_hotspot.c
EnableHotspot函数中屏蔽如下字段
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.c
239行 //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 ~/.bashrc
export PATH~/.local/bin:$PATH
source ~/.bashrc
// 然后执行
hb -h返回一下信息说明正确安装 第五步打开工程
打开Visual Studio Code下的DevEco Device Tools导入1.0.1工程选择对应的开发板即可。打开终端cd到源码路径执行hb set选择smart_lamp然后执行hb build 编译。 在/openharmony1.01/out/bearpi_hm_nano/smart_lamp下生成Hi3861_wifiiot_app_allinone.bin说明一切操作正常。如果遇到uninstall clang、not found gn、ninja等问题需要配置环境变量还要检测ohos-build是不是0.2.0版本。具体可以参考个人总结的如下措施 第六步烧录二进制文件连接开发板到电脑USB在DevEco Device Tools点击配置工程设置串口号具体如下图 然后将第五步生成的Hi3861_wifiiot_app_allinone.bin拷贝到~/openharmony1.01/out/hispark_pegasus/wifiiot_hispark_pegasus下【因为工具默认下载该路径下的bin文件】 点击Project Task下的upload按下板子上的复位即可烧录。 设备端编译
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 j0; int k20000/200; //实际应该是20000/180angle k*angle; for (j0;j5;j){ GpioSetOutputVal(servoIDundefined 1); hi_udelay(angle); //angle ms GpioSetOutputVal(servoIDundefined 0); hi_udelay(20000-angle);// }//20ms 控制舵机 第二步添加初始化GPIO 10的语句
#define SERVO_1_GPIO 10
int E53SC1_InitMainLed(void)
{IoTGpioInit(CN_MAIN_LED_GPIO);IoTGpioSetFunc(CN_MAIN_LED_GPIOundefined CN_MAIN_LED_GPIO_FUNC);IoTGpioSetDir(CN_MAIN_LED_GPIOundefined IOT_GPIO_DIR_OUT);IoTPwmInit(CN_MAIN_LED_PWDOUT);IoTGpioInit(SERVO_1_GPIO);IoTGpioSetFunc(SERVO_1_GPIOundefined IOT_GPIO_FUNC_GPIO_10_GPIO);IoTGpioSetDir(SERVO_1_GPIOundefined IOT_GPIO_DIR_OUT);return 0;
}第三步添加业务代码
int E53SC1_SetMainLed(int statusundefined int dutyCycle)
{int ret 0;if (status CN_BOARD_SWITCH_ON) {ret IoTPwmStart(CN_MAIN_LED_PWDOUTundefined dutyCycleundefined CN_MAIN_LED_FRE);My_servo(1000); //开门} else {ret IoTPwmStop(CN_MAIN_LED_PWDOUT);My_servo(10000); //上锁}RaiseLog(LOG_LEVEL_INFOundefined status%dundefined dutyCycle%dundefined ret %dundefined statusundefined dutyCycleundefined ret);return 0;
}第四步编译、下载
参考1.3节第五步、第六步直接编译即可无需再次导入工程。因为我使用的是ubuntu物理机器为实现一站式开发特地安装DevEco Device toolsOpenHarmony 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安装SDKAPI6红框中的都需要下载。值得注意的是第一步安装Studio时会下载OpenHarmony SDK第二步的SDK不一样不能在同一个路径下否则会被替换掉原有的。 数字管家APP源码获取
数字管家在windows平台编译安装到手机上下载链接为https://gitee.com/openharmony-sig/knowledge_demo_smart_home下载后解压在非中文路径下即可。 使用DevEco Studio打开数字管家路径如下 数字管家APP安装
第一步点击右上角个人头像登录 第二步进入AGC平台AGCAppGallery Connect) 地址https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/ 第三步在AGC平台创建项目然后创建应用 第四步回到上一节DevEco Studio 打开的工程修改三个地方具体路径如下
./entry/src/config.json
./netconfig/src/main/config.json
./netconfig/src/main/js/default/pages/index/index.js 第五步自动签名。
首先把自己的手机连接到电脑上打开开发人员选项– 开启USB调试–同意调试 然后打开DevEco Studio的file–Project Structure–Project–Signing Configs–automatically generate signing 如下图 第六步编译下载。
点开entry进入debug configuration在entry下勾选deploy multi haps packages确认后退出。因为数字管家包含entry、netconfig两个module要同时安装。 第七步安装数字管家APP 点击运行稍等片刻手机上即可出现数字管家APP输入手机号登录即可。
配置NFC标签
申请product ID
将搭载HarmonyOS的手机登录你的华为账号并在华为应用市场中下载安装应用调测助手打开选择NFC申请即可。 注册服务
第一步登陆华为开发者联盟https://developer.huawei.com/consumer/cn/点击管理中心创建原子化服务。 第二步按照提示填写即可在标签配置页面填写在应用调测助手申请的Product ID 型号00。在FA配置页面一定要查看第2.3节第四步自己写的包名模块名就是entry添加设备就是com.example.distschedule.AddDeviceAbility 第三步创建测试填写华为账号对应的手机号即可 写入标签
打开应用调测助手选择之前申请的ID在自定义框填入如下数据
1246128c7b60ad1ed0286680f19206Lamp01308123456784011512teamX-Lamp01 更多设备NFC标签
实操验证
门锁
开门需要一个简单的装置之前有设计参考hi3861 web端开门。
电路简单将7.4v电源经过降压稳压后分别给模组、舵机供电。 手机连上wifi打开NFC开关碰一下标签即可唤起原子化界面不能使用校园网会导致设备无法连接测试效果如下图 小风扇
hb set时需要编译smart_fan同样的下载源码后写入NFC标签
1246150601d88056b027dd2ca47205Fan01308123456784011511teamX-Fan01
手上的风扇的驱动电路如下图PWM控制风速 台灯
首先需要一个电磁继电器、5V充电头可以同时为模组和台灯供电并联。在台灯源码中初始化GPIO 9为输出将继电器的信号端与GPIO 9 相连即可。开灯时接通继电器的NC-COM端断开NO-COM。 结语
以上案例实质上还是在使用现有的解决方案、数字管家的服务器实现甚至连开门的操作UI都是台灯的虽然这个可以在数字管家修改图标但本质还是没有变化本教程目的在于记录数字管家碰一碰的开发入门为后期再添加自己的解决方案、服务器作为参考。
为了帮助到大家能够更有效的学习OpenHarmony 开发的内容下面特别准备了一些相关的参考学习资料
OpenHarmony 开发环境搭建https://qr18.cn/CgxrRy 《OpenHarmony源码解析》https://qr18.cn/CgxrRy
搭建开发环境Windows 开发环境的搭建Ubuntu 开发环境搭建Linux 与 Windows 之间的文件共享……
系统架构分析https://qr18.cn/CgxrRy
构建子系统启动流程子系统分布式任务调度子系统分布式通信子系统驱动子系统…… OpenHarmony 设备开发学习手册https://qr18.cn/CgxrRy OpenHarmony面试题内含参考答案https://qr18.cn/CgxrRy