HI3861实现进行环境配置以及编译

HUAWEI DevEco Device Tool是华为面向智能设备开发者提供的一站式集成开发环境。划重点,DevEco Device Tool 3.1 Beta2又上新技能啦——支持纯Windows环境开发Hi3861,显著提升编译、烧录效率,同时还带来了更多实用的功能及模板,为广大开发者朋友带来更加高效、便捷的开发体验。

一、 配置开发环境

1.DecEco Device Tool下载和安装

步骤一:下载devicetool-windows-tool-3.1.0.400.zip版,下载网址:

华为集成开发环境IDE DevEco Device Tool下载 | HarmonyOS设备开发

步骤二:解压 DevEco Device Tool 压缩包,双击安装包程序,点击"下一步"进行安装(如果之前有安装过,会弹出先卸载之前版本在安装,请按照要求先卸载)

步骤三:设置DevEco Device Tool的安装路径,请注意安路径不能包含中文字符,同时建议不要安装到C盘目录,点击"下一步"。 

 步骤四:等待DevEco Device Tool安装向导自动安装DevEco Device Tool插件,直至安装完成,点击"完成",关闭DevEco Device Tool安装向导。

 步骤五:打开Visual Studio Code,进入DevEco Decive Tool工具界面。

步骤六:下载简体中文语言包,用户可以在VSCode工具商店安装"chinese(Simplified)(简体中文)Language Pack for Visual Studio Code"插件,将VSCode设置为中文模式。 

步骤六:SDK下载

通过网盘分享的文件:SDK和工具链.zip
链接: https://pan.baidu.com/s/1f3Alt5zE5l96uP8086Hnng 提取码: 6tps

二、工程管理

  • 步骤一:打开VSCode,打开DevEco Device Tool主页,点击“导入工程”

  • 步骤二:在导入工程弹窗中选择Hi3861 SDK目录,点击“导入”。

 注意:如果待打开目录之前已成功导入,则再次导入时会导入失败,并提示“当前工程已经创建过,请直接导入”。

  • 步骤四:代码导入成功后,即工程创建成功,之后可使用该IDE 实现代码开发、一键编译、一键烧写等功能。
  • 步骤五:代码导入成功后,后续可在DevEco Device Tool工具主页直接打开已导入成功的工程。

三、 编译运行

        配置开发工具路径,点击左侧的“工程配置”,在右侧窗口找到“compiler_bin_path”,选择到之前下载的开发工具。

        开发工具选择,选择env.start

         选择env.start所在的文件路径

         

 配置端口

 四、 代码烧录

串口驱动安装

        安装CH340G驱动,打开DevTools_Hi3861V100_v1.0/usb_serial_driver文件夹。

 点击upload按键,待出现Connecting,please reset device...时,按下开发板的reset按键进行复位

等待烧录---烧录完成 

五、华为云平台操作

下面文章有详细解释 华为云平台传输数据esp8266实现华为云数据传输—实现模拟温湿度数据_esp8266华为云-优快云博客

 六、主文件上云代码



void IotPublish(void)
{   
    float temp, humi; // 温度和湿度变量
    int light; // 光照强度变量

    Get_Temp_And_Humi(&temp, &humi); // 获取温湿度数据
    Get_Light_Intensity(IOT_ADC_CHANNEL_3, &light); // 获取光照强度数据   
    //==========================================================================
    
    //===2.声明对应的结构体====
    IoTProfileService service; // IoTProfileService结构体
    //有几个需要传输的属性,就声明几个对应的结构体
    IoTProfileKV property_Humi; 
    IoTProfileKV property_Temp; 
    IoTProfileKV property_Ligh; /
    //===========================================================================

    //===3.初始化服务的结构体===
    //固定的套路,直接修改就可以
    // memset_s(&xxx, sizeof(xxx), 0, sizeof(xxx));
    memset_s(&property_Humi, sizeof(property_Humi), 0, sizeof(property_Humi)); // 初始化湿度属性
    memset_s(&property_Temp, sizeof(property_Temp), 0, sizeof(property_Temp)); // 初始化温度属性
    memset_s(&property_Ligh, sizeof(property_Ligh), 0, sizeof(property_Ligh)); // 初始化光照强度属性
    
    memset_s(&service, sizeof(service), 0, sizeof(service)); // 初始化service结构体
    
    service.eventTime = NULL; // 事件时间为空
    service.serviceID = "Environmental_Factors_Reporting_Services"; 
    //设置serviceID,即服务的ID,特别注意,这个serviceID要与华为云设置的serviceID一致
    service.serviceProperty = &property_Humi; 
    //设置service服务下第一个属性,即为湿度属性
    service.nxt = NULL; // 下一个服务为空,我们只设置了一个服务即service,则下一个服务为NULL
    
    //===4.初始化三个属性===
    property_Humi.key = "Humidity"; 
    //设置湿度属性的键为"Humidity",注意属性名要与华为云IOTDA设置的属性名一致,下面同理。
    property_Humi.type = EN_IOT_DATATYPE_FLOAT; 
    //设置湿度属性的数据类型为浮点数,注意数据类型名要与华为云IOTDA设置的属性名一致,下面同理。
    property_Humi.fValue = humi;
    // 如果为int型,则为property_Humi.iValue = xxx;  
    // 将我们本地接收到的湿度的值赋值给要传输湿度的变量值
    // property_Humi.fValue = humi;(humi为我们本地接收到的变量值)
    // property_Humi.iValue = xxx;
    // 注意因为湿度数据的数据类型为浮点型,所以我们这里用.fValue,如果为int型,为.iValue 
    property_Humi.nxt = &property_Temp; 
    // 将指针指向下一个属性名称即温度。

    property_Temp.key = "Temperature"; // 设置温度属性的键为"Temperature"
    property_Temp.type = EN_IOT_DATATYPE_FLOAT; // 设置温度属性的数据类型为浮点数
    property_Temp.fValue = temp; // 设置温度属性的值为temp变量
    property_Temp.nxt = &property_Ligh; // 设置下一个属性为光照强度属性

    property_Ligh.key = "Light_Intensity"; // 设置光照强度属性的键为"Light_Intensity"
    property_Ligh.type = EN_IOT_DATATYPE_INT; // 设置光照强度属性的数据类型为整数
    property_Ligh.iValue = light; // 设置光照强度属性的值为light变量
    property_Ligh.nxt = NULL; // 如果没有下一个属性了,我们就把下一个属性设置为空
    
    IoTProfilePropertyReport(CONFIG_DEVICE_ID, &service); 
    //通过这个发布属性报告函数,将对应的数据发布到华为云平台
    //IoTProfilePropertyReport(CONFIG_DEVICE_ID, &xxx); 
}

