消息未从IBM Bluemix发布到ESP8266
我已编程到我的ESP8266并订阅了一个话题以继续收听消息。这是将消息注入IBM Iot节点的图形视图。消息未从IBM Bluemix发布到ESP8266
这是我的观点注入
这是我的IBM物联网节点的设置的设置。
这里是我的日志在串行监视器,它是连接和订阅命令通道
到目前为止好,当我试图注入消息给我的IBM Iot节点,那么它不会发布消息,因为它没有到达串行监视器,也没有登录调试视图。在这里你可以看到
这里是源代码:
#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
命令Cloud Foundry的日志,这是https://pastebin.com/dfMaS1Gd
谁能暗示我什么,我我做错了吗?提前致谢。
确认在您的节点配置中正确指定了设备类型。目前屏幕截图显示0.16.2,它似乎与您注册的设备类型和您的代码中指定的设备类型不匹配。
@ nop77svk如何?这似乎是对我的回答! –
你说得对。抱歉,是我的错。 – nop77svk
@valerielampkin你有什么想法吗? –
你对IoTin节点有什么要求?我认为默认情况下,期望JSON,而不是字符串。 – ValerieLampkin
我遇到过一个教程,他们拿了一个字符串的例子。无论如何,我将在这里注入JSON https://i.stack.imgur.com/hFbIa.png,像{“name”:“williams”},并将IOT节点的格式更改为json。我希望这是你的意思 –