基于BearPi_NM_Nano与华为IOT平台进行数据上云

  本篇实操总结是在官方介绍文档,以及网上参考案例的基础上,结合我自己在实操中遇到的种种错误完成撰写。

  作为华为的一款官方开发板,BearPi提供了较完整的案例代码,相较于使用其它开发板上云,更加方便。接下来我将从开发工具下载来开始介绍一整套完整的数据上云流程。

一、Windows系统下的开发环境

  1.开发工具获取

    官方为Windows系统配备了一套完整的开发方案,其中开发环境是基于VS code进行搭建。

    HUAWEI DevEco Device Tool(以下简称DevEco Device Tool)是OpenHarmony面向智能设备开发者 提供的一站式集成开发环境,支持OpenHarmony的组件按需定制,支持代码编辑、编译、烧录和调试 等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。(官方介绍)

    安装包获取:华为集成开发环境IDE DevEco Device Tool下载 | HarmonyOS设备开发

    安装步骤:

      (1)进入官网,选择Windows系统,点击下载安装包

        

       (2)打开安装包,跟随安装向导进行安装(记住安装路径)

         

         

     代码编辑工具(VS code)

       下载地址:Download Visual Studio Code - Mac, Linux, Windows

     当安装好VS code与HUAWEI DevEco Device Tool后,我们就可以开始进行环境配置了。

  2.环境配置

    在安装好软件后,打开VS Code,安装好Burn Tool插件与C语言插件(如果此时你还没有配置好VS Code的C/C++的编译环境,可以参考vscode配置 -- 编写C语言 - 初晨~ - 博客园 (cnblogs.com)

    打开位于左侧边框的DevEco Device Tool,选择“New Project”创建新项目

    

    进行项目配置,若之前未下载SDK,点击下载后会自动下载

    

    

    加载完SDK之后,点击“Confirm”按钮,载入项目,完成后会自动跳转至工作区,接下来我们就可以开始进行代码的编译与烧录了!

    

二、进行第一次编译与烧录

  1.初试编译“HelloWrold”

  编译前的准备:

  (1)工程文件

      同常将想要运行的代码放在路径"src\applications\sample\wifi-iot\app\"下,在该路径下存放的文件,通常除了要进行编译的业务文件,还包括名为”BUILD.gn“的编译脚本。如下图,在"demolink"文件下除了"helloworld.c"业务文件外,还有一个"BUILD.gn"文件。

   (2)文件内容及作用

      业务文件:用于存放进行编译的代码。

      编译脚本:设置编译器需要编译那些文件,并给出对应业务文件以及代码中所引用的头文件地址。

  开始编译:

  (1)撰写业务文件的代码

    在上图所示的”app“文件下创建工程文件夹”first_project“,并新建业务文件”hello_world“,将代码写入业务文件中,编写代码(这里我直接用示例的代码)。

#include "ohos_init.h"
#include "demosdk.h"

void DemoSdkMain(void)
{
    DemoSdkEntry();
}

SYS_RUN(DemoSdkMain);

    写好业务代码后,我们就可以进行编译脚本的撰写了。

  (2)编译脚本

static_library("myapp") {    //定义静态库"myapp"
    sources = [
        "helloworld.c"   
    ]                          //将要编译的业务文件

    include_dirs = [
        "//utils/native/lite/include",     //业务文件中所引用的头文件路径
        "//domains/iot/link/libbuild"
    ]
}

   除此之外,在路径”src\applications\sample\wifi-iot\app“下的”BUILD.gn“编译脚本,决定了执行那些工程文件。

   脚本代码:

import("//build/lite/config/component/lite_component.gni")

lite_component("app") {
    features = [
        "first_project:myapp",   //":"前为工程文件名称,":"后为工程文件下定义的静态库名称
    ]
}

   (3)完成以上两步,我们就可以开始进行编译了

     DevEco Device Tool支持一键编译与一键烧录,操作方便。 

     转到DevEco工具界面,点击Build选项进行编译

     编译后发现,系统报错!

    检查报错代码:

     我们会发现代码提示未发现'DemoSdkEntry'函数,这时候,我们返回业务文件的代码中去寻找,就会发现其所指向的函数:

     Ctrl+左键点击该函数就会跳转至函数定义所在的文件中去,既然函数存在,又为什么会找不到?

    如果,你检查了下图所示的编辑脚本就会发现,该脚本没有执行,该项目文件下的两个工程文件,此时我们只需要按照之前的操作,将”demolink“与”libbuild“两个工程文件添加进去就可以了。

import("//build/lite/config/subsystem/lite_subsystem.gni")
import("//build/lite/config/component/lite_component.gni")

lite_subsystem("iot") {
    subsystem_components = [
        "libbuild:demosdk",      //添加要执行的工程文件
        "demolink:demolinkadapter"
    ]
}

lite_component("link") {
    features = [
    ]
}

    完成上方几步后我们点击”Rebuild“选项,再次进行编译,出现:

    至此,第一次编译完成。

  2.代码烧录:

  (1)准备

    首先,我们需要准备一块BearPi_NM_Nano开发板与一根Type-C数据线。

    (如果你的DevTools_Hi3861V100_v1.0开发工具时在新建项目时自动安装的,直接在"C:\DevEco\resources\toolset\DevTools_Hi3861V100\1.0.0"寻找)

    串口驱动安装(点击下载):

      

      解压后:

      

      打开"usb_serial_driver"文件,双击CH341SER.EXE驱动进行安装

     

      

    安装后,打开控制面板,搜索设备管理器,查看串口设备,若未出现CH340串口设备,请检查驱动是 否安装正常。

      

  (2)烧录

    将开发板通过数据选连接到电脑,打开DevEco工具,选择Project Settings,进入烧录端口设置栏"upload_port"选择端口

    

    选择完成后,点击"Upload"选项,开始烧录,当出现“please reset device...”提示后按下开发板的复位键。

    

    

    当烧录完成时,端口提示如下图所示,若出现报错,请检查端口是否选择正确,且未被占用。

    

    如果你完成到这一步,恭喜你,你已经完成了第一次的代码编译与烧录,接下来我们就可以开始,通过官方的案例代码,实现数据上云了。

三、华为云平台注册流程

   开始界面

    点击注册进入注册页面

 

  注册界面

    填写对应信息完成注册后并登录

  注册产品  

    进入主页后选择设备接入创建IoTDA实例,随后点击右侧产品选项,创建产品,完成产品注册后,在右方注册下拉选项中选择所有设备,在右上方点击注册设备完成设备注册。

    下方三个信息很重要,而且密钥只能重置,无法查看。

  MQTT参数获取

  获取权鉴参数:Huaweicloud IoTDA Mqtt ClientId Generator (myhuaweicloud.com)

  在下方输入设备id与设备密钥,生成参数。

  四、设备上云

   1.Bearpi的案例代码使用

    为了实现快速设备上云,我们将利用官方案例中的D9案例实现设备接入。

    文件路径:src\vendor\bearpi\bearpi_hm_nano\demo\D9_iot_cloud_oc_manhole_cover

    在该案例中,E53_SC2.c所包含的是华为智慧井盖模块的倾角检测代码,wifi_connect.c是所需的网络以及mqtt连接配置。而我们需要修改的是iot_cloud_oc_sample.c文件中的参数。

    在该代码中,我们需要将上一步所获取的设备ID以及设备密钥进行填入。并填入wifi账号与密码,SERVERPORT端口与SERVERIP服务器地址可以不用修改。

    修改完成后,按照之前的编译及烧录步骤,将D9案例在app文件夹下运行并上传。

    完成后,在华为云平台的设备管理中,所创建的设备将显示为在线,至此,Bearpi设备上云成功。

ps:新手一枚,恳请各位大佬斧正。

posted @ 2023-11-10 10:47  εὕρηκα  阅读(24)  评论(0编辑  收藏  举报