草庐IT

HarmonyOS(鸿蒙系统)物联网开发教程——环境搭建

柒壹漆 2023-12-17 原文

HarmonyOS(鸿蒙系统)物联网开发教程——环境搭建

目录

前言

华为的鸿蒙系统在2019年正式发布,2020年升级到2.0版本并且正式对所有开发者开源,那个时候我就已经简单评测过这个开源系统了,只是一直没有发布相关的博客,然后最近有粉丝私信我希望我出一下鸿蒙相关的文章,所以就有了这个系列。

1 HarmonyOS简介

华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,创造一个超级虚拟终端互联的世界,将人、设备、场景有机地联系在一起,将消费者在全场景生活中接触的多种实现极速发现、极速连接、硬件互助、资源共享,用合适的设备提供场景体验。

从古到今出现过很多操作系统,其中也有很多优秀的架构,但是绝大部分都夭折了,消失在人们的视野范围。而对于鸿蒙追求的这种万物互联,我还是挺看好的,而且在华为这个大企业的全力推进下,鸿蒙目前的发展还算顺利,一旦鸿蒙站稳了脚跟,成为继IOS和安卓之后的第三个主流系统,那么鸿蒙系统的开发人员就成了香饽饽,因为目前懂鸿蒙的人很少,经验丰富的更少,第一批敢于下水的鸭子就成了最大的受益者之一。当然,如果鸿蒙系统最终夭折了,那一切都是浮云,留给我们的可能只有经验和教训了。

2 开发环境搭建

HarmonyOS的编译工具链主要以Linux系统下的开发为主,因此我们需要先搭建Linux的环境,用于程序编译。而这个编译完的固件最终需要烧录到硬件上,所以我们还需要在Windows下安装一些工具用于烧录和调试。
下面的 2.1 (简洁版环境搭建)2.2(复杂版环境搭建) 选择其中一种方式即可,建议选择第一种。

特别说明:我这里是基于海思Hi3861这个IC来运行和测试鸿蒙操作系统的。这里搭建的环境只是为了编译源码,最终是烧录到这个IC上面跑的。

2.1 简洁版环境搭建(使用已经搭建好HarmonyOS环境的镜像)

推荐用这种方式搭建环境,比较省时省力。

2.1.1 安装虚拟机和Linux镜像

关于虚拟机搭建Linux环境相关的教程有很多,我这里就不详细讲解了,不懂的同学请自行查阅资料。
Linux镜像要安装下面这个链接里面的,这个镜像已经把HarmonyOS需要的开发环境搭好了,下载完解压即可。
链接:https://pan.baidu.com/s/188RAGBPTMv34b6UF9nk0Hg
提取码:tn12

VMware Workstation下载安装好了之后点击“打开虚拟机”(注意是打开不是创建),选择上面解压好的镜像文件安装即可。

选择镜像。

提示:新虚拟机的存储路径建议选择剩余空间10GB以上的盘。
安装完直接打开虚拟机即可。默认用户和密码:bearpi,打开后可以自行修改。

2.2 复杂版环境搭建(基于普通Ubuntu搭建HarmonyOS环境)

如果想自己体验一遍HarmonyOS开发环境搭建的话可以试下,不太建议使用该方法,因为没什么必要,HarmonyOS的编程开发才是重点。
提示:如果选择了2.1的方式,那现在直接跳到第3步即可。

2.2.1 安装虚拟机和Linux镜像

关于虚拟机搭建Linux环境相关的教程有很多,我这里就不详细讲解了,不懂的同学请自行查阅资料。
提示:Linux镜像要Ubuntu16.04及以上64位系统版本。

2.2.2 将Linux shell设置为bash

打开Linux终端,输入如下命令查看shell是否为bash

ls -l /bin/sh

提示:如果为显示为/bin/sh -> bash则为正常,否则请按以下方式修改。

方法一:在终端运行如下命令,然后选择 no。

sudo dpkg-reconfigure dash

