嵌入式系统 阿里 Haas EDU 开发记录

嵌入式系统 阿里 Haas EDU 开发记录

本文原地址:https://www.ftls.xyz/posts/eshaas/

缘起

笔者所学物联网专业,有一门课是嵌入式系统。我们的嵌入式老师以个人名义为我们提供了阿里的Haas EDU教育开发版用于嵌入式系统实验课。并且留了一些任务给我们。本文记录相关流程供学习经验。

这块板子默认烧录的是 HaaS EDU K1教育开发案例合集。开源地址:https://gitee.com/alios-things/eduk1_demo

系统是AliOS Things 3.3,内核 rhino,硬件名 Haas EDU K1 。

创建好之后就是这样了。

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/1.jpg” caption=“正面照” >}}

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/2.jpg” caption=“背面照” >}}

搭建环境

  1. 需要 Vscode 和 C/C++ Extension Pack 插件。
  2. 安装 haas-studio v1.0.24,安装之后会跳出 aos-tools 的安装提示。同样也是一键安装。

状态栏可以看到编译,烧录等

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/haas/haas1.png” caption=“安装好插件之后” >}}

创建项目,编译和烧录程序

笔者是在原HaaS EDU K1教育开发案例合集基础之上进行开发的,实际上也只是调用封装好的东西。

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/haas/haas2.png” caption=“创建教育开发案例合集项目” >}}

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/haas/haas3.png” caption=“教育开发案例合集目录” >}}

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/haas/haas4.png” caption=“用户代码目录solutions,红色是上云用的” >}}

第一次创建项目大约需要 5min。然后点击 VSCode 下面状态栏的编译。第一次编译大约需要 5min。编译之后这个文件夹大约 1G 左右。
编译成功后大概这样:

cp -f ../release_bin/pub_otp.bin ../write_flash_tool/ota_bin/
cp -f ../release_bin/pub_otp.bin ../write_flash_gui/ota_bin/
all files done.
run external script success
Run script 'python "C:\Users\icer\Desktop\lab3\hardware\chip\haas1000\release/auto_build_tool/build_bin.py"  --target="C:\Users\icer\Desktop\lab3\solutions\lab3\aos.bin"  ' success
scons: done building targets.
AOS SDK Done
Build takes 0 Minutes 45 Seconds. 

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/haas/haas6.png” caption=“编译之后” >}}

电脑需要装一个 cp210x.drivers 驱动。连接开发板到电脑,选择对应的串口,baudrate选择1500000,如果选错了可以修改配置文件。这些配置文件位于 .vscode 文件夹。然后点击 Vscode 状态栏的烧录,就可以看到大约 1700kb 的文件烧录进入了单片机。这时候单片机会显示一个出厂测试页面,会提示你按下K1,K2,K3, K4 , K1&K2 进行各种测试。看到这个测试说明我们的程序烧录成功了。

关闭测试模式

首先我们想要看到是HaaS EDU K1教育开发案例合集的图片中的各种功能。这时候我们需要关闭测试模式。

solutions\lab3\maintask.c 增加一行

#define ENABLE_FACTORY_TEST 0

然后我们就能看到HaaS EDU K1教育开发案例合集提供的案例了。也就是出厂自带的程序。

添加一个页面程序

我们可以看到,官方样例中每一个页面都是一个程序。这时,我们要添加自己的页面程序。

打开solutions\lab3\k1_apps文件夹。然后创建solutions\lab3\k1_apps\test3文件夹。创建两个文件 test3.ctest3.h。修改 solutions\lab3\k1_apps\menu.c。这里的代码我都会贴在最后。

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/haas/haas5.png” caption=“创建test3” >}}

所需要的代码

test3.c
test3.h
menu.c

代码变量说明:tem 温度 ,hum 湿度 ,xyz[3] 六轴传感器传出数据。

烧录之后

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/3.jpg” caption=“正常显示数据和传感器信息” >}}

注意

创建文件之后,一定要修改solutions\lab3\package.yaml的source_file。
增加代码

source_file:
<略>
  - "k1_apps/test3/test3.c"
  - "k1_apps/test4/test4.c"
  - "data_model_basic_demo.c"
  <略>

实验效果如下。

六轴传感器传的是 float 类型,显示不下于是强转为 short 类型。

目前效果不是很好,六轴传感器显示需要先运行官方陀螺仪示例之后才可以正常显示。待修复此特性。

配网WIFI

点击 VScode 状态栏的串口,选择对应的串口,选择1500000。这时候连接开发板并且开机能够看到一堆文字闪过。等待文字稳定后按下回车,能看到(ash:/data)#。这时候我们就可以输入CLI命令了。
输入netmgr -t wifi -c ssid password就可以配网了。ssid替换为WIFI网络名,password替换为WIFI密码。

[  44.975]<I>eduk1_demo aos_task_delete test3_task
[  44.976]<I>eduk1_demo aos_task_new homepage_task

(ash:/data)#netmgr -t wifi -c ssid password

配网之后开发板主页面会显示IP右上角会显示WIFI图标。还能看到 IP。

{ {< image src=“https://cdn.ftls.xyz/images/2021/11/4.jpg” caption=“配网WIFI” >}}

数据上云

基于HaaS EDU K1教育开发案例合集Wi-Fi设备连接阿里云示例。复制Wi-Fi设备连接阿里云示例下的 data_model_basic_demo.c 到 lab3\solutions\lab3\data_model_basic_demo.c。

修改三元组为自己设备的三元组,具体步骤键Wi-Fi设备连接阿里云示例 4.2 软件实现

修改data_model_basic_demo.c内的demo_main()为demo_main2()。

为了让这段程序在连接WIFI后运行,修改solutions\lab3\app_start.c,代码后面有。主要修改 wifi_event_cb 。

被修改的代码:

app_start.c

为了上传传感器数据,为data_model_basic_demo.c增加头文件

// 传感器数据
#include "drv_temp_humi_si_si7006.h"
#include "drv_temp_humi_sensylink_cht8305.h"
#include "drv_acc_gyro_inv_mpu6050.h"
#include "drv_acc_gyro_qst_qmi8610.h"

修改data_model_basic_demo.c主循环上传温湿度传感器和六轴传感器数据,abc 为计数,temp 温度,hump 湿度,xyz为六轴传感器数据。

short int abc = 0;
    float temp, hump,xyz[3];
    uint8_t info[30];
    /* 主循环进入休眠 */
    cht8305_init();
    FisImu_init();
    while (1) {
   
        if(abc>=100) {
    abc=0;}
        FisImu_read_acc_xyz(xyz);
        cht8305_getTempHumidity(&hump, &temp);
        /* TODO: 以下代码演示了简单的属性上报和事件上报, 用户可取消注释观察演示效果 */        
        sprintf(info, "{\"LightSwitch\": %d,\"tem\": %.1f,\"hum\": %.1f,\"rax\": %d,\"ray\": %d,\"raz\": %d}", abc,temp,hump,(short)xyz[0],(short)xyz[1],(short)xyz[2]);
        demo_send_property_post(dm_handle, info);
        demo_send_event_post(dm_handle, 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值