HaaS云端入门:如何通过云端点亮HaaS100的LED

1、前言

HaaS软硬件积木台不单能开发传统的嵌入式产品,更加重要的是,他是云端钉一体的方案,不单有HaaS设备端,还有物联网平台这样的云端和钉钉小程序端。

在《HaaS100快速入门》中,开发者已经了解到如何点亮HaaS100的LED灯,那如何通过云端来点亮HaaS100上的LED灯,这篇文章就带您快速上手。

2、整体方案

HaaS100开发板自带WIFI功能,非常容易接入到网络中。通过云端点亮HaaS100上的整体方案就是HaaS100通过WIFI先连上网络,和阿里云物联网平台建立连接,再通过MQTT协议来传输业务数据,用来控制LED等的开关。

其中HaaS100自带AliOS Things操作系统,且该操作系统自带Linkkit SDK。Linkkit SDK负责完成和物联网平台的连接建立和数据通信,业务代码就非常简单。整体方案如下图所示。

3、效果演示

默认情况HaaS100只有一个LED灯是亮的,表示已上电了。当在物联网平台打开LED后,对应的LED变亮。

当在物联网平台关闭LED后,HaaS100上对应的LED关闭。

下面的章节将详细介绍如何来实现这个功能。

4、物联网平台操作

4.1、创建产品和设备

首先参考《阿里云物联网平台快速入门实践》这篇文章,完成平台登录,然后在参考他的方法创建一个产品,命名为HaaS_LE。

并添加一个名为 HaaS_led_dev0的设备

 

4.2、定义产品的物模型

参考《阿里云物联网平台快速入门实践》中的3.3小节

功能定义页面,进行物模型配置。

功能定义 -> 编辑草稿 -> 添加自定义功能

在添加自定义功能时,功能名称现在推荐的主灯,然后点确认。

4.3、保存下产品和设备信息

在产品页面复制出 ProductKey 和 ProductSecret信息

在设备页面复制出DeviceName 和  DeviceSecret信息。这里看到的ProductKey和产品页面看到一致。

5、修改HaaS设备端代码

首先参考《使用VS code IDE开发》https://help.aliyun.com/document_detail/184185.html?spm=a2c4g.11186623.6.643.26293fd8uUtNLB

使用VS Code打开HaaS的开源代码

编辑application/example/linkkit_demo/linkkit_example_solo.c文件

5.1、添加头文件

     #include "led.h"

5.2、添加设备信息

      将2.3节中的四元组ProductKey 、ProductSecret、DeviceName 和  DeviceSecret 替代原来的值。

5.3、添加点LED逻辑

修改user_property_set_event_handler的代码如下所示

static int user_property_set_event_handler(const int devid, const char *request, const int request_len)

{

   EXAMPLE_TRACE("Property Set Received v3.3, Request: %s", request);



   char *label = "LightSwitch";

   int led_index = 3;

   cJSON *request_root = cJSON_Parse(request);


   if (request_root == NULL || !cJSON_IsObject(request_root)) {

       EXAMPLE_TRACE("JSON Parse Error");

       return -1;

   }


   cJSON *value = cJSON_GetObjectItem(request_root, label);

   if (value != NULL || !cJSON_IsNumber(value)) {

       EXAMPLE_TRACE("get bool value:%d", value->valueint);

       if (value->valueint == 0) {

           // turn off

           led_switch(led_index, LED_OFF);

       } else {

           // turn on

           led_switch(led_index, LED_ON);

       }

   } else {

       if (value != NULL) {

           EXAMPLE_TRACE("value type:%d", value->type);

       } else {

           EXAMPLE_TRACE("parse json err, can not find %s", label);

       }

   }


   cJSON_Delete(request_root);

   return 0;

}

5.4、编译代码

aos make distclean

aos make linkkit_demo@haas100 -c config

aos make

5.5、烧录代码

参考《HaaS100快速入门》

6、验证

在3.5 烧录代码后,HaaS100重新上电,并参考《HaaS100快速入门》连接串口

6.1、配网

使用WIFI配网命令如下:netmgr -t wifi -c {ssid} {password} ,比如路由器的名字是haas_open, 路由器的密码是12345678,那配网命令就是

netmgr -t wifi -c haas-open 12345678

6.2、云端下发命令

HaaS100连上路由器后,会自动连接阿里云物联网平台,连云成功后的串口会有这要 的打印

然后在物联网平台打开在线调试

在线调试-》选择设备-》设置开启-》设置

这个时候,串口打印中就能看到收到这个设置

并且HaaS100上灯已经点亮(左边LED灯就是通过云端点亮,右边的LED是电源指示灯)。

7、开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

猜你喜欢

转载自blog.csdn.net/HaaSTech/article/details/113678993
今日推荐