在C环境中生成Thingworx REST API命令
我目前正在尝试对Thingworx服务器执行PUT语句以更改属性。是否有人知道如何在C环境中更具体地为Arduino UNO执行此操作 您可以使用,以便通过以太网或wifi屏蔽从Arduino向Thingworx服务器进行RESTful API调用 以下是一个示例(以太网)实现,供您参考:在C环境中生成Thingworx REST API命令,c,rest,arduino,thingworx,C,Rest,Arduino,Thingworx,我目前正在尝试对Thingworx服务器执行PUT语句以更改属性。是否有人知道如何在C环境中更具体地为Arduino UNO执行此操作 您可以使用,以便通过以太网或wifi屏蔽从Arduino向Thingworx服务器进行RESTful API调用 以下是一个示例(以太网)实现,供您参考: #include <Ethernet2.h> #include <EthernetClient.h> #include <EthernetUdp2.h> #include
#include <Ethernet2.h>
#include <EthernetClient.h>
#include <EthernetUdp2.h>
#include <util.h>
IPAddress _ip(192, 168, 1, 12); // Client (Arduino) IP address
byte _mac[] = {0x90, 0xA2, 0xDA, 0x11, 0x3C, 0x69}; // Arduino mac address
char _server[] = "192.168.1.10"; // Server IP address
int _port = 9200; // Server port number
EthernetClient _client;
void setup() {
Ethernet.begin(_mac, _ip);
delay(1000);
Serial.print("Local IP: ");
Serial.println(Ethernet.localIP());
if (_client.connect(_server, _port)) {
Serial.println("SUCCESS: Connected to the server!");
} else {
Serial.println("ERROR: Connection failed to the server!");
return;
}
delay(1000);
}
void loop() {
// JSON formatted data package including sample UID and newValue
String payload = "{\"uid\": " + String(uid) + ", " +
"\"data\": " + String(newValue) + "}";
String url = "/my-api/updatedata"; // API url hosted on the server
// Finally, make an API call: PUT request
_client.print("PUT " + url + " HTTP/1.1 \r\n" +
"Content-Type: application/json \r\n" +
"Content-Length: " + payload.length() + " \r\n" +
"\r\n" + payload);
delay(500); // Give the network some time
// Read all the lines of the reply from server and
// print them to Serial to validate your API call
while (_client.available()) {
String reply = _client.readStringUntil('\r');
Serial.print(reply);
}
Serial.println();
}
#包括
#包括
#包括
#包括
ip地址_ip(192、168、1、12);//客户端(Arduino)IP地址
字节_mac[]={0x90,0xA2,0xDA,0x11,0x3C,0x69};//Arduino mac地址
char _server[]=“192.168.1.10”;//服务器IP地址
int _port=9200;//服务器端口号
以太网络客户端;
无效设置(){
以太网。开始(_mac,_ip);
延迟(1000);
串行打印(“本地IP:”);
Serial.println(Ethernet.localIP());
if(_client.connect(_server,_port)){
Serial.println(“成功:连接到服务器!”);
}否则{
Serial.println(“错误:连接到服务器失败!”);
返回;
}
延迟(1000);
}
void loop(){
//JSON格式的数据包,包括示例UID和newValue
字符串有效负载=“{\'uid\”:“+String(uid)+”,”+
“\”数据\“:“+字符串(新值)+”}”;
字符串url=“/my api/updatedata”;//服务器上托管的api url
//最后,进行一个API调用:PUT请求
_client.print(“PUT”+url+“HTTP/1.1\r\n”+
“内容类型:application/json\r\n”+
内容长度:“+payload.Length()+”\r\n+
“\r\n”+有效负载);
延迟(500);//给网络一些时间
//阅读服务器和服务器的所有回复行
//将它们打印到串行以验证API调用
而(_client.available()){
字符串回复=_client.readStringUntil('\r');
连续打印(回复);
}
Serial.println();
}
Thingworx提供了“C Edge SDK”,用于与Thingworx平台通信。SDK提供实用函数(twApi\u WriteProperty
)来读取/写入绑定对象的属性
链接到以下SDK文档: