OpenHarmony南向开发案例:【智能中控屏】

news2024/10/7 18:19:50

样例简介

本Demo是基于Hi3516开发板,使用开源OpenHarmony开发的应用。通过控制面板可以控制同一局域网内的空调,窗帘,灯等智能家居设备。

当前支持的配套L0设备只有[智能灯],如需添加新的设备。

应用运行效果图:

1234

样例原理

原理示意图

如上图所示,我们可以通过智能中控面板操作对同一局域网内的L0设备进行对应的控制。

工程版本
  • 系统版本/API版本:OpenHarmony 1.0.1 release
  • IDE版本:DevEco Device Tool Release 3.0.0.401

快速上手

HarmonyOS&OpenHarmony鸿蒙文档籽料参考:mau123789是v直接拿

准备硬件环境
  • 预装windows系统的PC机
  • Hi3516DV300 IoT Camera开发板套件
准备开发环境

搜狗高速浏览器截图20240326151547.png

 开发环境安装配置参照文档:[DevEco Device Tool 环境搭建]gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md。

准备工程

本用例采DevEco Device Tool工具进行开发,当配置完开发环境后,我们可以在IDE上进行工程的配置下载。

  • 打开DevEco Device Tool,连接远程linux服务器:[DevEco Device Tool 环境搭建]

  • 点击左下角DevEco插件图标,然后点击左边框出现的主页,弹出主页界面,主页中选择新建项目,如下图:

    main_config

  • 配置下载工程

    config && download

    如上图所示,填写对应样例工程的名称,选择对应的样例组件和样例工程存放路径后,点击创建即可进行样例工程的下载。下载界面如下:

    download

    当右下角显示正在下载OpenHarmony镜像时,耐心等待下载完成即可。

    download

准备工具链
  • 在Projects中,点击Settings按钮,进入中控面板工程的配置界面。

  • 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击SetUp按钮,自动安装所需工具链。

  • 工具链自动安装完成后如下图所示。

    工具链配置成功

编译

样例代码下载完成后,DevEco Device Tool会重新要求连接远程服务器,输入密码连接后会进入对应的代码编辑界面,此时点击左下角DevEco插件图标,选择PROJECT TASKS可以查看到对应的样例工程,点击build选项进行编译,并可在终端查看对应的编译结果。

build ok

固件生成在对应工程目录的out/hispark_taurus/smart_cenctrl_board/目录下。

固件

烧录/安装

编译完成后可以通过DevEco Device Tool进行烧录,在烧录前需要做一些烧录的配置:

配置准备

在配置烧录前需要先查看DevEco Device Tool是否可以正常识别串口。

  • 点击左边栏"REMOTE DEVELOPMENT",找到 并点击” Local PC “ 选项。

  • 查看 Local PC右边图标

    如若图标为

    方型图标

    ,则代表DevEco Device Tool已连接本地,可以正常识别串口。

    如若图标为

    箭头图标

    ,则代表DevEco Device Tool未连接本地,不能识别串口,此时需要点击该绿色图标进行连接,连接成功后图标会变为

    方型图标

    check local pc

  • 点击主页,在主页选择对应工程,点击配置工程进入到配置页面

    start config project

配置串口

配置页面选择的板级配置页面,在该页面查找到烧录选项,配置烧录选项中的upload_port和upload_protocol,upload_port选择开发板对应的串口号,upload_protocol选择hiburn-usb,最后点击右上角的保存按钮进行保存。

config searail

烧录固件
  • 当配置完工程所有的选项后, 点击hi3516dv300下的Upload按钮,启动烧录。

    upload

  • 在终端窗口显示如下蓝色提示信息时,在终端按下任意键继续烧录。

    continue burn

  • 在终端窗口显示如下提示信息时,按住复位键,插拔USB线,最后松开复位键启动烧录。

    reset

  • 成功启动烧录后,界面提示如下信息时,表示烧录成功。

    burn_ok

设备启动

如果是第一次烧录程序的话,单板在启动的时候需要设置bootargs,否则不能正常启动。单板第一次启动会停在hisilicon界面:

set bootargs

我们需要输入以下指令:

setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=20M rw";
saveenv
reset
打包应用

本demo是以安装包的形式安装到系统中启动运行的。因此,在安装应用前,需要将应用打包成安装包。

将编译好的libcenctrl.so文件与工程目录下的res以及config.json文件通过压缩打包成zip格式(三个文件直接压缩,不能压缩文件夹),并将后缀名改为hap(cenctrl.hap)。

hap file

挂载NFS

应用打包后,我们是通过NFS方式将单板挂载到本地,通过相关的指令来安装的。

mount fs

安装

通过nfs是单板连接到本地电脑后,我们可以通过bm安装指令进行安装。bm 安装工具在系统编译完后会自动生成,路径在:

 

out/hispark_taurus/smart_cenctrl_board/dev_tools/bin/

bm

