我正在尝试建立从Amazon Web Service IoT(物联网)到我的Arduino Yun的连接。我遵循了一个关于使用" BasicPubSub"发送和接收消息的教程。 Arduino的例子,但它会说:
Failed to Connect!
-13
这意味着" CONNECT_CREDENTIAL_NOT_FOUND"。我在头文件中有正确的凭据和信息,并且还有正确的文件,它们是:目录中的xxx-certificate.pem.crt,xxx-private.pem.key和root_certificate.pem," / root / certs /",当我通过SSH连接到Arduino Yun时。以下是我的头文件:
#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 Yun没有识别目录中的文件" / root / certs /"凭据将连接到AWS IoT的位置。请帮我解决这个问题。提前谢谢。
答案 0 :(得分:0)
对于遇到此问题的其他人,我在运行基于ThingSample的以前工作的代码时遇到了这个问题。使用最新的api(2.1.0),从我可以解决的问题看来,放置certs文件夹的地方已经改变了。该文件夹应位于/ root / AWS-IoT-Python-Runtime / runtime / certs中。不幸的是,安装脚本没有将证书放在该文件夹中。