Windows第一次上手鸿蒙周边

news2025/1/23 4:54:41

 端云一体所需装备

        很重要:C/D/E/F盘要有二三十G的可用空间!

        硬件:华为鸿蒙实验箱(基础版)=====》飞机板+核心板+环境监测板

        软件:Visual Studio Code写代码 + 终端编译 + Hiburn烧录到开发板 + MobaXterm +(CH341SER串口驱动),

        要注册Gitee账号并绑定邮箱,

        mqtt .fx模拟设备上报数据到华为云物联网平台

        VScode插件:汉化、WSL、CMake、CMake Tools、CodeGeeX、

        App UI设计:DevEco Studio + 模拟器

devecostudio-windows-5.0.5.315大概2.4Ghttps://developer.huawei.com/consumer/cn/download/https://developer.huawei.com/consumer/cn/download/

        云端:注册华为云,华为云-设备接入服务IoTDA

华为云-控制台-设备接入IoTDAhttps://console.huaweicloud.com/iotdm/?agencyId=55d426e5e63041df92f8b6780b82b94f®ion=cn-north-4&locale=zh-cn#/dm-portal/instancehttps://console.huaweicloud.com/iotdm/?agencyId=55d426e5e63041df92f8b6780b82b94f®ion=cn-north-4&locale=zh-cn#/dm-portal/instance

        实用小工具1:uTools 插件应用  uTools官网 - 新一代效率工具平台

        实用小工具2:Cursor编程AI  

0.环境搭建 for Windows(3个任务需要半天时间)

        搭建HiSpark hi3861开发板的OpenHarmony 3.2 Release的南向系统开发环境。

任务一:搭建WSL2环境,安装Ubuntu。

        备注:WSL的全称为 Windows Subsystem for Linux(适用于 Linux 的 Windows 子系统 2)

任务二:从Gitee仓库拉取OpenHarmony 4.1 release 轻量系统代码,下载必要的库和工具。

任务三:把编译成功的代码烧录到hi3861固件

        通过build.sh脚本执行源码编译。

任务一 终极目标Ubuntu

1. 安装WSL的命令

        在管理员PowerShell 或 Windows 命令提示符中输⼊此命令,然后重启计算机来安装运⾏适⽤于 Linux 的 Windows ⼦系统 (WSL) 所需的全部内容。

wsl --install

2.启⽤“适⽤于 Linux 的 Windows ⼦系统”可选功能

        需要先启⽤“适⽤于 Linux 的 Windows ⼦系统”可选功能,然后才能在 Windows 上安装 Linux

分发。
        参考资料: 超详细Windows10/Windows11 子系统(WSL2)安装Ubuntu20.04
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux
/all /norestart

3. 启⽤虚拟机功能

        安装WSL 2 之前,必须启⽤“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使⽤此功能。 以管理员身份打开PowerShell 并运⾏:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

4. 下载 Linux 内核更新包

        先下载最新包:适⽤于 x64 计算机的 WSL2 Linux 内核更新包
        https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
        然后运⾏下载的更新包,后缀为 .msi,出现如下安装界面,点击 next进行安装,直到出现安装成功界面。 (双击以运⾏- 系统将提示你提供提升的权限,选择“是”以批准此安装。)

5. 将 WSL 2 设置为默认版本

wsl --set-default-version 2

6. 安装所选的 Linux 分发

        打开Microsoft Store,并选择你偏好的 Linux 分发版,点击“安装”。
        编译openharmony推荐安装Ubuntu 20.04或Ubuntu 22.04

        安装好之后我们可以在计算机 开始菜单中看到Ubuntu20.04的图标。

7. 设置Ubuntu⽤户名和密码以及root⽤户密码,切换Ubuntu下载源为华为云镜像

        点击图中的“打开”,设置Ubuntu用户名和密码以及root用户密码。

      设置完成后可以在 此电脑中看到Linux,打开它可以看到Ubuntu的文件,后续与Ubuntu之间的文件操作可以从此处进行。

        接下来就是在子系统Ubuntu20.04上安装桌面环境,由于Ubuntu默认的软件源在国外,有时候后可能会造成下载软件卡顿,这里我们更换为国内的华为云源,其他国内源亦可。

        备份配置⽂件:
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
        修改sources.list⽂件,将http://archive.ubuntu.com和http://security.ubuntu.com替换成
http://repo. huaweicloud .com,可以参考如下命令:
sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
        执⾏ sudo apt-get update 更新索引。
sudo apt-get update

