AliOS Things 物联网开发上手|学习笔记

简介: 快速学习 AliOS Things 物联网开发上手

开发者学堂课程【AliOS Things 物联网开发教程AliOS Things 物联网开发上手】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/835/detail/13990


AliOS Things 物联网开发上手


内容介绍:

一、设备上云&控制 LED 灯


一、设备上云&控制 LED 灯

1、设备上云的原理

如下图所示:image.png最左侧是设备端,在本次实验当中,使用的是 Haas100,该设备通过wifi连接到物联网平台,然后将 Haas100板上的数据传送到物联网平台上,物联网平台也可以发送控制命令给 Haas100。如控制 Haas100上 LED 灯的亮灭。

2、实战环节

通过动手实际操作搭建设备上云并且控制 led 灯的环境。

(1)思路

首先打开 VS Code,查看项目的帮助文档,点击左侧“案例开发”中的 Wi-Fi 设备连接阿里云 IoT,打开 Wi-Fi 设备连接阿里云示例 linksdk_demo,它是最简单的单品上云的案例。该案例中用到了 Haas100,它需要自行接通电源和上网用的 wifi 天线,插上 USB 连接到计算机以便下载程序。

登录物联网平台,在物联网平台创建公共实例,创建产品,选择商品品类为“灯”,节点类型选择直连,联网方式选择 Wi-Fi 联网。在设备管理中添加灯设备,获取三元组信息,即指产品的 key、设备的名字和设备的密钥,将其填到通过Haas studio下载的代码中,更改配置信息,进行代码下载和调试。此时,在云端就可以看到设备显示在线。该过程的是设备上游的过程。

还可以在代码中添加一些 LED 灯的控制程序,可以接收从云端下发的 LED 灯的控制命令,就可以在云端通过在线调试的方式发送 led 灯的控制指令,进而在设备端捕获到信息,进行灯亮灭开关的控制。

(2)实际操作

①设备上云

登录物联网平台,进入控制台,点击公共实例,创建产品,并定义其名称为Haas100_led,选择品类,输入关键字“灯”,找到“智能生活/电工照明/灯”,该设备为直联设备(设备直接通过 Wi-Fi 连到云端的 Wi-Fi 连接方式),其余配置保持默认,点击确认,产品创建完成。

点击“添加设备”,定义名称为 hass100_led_001,点击确认查看设备信息。点击前往查看,即可在设备信息的页面读取设备的相关信息。目前所关注的是设备的三元组信息,点击查看即可生成该信息,并将该信息拷贝到程序中。

打开我们的 VS Code 创建项目,选定工作区路径,硬件类型选择 haas100,解决方案选择 Wi-Fi 设备连接阿里云实例,点击“立即创建”,确认工程信息后,即可下载相关的代码,其中包含了 linkskd_demo 的代码(用来连接阿里云物联网平台的 sdk)。

代码下载完成后,工程项目被自动打开,新的项目目录自动打开,其中包含有 sdk的相关代码。

在代码中找到设备三元组的配置的位置,替换为实际设备新加三元组信息,如下:

/*TODO:替换为自己设备的三元组*/

char *product_key = "alobEzEWHMU";

char *device_name = "haas100 led_001";

char *device_secret ="3d97ad587749ec14206a5be8da517e93;

点击编译按钮,一键编译,项目编译成功后,将编译好的文件下载到 haas100。

点击烧录按钮,选择对应的串口号,开始烧录。烧录完成之后,设备会重新启动。

设备开机之后,通过命令给设备配置 Wi-Fi 的账号密码,使设备连接到路由器,打开串口终端,通过查看文档获取 wifi 的配网命令,输入名字密码,开始联网。最终显示联网成功,且收到了云端回复的信息。

查看物联网平台的设备信息,可以看到 haas100_led_001 已经处于在线状态,说明设备成功上云,与云端物联网平台连接成功。

②led 灯的控制

即扩展的开发,该部分实验需要修改代码,接收云端下发的属性配置信息相关的代码。以下为相关代码:

#include "led.h"

#include"CISONh"

static void set led switch(char*str)