方法二:先删除sh,再创建软链接。

rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh

2.2.3 安装Python环境

我们需要在Linux的环境下安装Python作为构建编译工具,一般版本新一点的Ubuntu都是自带了Pythond,如果没有则需要自己安装,安装包可以在官网下载,也可以在下面的链接下载。
提示:要保证Pythond版本在3.7以上。

sudo apt-get install python3.8 
sudo apt-get install python3-pip 
sudo pip3 install setuptools 
sudo pip3 install kconfiglib

建议安装kconfiglib 13.2.0+版本

sudo pip3 install pycryptodome 
sudo pip3 install six --upgrade --ignore-installed six 
sudo pip3 install ecdsa 

如果当前系统中既存在python2又存在python3,参考以下方法将默认python修改为python3

ll `which python` 
sudo rm /usr/bin/python
sudo ln -s python3.8 /usr/bin/python

2.2.4 安装SCons

1)运行如下命令,安装SCons安装包

sudo apt-get install scons -y

提示:如果软件源中无法找到安装包,请按以下步骤处理:

a)下载源码包(下载路径:“ https://scons.org/pages/download.html ”,推荐SCons版本是3.0.4+)。
b)解压源码包到任意目录(以scons-3.1.2为例)。
c)安装源码包:进入解压目录,运行如下命令:

tar -xvf scons-3.1.2.tar.gz
sudo python3 setup.py install

2)查看版本

scons -v

2.2.5 安装编译工具

1)下载工具

开发工具用途获取途径
gn产生ninja编译脚本https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
ninja执行ninja编译脚本https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
交叉编译器gcc_riscv32交叉编译工具https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz

2)解压安装包

tar -xvf gn.1523.tar -C ~/
tar -xvf ninja.1.9.0.tar -C ~/
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/

3)设置环境变量

vim ~/.bashrc

将以下命令拷贝到.bashrc文件底部

export PATH=~/gn:$PATH
export PATH=~/ninja:$PATH
export PATH=~/gcc_riscv32/bin:$PATH

生效环境变量

source ~/.bashrc

4)查看版本

riscv32-unknown-elf-gcc -v

3 Windows工具安装

代码编译是在Linux环境执行的,但是固件烧录和调试要在Windows下操作,所以还需要安装一些工具。

3.1 Hiburn(必要)

Hiburn是代码烧录工具,可以在下面的链接下载。
下载链接:https://pan.baidu.com/s/188RAGBPTMv34b6UF9nk0Hg
提取码:tn12

3.2 MobaXterm

MobaXterm是一个很好用的调试工具,我们可以使用MobaXterm来远程控制虚拟机的Linux,用MobaXterm替代Linux的终端。说到这里,可能有些同学会有疑惑,为什么不直接在Linux上运行终端呢?
虽然虚拟机跟MobaXterm都是在同一个电脑上面操作,但是有些操作使用MobaXterm会比虚拟机上的操作更方便,而且MobaXterm还可以远程操作。具体看个人使用,这个不是必须要用的。
MobaXterm官方下载地址:https://mobaxterm.mobatek.net
除了MobaXterm,其实还有其他工具也很好用,比如Xshell。这个看个人习惯吧,我这里只是推荐。

3.3 RaiDrive

这是一个可以将ubuntu文件远程映射到Windows上面的一个软件,有了这个软件,我们可以用windows下的软件去查看修改ubuntu上面的文件,对于没用过Linux的新手而言,Linux的操作方式可能会很不习惯,也不方便,但是映射到windows之后操作起来就会方便很多。
下载链接:https://pan.baidu.com/s/188RAGBPTMv34b6UF9nk0Hg
提取码:tn12

使用方法如下:
1) 打开上面配置好的Linux操作系统,并且在终端输入ifconfig命令查看IP地址

2) 打开RaiDrive,语言切换成中文。

