AliOS Things 技术分享(二)|学习笔记

简介: 快速学习 AliOS Things 技术分享(二)

开发者学堂课程【阿里云 AIoT 物联网开发实战:AliOS Things 技术分享】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/328/detail/3698


AliOS Things 技术分享(二)

三、使用 AliOS Things 帮助设备快速上云

1、开发环境搭建

搭建开发环境,AliOS Things 是开源的,直接克隆代码。

根据参考文档搭建开发环境https://help.aliyun.com/document det ail/161042.html

安装 vscode 及 AliOS Studio 插件

安装基于命令行的编译系统、编译工具 aos-cube

配置环境变量可做开发环境的搭建

2、演示 demo 介绍

准备工作:在物联网平台创建一个灯的产品,并新建一个测试设备;准备硬件做测试

创建工程:基于现有 APP 模板 linkkit_demo 创建一个新的工程,基于 linkkit 模板创建一个新工程,内置连接物联网平台的功能。

编写业务代码:编写少量业务代码,灯的设备直接连到阿里云平台

控制灯:通过阿里云调式控制的面板,可下发指令控制 Wi-Fi 智能灯

3、准备工作

物联网平台 https://iot.console.aliyun.com/创建产品和测试设备

准备开发板、PC、Wi-Fi 路由器,开发板通过 USB 线与 PC 连接,开发板通过路由器连到网络。

image.png

4、基于模板创建工程

基于 vscode 模板创建 AliOS 工程,快速编译。使用 ymodem 方式下载程序,设备连云成功。

image.png

5、编写业务代码

image.png

共五部分,第一个增加 GPIO 的头文件,增加 GPIO 的功能,用于控制 LED 灯开关。

第二个更新设备信息,阿里云平台资源组更新为刚建立的资源组。

第三个用于定义全局变量,用于保存 GPIO 信息。

第四个在接收云端属性设置的回调函数里,解析云端数据,配置 LED灯开光,on 或 off。

第五个在 linkkit 的 main 函数里,初始化 GPIO

6、控制灯

控制灯有在线调试的平台,在阿里云平台的工具上,可对格式直接发送指令,直接发送到设备中。

image.png

7、视频演示

通过 AliOS Things 快速连接阿里云 IoT 平台

阿里云物联网平台

image.png

在设备管理、产品,创建新产品。

image.png

产品名 cio_demo,选择标准路灯照明品类,WiFi 连网,标准的数据格式,创建产品

image.png

cio_demo 产品情况

功能定义里有很多标准属性

image.png

设备管理,添加设备。设备名 cio_test_device, 备注名字  living room light,点击确认。

image.png

设备添加成功,设备是未激活状态,因为没有添加真实的设备。

image.png

可看到 DeviceName、DeviceSecret

image.png

到 AliOS Things studio,通过加号创建一个工程,选择 linkkit demo 作为模板创建。选择一个板子,现在使用 mk3072开发板。起名字,生成整个工程。左边是大目录,主要在 linkkit_example_solo.c 目录里,修改直连设备在此文件里的代码。

image.png

将以下信息复制粘贴到此文件

image.png

添加响应变量,记录 GPIO 的信息,led_gpio_out

Int linkkit_main(void*paras) 是 linkkit 的 main 入口函数,gpio 进行初始化

#endif

memset(&led_gpio_out, 0,sizeof(gpio_dev_t));  

led_gpio_out.port=7;

led_gpio_out.config= OUTPUT_PUSH_PULL;  

led_gpio_out.priv =NULL;  

hal_gpio_init(&led_gpio_out);

port 为第七个 ping,OUTPUT 模式,调用 gpio_init 初始化

property_set 回调函数

static int user_property_set event handler(const int devid const char *request, const int request_len)