由于bm默认安装的应用为已经签名的应用,所以我们在安装前需要先将签名去掉。

 

bm set -s disable // 去签名 bm install -p filename // 安装应用filename, filename需要指定路径

install

安装完后桌面会显示对应应用的ICON,直接点击ICON即可以启动油烟机的应用。

image-20211021102146214

操作体验

大屏6

  • 由于本demo涉及到摄像头的读写,故申请了相关的权限。在使用本demo前需要在setting中打开对应的权限。具体操作:

    点击 setting-->应用-->cenctrl,然后将所有应用打开。

  • 本demo最主要的功能是可以接收手机端发送的图片和视频,所以设备必须和手机在同一局域网内。网络配置可以通过setting应用来进行。

    点击setting-->WiFi,然后选择对应的ssid,弹出密码输入框,输完密码后点击回车即可连接网络。

  • demo主要控制其他无屏的智能设备:

    a. 智能灯的开关,亮度调节等窗帘。

    b. 智能空调的开关,模式,温度调节以及风速等。

    c. 智能窗帘的开关等。

鸿蒙开发岗位需要掌握那些核心要领?

目前还有很多小伙伴不知道要学习哪些鸿蒙技术?不知道重点掌握哪些?为了避免学习时频繁踩坑,最终浪费大量时间的。

自己学习时必须要有一份实用的鸿蒙(Harmony NEXT)资料非常有必要。 这里我推荐,根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。

废话就不多说了,接下来好好看下这份资料。

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙OpenHarmony知识←前往。下面是鸿蒙开发的学习路线图。

针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

其中内容包含:

《鸿蒙开发基础》鸿蒙OpenHarmony知识←前往

  1. ArkTS语言
  2. 安装DevEco Studio
  3. 运用你的第一个ArkTS应用
  4. ArkUI声明式UI开发
  5. .……

《鸿蒙开发进阶》鸿蒙OpenHarmony知识←前往

  1. Stage模型入门
  2. 网络管理
  3. 数据管理
  4. 电话服务
  5. 分布式应用开发
  6. 通知与窗口管理
  7. 多媒体技术
  8. 安全技能
  9. 任务管理
  10. WebGL
  11. 国际化开发
  12. 应用测试
  13. DFX面向未来设计
  14. 鸿蒙系统移植和裁剪定制
  15. ……

《鸿蒙开发实战》鸿蒙OpenHarmony知识←前往

  1. ArkTS实践
  2. UIAbility应用
  3. 网络案例
  4. ……

最后

鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx--Nginx转发真实的IP

Nginx转发真实的IP 前言给nginx.conf 设置proxy_set_headerjava 程序里获取 前言 在使用nginx的时候可能会遇到判断是不是本机在做操作,这样的话web端我们是可以通过ip和端口进行远程连接的这样的话我们就需要从后端获取到真实ip来判断是不是指定的机器了&#xff…

PS-ZB转座子分析流程2-重新分析并总结

数据处理 数据质控 随机挑出九个序列进行比对,结果如下: 所有序列前面的部分序列均完全相同,怀疑是插入的转座子序列,再随机挑选9个序列进行比对,结果如下: 结果相同,使用cutadapt将该段序列修…

【C语言】贪吃蛇项目(2)- 实现代码详解

文章目录 前言一、游戏开始界面设计首先 - 打印环境界面其次 - 游戏地图、蛇身及食物的设计1、地图2、蛇身设置及打印3、食物 二、游戏运行环节蛇的上下左右移动等功能蛇的移动 三、结束游戏代码 前言 在笔者的前一篇博客中详细记载了贪吃蛇项目所需的一些必备知识以及我们进行…

【飞桨AI实战】人体姿态估计:零基础入门,从模型训练到应用开发

前言 本次分享将带领大家从 0 到 1 完成一个人体姿态估计任务,覆盖数据准备、模型训练、推理部署和应用开发的全流程,项目将采用以PaddlePaddle为核心的飞桨深度学习框架进行开发,并总结开发过程中踩过的一些坑,希望能为有类似项…

模电期末复习(二)放大电路的基本原理和分析方法

放大电路的基本原理和分析方法 2.1 放大的概念2.2 放大电路的主要技术指标2.3 单管共发射极放大电路2.3.1 单管共发射极放大电路的组成2.3.2 单管共射放大电路的工作原理 2.4 放大电路的基本分析方法2.4.1 直流通路与交流通路2.4.2 静态工作点的近似估算2.4.3 图解法&#xff…

第23天:安全开发-PHP应用后台模块SessionCookieToken身份验证唯一性

第二十三天 一、PHP后台身份验证模块实现 二、Cookie&Session技术&差异 1.生成cookie的原理图过程:见上图 客户端向服务器发送HTTP请求。服务器检查请求头中是否包含cookie信息。如果请求头中包含cookie信息,则服务器使用该cookie来识别客户端…

C++奇迹之旅:构造函数和析构函数

