2017-01-08 2 views
0

C'est le code qui a été utilisé. L'adresse IP utilisée est sur le même réseau WiFi auquel mon ordinateur portable est connecté. Seul le dernier chiffre est différent.Je n'arrive pas à me connecter à ibm bluemix

#include <Ethernet.h> 
#include<SPI.h> 
#include <PubSubClient.h> 

byte mac[] = { 0x12, 0xED, 0xBA, 0xFE, 0x2E, 0xED }; 
String macstr="12edbafe2eed"; 
byte ip[] = {192,16,1,1}; 
EthernetClient ethClient; 

char servername[]="99elnd.messaging.internetofthings.ibmcloud.com"; 
PubSubClient client(servername, 1883,ethClient); 

    void setup() 
{ 
Serial.begin(9600); 
Serial.println("Arduino MQTT v.1.2"); 
Ethernet.begin(mac,ip); 
} 

void loop() 
{ 
char clientStr[33]; 
String clientName = String("d:99elnd:arduno_mitul:12edbafe2ee2"); 
clientName.toCharArray(clientStr,33); 
char token[] = "mituliot7450"; 
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); 
      } 

Les impressions du moniteur série:

Arduino MQTT v.1.2 
Reconnecting client … 
Reconnecting client … 
Reconnecting client … 
Reconnecting client … 
Reconnecting client … 
+2

Bienvenue sur stackoverflow. Votre question peut être marquée pour la fermeture car elle ne répond probablement pas aux critères de stackoverflow. Voir ici pour plus d'informations http://stackoverflow.com/help/asking –

+0

Vous ne voyez pas "Arduino MQTT v.1.2" dans votre sortie, selon votre Serial.println? Je n'ai pas envie de tester ça mais je me débarrasserais des espaces/onglets avant la configuration de void(). – amadain

+0

Désolé pour une information erronée. Il est affiché –

Répondre

0

Il est légèrement étrange que vous utilisiez 192,16,1,1 comme IP. Généralement x.x.x.1 est la passerelle par défaut pour un réseau donné. Si tel est le cas sur votre réseau, il y aura un conflit d'adresse IP et votre appareil n'aura pas de connectivité Internet. Cela semble être le cas car les informations d'identification de votre esquisse fonctionnent, mais il n'existe aucun enregistrement de ce périphérique qui ait jamais tenté de se connecter avant mes tests.

Vous pouvez utiliser DHCP à la place qui est probablement plus portable comme dans l'exemple de client Bonjour tout le monde ici:

http://www.tweaking4all.com/hardware/arduino/arduino-ethernet-data-pull/

ou essayez d'utiliser l'adresse IP de votre ordinateur portable (tout ce qui est déconnecté bien sûr) si En effet, votre ordinateur portable utilise également l'affectation IP statique. J'ai découvert que, si la passerelle et le serveur DHCP sont un seul et même périphérique, ils ne redirigeront pas le trafic vers une adresse IP non fournie via DHCP, même s'il s'agit d'une adresse IP valide et inutilisée. Vous devez limiter la plage d'adresses que le serveur DHCP peut afficher afin de libérer certaines adresses à utiliser en affectation statique.

0

On dirait que vous êtes peut-être passer le jeton mauvais pour l'authentification - je vois des erreurs d'authentification dans le journal Watson-IdO. Veuillez confirmer que vous transmettez le jeton d'authentification correct qui a été généré lors de l'enregistrement de l'appareil.

+0

Merci et je vais essayer encore une fois. –

+0

J'ai changé l'identifiant de l'appareil et ai donné le jeton correct. Mais toujours la même réponse. L'ID de l'appareil est: feeddeadbafe @ValerieLampkin –