Arduino无法通过Wi-Fi连接到IBM Watson IoT。我想念什么?

问题描述 投票:0回答:1

我已经花了一些时间,但是没有运气,应该很简单...

我想连接到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();
    }
}

我也改变了代码,但没有提出任何可行的方法。

非常感谢您的帮助。

谢谢!

arduino mqtt iot ibm-watson watson-iot
1个回答
0
投票

查看服务器端,我可以看到最新的错误是由于客户端ID中的空格导致了未经授权的错误。正在使用的clientid为d: slqo8v:Arduino:Sender01,请注意slqo8v之前的空格。

我在您的代码示例中看不到该空格,所以也许它是复制和粘贴中的特殊字符?还是自发布以来代码已更改?

© www.soinside.com 2019 - 2024. All rights reserved.