OpenHarmony南向开发案例:【智能垃圾桶】

样例简介

智能垃圾桶可以通过数字管家应用来监测垃圾桶当前可用容量,提醒主人及时处理垃圾;通过日程管家可以实现和其他智能设备联动。

核心组件位置功能
距离传感器置于垃圾桶盖内侧感应垃圾量
红外传感器置于垃圾桶前端感应是否有人靠近
光敏电阻开发板上固定感应照明情况
LED灯开发板上固定模拟晚上照明灯,和红外传感器联动
舵机垃圾桶盖下方合适位置通过转动,控制垃圾桶盖的开关
运行效果

当设备应用启动之后,操作效果如下:

运行效果

样例原理

原理示意图

如上图所示,智能垃圾桶整体方案原理图可以大致分成:智能垃圾桶设备、数字管家应用、云平台三部分。智能垃圾桶通过MQTT协议连接华为IOT物联网平台,从而实现命令的接收和属性上报。 

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

快速上手

准备硬件环境
  • BearPi-HM Nano套件一套

  • 预装HarmonyOS手机一台

    注:HarmonyOS是华为基于开源项目OpenHarmony开发的面向多种全场景智能设备的商用版本

准备开发环境

开发环境安装配置参照文档:[DevEco Device Tool 环境搭建]docs.qq.com/doc/DUmN4VVhBd3NxdExK

准备工程

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

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

  • 打开DevEco Device Tool,连接远程linux服务器:[DevEco Device Tool 环境搭建]
  • 点击左下角DevEco插件图标,然后点击左边框出现的主页,弹出主页界面,主页中选择新建项目,如下图:

main_config

  • 配置下载工程

config && download

如上图所示,点击OpenHarmony源码下的搜索框,设置工程名称后,点击确定即可进行样例工程的下载。搜索框下载操作如下:

download

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

complete

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

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

  • 如果出现安装pip组件失败,可参考修改Python源的方法进行修改,完成尝试重新安装。

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

    工具链配置成功

编译

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

build ok

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

firm

烧录/安装

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

配置准备

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

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

  • 查看 Local PC右边图标

    如若图标为

    方型图标

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

    如若图标为

    箭头图标

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

    方型图标

check local pc

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

config project

配置串口

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

config serail port

烧录

当配置完串口以及固件后,直接点击左边栏工程管理中的upload即可,此时下方终端会出现对应烧录的信息,当终端出现BootromDownloadBoot字样,按下开发板的 “RESET” 键复位开发板即可。

burn

操作体验
设备配网
  • 在设备上电前需准备好安装了数字管家应用的HarmonyOS手机, 并在设置中开启手机的NFC功能;
  • 写设备NFC标签;
  • 烧录完成后,上电。开发者在观察开发板上状态LED灯以8Hz的频率闪烁时,将手机上半部靠近开发板NFC标签处;
  • 无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。

无感配网操作如下图所示:

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

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

