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/
转载:https://blog.csdn.net/HaaSTech/article/details/113678993