谷动谷力

 找回密码
 立即注册
查看: 2240|回复: 0
打印 上一主题 下一主题
收起左侧

【RT-Thread】使用 D1s (RDC2022 纪念版) 连接 thingspeak

[复制链接]
跳转到指定楼层
楼主
发表于 2023-2-1 23:52:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
【RT-Thread】使用 D1s (RDC2022 纪念版) 连接 thingspeak

D1s 连接网络

硬件
  • D1s 开发板
  • RW007 模块

D1s 开发板 RW007 模块 连接图

配置 RW007 软件包


D1s 开发板 通过 SPI0 连接到 RW007 WiFi 模块
使用 pkgs —update 更新软件包
更新软件包之后 将 rw007 软件包中的 struct rw007_spi 结构体定义中的 ALIGN 改为 rt_align
即可使用 wifi 指令连接 wifi 了

注: D1s 开发板 和 RW007 模块 之间同时使用将会有一些小问题
  • 在上电情况下插 RW007 模块 串口终端将会断掉,重新打开串口终端软件即可
  • 插着 RW007 模块 上电、复位 都将进入 FEL 模式,需要通过 xfel.exe reset 命令退出


配置 thingspeak

  • 第一次使用时需要注册用户
  • 新建频道

这里只使用最基本的功能,创建了一个数据接口 field1 后续需要通过 field1 来上传数据
查看创建好频道的相关 http 的 api
如下图所示 Write a Channel Feed API 中最后的 field1=0 就是上传的数据(这里 0 不局限于数字,经验证字符串也是可以的)
由于 thingspeak 使用了 GET 协议 我们这里使用了 webclient 软件包来进行数据的上传
添加 webclient 软件包
添加 rt-thread/bsp/allwinner/d1s/applications/thingspeak.c 文件
将 GET_LOCAL_URI 宏定义的值换为你自己的 Write a Channel Feed API
1#include <stdio.h>
2#include <webclient.h>
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.\n");
15    rt_kprintf("webclient get response data: \n");
16    for (index = 0; index < rt_strlen(response); index++)
17    {
18        rt_kprintf("%c", response[index]);
19    }
20    rt_kprintf("\n");
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\r\n",number);
38        rt_thread_mdelay(20000);
39    }
40}
41MSH_CMD_EXPORT(thingspeak, thingspeak);

上述文件为 每隔 20 秒,将开发板随机出来的 0~100 值上传到 thingspeak
编译,下载,运行之后,连接 WIFI 后 使用 thingspeak 命令运行程序,如果出现下面这种情况则表明成功
也可以通过 API Keys 中的其他 API 查询到开发板上传的数据
另外这里还有可视化的图标供我们观看

版权声明:
本文为RT-Thread论坛用户「zhkag」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://club.rt-thread.org/ask/article/a5b655730a865335.html



+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-11-24 19:30 , Processed in 0.447035 second(s), 42 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表