其基础架构如下图所示:
而这次测评的,也是基于AliOS的AliOS Things Developer Kit开发板,这块开发板是基于STM32L469设计的,开发板上带有大量的传感器与摄像头、显示屏,按键,还支持wifi、ST-Link、TF卡与音频输出功能。
AliOS Things开发板使用的开环境环境(软件)是Visual Studio Code,其在配置搭建时,还是有区别于之前的RTOS或是单片机的开发方式,主要就是在Visual Studio Code的基础了安装C/C++、alios-studio、python等等。在搭建好开发环境后,对于编译结果的烧写是支持几种方式:虚拟U盘、ST-LINK Utility和AliOS Things Studio。
使用Visual Studio Code编译完成后,会有一个不同部分占用空间大小的一个“表”,可以明显的显示出Flash的使用情况。从这里,也可以看出AliOS Things的分层结构。
这里对AliOS的实时性进行了测试,最简单的就是使用LED的例程,对LED翻转的延时进行测量,这里在程序上设置的延时是1秒的时间,但是在实际的测量中,延时时间大约增长了30ms多,这里的绝对误差看上去并不小,对于某此产品来说,实时性并不高,但对于物联网来说,这类大量通讯的产品中,30ms的延时根本不算什么,所以,也就不必太在意了,但值得一提的是,延时的相对误差是很小的,对于几十秒和延时时间进行反复的测量,时间误差是在几us左右,这对于AliOS Things这样的操作系统来说,已经是很小很稳定的了。
这里使用的是blink例程,这里要修改一下IO口的定义,例程中的引脚定义与板子上的是不一样的,修改如下:
最后通过测量LED翻转的时间间距来确定时间误差。
其次是通讯的串口测试,这里的串口是ST-Link的虚拟的串口,可以通过串口助手连接,也可以使用Visual Studio Code下的connect device功能,连接串口,这里的串口波特率是要设置成115200的,也是第秒发送一条helloworld
由于仿真功能比较弱,开发板在使用Visual Studio Code进行开发时,会在串口输出一些出错的信息,方便查找代码的bug,如下图,在修改错误后,在串口上会输出一些错误的具体指示,而且是有文件代码的位置,这也是AliOS Things的一大特点。
如果对代码进行修正,就可以输出正常的结果了。
uDataapp例程注意事项,在打开LCD显示功能时,要在主源文件uData-example.c中增加定义:
并修改mk文件,将LITTLEVGL_DISPLAY添加上。
运行的效果还是很不错的,这个屏的显示效果也很好。
如果要把数据上传到云服务器,那么也是很简单的了,相信使用过ONENET或是机智云的朋友对以下几个参数并不陌生。
你也是要登录到阿里云的网站进行注册,并新建产品就可以了并进行相应的配置就可以把传感器的数据上传到服务器了。
还要添加DATA_TO_CLOUD的宏定义了,这个功能是可选的。
最后,再以最简单的helloworld例程来分析一下代码。helloworld例程应该算是最简单的一个例程,这个例程是使用AliOS的API函数进行实现。
这里使用了aos_post_delayed_action创建了一个1秒的定时器,这个定时器1秒种后会调用一次app_delayed_action函数,而在app_delayed_action函数中则,通过LOG函数向串口输出字符,并重新创建一个5秒的定时器来调用自己。
AliOS Things的异步事件框架使用的是Yloop,这里调用aos_loop_run函数后,将会进入事件循环,之后的事件就交由OS去处理了。其他的API的使用方式可以在这里看到说明:https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-API-YLOOP-Guide#6-aos_post_delayed_action
原创作品,未经权利人授权禁止转载。详情见转载须知。 举报文章
我要举报该内容理由
×