使用 D1s (RDC2022 纪念版) 连接 thingspeak

描述

d1s 连接网络

  1. 硬件

  1. D1s 开发板

  2. RW007 模块


D1s 开发板 RW007 模块 连接图

RT-Thread

配置 RW007 软件包

RT-Thread

D1s 开发板 通过 SPI0 连接到 RW007 WiFi 模块

RT-Thread

使用 pkgs —update 更新软件包

更新软件包之后 将 rw007 软件包中的 struct rw007_spi 结构体定义中的 ALIGN 改为 rt_align

即可使用 wifi 指令连接 wifi 了

RT-Thread

注: D1s 开发板 和 RW007 模块 之间同时使用将会有一些小问题

  1. 在上电情况下插 RW007 模块 串口终端将会断掉,重新打开串口终端软件即可

  2. 插着 RW007 模块 上电、复位 都将进入 FEL 模式,需要通过 xfel.exe reset 命令退出


配置 thingspeak


  1. 第一次使用时需要注册用户

  2. 新建频道

这里只使用最基本的功能,创建了一个数据接口 field1 后续需要通过 field1 来上传数据

RT-Thread

查看创建好频道的相关 http 的 api

RT-Thread

如下图所示 Write a Channel Feed API 中最后的 field1=0 就是上传的数据(这里 0 不局限于数字,经验证字符串也是可以的)

RT-Thread

由于 thingspeak 使用了 GET 协议 我们这里使用了 webclient 软件包来进行数据的上传

添加 webclient 软件包

RT-Thread

添加 rt-thread/bsp/allwinner/d1s/applications/thingspeak.c 文件

将 GET_LOCAL_URI 宏定义的值换为你自己的 Write a Channel Feed API

 1#include 
2#include 
3#define GET_LOCAL_URI "http://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1="
4static int webclient_get_smpl(const char *uri)
5
{
6    char *response = RT_NULL;
7    size_t resp_len = 0;
8    int index;
9    if (webclient_request(uri, RT_NULL, RT_NULL, 0, (void **)&response, &resp_len) < 0)
10    {
11        rt_kprintf("webclient send get request failed.");
12        return -RT_ERROR;
13    }
14    rt_kprintf("webclient send get request by simplify request interface. ");
15    rt_kprintf("webclient get response data:  ");
16    for (index = 0; index < rt_strlen(response); index++)
17    {
18        rt_kprintf("%c", response[index]);
19    }
20    rt_kprintf(" ");
21    if (response)
22    {
23        web_free(response);
24    }
25    return 0;
26}
27static int thingspeak(void)
28
{
29    char uri[80];
30    srand();
31    int number;
32    while(1)
33    {
34        number = rand() % 100;
35        sprintf(uri, "%s%d", GET_LOCAL_URI, number);
36        webclient_get_smpl(uri);
37        rt_kprintf("random number is %d ",number);
38        rt_thread_mdelay(20000);
39    }
40}
41MSH_CMD_EXPORT(thingspeak, thingspeak);

上述文件为 每隔 20 秒,将开发板随机出来的 0~100 值上传到 thingspeak

编译,下载,运行之后,连接 WIFI 后 使用 thingspeak 命令运行程序,如果出现下面这种情况则表明成功

RT-Thread

也可以通过 API Keys 中的其他 API 查询到开发板上传的数据

RT-Thread

另外这里还有可视化的图标供我们观看

RT-Thread


RT-Thread

欢迎获奖者加入群聊共同交流学习


版权声明:

本文为RT-Thread论坛用户「zhkag」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://club.rt-thread.org/ask/article/a5b655730a865335.html


———————End———————


你可以添加微信:rtthread2020 为好友,注明:公司+姓名,拉进RT-Thread官方微信交流群!


RT-Thread


爱我就给我点在看RT-Thread

点击阅读原文


原文标题:使用 D1s (RDC2022 纪念版) 连接 thingspeak

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分