导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

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

    MR Series
    2
    3
    1352
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Y
      giao LV 6 最后由 q1215200171 编辑

      D1s 连接网络

      硬件

      • D1s 开发板
      • RW007 模块

      D1s 开发板 RW007 模块 连接图
      1be560f99717c71203eaa6dcb15d4446.png.webp

      配置 RW007 软件包

      e5113c656db614ac2dfa5121542b6a93.png

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

      使用 pkgs —update 更新软件包

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

      即可使用 wifi 指令连接 wifi 了

      d9b338ead18dc751decf8baff8e1bde8.png

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

      • 在上电情况下插 RW007 模块 串口终端将会断掉,重新打开串口终端软件即可
      • 插着 RW007 模块 上电、复位 都将进入 FEL 模式,需要通过 xfel.exe reset 命令退出

      配置 thingspeak

      • 第一次使用时需要注册用户

      • 新建频道

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

      50b82be02283298b8bf698c28a235c50.png.webp

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

      1ff02f0469f34cd290e57e76904105b1.png

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

      bc0fa0047f77d062dc8cd666379359ed.png.webp

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

      添加 webclient 软件包

      7cd0921c801e5e1cd69308bf762f7adc.png

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

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

      #include <stdio.h>
      #include <webclient.h>
      #define GET_LOCAL_URI "http://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1="
      static int webclient_get_smpl(const char *uri)
      {
          char *response = RT_NULL;
          size_t resp_len = 0;
          int index;
          if (webclient_request(uri, RT_NULL, RT_NULL, 0, (void **)&response, &resp_len) < 0)
          {
              rt_kprintf("webclient send get request failed.");
              return -RT_ERROR;
          }
          rt_kprintf("webclient send get request by simplify request interface.\n");
          rt_kprintf("webclient get response data: \n");
          for (index = 0; index < rt_strlen(response); index++)
          {
              rt_kprintf("%c", response[index]);
          }
          rt_kprintf("\n");
          if (response)
          {
              web_free(response);
          }
          return 0;
      }
      static int thingspeak(void)
      {
          char uri[80];
          srand();
          int number;
          while(1)
          {
              number = rand() % 100;
              sprintf(uri, "%s%d", GET_LOCAL_URI, number);
              webclient_get_smpl(uri);
              rt_kprintf("random number is %d\r\n",number);
              rt_thread_mdelay(20000);
          }
      }
      MSH_CMD_EXPORT(thingspeak, thingspeak);
      
      

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

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

      0adcb59be2a03db460356a4d1a4cbf37.png

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

      20d48684d3cadde52e1bd71660cd0e3a.png

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

      42a83f4369a07a302ab9ec81f5541972.png

      原文链接:https://club.rt-thread.org/ask/article/a5b655730a865335.html

      1 条回复 最后回复 回复 引用 分享 1
      • xiaowenge
        DOT小文哥 LV 8 最后由 编辑

        请问是爱搞机群的兄弟吗?是的话我要开始退钱了👏

        Y 1 条回复 最后回复 回复 引用 分享 0
        • Y
          giao LV 6 @xiaowenge 最后由 编辑

          @xiaowenge 好,板子不错挺容易上手的,已经私聊你了😁 谢谢老板

          1 条回复 最后回复 回复 引用 分享 0
          • 1 / 1
          • First post
            Last post

          Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

          行为准则 | 用户协议 | 隐私权政策