{

int res = 0;

EXAMPLE_TRACE("Property Set  

Received,Request:%s",request);

res =IOT_Linkkit_Report(EXAMPLE_MASTER_DEVID,

ITM_MSG_POST_

PROPERTY,

(unsigned char *)request,request_len);

EXAMPLE _TRACE("Post Property Message ID:d"res);

return 0;

cJSON *root =NULL, *LightSwitch =NULL;  

root=cJSON_Parse(request);

LightSwitch=cJSON GetObjectItem(root,"LightStatus");  

if(LightSwitch->valueint == 0){

EXAMPLE_TRACE("led off");

hal_gpio_output_low(&led_gpio_our);

} else if(LightSwitch->valueint == 1f {

EXAMPLE TRACE("led on");

hal_gpio_output_high(&led_gpio_out);

回调函数里增加收到数据后的回调处理,收到接听的数据,LightStatu

s 属性,根据属性的值设置灯的on或off。

点击编译,有所有 memory 情况,ROM、RAM 情况。大概使用600多 K 的 ROM,97K的 RAM

image.png

打开串口,串口工具,开发板。开发板进入下载模式,通过串口命令下载,选择 ymodem 模式,选择编译生成的 binary。

选择以下,回车下载

Directory:/home/johnny/aosApp/myapp/out/myapp@mk3072/binary

串口波特率115200

使用自己的 AliOS Things studio id 开发工具开发阿里 OS 应用非常简单,有很多 demo 模板可供创建,使用统一的接口开发代码非常少。

重启开发板,log 串口连接上网,因为使用 WiFi 模组提前到配网信息创建。

控制台设备上,设备处于在线状态。

image.png

设备的在线调试页面,找到 Light Status 属性,通过设置的方法向下发一个脚本,Light Status 设置为1,发送指令。

image.png

设成1,灯亮。设为0,灯灭。


四、AliOS Things 开发社区

整个 OS 代码开源,可通过几种方式下载 AliOS 代码

官方网站:

图形化裁剪工具页面下,根据自己的需求,选择需要的组件,定制化下载 OS。体验更小、更灵活的 AliOS Things。

https://aliosthings.iot.aliyun.com/aos/download

Github 里做全量代码下载

https://github.com/alibaba/AliOS-Thing

s/tree/rel 3.1.0

Github 是国外版,下载速度慢。Gitee 做国内的镜像,下载速度快,内容与 Github 相同。

https://gitee.com/alios-things/AliOS-Things

/tree/rel 3.1.0/

文档链接https://help.aliyun.com/product/123206.heml

有100余片的技术文档,字典式输出便于查询。

hal i2c 接口,可看到接口的原型、参数、入参、入参描述、出参、返回值,文档非常详细。

image.png

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
安全 网络协议 物联网
AliOS Things开发前准备 |《AliOS Things快速开发指南》
在运行AliOS Things系统之前,您需要做好一系列准备工作,包括搭建环境、安装驱动设备、下载AliOS Things系统源码、安装开发工具AliOS Studio等。本文详细介绍如何完成这些准备工作。
AliOS Things开发前准备 |《AliOS Things快速开发指南》
|
15天前
|
传感器 数据采集 安全
|
安全 物联网
《AliOS Things快速开发指南》电子版地址
《AliOS Things快速开发指南》帮助您认识AliOS Things系统,并实现从零开始的一个入门操作。更有两大典型实践场景教你物联网开发从入门到精通。手把手教你从环境准备到线上、线下开发调试,更有两大典型场景实践等你参与。你的物联网开发从这里开始!快来get新技能吧~
120 0
《AliOS Things快速开发指南》电子版地址
|
存储 人工智能 运维
AliOS Things 技术分享(一)|学习笔记
开始学习 AliOS Things 技术分享(一)
524 0
AliOS Things 技术分享(一)|学习笔记
|
存储 传感器 运维
AliOS Things 技术分享|学习笔记(二)
快速学习AliOS Things 技术分享
AliOS Things 技术分享|学习笔记(二)
|
机器学习/深度学习 安全 网络协议
AliOS Things 技术分享|学习笔记(一)
快速学习 AliOS Things 技术分享
AliOS Things 技术分享|学习笔记(一)
|
IDE 物联网 AliOS-Things
AliOS Things 技术分享|学习笔记(三)
快速学习 AliOS Things 技术分享
AliOS Things 技术分享|学习笔记(三)
|
JSON 小程序 IDE
AliOS Things 物联网开发上手|学习笔记
快速学习 AliOS Things 物联网开发上手
AliOS Things 物联网开发上手|学习笔记
|
AliOS-Things 物联网 编译器
使用HaaS Studio开发AliOS Things C/C++应用
本文章将介绍使用HaaS Studio 进行AliOS-Things C/C++应用开发。
使用HaaS Studio开发AliOS Things C/C++应用
|
物联网 API 开发工具
如何用SystemView分析AliOS Things
SystemView 是一个用于分析嵌入式系统性能的工具。SystemView可以分析系统中有哪些中断、任务执行了,以及它们的先后关系。 可以完整的深入观察一个应用程序运行时的行为,它揭示了在任务运行中发生了什么,哪个中断触发了任务切换,中断和任务调用了哪个底层系统的API函数。
如何用SystemView分析AliOS Things