自己学习时必须要有一份实用的鸿蒙(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.mzph.cn/news/807579.shtml

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

相关文章

2006-2021年各省能源消费总量数据(无缺失)

2006-2021年各省能源消费总量数据(无缺失) 1、时间:2006-2021年 2、来源:能源年鉴、各省年鉴 3、范围:30个省 4、指标:能源消费总量(万吨标煤) 5、缺失情况:无缺失 …

AI人工智能讲师简历大模型讲师叶梓大模型技术与应用培训提纲

叶梓,工学博士,高级工程师。现某大型上市企业资深技术专家。 2005年上海交通大学计算机专业博士毕业,在校期间的主研方向为数据挖掘、机器学习、人工智能。毕业后即进入软件行业从事信息化技术相关工作;负责或参与了多项国家级、省…

Docker Nginx 部署Vue项目

先弄个ngix镜像,还原到linux里面 发布包放的位置 nginx配置文件 server {listen 8049;server_name localhost;#charset koi8-r;access_log /var/log/nginx/host.access.log main;error_log /var/log/nginx/error.log error;location / {# root 根目录&a…

Vue3报错:‘defineProps‘ is not defined no-undef

解决方法 在package.json中添加 "vue/setup-compiler-macros": true 记得在上面的 "node": true 后面加一个逗号 "eslintConfig": {"root": true,"env": {"node": true,"vue/setup-compiler-macros": t…

Compose UI 之 Card 卡片组件

Card Card 是用于显示带有圆角和可选阴影的矩形内容容器。它通常用于构建用户界面,并可以包含标题、文本、图像、按钮等元素,表示界面上的可交互元素,我们称它是 “卡片”。 Card 使用的一些经典的场景: 列表数据,例如 新闻列表,产品列表等。信息提示框,使用 Card 组件…

一起学习python——基础篇(13)

前言,python编程语言对于我个人来说学习的目的是为了测试。我主要做的是移动端的开发工作,常见的测试主要分为两块,一块为移动端独立的页面功能,另外一块就是和其他人对接工作。 对接内容主要有硬件通信协议、软件接口文档。而涉…

windows软件在更新的时候,会自动找到旧版本软件的位置,这个功能如何实现 ?

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

root@localhost‘s password: Permission denied, please try again.

编辑、etc/ssh/sshd_config文件 ,将PermitRootLogin这行改为yes rootubuntu:/home/ubuntu# vim /etc/ssh/sshd_config 重新加载改文件 /etc/init.d/ssh restart

AI防关联引流系统:解锁TikTok全球流量密码 轻松驾驭全球流量

TikTok的风潮席卷全球,吸引了无数运营者的目光。在这个崭新的出海风口,每一位创作者都渴望脱颖而出。而在这其中,掌握并运用各种TikTok运营工具无疑是一把利剑,能够帮助我们披荆斩棘,事半功倍。 在众多运营工具中&…

element的el-table表格自定义表头解决数据不更新问题

场景: 需要生成一个表格,表头由后端返回,自定义生成。 问题: 通过插槽传入表头,但是,如果我把表头初始值赋值为null,虽然可以正常显示表头,但是一开始会报错;如果我把表…

策略模式类图与代码

某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满300返100),等等。现采用策略(Strategy)模式实现该要求,得到如图7.13 所示的类图。 【Java 代码】 import java.util…

IIS中部署netcore程序出现500错误如何处理?

500错误在IIS部署中经常出现,但是解决非常耗时 官方也有给出一些指引,但是无法解决根本问题 建议检查netcore相关组件是否正确安装,如下: aspnetcore-runtime-3.1.32-win-x64 dotnet-hosting-3.1.32-win dotnet-runtime-3.1.…

postgresql或者opengauss中查询表的描述

在使用postgresql数据库,或者opengauss数据库时,如果要通过模式名(schema)和表名(table),查询表的描述信息,可以使用下面的SQL: select pt.schemaname, pt.tablename ,p…

【域适应】基于迁移成分分析(TCA) 的典型二分类问题(python)

关于 传统迁移成分分析,区别于深度迁移学习,是一种常规的对特征数据进行对齐的一种技术。 广泛应用于,两个域(源域,目标域)数据特征分布不一致,需要实现目标域数据分析任务中。 文章参考&…

大话设计模式——21.中介者模式(Mediator Pattern)

简介 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 UML图 应用场景 大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的…

c++之旅第九弹——模版

大家好啊,这里是c之旅第九弹,跟随我的步伐来开始这一篇的学习吧! 如果有知识性错误,欢迎各位指正!!一起加油!! 创作不易,希望大家多多支持哦! 一.模版的概念…

3D开发工具HOOPS:推动汽车行业CAD可视化发展

在最近的行业对话中,Tech Soft 3D(HOOPS厂商)的Jonathan Girroir和Actify的Peter West探讨了CAD可视化在当代企业中的重要性和挑战。作为CAD可视化领域的佼佼者,Actify通过其广受欢迎的Spinfire应用,赋能了全球40多个国…

【上海大学计算机组成原理实验报告】三、微指令系统实验

一、实验目的 了解译码器、微指令结构的基本工作原理。学习设计微指令的方法。 二、实验原理 根据实验指导书的相关内容,本实验所用的实验箱的微指令系统控制总线宽度为24位,每个地址单元宽度也为24位,其中微指令存储器由3片8位存储器按照…

4.Spring IoCDI

文章目录 1.Ioc - 控制反转(解耦)1.1传统开发1.2批量生产车轮(修改代码) - 传统方式,繁琐1.3解耦1.3.1使用Ioc方法后1.3.2添加变量颜色 只需要修改Tire即可 1.4Bean的存储1.4.1Controller(控制器存储)1.4.2Service(服务存储)1.4.2.1根据context来获取bean1.4.2.2根据…

UI自动化测试详解

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们…