3) 按下图配置。
提示:ip地址以实际虚拟机运行的这个Linux操作系统实际使用的ip地址为准(也就是上面第1步查到的那个),账号密码是Linux系统的登录账号和密码,默认是bearpi

配置完成之后会自动弹出一个文件窗口,这个就是ubuntu文件的映射。在这里操作文件的话会自动同步到Linux系统。

3.4 Visual Studio Code

VScode是一款非常好用的代码编辑器,谁用谁知道。而且这个软件也是跨平台的,Windows、MAC和Linux都可以使用。比起Linux的vim,我觉得VScode要友好太多了。
当然,你要是不喜欢或者不习惯的话,也不一定非要用这个,这都是无所谓的。
VScode官网地址:https://code.visualstudio.com

4 下载HarmonyOS源码

方法1:在ubuntu获取源码
前面我们已经通过虚拟机搭建好一个Linux系统,我们可以通过Linux的命令行来获取HarmonyOS源码。
打开终端,依次输入以下命令,然后等待下载完成即可。

cd /home/bearpi
mkdir project && cd project
hpm init -t default
hpm i @bearpi/bearpi_hm_nano

提示:如果下载失败,请检查网络是否正常。然后重新执行 hpm i @bearpi/bearpi_hm_nano 命令即可。

方法2:从镜像站获取源码
镜像站点地址:https://mirrors.huaweicloud.com/harmonyos/os/
打开地址,这里有多个版本的源码,我这里以1.0版本作为演示。

下载完成以后,可以直接在PC端解压查看源码,也可以先导入虚拟机的linux系统,然后在linux系统下解压查看。

5 编译源码

编译流程:
在Linux终端上进入源码的根目录下,运行下面这个命令行。

hpm dist


如果出现 "BUILD SUCCESS" 字样,说明编译成功,如果出现 "ERROR" ,则可以根据错误提示查找原因。
编译成功之后可以在/project/out/BearPi-HM_Nano目录下找到编译出来的bin文件(Hi3861_wifiiot_app_allinone.bin)
用RaiDrive映射文件方式查看如下图:

在终端查看如下图:

6 烧录测试

6.1 代码烧录

我们把烧录文件从Linux系统里面复制到PC下,因为我们的烧录工具是在windows系统下运行的,开发板也需要连接到PC端(其实就是把HI3861的烧录接口通过电平转换IC连接到PC端)。
烧录步骤如下:
1) 连接开发板到PC端
因为打开了虚拟机,所以插入usb的时候需要选择接入位置,这里选择主机。

连接成功之后可以在设备管理器看到串行设备端口。
提示:没有安装CH340驱动的需要先安装驱动。

2) 打开烧录工具HiBurn,选择开发板对应的com口,配置串口参数。
串口波特率可以大一点,这样烧录速度比较快。

3) 加载bin文件,勾选Auto burn复选框,然后点击Connect。

按下Connect后,此时Connect按钮变成Disconnect,等待下载。

4) 按下开发板上面的复位按键,等待下载完成即可。

6.2 运行测试

下载完成后重新上电复位,这事代码就已经开始运行了 ,可以通过串口看到运行log,也可以通过按键F1和F2查看效果:F1按下LED灯亮,F2按下LED灯灭(这个是demo程序)。

7 更换其他demo继续测试

源码中提供了很多测试demo,我们可以在“\project\applications\BearPi\BearPi-HM_Nano\sample”路径下找到BUILD.gn文件,里面默认打开的是"B2_basic_button:button_example"这个demo。
想要更换其他demo我们只需要把B2注释掉,然后打开其他demo,再重新编译即可。

结束语

好了,关于鸿蒙系统的环境搭建就介绍到这里,本人对鸿蒙系统开发了解的也不是很深入,如有错误,欢迎指正,谢谢!
如果这篇文章有帮助到你,可以给博主点个赞再走。

有关HarmonyOS(鸿蒙系统)物联网开发教程——环境搭建的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  4. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  5. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  6. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  7. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  8. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  9. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  10. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

随机推荐