使用 MATLAB 的 TalkBackApp 对命令进行排队
TalkBack 使任何设备能够按照排队的命令采取行动。此示例展示了如何使用 MATLAB® 中的 TalkBack App 以及内置 MATLAB 函数(例如 webread 和 webwrite)对命令进行排队。例如,如果您有一扇带有无线网络和运动传感器的门,您可以排队命令来打开和关闭门。当门感应到附近有人时,就打开门。经过指定时间后,关门。在 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' 现在关闭启用无线网络的门。
另请参阅
webread (MATLAB) | webwrite (MATLAB) | weboptions (MATLAB)