Я пытался сделать это учебное пособие: https://developer.ibm.com/recipes/tutorials/arduino-nano-ethernet-shield-and-iot/.
Я сделал каждый шаг, но мой Arduino nano не подключен. На приборной панели Состояние подключения устройства отключено, а на последовательном мониторе у меня появляются сообщения Arduino MQTT v, 1, 2, Переподключение клиента ...
Мой код указан ниже.
#include <UIPEthernet.h>
#include <PubSubClient.h>
// Update these with values suitable for your network.
byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 200 }; //put your device’s local ip here DA
EthernetClient ethClient;
//char servername[]=”1jyf9u.messaging.internetofthings.ibmcloud.com”;
char servername[] = { 141, 125, 70, 157 };
PubSubClient client(servername, 1883, 0, ethClient);
void setup()
{
Serial.begin(9600);
Serial.println("Arduino MQTT v, 1, 2");
Ethernet.begin(mac, ip);
}
void loop()
{
//client.loop();
char clientStr[33];
String clientName = String("d:1jyf9u:my_nano_type:my_nano_id");
clientName.toCharArray(clientStr, 33);
char token[] = "6q_n@g@HjUyQJEv6Nx";
while (!client.connected()) {
Serial.println("Reconnecting client … ");
client.connect(clientStr, "use - token - auth", token);
}
String data = "{\"d\": {\"TEST\" : \"";
data += random(10);
data += "\" } } " ;
char jsonStr[33];
data.toCharArray(jsonStr, 33);
char topicStr[33];
String topicName = String("iot - 2 / evt / status / fmt / json");
topicName.toCharArray(topicStr, 33);
Serial.print("attempt to send ");
Serial.print(jsonStr);
Serial.print(" to ");
Serial.println(topicStr);
if (client.publish(topicStr, jsonStr))
Serial.println("successfully sent");
else
Serial.println("unsuccessfully sent");
Serial.println("Disconnecting client … ");
client.disconnect();
delay(5000);
}
У меня естьпопытался изменить правило по умолчанию на TLS необязательно. Кроме того, я попытался изменить порт на 8883 и установить правило по умолчанию на TLS с аутентификацией токенов, но ни один из них не удался.
Есть идеи / предложения?