8. 在windows下的vscode⾥⾯安装WSL插件和汉化插件

         (让VScode在Ubuntu中运行)

        打开远程窗口,选择连接到WSL

        正在打开远程窗口,需要一段时间,请耐心等待哦~

        左下角显示 WSL: Ubuntu-20.04 连接成功

        VScode中打开文件夹

        选择/home/zhangsan(Ubuntu用户名),即可在VScode中打开。
        ——这个截图是在台式机第二次安装时的截图。笔记本电脑第一次安装没有保留截图。之后的命令行操作可以直接在VScode的终端中输入执行。

        补充:笔记本电脑端打开文件夹,选择openharmony文件夹即可。

9. 将Ubuntu Shell 环境修改为bash

sudo dpkg-reconfigure dash

         执⾏ ls -l /bin/sh 命令,列出 /bin/sh 文件的详细信息, 它显示文件类型、权限、拥有者、大小以及最后修改时间。

ls -l /bin/sh

 10. 安装git、git-lfs、ninja-build、curl、python3-pip

sudo apt-get install git git-lfs ninja-build curl python3-pip

11. 安装Gitee码云的repo⼯具

sudo curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo
sudo chmod a+x /usr/local/bin/repo
sudo pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

12. 设置git全局⽤户名和电⼦邮件地址

        在Gitee个人主页查看自己的用户名和邮箱地址,替换双引号中的内容

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

13.安装后才发现需要迁移至F盘(不是必选项,个人原因)

        迁移后又从第7步开始……………………

任务二 拉取源码 OpenHarmony

不可缺少任何一句命令行命令!!!

1. 下载OpenHarmony-v4.1-Release版本hi3861源码

        注意 :下载源码之前需要新建⼀个⽂件夹openharmony来存放源码,后续操作都在该⽂件夹内进⾏。
mkdir openharmony
cd openharmony

        创建软连接
sudo ln -sf /usr/bin/python3 /usr/bin/python
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.1-Release -m chipsets/hispark_pegasus.xml -g ohos:mini

2.执行repo sync -c

        执行最后报错则重新执行repo sync -c,直到提示 repo sync has finished successfully。

repo sync -c

        执行repo forall -c 'git lfs pull'

repo forall -c 'git lfs pull'

3. 安装依赖库

        此步骤会安装⼀系列编译需要的依赖库。

./build/build_scripts/env_setup.sh
source ~/.bashrc

4. 下载编译⼯具

sudo bash build/prebuilts_download.sh
        下载好OpenHarmony 4.1 release 轻量系统hi3861芯⽚源码⼤约9.3G。真要命……

5. 下载需要的python库

pip install ecdsa -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install scons -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple

6. 配置riscv编译   

        步骤如下:
        6.1 下载riscv32 gcc镜像.
        https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-
linux-7.3.0.tar.gz    下载的tar包不用解压,直接拖拽拉入VScode,之后用命令解压。

        6.2 解压:tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C /opt/
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C /opt/
        6.3 设置路径:vim 编辑器
vim ~/.bashrc
        6.4 添加 export PATH=/opt/gcc_riscv32/bin:$PATH

        先写 i 表示插入(行前用 i ,行后用 a),拉到最下面,插入语句,Shift+冒号wq,表示保存并退出。

        6.5 source ~/.bashrc
source ~/.bashrc
        6.6 再次执⾏:riscv32-unknown-elf-gcc -v
riscv32-unknown-elf-gcc -v

7. 开始编译 build.sh

./build.sh --product-name wifiiot_hispark_pegasus --ccache --no-prebuilt-sdk

任务三 写第一个程序 hello world

1.模板

2.照猫画虎

任务四 编译+烧录

    编译

        通过build.sh脚本执行源码编译,同前面步骤。

./build.sh --product-name wifiiot_hispark_pegasus --ccache --no-prebuilt-sdk

        编译完成之后的镜像⽂件OHOS_Image.bin所在位置:

\\wsl.localhost\Ubuntu-20.04\root\openharmony\out\hispark_pegasus\wifiiot_hispark_pegasus

        这个OHOS_Image.bin就是烧录⽂件,它所在的路径根据⾃⼰ubuntu的实际代码路径来。

    烧录

  1. 打开HiBurn.exe,设置200 0000速率,选择串口号,选择编译生成的*.bin文件,勾选Auto burn,然后连接Connect,等待烧录完成后,按下核心板复位键运行。

2. 打开MobaXterm ,设置端口号和串口波特率115200

3. MobaXterm成功获得Hello world的输出

3. 初次尝试练手的案例里MobaXterm可以成功获取温湿度数据(Session--Serial)

