2016-03-28 17 views
0

verwende Ich versuche, eine Verbindung von Amazon Web Service IoT (Internet der Dinge) zu meinem Arduino Yun herzustellen. Ich folgte ein Tutorial über das Senden und Empfangen von Nachrichten „BasicPubSub“ Arduino Beispiel verwenden, aber es würde sagen:Konnte AWS IoT mit Arduino Yun nicht verbinden, indem ich Basic Pub/Sub Beispiel

Failed to Connect! 
-13 

Und das bedeutet „CONNECT_CREDENTIAL_NOT_FOUND“. Ich habe die richtigen Anmeldeinformationen und Informationen in der Header-Datei und auch die richtigen Dateien, die sind: xxx-certificate.pem.crt, xxx-private.pem.key und root_certificate.pem in einem Verzeichnis, "/ root/certs/", wenn ich in den Arduino Yun SSH. Hier finden Sie meine Header-Datei:

#ifndef config_usr_h 
#define config_usr_h 

// Copy and paste your configuration into this file 
//=============================================================== 
#define AWS_IOT_MQTT_HOST "xxx.iot.us-east-1.amazonaws.com" // endpoint 
#define AWS_IOT_MQTT_PORT 8883 
#define AWS_IOT_CLIENT_ID "client_id" // client ID 
#define AWS_IOT_MY_THING_NAME "thing_name" // thing name 
#define AWS_IOT_ROOT_CA_FILENAME "root_certificate.pem" // root-CA filename 
#define AWS_IOT_CERTIFICATE_FILENAME "xxx-certificate.pem.crt"     // your certificate filename 
#define AWS_IOT_PRIVATE_KEY_FILENAME "xxx-private.pem.key" // private key 
//=============================================================== 
// SDK config, DO NOT modify it 
#define AWS_IOT_PATH_PREFIX "../certs/" 
#define AWS_IOT_ROOT_CA_PATH AWS_IOT_PATH_PREFIX AWS_IOT_ROOT_CA_FILENAME   // use this in config call 
#define AWS_IOT_CERTIFICATE_PATH AWS_IOT_PATH_PREFIX AWS_IOT_CERTIFICATE_FILENAME // use this in config call 
#define AWS_IOT_PRIVATE_KEY_PATH AWS_IOT_PATH_PREFIX AWS_IOT_PRIVATE_KEY_FILENAME // use this in config call 

#endif 

Also mein Problem ist, dass das Arduino Yun ist nicht die Dateien in dem Verzeichnis zu erkennen „/ root/certs /“, wo die Anmeldeinformationen sind auf AWS IoT zu verbinden. Bitte helfen Sie mir zu diesem Thema. Vielen Dank im Voraus.

+0

Fehlercode -13 ist CONNECT_CREDENTIAL_NOT_FOUND. Vielleicht platzieren Sie die Zertifikate an einem falschen Ort oder die Namen stimmen nicht mit den obigen Codes überein? – leonard

Antwort

0

Für jeden anderen, der dies trifft, habe ich das gerade bei der Ausführung eines zuvor funktionierenden Bitcodes auf der Grundlage des ThingSample festgestellt. Mit dem neusten API (2.1.0), von dem ich herausarbeiten kann, scheint es, dass sich der Ort, an dem sich der Ordner certs befindet, geändert hat. Der Ordner sollte sich in/root/AWS-IoT-Python-Runtime/runtime/certs befinden. Das Setup-Skript hat die Zertifikate leider nicht in diesen Ordner gestellt.