Windows第一次上手鸿蒙周边

 端云一体所需装备

        很重要: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.mzph.cn/pingmian/67913.shtml

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

相关文章

Node.js——express中间件(全局中间件、路由中间件、静态资源中间件)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

财税资金数据管理一体化大屏 | 智慧金融合集

随着科技的快速进步和数字化转型的加速,金融、税务等机构和企业面临的数据量呈现出爆炸式增长。传统的数据分析方法早已无法胜任现代业务的需求。为此,许多机构开始尝试创新的软件工具来更好的管理繁琐的数据。 通过图扑软件的数据可视化大屏&#xff0c…

5. 推荐算法的最基础和最直观的认识

1.性别年龄转换为统一的计量单位 所谓推荐,就是替别人推荐,比如工厂A需要招男员工,希望大家推荐认识的人。那么在这里,就有了推荐的概念,限定条件是男。我们知道,人的性别一般分为男或者女。在这里假设把男…

【Postgres_Python】使用python脚本将多个PG数据库合并为一个PG数据库

需要合并的多个PG数据库表个数和结构一致,这里提供一种思路,选择sql语句insert插入的方式进行,即将其他PG数据库的每个表内容插入到一个PG数据库中完成数据库合并 示例代码说明: 选择一个数据库导出表结构为.sql文件&#xff08…

MyBatis和JPA区别详解

文章目录 MyBatis和JPA区别详解一、引言二、设计理念与使用方式1、MyBatis:半自动化的ORM框架1.1、代码示例 2、JPA:全自动的ORM框架2.1、代码示例 三、性能优化与适用场景1、MyBatis:灵活的SQL控制1.1、适用场景 2、JPA:开发效率…

通信工程行业现状与前景2024:引领未来增长新浪潮

在当今数字化时代,通信工程犹如现代社会的神经系统,其重要性不言而喻。从日常的语音通话、信息传递,到复杂的工业自动化、智能交通系统,通信技术无处不在,深刻改变着人类的生活方式与社会运转模式。随着科技的持续创新…

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证7)

本文验证基于请求头中传递token信息的认证方式,webapi项目的控制器类中新建如下函数,仅通过验证的客户端能调用,需要客户端请求在Header中添加’Authorization’: Bearer token’的键值对且通过token验证后才能调用。 [Authorize] [HttpGet]…

电子应用设计方案101:智能家庭AI喝水杯系统设计

智能家庭 AI 喝水杯系统设计 一、引言 智能家庭 AI 喝水杯系统旨在为用户提供个性化的饮水提醒和健康管理服务,帮助用户养成良好的饮水习惯。 二、系统概述 1. 系统目标 - 精确监测饮水量和饮水频率。 - 根据用户的身体状况和活动量,智能制定饮水计划。…

Navicat 导出表结构后运行查询失败ERROR 1064 (42000): You have an error in your SQL syntax;

本文主要介绍了在使用 Navicat 导出 MySQL 表后新建查询时出现报错的问题及解决方案。 一、问题描述 Navicat导出MySql中的表,在新建数据库新建查询时通常会报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server …

【学习笔记】计算机网络(一)

第1章 概述 文章目录 第1章 概述1.1 计算机网络在信息时代中的作用1.2 互联网概述1.2.1 网络的网络1.2.2互联网基础结构发展的三个阶段1.2.3 互联网的标准化工作 1.3 互联网的组成1.3.1 互联网的边缘部分1.3.2 互联网的核心部分 1.4 计算机网络在我国的发展1.5 计算机网络的类别…

当使用 npm 时,出现 `certificate has expired` 错误通常意味着请求的证书已过期。

当使用 npm 时,出现 certificate has expired 错误通常意味着请求的证书已过期。这可能是由于以下几种情况: 网络代理问题:如果使用了网络代理,代理服务器的证书可能过期或配置有误。系统时间错误:系统时间不准确可能导…

【Elasticsearch】 Ingest Pipeline `processors`属性详解

在Elasticsearch中,Ingest Pipeline 的 processors 属性是一个数组,包含一个或多个处理器(processors)。每个处理器定义了一个数据处理步骤,可以在数据索引之前对数据进行预处理或富化。以下是对 processors 属性中常见…

Web3与传统互联网的对比:去中心化的未来路径

随着互联网技术的不断发展,Web3作为去中心化的新兴架构,正在逐步改变我们的网络体验。从传统的Web2到Web3,互联网的演进不仅是技术的革新,更是理念的变革。那么,Web3与传统互联网相比,到底有何不同&#xf…

三相电变为家庭220V,市电火线和零线关系,为什么用三相电输送

参考: https://www.zhihu.com/question/30555841/answer/85723024 上面是电力系统的主要组成,发电站发电后升压传输,然后到各大城市再降压使用。 我们看到电塔上都是三根线,那么因为整个过程都是三相电。 为什么用三相电&#xff…

Python----Python高级(正则表达式:语法规则,re库)

一、正则表达式 1.1、概念 正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、 regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母&#xff0…

linux网络 | 传输层TCP | 认识tcp报头字段与分离

前言: 本节内容继续传输层的讲解, 本节讲解的是tcp协议。 tcp协议是我们日常中最常用的协议。就比如我们浏览网页,我们知道网页时http或者https协议。 其实http或者https底层就是用的tcp协议。tcp协议,全名又称为传输控制协议&…

Mysql触发器(学习自用)

一、介绍 二、触发器语法 注意:拿取新的数据时用new,旧数据用old。

ubuntu20使用apt安装mysql8

目录 ubuntu20使用apt安装mysql8报错列表参考链接首先删除旧mysql 一、下载配置mysql8库索引下载apt包解压包配置更新apt库索引 二、下载安装mysql8三、启动mysql服务配置开机自启动,忽略 本地登录远程登录查看mysql的所有用户使用客户端远程登陆如果报错完成 参考链…

昇腾AI产品

一.AI计算的基础知识 1.并行计算 指同时使用多种计算资源解决技术问题的过程,是提高计算机系统计算速度和数据处理能力的一种有效手段。它的基本思想是用多个处理器来共同求解同一个问题,即将被求解的问题分解成若干个部分,各部分均由一个独…

Linux内核编程(二十一)USB驱动开发-键盘驱动

一、驱动类型 USB 驱动开发主要分为两种:主机侧的驱动程序和设备侧的驱动程序。一般我们编写的都是主机侧的USB驱动程序。 主机侧驱动程序用于控制插入到主机中的 USB 设备,而设备侧驱动程序则负责控制 USB 设备如何与主机通信。由于设备侧驱动程序通常与…