三、基于alios things的esp32 devkitC学习笔记——接入阿里生活物联网平台/天猫精灵

1、创建阿里生活物联网云平台

    要接入平台首先要在里创建好项目,目前说是免费的,然后就是创建新产品,首先就从灯开始。创建过程可以参考另一篇博客

在创建中有四个部分

    1.1功能定义

    这个部分的预设功能特别多,由于我现在只想用普通的发光二极管来当灯泡所以删除了其他所有功能,并且增加了一个自定义功能,整了三种颜色,所以对灯的操作就只要调开关以及调颜色两种。

    1.2设备调试

    这个部分主要就是先创建好一个调试设备,得到这个设备的三元组,再加上产品本身的Product Key构成四元组,稍后将会用于配网。创建好调试设备后,可以在调试设备内获取相关的调试信息,我主要用到的有服务调用和在线调试

    当然,设备还没接入前是没用到的

   1.3人机交互

    到这里先要选择好你想要的app样式(反正都长一样),由于没有那些花里胡哨的功能,即使选了默认的花里胡哨操控界面也显示不出来,所以我自己自定义了个界面,把调颜色功能加上去。

    接下来先下载公版app,注册登录然后把下面的几大项都设置好,默认的就行,旁边还有个配网二维码下一步配网需要用到。

第四部分省略

 

2、接入linkkit

    要想使嵌入式设备接入阿里云平台,需要在设备上配置好link kit,参考了一些博客,核心是这两篇:

https://blog.csdn.net/weixin_45227503/article/details/91491737

https://blog.csdn.net/toopoo/article/details/88758872

    首先linkkit接入需要linkkit sdk,不过在alios things中已经预设好了,所以直接在alios things中的示例代码中捣鼓就好了。而无需去额外下载linkkit sdk。

    首先是在alios studio里左下角的

设置好,然后此时编译器就会将app/example中的linkkitapp作为编译目录,这里面是linkkit的示例代码,包含了连接wifi相关代码,我们需要做的就是定制部分代码让其为我们所用。

    首先是设置好配网的四元组,用来验证确认板子身份,将其填入linkkit_exmaple_solo.c开头的宏定义中,然后就是在app_enrty.c的主函数代码最后加入配网的函数do_awss_active()即可,其他博客在这里加了个定时两秒,此时如果直接编译烧录就可以直接配网成功了,不过在此之前先设置好设置命令的处理为好。

    处理云端下发指令的函数是user_property_set_event_handler,在这个函数中,我们需要解析云端下发的Json数据,得到其中的set指令,并且向串口和云端发送一些response,我的代码如下

static int user_property_set_event_handler(const int devid, const char *request, const int request_len)
{
    int res = 0;
    cJSON *root = NULL, *item_LightSwitch = NULL, *item_color = NULL;
    char property_payload[30] = {0};
    EXAMPLE_TRACE("Property Set Received, Request: %s", request);
/* Parse Root */
    root = cJSON_Parse(request);
    if (root == NULL || !cJSON_IsObject(root)) {
        EXAMPLE_TRACE("JSON Parse Error");
        return -1;
    }
    do {
        /* Parse LightSwitch */
        item_LightSwitch = cJSON_GetObjectItem(root, "LightSwitch");
        if (item_LightSwitch != NULL && cJSON_IsNumber(item_LightSwitch)) {
            EXAMPLE_TRACE("LightSwitch = %d", item_LightSwitch->valueint);
            printf("********************************************");
            HAL_Snprintf(property_payload, sizeof(property_payload), "{\"LightSwitch\": %d}", item_LightSwitch->valueint);
        }
        
        /* Parse color */
        item_color = cJSON_GetObjectItem(root, "color");
        if (item_color != NULL && cJSON_IsNumber(item_color)) {
            EXAMPLE_TRACE("color = %d", item_color->valueint);
            HAL_Snprintf(property_payload, sizeof(property_payload), "{\"color\": %d}", item_color->valueint);
        }
    }while(0);
    res = IOT_Linkkit_Report(devid, ITM_MSG_POST_PROPERTY, (unsigned char *)property_payload, strlen(property_payload));
    EXAMPLE_TRACE("Post Property Message ID: %d", res);

    return 0;
}

 

3、配网

    接下来就一气呵成了,先打开之前下载的公版app云智能的扫一扫,然后扫人机交互右边说明的配网二维码,再给板子上电开机,然后可以在串口调试助手中看到一堆的信息,其中有Json表一样的数据基本上就是配网成功了

,然后就可以在云平台上看到调试设备已连接,可以在里面进行调试,也可以在app中进行灯控制了。

4、接入天猫精灵

    在云智能app中的我的/更多服务中选择天猫精灵,绑定淘宝账号,即可在天猫精灵app中找到刚刚配好网的灯设备了。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
v2.0(2019.03.04.1) 提要: 手机连接AP (JF32Wifi_Config),密码默认88888888,打开浏览器,输入http://192.168.4.1即可进入Webconfig页面,WebConfig鉴权默认账户admin,密码88888888,进入后可自行修改; 版本特性: 1.支持BigIoT(贝壳物联)平台接入,在Network setting中选中BigIoT即可,目前只支持它的TCP模式,因此只能使用8181,8282,8585这个TCP端口,个端口的区别请查看BigIoT的官方文档 https://www.bigiot.net/help/1.html; 接着,填写好Cloud server setting中的Device ID与API Key并保存,启动后将自动连接到BigIoT的服务器,无论你选用是哪个端口,本固件都将每隔50秒发送一次心跳信息到服务器中,让设备自动保持连接; 2. 本固件的BigIoT模式已做好了透传,发送到ESP32模块串口的数据将直接透传到BigIoT服务器,相反BigIoT传回来的数据会直接透传到ESP32模块的串口,用户按BigIoT的官方文档,对数据进行解析即可; 3. 根据ESP32的文档,这个版本固件修改了SPIFFS格式化的时长,从20秒改成官方推荐的30秒,如果是新买的模块,首次使用的时候可能要多等一会儿,但更好地保证了格式化SPIFFS分区的正确性; 4. 更新了SDK的版本到1.0.1 5. 还是老话,自用/学习可以,商用请联系开发者,尊重劳动成果人人有责; 后话: 本来还想支持Blinker平台的,但找不到它的通讯协议文档,只找到了它的库,它的库直接集成到我的代码中时,程序无法正常工作(崩溃),如有相关技术资料,可以告诉我,我会尝试集成的。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值