任务五 华为云及IoTDA的使用

1.登录华为云

         打开华为云官网地址https://www.huaweicloud.com/,然后点击右上角登录,进入IOT控制台

2.创建产品

3.编辑产品自定义模型(服务ID+属性+命令)

        如果该产品模型还支持下发命令进行控制,那么还可以在服务下添加命令。

4.注册设备

        设备注册完成之后,会显示的是“未激活”状态,待后期设备连接上物联网平台之后,就自动激活了,后续不会再有“未激活”状态,只会是“离线”或者“在线”。

5.MQTT接入地址

6.预制AMQP接入凭证

7.查看MQTT中的TOPIC

8.生成MQTT连接的必要参数(ClientId/Username/Password)

        在进行mqtt连接物联网平台的时候,除了mqtt接入地址(之前已经获取到)之外,还需要ClientId,Username和Password,于是通过下面工具可以生成这3个关键参数,

        工具地址:Huaweicloud IoTDA Mqtt ClientId Generator

        打开工具之后,输入DeviceId(设备ID)和DeviceSecret(设备密钥,在之前创建设备的时候生成并下载保存的),然后点击“Generate”按钮即可。

9.通过mqtt .fx连接物联网平台进行测试

        连接成功后,物联网平台,可以看到该设备显示“在线”状态。

10.mqtt .fx模拟设备上报数据到物联网平台

{
    "services": [{
            "service_id": "ColorLed",
            "properties": {
               "LightStatus": "OFF"
            }
        }
    ]
}

        该数据中的services,service_id和properties是关键字,其他的为自定义模型中的数据可根据实际情况进行填充。填写完成之后点击“Publish”按钮发送数据即可

        发送完成之后,可以在物联网平台的设备详情中实时查看到刚上报过来的数据

任务六 温湿度数据上传华为云

        代码:mqtt_temp-humi_sensor1

        PARAM_HOTSPOT_SSID和PARAM_HOTSPOT_PSK,修改为自己手机的热点名称和密码

        修改五个参数:HOST_ADDR 用于标识MQTT服务器IP地址、DEVICE_ID用于标识设备ID、MQTT_CLIENT_ID用于标识用于MQTT连接的clientid、MQTT_USERNAME用于标识用于MQTT连接的username、MQTT_PASSWORD用于标识用于MQTT连接的password

        修改服务名和属性

        修改两个config.mk文件里的内容,使其=y

        

        输入命令编译成功!(先输入 rm -rf out 删除out文件,然后输入编译命令)

        烧录成功后,开发板按下复位键,华为云端获得开发板端AHT20实时采集到的温湿度数据。

未来 仓颉编程语言 cj

        仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。主要应用于鸿蒙原生应用及服务应用等场景中,为开发者提供良好的编程体验。

仓颉编程语言官网https://cangjie-lang.cn/https://cangjie-lang.cn/

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

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

相关文章

使用AI生成金融时间序列数据:解决股市场的数据稀缺问题并提升信噪比

“GENERATIVE MODELS FOR FINANCIAL TIME SERIES DATA: ENHANCING SIGNAL-TO-NOISE RATIO AND ADDRESSING DATA SCARCITY IN A-SHARE MARKET” 论文地址:https://arxiv.org/pdf/2501.00063 摘要 金融领域面临的数据稀缺与低信噪比问题,限制了深度学习在…

【Qt】05-菜单栏

做菜单 前言一、创建文件二、菜单栏 QMenuBar2.1 示例代码2.2 运行结果 三、工具栏 QToolBar3.1 运行代码3.2 结果分析 四、状态栏 QStatusBar4.1 运行代码4.2 运行结果 五、文本编辑框 QTextEdit5.1 运行代码5.2 运行结果 六、浮动窗口 addDockWidget6.1 运行代码6.2 运行结果…

细说STM32F407单片机电源低功耗StandbyMode待机模式及应用示例

