2017-05-24 24 views
1

私はESP8266にプログラムして、リスニングメッセージを保持するために1つのトピックを購読しました。これは、IBM Iotノードにメッセージを注入するグラフィカルな図です。メッセージがIBM BluemixのESP8266に公開されていません

enter image description here

これはこれは、IBM IOTノードの私の設定で注入ビューの私の設定

enter image description here

です。ここで

enter image description here

シリアルモニタで私のログです、それが接続されており、これまでのところは良い、私は私のIBMへのメッセージを注入しようとしていた場合

enter image description here

チャネルCMDに加入していますIotノードでは、シリアルモニタには到達せず、ログオンデバッグビューもないため、メッセージをパブリッシュしません。ここにあなたがここ

enter image description here

を見ることができるソースコードは次のとおりです。

#include <ESP8266WiFi.h> 
#include <PubSubClient.h> // https://github.com/knolleary/pubsubclient/releases/tag/v2.3 

const char* ssid = "shiv"; 
const char* password = "[email protected]"; 

#define ORG "2kafk4" 
#define DEVICE_TYPE "ESP8266" 
#define DEVICE_ID "5CCF7FEED6F0" 
#define TOKEN "[email protected]*mGkb_" 

char server[] = ORG ".messaging.internetofthings.ibmcloud.com"; 
char topic[] = "iot-2/cmd/test/fmt/String"; 
char authMethod[] = "use-token-auth"; 
char token[] = TOKEN; 
char clientId[] = "d:" ORG ":" DEVICE_TYPE ":" DEVICE_ID; 

WiFiClient wifiClient; 

void callback(char* topic, byte* payload, unsigned int payloadLength) { 
    Serial.print("callback invoked for topic: "); Serial.println(topic); 

    for (int i = 0; i < payloadLength; i++) { 
    Serial.print((char)payload[i]); 
    } 
} 
PubSubClient client(server, 1883, callback, wifiClient); 

void setup() { 
    Serial.begin(115200); 
    Serial.println(); 
    wifiConnect(); 
    mqttConnect(); 
} 

void loop() { 
    if (!client.loop()) { 
    mqttConnect(); 
    } 
} 

void wifiConnect() { 
    Serial.print("Connecting to "); Serial.print(ssid); 
    WiFi.begin(ssid, password); 
    while (WiFi.status() != WL_CONNECTED) { 
    delay(500); 
    Serial.print("."); 
    } 
    Serial.print("nWiFi connected, IP address: "); Serial.println(WiFi.localIP()); 
} 

void mqttConnect() { 
    if (!client.connected()) { 
    Serial.print("Reconnecting MQTT client to "); Serial.println(server); 
    while (!client.connect(clientId, authMethod, token)) { 
     Serial.print("."); 
     delay(500); 
    } 
    initManagedDevice(); 
    Serial.println(); 
    } 
} 

void initManagedDevice() { 
    if (client.subscribe(topic)) { 
    Serial.println("subscribe to cmd OK"); 
    } else { 
    Serial.println("subscribe to cmd FAILED"); 
    } 
} 

私はcfコマンドを使用してクラウドファウンドリログを確認しようとした、ここではそれがhttps://pastebin.com/dfMaS1Gd

で、誰もが何を私は私のヒントができます間違っている?前もって感謝します。

+0

@valerielampkinご存知ですか? –

+0

IoTinノードには何がありますか?私はデフォルトで、文字列ではなくjsonを期待していると思います。 – ValerieLampkin

+0

私は1つのチュートリアルに出くわしました、彼らは文字列の例を取っ​​た。とにかく、{"name": "williams"}のようにJSONをhttps://i.stack.imgur.com/hFbIa.pngに挿入し、IOTノードの形式をjsonに変更します。私はそれがあなたが意味することを願っています –

答えて

1

ノードタイプでデバイスタイプが正しく指定されていることを確認します。現在のところ、スクリーンショットには登録したデバイスのタイプと一致していない0.16.2と、コードで指定されているものが表示されます。

+0

@ nop77svkどのように?これは私の答えと思われる!! –

+0

あなたはそうです。すみません、私の間違いです。 – nop77svk

関連する問題