开发者成长激励计划-基于TencentOS Tiny 手把手教你通过腾讯连连小小程序控制板子的4个LED灯

本来想基于开发板做一个汽车交流充电桩的,由于本人能力和时间有限,做不了,做一个简单的点灯例程,通过腾讯连连小小程序控制板子的4个LED灯

实验材料:windows电脑一台,CH32V_EVB_AIoT ReVB02开发板一块(没有开发板的可以自搭电路),type-c数据线一条,可联网可作热点手机一台。

软件安装包:MounRiver_Studio_Setup_V181.zip。下载地址:MounRiver Studio 第一次用这个软件,真的很好用,关键还免费。以后一定要支持一下。

开始的操作步骤,我就不重复了,doc/31.TencentOS-Tiny_CH32V_EVB_QuickStart.md · 腾讯开源/TencentOS-tiny - Gitee.com

具体可以按照官方教程,完成后入下面:

我查阅了资料知道了,这是Json格式的,我们将下面两个文件添加到User文件夹下,完成后如下图所示

添加cjson

接下来就是 最后一步了,修改mqtt_iot_explorer.c文件下的default_message_handler函数,记得添加头文件#include "cJSON.h"

void default_message_handler(mqtt_message_t* msg)
{
    printf("callback:\\r\\n");
    printf("---------------------------------------------------------\\r\\n");
    printf("\\ttopic:%s\\r\\n", msg->topic);
    printf("\\tpayload:%s\\r\\n", msg->payload);
    printf("---------------------------------------------------------\\r\\n");

    cJSON *root = NULL;
    cJSON *params = NULL;
    cJSON *method = NULL;
    cJSON *power_switch = NULL;
    
    /*解析从云端收到的控制信息,示例控制信息为*/
    //payload:"{"method":"control","clientToken":"clientToken-@Ropy0JGd","params":{"power_switch":0}}"
    root = cJSON_Parse(msg->payload +1);
    if (!root){
        printf("Invalid json root\\r\\n");
        return;
    }

    /* 解析出method*/
    method = cJSON_GetObjectItem(root, "method");
    if (!method){
        printf("Invalid json method\\r\\n");
        cJSON_Delete(root);
        return;
    }

    /* 仅处理云端下发的 control 数据*/
    if (0 != strncmp(method->valuestring, "control", sizeof("control") - 1)){
        cJSON_Delete(root);
        return;
    }

    /*解析出params*/
    params = cJSON_GetObjectItem(root, "params");
    if (!params){
        printf("Invalid json params\\r\\n");
        cJSON_Delete(root);
        return;
    }
    /*解析出 power_switch*/
    power_switch = cJSON_GetObjectItem(params, "power_switch");
    /*根据 power_switch 控制实际硬件开关*/
    if (power_switch->valueint){
        GPIO_WriteBit(GPIOE, GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5, 0);
    }else{
        GPIO_WriteBit(GPIOE, GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5, 1);
    }

    cJSON_Delete(root);
}

最后成果演示:

视频内容

还有一件事忘了,esp8266固件不是乐鑫官方固件,固件 在下面压缩包

通过这个活动,我学到了很多知识,体会到了编程的乐趣 ,好久没有熬夜到凌晨1-2点了,也体会到了国产开发软件的 突飞猛进,MounRiver Studio真的是个很好的软件,是我目前用过单片机厂家自研ide中最好的一家,还有特别是腾讯连连小程序做的非常好,在实际项目中,可以节约很多开发时间。目前我们公司 使用还是比较少的。

将以下文件替换原来的文件就可以了,加油吧,打工人。

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
开发者成长激励计划-基于TencentOS Tiny 手把手教你通过腾讯连连小小程序控制板子的4个LED灯
本来想基于开发板做一个汽车交流充电桩的,由于本人能力和时间有限,做不了,做一个简单的点灯例程,通过腾讯连连小小程序控制板子的4个LED灯
<<上一篇
下一篇>>