文章目录 📝类的6个默认成员函数🌠 构造函数🌉 概念🌉特性🌉三种默认构造函数 🌠 析构函数🌠 特性🚩总结 📝类的6个默认成员函数 如果一个类中什么成员都没有&#xff0…

OpenHarmony其他工具类—lua

简介 Lua是一种功能强大、高效、轻量级、可嵌入的脚本语言。 支持过程编程、面向对象编程、函数编程、数据驱动编程和数据描述。 下载安装 直接在OpenHarmony-SIG仓中搜索lua并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的lua库代码存在以下路径&#…

javase__进阶 day13stream流和方法引用

1.不可变集合 1.1 什么是不可变集合 ​ 是一个长度不可变,内容也无法修改的集合 1.2 使用场景 ​ 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。 ​ 当集合对象被不可信的库调用时,不可变形式是安全的。 简单…

von Mises-Fisher Distribution (代码解析)

torch.distribution 中包含了很多概率分布的实现,本文首先通过均匀分布来说明 Distribution 的具体用法, 然后再解释 von Mises-Fisher 分布的实现, 其公式推导见 von Mises-Fisher Distribution. 1. torch.distribution.Distribution 以下是 Uniform 的源码: cl…

黑灰产行业简介

参考:2021年黑灰产行业研究及趋势洞察报告 1. 有哪些场景面临大量黑灰产攻击? 1.营销活动场景 -- 该场景最为猖獗 1. 抹机及接码注册:黑灰产会使用抹机工具修改设备参数伪装成一台新设备,再配合联系卡商进行手机号接码&#xf…

面试(05)————Redis篇

目录 一、项目中哪些地方使用了redis 问题一:发生了缓存穿透该怎么解决? 方案一:缓存空数据 方案二:布隆过滤器 模拟面试 问题二: 发生了缓存击穿该怎么解决? 方案一:互斥锁 方案二&#xff…

vue3:树的默认勾选和全选、取消全选

实现的功能&#xff0c;上面有个选择框&#xff0c;当选中全部时&#xff0c;下方树被全选 代码&#xff1a; <template><div><el-select v-model"selectAll" style"margin-bottom: 10px;" change"handleSelectAllChange">&…

Vue2 —— 学习(九)

目录 一、全局事件总线 &#xff08;一&#xff09;全局总线介绍 关系图 对图中的中间商 x 的要求 1.所有组件都能看到 2.有 $on $off $emit &#xff08;二&#xff09;案例 发送方 student 接收方 二、消息订阅和发布 &#xff08;一&#xff09;介绍 &#xff08…

4.6 CORS 支持跨域

CORS (Cross-Origin Resource Sharing &#xff09;是由 W3C 制定的一种跨域资源共享技术标准&#xff0c;其目的就是为了解决前端的跨域请求。在 Java EE 开发中&#xff0c;最常见的前端跨域请求解决方案是 JSONP &#xff0c;但JSONP 只支持 GET 请求&#xff0c;这是 个很大…

数据结构之排序了如指掌(三)

目录 题外话 正题 快速排序 Hoare法 Hoare法思路 Hoare法代码详解 挖坑法 挖坑法思路 挖坑法代码 前后指针法 前后指针法思路 前后指针法代码 小结 题外话 我们接着把没有写完的排序内容完成,快速排序其实大同小异,大家好好把思路整理一下 正题 快速排序 快速排序一…

HarmonyOS 状态管理

在声明式 UI 框架中&#xff0c;数据的改变触发 UI 的重新渲染。在 ArkUI 中不是所有数据的变化都会触发 UI 重新渲染&#xff0c;只有 状态变量 才会引起 UI 重新渲染。 状态变量 状态变量&#xff1a; 指被状态装饰器装饰的变量&#xff0c;只有这种变量的改变才会引起 UI …

(2022级)成都工业学院数据库原理及应用实验七: 数据库安全

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、成品仅提供参考 3、如果成品不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 Navicat Premium 16 Mysql 8.0.36 实验要求 1、创建数据库hospital,在hospital数据库中创建科室表De…

第一个STM32F767IGT6核心板

一. 制作原因 起先是因为参加计算机设计大赛准备的板子&#xff0c;其作用是连接OV5640摄像头来识别车牌号&#xff0c;主要外设有摄像头&#xff0c;SDRAM&#xff0c;网口等。 二. 原理图和PCB 原理图 PCB 三. 测试 1. 测试SDRAM功能 按下按键我们可以在串口中看到内存…

LTspice/Simplis仿真代码使用

LTspice/Simplis仿真代码使用 HI uu们 HI uu们,关注我的uu经常看到我上面贴了很多仿真代码,但是不知道怎么用. 今天来介绍下仿真代码怎么用, 比如说,我们用OP07做了一个跟随器,如图1所示. 图1:OP07跟随器 他的仿真代码非常简单,如下所示 XU1 N002 vout N001 N003 vout LT…