{

cJSON *strCommand,*strLed;

strCommand=cJSON_Parse(str);

if(!strCommand) {

printf ("json parse error\n");

return;

}

strLed=cJSON_GetObjectItem(strCommand,"LedSwitch");

if(strLed=NULL | | strLed→type !=cJSON_Number) {

printf("json get error\nV);

return;

}

if (strLed->valueint==1){

led_switch(1, LED_ON);

}else (

led switch(1,LED_OFF);

}

cJSON_Delete(strCommand);

}

复制该段代码并修改格式,查询文档可知该段代码应在回用户回调函数中捕获AIOT_DMRECV_PROPERTY_SET 属性设置事件中进行 Led 灯的控制。

代码解析:

收到了命令之后对其进行解析,如果当中包含"LedSwitch "字样,则要根据设置的LedSwitch 的值来控制对应的 Led 灯的亮灭。

在 AIOT_DMRECV_PROPERTY_SET 下面加入刚设置的函数(有自动提示功能,代码自动补全):

case AIOT_DMRECV_PROPERTY_SET:{

printf("msg_id = $id, parans = $.*s\r\n",

(unsigned long)recv->data.property_set.msg_id,

recv->data.property_set.params_len,

recv->data.property_set.params);

set_led_switch(recv->data.property_set.params);

将接收到的数据信息作为参数传入进行解析,并将后面注释的代码恢复,作为给服务端命令的应答。

代码修改结束,点击编译按钮重新编译,编译结束后将修改的代码编译的结果下载到 haas100中,点击烧录按钮,烧录结束后设备自动启动。

打开串口终端,配置 wifi 的账号密码,当记录了 wifi 账号和密码之后,刷新查看设备是否在线,若设备显示在线的,说明上云成功。

接下来,打开阿里云 IoT 平台,点击“监控运维”,点击“在线调试”,选择刚创建的两个设备,可以看到其中“主灯开关”的配置,“参数”选择开启,然后点击“设置”,可以看到设备的灯处于点亮状态。通过 log 也可以其收到的信息,点击“设置”可以把灯关闭。由此,即可实现在线控制 Led 灯的功能。

由以上案例可以发现 Haas Studio 十分方便地下载现有的项目,还可以在基于项目的基础上做出修改,包括编译代码、下载代码以及调试。总结起来,设备上云的过程共分为三大步骤:第一步,在云端的配置,在该步骤中我们在阿里云物联网平台上面创建了设备,并记录了设备的三元组信息;第二步,在设备端的下载代码,并把三元组信息进行配置,并联网;第三步,在云端实现 led 的控制。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
8月前
|
传感器 消息中间件 物联网
AliOS Things 系统架构介绍(二)
AliOS Things 系统架构介绍(二)
233 0
|
安全 网络协议 物联网
AliOS Things开发前准备 |《AliOS Things快速开发指南》
在运行AliOS Things系统之前,您需要做好一系列准备工作,包括搭建环境、安装驱动设备、下载AliOS Things系统源码、安装开发工具AliOS Studio等。本文详细介绍如何完成这些准备工作。
AliOS Things开发前准备 |《AliOS Things快速开发指南》
|
8月前
|
存储 传感器 人工智能
AliOS Things 系统架构介绍(一)
AliOS Things 系统架构介绍(一)
202 0
|
JSON 小程序 IDE
AliOS Things 物联网开发上手|学习笔记
快速学习 AliOS Things 物联网开发上手
149 0
AliOS Things 物联网开发上手|学习笔记
|
IDE 物联网 AliOS-Things
AliOS Things 技术分享|学习笔记(三)
快速学习 AliOS Things 技术分享
366 0
AliOS Things 技术分享|学习笔记(三)
|
存储 传感器 运维
AliOS Things 技术分享|学习笔记(二)
快速学习AliOS Things 技术分享
214 0
AliOS Things 技术分享|学习笔记(二)
|
机器学习/深度学习 安全 网络协议
AliOS Things 技术分享|学习笔记(一)
快速学习 AliOS Things 技术分享
352 0
AliOS Things 技术分享|学习笔记(一)
|
开发框架 安全 AliOS-Things
AliOS-Things 构建系统的介绍|学习笔记
快速学习 AliOS-Things 构建系统的介绍。
370 0
AliOS-Things 构建系统的介绍|学习笔记
|
监控 物联网 Linux
端侧系统 AliOS Things 介绍|学习笔记
快速学习端侧系统 AliOS Things 介绍
125 0
|
AliOS-Things 物联网 编译器
使用HaaS Studio开发AliOS Things C/C++应用
本文章将介绍使用HaaS Studio 进行AliOS-Things C/C++应用开发。
使用HaaS Studio开发AliOS Things C/C++应用

相关产品

  • 物联网平台