【当OpenHarmony遇见华为云IoT】L0设备对接华为云实验复现与心路历程【华为云IoT+鸿蒙】

举报
爱学习的多宝 发表于 2023/07/30 13:45:51 2023/07/30
【摘要】 本文记录了 OpenHarmony L0设备小熊派BearPi-HM Nano对接华为云实验复现的踩坑和心路历程。

    在上篇博文【当OpenHarmony遇见华为云IoT】726直播有感而发【华为云IoT+鸿蒙】中,我记录了观看《如何为物联网设备注入“华为云+鸿蒙DNA”》直播时的脑洞。这篇博文不再停留在想法阶段,而是真刀真枪的实干了,复现OpenHarmony L0设备对接华为云的实验。这也是我第一次接触使用小熊派OpenHarmony开发板,参考的主要资料是华为云提供的文档基于OpenHarmony3.0对接IoTDA_最佳实践,同时重点参考了华为终端的OpenHarmony设备开发文档-OpenHarmony设备开发-HarmonyOS设备开发和OpenHarmony在Gitee文档docs: OpenHarmony documentation | OpenHarmony开发者文档 。这篇博文记录了我的动手实践复现踩坑和心得体会。

    首先是准备搭建OpenHarmony设备开发环境,由于要搭一套Windows+Ubuntu混合开发环境,依据文档系统要求Windows是win10 64位系统,Ubuntu是推荐20.4版本,内存16G以上。这是我面对复现实验的第一个技术选型难题。我是商科生,是名技术爱好者,不是职业工程师,我的主力机是华为matebook X(8G内存和256G固态),在这台主机上搭建虚拟机实现Windows+Ubuntu的混合开发环境,8G内存直觉吃不消。但我有台T490(8G+256固态)备用机,且听说联想thinkpad机型对Ubuntu一直都很友好。所以我果断从四次元口袋翻出了T490,依据网上教程,制作启动Ubuntu U盘,给T490顺利装上了Ubuntu 20.04。依据技术文档,在Win和Ubuntu机上下载了DevEco Device Tool 3.1 Release版。在Win机上打开VsCode远程连接ubuntu,说实话,有被DevEco Device Tool 简洁又大气的UI界面惊艳到。


    接下来我就遇到了本次复现实验的大坑:下载OpenHarmony源码。文档提供了4种获取方式,并推荐从码云仓库获取。好,我注册了码云Gitee账号,注册码云SSH公钥,安装了git客户端和git-lfs并配置了用户信息。安装好repo工具后,开始尝试下载OpenHarmony源码。由于是复现实验,实验文档写的是“基于OpenHarmony3.0对接BearPi-HM_Nano”,而OpenHarmony版本众多,我想当然的以为这和Ubuntu类似,"OpenHarmony3.0"特指的是“OpenHarmony v3.0 LTS(2021-09-30)”版本,即OpenHarmony 3.0LTS版本,故我的repo代码就演变成:

repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.0-LTS --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

   然后花了整整2个多小时,你没有看错,是2个多小时,等着上面这三行代码跑完。我那256G固态硬盘很快就用掉了30G。在这2个多小时漫长等待时间里,由于等待无聊,我竟然把HUAWEI DevEco Device Tool使用指南文档从头到尾翻了一遍。源码下载完后,我开始移植文档里的Huaweicloud_iotlink SDK,把源码直接拷贝到OpenHarmony源码的third-party文件目录下。就是在这里,我遇到诡异的事情,我发现OpenHarmony3.0LTS源码里,其device文件目录下根本就没有所谓的"bearpi",也就是说,小熊派bearpi的代码根本就“不在”OpenHarmony源码里。“小熊派到哪里去了?难道是我下的源码版本有问题?”我又仔细看了华为云提供的基于OpenHarmony3.0对接IotTDA的技术文档更新时间是2022-11-22日,但我下的3.0LTS版本是2021-09-30日,或许是版本问题,于是我又下载了最新的OpenHarmoy3.0.7版本,又是2个多小时过去了,但和3.0一样,我依然没有在OpenHarmony3.0.7版本中找到小熊派源码。当我在琢磨是不是要自己移植小熊派代码时,我注意到华为云除了基础版体验实验外,还有进阶版体验,是以OpenHarmony3.1.1和rk3588为例。我心一横,反正3.0中找不到小熊派,要不我下载3.1.1版试试运气。

repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1.1-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

   这次是3个多小时过去了,皇天不负有心人,我终于在3.1.1版中找到了小熊派,并通过DevEco Device Tool 3.1版中进行了相关配置。

惊艳的DevEcoDeviceTool.jpg

   DevEco Device Tool 3.1配置很醒目,可以很直观告诉你环境中还缺少了什么。对于图片中有叉的地方,点击旁边的Download就好。

Tool工具配置.jpg

  正确下载安装后,DevEco Device Tool会如下显示:

Tool工具完善开发环境.jpg

  如图所示,缺少的gcc-riscv和hiburn都正确安装了。然后我遇到了第二个坑,Scons安装。Scons安装多次失败,我感觉应该与网络联接不稳定有关。我尝试修改了pip.conf配置,同时也更新了sources.list文件,让两者都指向华为云。

[global]
index-url = https://repo.huaweicloud.com/repository/pypi/simple 
trusted-host = repo.huaweicloud.com 
timeout = 120
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

  SCons顺利安装,开发环境配置完毕。

Scons安装.jpg

   接下来是移植Huaweicloud_iotlink SDK,这里我遇到了第三个坑:mqtt_tiny_v5_agriculture_demo中的device路径修改。华为云官方文档中给出的小熊派源码是在device/bearpi/bearpi_hm_nano路径下,但在我下载的OpenHarmony3.1.1版中,小熊派Bearpi的实际路径是在device/board/bearpi,这里调整修改一下。否则后续后续编译环节会报错,找不到某些重要的头文件。

路径要修改的地方(注意).PNG

    小熊派代码设置好后,我们转到华为云Iot上进行相关设置。上传模型文件BearPi_Agriculture.zip,注册并创建设备。

云端创建设备.PNG

    华为云会提供一个DEVICES-KEY文件,上面有保存设备ID和设备密钥,用于设备接入平台认证。

离线时的设备.PNG

     回到小熊派相关代码中设置参数,主要是Wifi信息,设置成自己手机热点的账号和密码,设备ID和密码,使用之前的DEVICES-KEY的信息。

    上述工作完备后,就可以使用DevEco Device Tool编译OpenHarmony源码了。 

编译成功.jpg

   Build编译完成后,就可以Upload烧录了。记得要在Project Setting中正确设置Upload的COM端口号。

烧录成功.jpg

  烧录完成后,可以使用Monitor监控程序运行效果:

监控Monitor.jpg

     而华为云IoT平台上则能成功收集到小熊派开发板的相关基础数据,例如温度等。

  

云端设备接入效果-收集数据.jpg

   云端还可以发布命令,控制小熊派开发板上的灯泡和电机。

  

云端下发命令.jpg

  

命令下发成功.jpg

  通过云端同步命令,控制小熊派扩展板上灯泡亮,运行效果如画面所示:

灯泡亮的运行效果.jpg

实验复现成功,博文记录完毕。

最后分享一张华为设备全家福,图片里是本次实验用到的小熊派BearPi,用于wifi热点的华为手机和我的华为matebook x主力机。

华为全家集IMG_20230730_082448438 (2).jpg

  OpenHarmony L0设备对接华为云实验博文记录完结,散花纪念~

P.S. 我正在参加【有奖征文 第25期】深度体验OpenHarmony对接华为云IoT,输出优质体验文章,赢开发者定制大礼包!https://bbs.huaweicloud.com/blogs/406570

   

   

 

  







    


     

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。