Невозможно подключить Arduino к платформе IBM IoT - PullRequest
0 голосов
/ 06 ноября 2019

Я пытался сделать это учебное пособие: 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 с аутентификацией токенов, но ни один из них не удался.

Есть идеи / предложения?

...