/*作业的提示*/

int Return_Temperature(void) {
    return 20;
}

int Return_Humidity(void) {
    return 10;
}
//讲解代码
void IotPublishSample_Test(void)
{
    int Temp;//接收温度的变量
    int Humi;//接收湿度的变量

    Temp = Return_Temperature();
    Humi = Return_Humidity();

    IoTProfileService service; // IoTProfileService结构体
    //有几个需要传输的属性,就声明几个对应的结构体
    IoTProfileKV property_Humi; // 湿度属性
    IoTProfileKV property_Temp; // 温度属性
    
    memset_s(&property_Humi, sizeof(property_Humi), 0, sizeof(property_Humi)); // 初始化湿度属性
    memset_s(&property_Temp, sizeof(property_Temp), 0, sizeof(property_Temp)); // 初始化温度属性
    memset_s(&service, sizeof(service), 0, sizeof(service)); // 初始化service结构体

    service.eventTime = NULL; // 事件时间为空
    service.serviceID = "Project"; 
    //设置serviceID,即服务的ID,特别注意,这个serviceID要与华为云设置的serviceID一致
    service.serviceProperty = &property_Humi; 
    //设置service服务下第一个属性,即为湿度属性
    service.nxt = NULL; // 下一个服务为空,我们只设置了一个服务即service,则下一个服务为NULL

    property_Temp.key = "Temperature_"; // 设置温度属性的键为"Temperature"
    property_Temp.type = EN_IOT_DATATYPE_INT; // 设置温度属性的数据类型为浮点数
    property_Temp.iValue = Temp; // 设置温度属性的值为temp变量
    property_Temp.nxt = &property_Humi; // 设置下一个属性为光照强度属性

    property_Humi.key = "Humidity_"; // 设置光照强度属性的键为"Light_Intensity"
    property_Humi.type = EN_IOT_DATATYPE_INT; // 设置光照强度属性的数据类型为整数
    property_Humi.iValue = Humi; // 设置光照强度属性的值为light变量
    property_Humi.nxt = NULL; // 如果没有下一个属性了,我们就把下一个属性设置为空  

    IoTProfilePropertyReport(CONFIG_DEVICE_ID, &service); // 发布属性报告,使用设备ID和服务结构体
}

// /< this is the demo main task entry,here we will set the wifi/cjson/mqtt ready ,and
// /< wait if any work to do in the while
//项目下事件的入口函数
static void Main_Entry(void)
{
    ConnectToHotspot();//连接WiFi
    CJsonInit();//上云必要函数
    IoTMain();//上云必要函数
    // IoTSetMsgCallback(NULL);//如果要命令下发,就要调用这个函数
    TaskMsleep(30000); 
    AHT20_Init();//AHT20温湿度传感器的初始化函数的初始化
    Adc_Init();//光敏传感器的初始化
    /* 主动上报 */
    while (1) {
        // here you could add your own works here--we report the data to the IoTplatform
        TaskMsleep(TASK_SLEEP_1000MS);
        // know we report the data to the iot platform
        IotPublishSample();
    }
}

七、项目文件说明

项目下的build文件,主要配置头文件

app下的文件是配置需要编译哪个项目

vendor下是官网给出的案例学习项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

个人练习生--是呓语吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值