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…

Apache POI

Apache POI的使用和下载 要使用Apache POI,您需要下载POI库,并将它添加到您的项目中。 首先,您需要从Apache POI的官方网站(https://poi.apache.org/)下载POI库。在网站的“Downloads”页面上,找到“Bina…

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…

128.最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出:4 解…

高效学习:从最适合自己的地方学习

1)一个人的学习行为,其实就是对新事物的认知由浅入深的过程。在这个过程中,一个人要高效地进行这个过程需要什么呢?全神贯注,反复琢磨。 2)有什么东西能够让自己全神贯注,不惜反复琢磨&#xff…

Compose UI 之 Card 卡片组件

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

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

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

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

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

从零开始的LeetCode刷题日记:383. 赎金信

一.相关链接 题目链接:383. 赎金信 二.心得体会 这道题是非常简单,和242.有效的字母异位词基本一致,区别在于这里需要比较出现的次数,仅此而已。 三.代码 class Solution { public:bool canConstruct(string ransomNote, str…

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,虽然可以正常显示表头,但是一开始会报错;如果我把表…

小白学习python的路线

学习 Python 对于初学者来说是一个很好的选择,因为它易于学习、语法简洁,并且有丰富的库和应用场景。以下是一个小白学习 Python 的推荐路线: 1. 基础知识 - "安装 Python": 首先从官方网站 [python.org](https://www.python.org…

策略模式类图与代码

某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满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…

软件设计模式之解释器模式

一、引言 在软件设计中,我们经常遇到需要“解释”和执行某种特定语法或语言的情况。这时,解释器模式就派上了用场。解释器模式(Interpreter Pattern)是一种行为设计模式,它提供了一种解释语言的语法并定义一个句子如何…