目录 一、待机模式基础知识 1、进入待机模式 2、待机模式的状态 3、退出待机模式 二、待机模式应用示例 1、示例功能和CubeMX项目设置 (1) 时钟 (2) DEBUG、LED1、KeyRight、USART6、CodeGenerator (3&#x…

中国综合算力指数(2024年)报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p39061 在全球算力因数字化技术发展而竞争加剧,我国积极推进算力发展并将综合算力作为数字经济核心驱动力的背景下,该报告对我国综合算力进行研究。 中国算力大会发布的《中国综合算力指数(2024年…

w-form-select.vue(自定义下拉框组件)(与后端字段直接相关性)

文章目录 1、w-form-select.vue 组件中每个属性的含义2、实例3、源代码 1、w-form-select.vue 组件中每个属性的含义 好的,我们来详细解释 w-form-select.vue 组件中每个属性的含义,并用表格列出它们是否与后端字段直接相关: 属性解释表格&…

前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!

引言 时光飞逝,2024年已经来临,回顾过去一年,科技的迅猛进步简直让人目不暇接。 在人工智能(AI)越来越强大的今天,我们不再停留在幻想阶段,量子计算的雏形开始展示它的无穷潜力,Web …

消息队列篇--原理篇--RabbmitMQ(Exchange,消息转换器、docker部署,绑定和确认机制等)

RabbitMQ是一个基于AMQP协议的消息队列系统,支持多种消息传递模式,包括点对点(P2P)、发布/订阅(Pub/Sub)和路由模式。RabbitMQ 的设计目标是提供高可用性、可扩展性和可靠性,适用于企业级应用集…

C++入门 详细版

欢迎来到干货小仓库!! 一分耕耘一分收获,离自己的目标越来越近。 passion!passion!!passion!!! 1.命名空间 由于C语言无法避免名字或者函数重复等问题,当有多…

一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload以及webpackChunkName的使用

文章目录 一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload1. 建议按文章顺序从头看,一看到底,豁然开朗2. preload和prefetch的区别2. prefetch的使用3. preload的使用4. webpackChunkName 一文大白话讲清楚webpack基本使用——9——…

Android AutoMotive --CarService

1、AAOS概述 Android AutoMotive OS是谷歌针对车机使用场景打造的操作系统,它是基于现有Android系统的基础上增加了新特性,最主要的就是增加了CarService(汽车服务)模块。我们很容易把Android AutoMotive和Android Auto搞混&…

(三)线性代数之二阶和三阶行列式详解

在前端开发中,尤其是在WebGL、图形渲染、或是与地图、模型计算相关的应用场景里,行列式的概念常常在计算变换矩阵、进行坐标变换或进行图形学算法时被使用。理解二阶和三阶行列式对于理解矩阵运算、旋转、平移等操作至关重要。下面,我将结合具…

Linux Bash 中使用重定向运算符的 5 种方法

注:机翻,未校。 Five ways to use redirect operators in Bash Posted: January 22, 2021 | by Damon Garn Redirect operators are a basic but essential part of working at the Bash command line. See how to safely redirect input and output t…

蓝桥杯算法日常|c\c++常用竞赛函数总结备用

一、字符处理相关函数 大小写判断函数 islower和isupper:是C标准库中的字符分类函数,用于检查一个字符是否为小写字母或大写字母,需包含头文件cctype.h(也可用万能头文件包含)。返回布尔类型值。例如: #…

MySQL(4)多表查询

引言:为什么需要多表的查询? A:提高效率,多线进行。 高内聚、低耦合。 一、多表查询的条件 1、错误的多表查询: SELECT employee_id,department_name FROM employees,departments; SELECT employee_id,department…

‘list‘ object has no attribute ‘mul‘

原来运行得好好的,突然出现错误:list object has no attribute mul ,更换一个输入路径,又没问题,改一个路径,还是出现错误,很奇怪,后来又没有问题,记录一下。 参考这文…

【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的旅行社在线预订与行程管理系统

开题报告 本文旨在设计研究与开发一个旅行社在线预订与行程管理系统。首先,本文介绍了旅行社在线预订与行程管理系统相关技术集成开发环境、软硬件环境,SpringBoot框架、Vue.js框架的基本原理和优势,以及在旅行社在线预订与行程管理系统开发…

HarmonyOS快速入门

HarmonyOS快速入门 1、基本概念 UI框架: HarmonyOS提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架可为开发者提供应用UI开发所必需的能力,比如多种组件、布局计算、动画能力、UI交互、绘制等。 方…

[论文阅读] (36)CS22 MPSAutodetect:基于自编码器的恶意Powershell脚本检测模型

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…

SQL sever数据导入导出实验

1.创建数据库TCP-H (1)右键“数据库”,点击“新建数据库”即可 (2)用sql语言创建,此处以创建数据库DB_test为例,代码如下: use master;go--检查在当前服务器系统中的所有数据里面…

Vue平台开发三——项目管理页面

前言 对于多个项目的使用,可能需要进行项目切换管理,所以这里创建一个项目管理页面,登录成功后跳转这个页面,进行选择项目,再进入Home页面展示对应项目的内容。 一、实现效果图预览 二、页面内容 功能1、项目列表展…