我已经花了一些时间,但是没有运气,应该很简单...
我想连接到Watson平台并从MKR1000 Arduino发送事件(一些文本)。
由于没有连接到云,所以我遇到了第一个障碍。
他们在网上获得的信息非常好,现在让我阅读了一两天!
如果我能再看一眼,那就太好了。
WiFi连接本身正常,因为我在其他代码上运行它以确认正常。另外,我收到一个“?”到串行监视器,因此假设它是云连接而不是wifi。
void connect() {
Serial.print("checking wifi...");
while (WiFi.status() != WL_CONNECTED) {
Serial.print("!");
delay(1000);
}
Serial.print("\nconnecting...");
while (!client.connect("d:slqo8v:Arduino:Sender01","use-token-auth","<as
on the hub>")) {
Serial.print("?");
delay(1000);
}
Serial.println("\nconnected!");
}
我已将云上的安全设置降低为TLS可选。我已经三遍检查了登录详细信息。
大部分代码如下,我不愿意将其全部发布,因为它说不粘贴整个代码,但我认为我的经验不足以使它像放错位置的支架那样琐碎。
显示给我的例子就像
client.connect("clientID", "username", "password")
IBM Bluemix
clientID = "d:<slqo8v>:<Arduino>:<Sender01>"
username is aways: "use-token-auth"
password is: Token auth provided by Bluemix
Example:
client.connect("d:iqwckl:arduino:oxigenarbpm","use-token-auth","90wT2?a*1WAMVJStb1")
我已复制为..
Serial.print("\nconnecting...");
while (!client.connect("d:slqo8v:Arduino:Sender01","use-token-
auth","as provided online")) {
Serial.print("?");
delay(1000);
}
Serial.println("\nconnected!");
}
void setup() {
Serial.begin(9800);
WiFi.begin("", "");
client.begin("slqo8v.messaging.internetofthings.ibmcloud.com", 1883, net);
connect();
}
void loop() {
client.loop();
if (!client.connected()) {
connect();
}
}
我也改变了代码,但没有提出任何可行的方法。
非常感谢您的帮助。
谢谢!
查看服务器端,我可以看到最新的错误是由于客户端ID中的空格导致了未经授权的错误。正在使用的clientid为d: slqo8v:Arduino:Sender01
,请注意slqo8v之前的空格。
我在您的代码示例中看不到该空格,所以也许它是复制和粘贴中的特殊字符?还是自发布以来代码已更改?