小言_互联网的博客

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

250人阅读  评论(0)

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的代码如下所示


  
  1. static int user_property_set_event_handler(const int devid, const char *request, const int request_len)
  2. {
  3.    EXAMPLE_TRACE( "Property Set Received v3.3, Request: %s", request);
  4.     char *label = "LightSwitch";
  5.     int led_index = 3;
  6.    cJSON *request_root = cJSON_Parse(request);
  7.     if (request_root == NULL || !cJSON_IsObject(request_root)) {
  8.        EXAMPLE_TRACE( "JSON Parse Error");
  9.         return -1;
  10.    }
  11.    cJSON * value = cJSON_GetObjectItem(request_root, label);
  12.     if ( value != NULL || !cJSON_IsNumber( value)) {
  13.        EXAMPLE_TRACE( "get bool value:%d", value->valueint);
  14.         if ( value->valueint == 0) {
  15.             // turn off
  16.            led_switch(led_index, LED_OFF);
  17.        } else {
  18.             // turn on
  19.            led_switch(led_index, LED_ON);
  20.        }
  21.    } else {
  22.         if ( value != NULL) {
  23.            EXAMPLE_TRACE( "value type:%d", value->type);
  24.        } else {
  25.            EXAMPLE_TRACE( "parse json err, can not find %s", label);
  26.        }
  27.    }
  28.    cJSON_Delete(request_root);
  29.     return 0;
  30. }

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/


转载:https://blog.csdn.net/HaaSTech/article/details/113678993
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场