主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用 MATLAB 的 TalkBackApp 对命令进行排队

TalkBack 使任何设备能够按照排队的命令采取行动。此示例展示了如何使用 MATLAB® 中的 TalkBack App 以及内置 MATLAB 函数(例如 webreadwebwrite)对命令进行排队。例如,如果您有一扇带有无线网络和运动传感器的门,您可以排队命令来打开和关闭门。当门感应到附近有人时,就打开门。经过指定时间后,关门。在 ThingSpeak™ 中,使用 MATLAB Analysis App 编写 MATLAB 代码。

webread 与 TalkBack 结合使用

获取 TalkBack 命令

您可以使用 webread 发送 HTTP GET 请求来获取 TalkBack 命令。

指定您的 TalkBack App 和 TalkBack 命令的 ID。您可以在 TalkBack App 页面中找到 TalkBackAppID、命令 ID 和 TalkBack API 密钥。

% TalkBack app ID
TalkBack_ID = '7991';
% TalkBack command ID
Command_ID = '1322093';
% TalkBack app API key
TalkBack_apikey = 'I586FE13SXIN9ZET';

指定 api_key 查询参数。webread 将 Web 服务查询参数名称和值附加到 url

url = strcat('https://api.thingspeak.com/talkbacks/',TalkBack_ID,'/commands/',Command_ID,'.json');
data = webread(url,'api_key',TalkBack_apikey)

点击 Save and Run 以运行 MATLAB Analysis App 中的 MATLAB 代码。

webread 以结构体数组的形式返回搜索结果页面的 JSON 对象。

data = 
                id: 1322093
    command_string: 'OPENDOOR'
          position: 2
       executed_at: []
        created_at: '2016-04-13T20:08:58Z'

命令 'OPENDOOR' 现在打开启用了 Wi-Fi® 的门。

发布 TalkBack 命令

您可以使用 webread 发送 HTTP POST 请求,使用 weboptions 通过 TalkBack App 添加 TalkBack 命令。

url =  strcat('https://api.thingspeak.com/talkbacks/',TALKBACK_ID,'/commands.json');
options = weboptions('RequestMethod','post');
data = webread(url,'api_key','I586FE13SXIN9ZET','command_string','OPENDOOR',options)

点击 Save and Run 以运行 MATLAB Analysis App 中的 MATLAB 代码。Output 部分显示以下输出:

data = 
                id: 1328190
    command_string: 'OPENDOOR'
          position: 7
       executed_at: []
        created_at: '2016-04-14T18:26:45Z'

命令 'OPENDOOR' 现在打开启用了 Wi-Fi 的门。

webwrite 与 TalkBack 结合使用

编写 TalkBack 命令

使用 TalkBack App 创建 TalkBack 命令。打开一个新的 MATLAB 分析,使用 webwrite 向 TalkBack App 写入命令。

使用您的 TalkBack ID、命令 ID 和 TalkBack API 密钥调用 webwrite。您可以在 TalkBack App 页面中找到 TalkBackAppID、命令 ID 和 TalkBack API 密钥。

% TalkBack app ID
TalkBack_ID = '7991'; 
% TalkBack command ID
Command_ID = '1322093'; 
% TalkBack app API key
TalkBack_apikey = 'I586FE13SXIN9ZET'; 
url =  strcat('https://api.thingspeak.com/talkbacks/',TALKBACK_ID,'/commands.json');
response = webwrite(url,'api_key',TALKBACK_APIKEY,'command_string','CLOSEDOOR')

点击 Save and Run 以运行 MATLAB Analysis App 中的 MATLAB 代码。Output 部分显示以下输出:

response =
                id: 1333480
    command_string: 'CLOSEDOOR'
          position: 10
       executed_at: []
        created_at: '2016-04-15T13:30:42Z'

命令 'CLOSEDOOR' 现在关闭启用了 Wi-Fi 的门。

将 TalkBack App 命令编写为表单编码字符数组

或者,您可以将 TalkBack API 密钥和命令编码为表单编码字符数组。

data = ['api_key=',TalkBack_apikey,'&command_string=','CLOSEDOOR'];
response = webwrite(url,data)

点击 Save and Run 以运行 MATLAB Analysis App 中的 MATLAB 代码。Output 部分显示以下输出:

response =
                id: 1333835
    command_string: 'CLOSEDOOR'
          position: 11
       executed_at: []
        created_at: '2016-04-15T14:50:53Z'

命令 'CLOSEDOOR' 现在关闭启用了 Wi-Fi 的门。

将 TalkBack App 命令编写为 JSON 对象

或者,您可以将命令作为 JSON 对象写入 TalkBack App。创建一个结构,其中的字段是您的 TalkBack 键和命令。使用 weboptions 作为 'application/json' 指定媒体类型。

data = struct('api_key',TalkBack_apikey,'command_string','CLOSEDOOR');
options = weboptions('MediaType','application/json');
response = webwrite(url,data,options)

点击 Save and Run 以运行 MATLAB Analysis App 中的 MATLAB 代码。Output 部分显示以下输出:

response = 
                id:1334587
    command_string:'CLOSEDOOR'
          position: 12
       executed_at: []
        created_at:'2016-04-15T17:45:31Z'

命令 'CLOSEDOOR' 现在关闭启用无线网络的门。

另请参阅

(MATLAB) | (MATLAB) | (MATLAB)

主题