2016-03-28 9 views
0

Amazon Web Service IoT(Internet of Things)からArduino Yunへの接続を確立しようとしています。私は「BasicPubSub」Arduinoの例を使用してメッセージの送受信についてのチュートリアルに従ったが、それは言う: AWS IoTをArduino YunにBasic Pub/Subの例を使用して接続できません

Failed to Connect! 
-13 
を、これは「CONNECT_CREDENTIAL_NOT_FOUND」を意味します。私は正しい資格情報とヘッダーファイル内の情報を持っており、xxx-certificate.pem.crt、xxx-private.pem.key、およびroot_certificate.pemというディレクトリにある正しいファイルも持っています。 "/ root/certs/"、私がArduino YunにSSHするとき。以下は、私のヘッダファイルです:

#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 

だから私の問題は、Arduinoのユンは、ディレクトリ内のファイルの資格情報は、AWSのIoTに接続するためにある「/ルート/ certsのを/」認識されていないということです。この問題について私を助けてください。前もって感謝します。

+0

エラーコード-13はCONNECT_CREDENTIAL_NOT_FOUNDです。証明書を間違った場所に置いたり、名前が上記のコードと一致しない場合がありますか? – leonard

答えて

0

これに当る他の人にとっては、ThingSampleに基づいて以前に動作していたビットのコードを実行しているときにこれが発生しました。最新のapi(2.1.0)では、私が解決できることから、certsフォルダを置く場所が変更されたようです。フォルダは/ root/AWS-IoT-Python-Runtime/runtime/certsになければなりません。セットアップスクリプトは、残念ながらそのフォルダにcertsを入れていませんでした。