Hello guys,
I have nRF9160DK board here with me and the nRF Connect SDK v1.3.0 environment installed. I want to connect to AWS IoT Thing through the MQTT connection.
I used cloud_client example and your documentation from here as a starting point. My AWS IoT device is properly created on the AWS account and certificates are downloaded into nRF0160DK. In addition to that, here is how I modified my prj.conf and Kconfig files of the cloud_client example.
prj.conf:
# # Copyright (c) 2020 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-BSD-5-Clause-Nordic # # General config CONFIG_NEWLIB_LIBC=y CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y CONFIG_RESET_ON_FATAL_ERROR=n CONFIG_NCS_SAMPLES_DEFAULTS=y # Log level # For more verbose and detailed log output, set the log level to # CONFIG_CLOUD_CLIENT_LOG_LEVEL_DBG=y instead. CONFIG_CLOUD_CLIENT_LOG_LEVEL_INF=y # Network CONFIG_NETWORKING=y CONFIG_NET_NATIVE=n CONFIG_NET_SOCKETS=y CONFIG_NET_SOCKETS_OFFLOAD=y # LTE link control CONFIG_LTE_LINK_CONTROL=y CONFIG_LTE_NETWORK_MODE_LTE_M=y CONFIG_LTE_AUTO_INIT_AND_CONNECT=n # BSD library CONFIG_BSD_LIBRARY=y # DK CONFIG_DK_LIBRARY=y # AT commands interface CONFIG_UART_INTERRUPT_DRIVEN=y CONFIG_AT_HOST_LIBRARY=y # Generic cloud API CONFIG_CLOUD_API=y # nRF Cloud CONFIG_NRF_CLOUD=n # AWS IoT CONFIG_AWS_IOT=y # Heap and stacks # Extended memory heap size needed for encoding nRF Cloud messages to JSON CONFIG_HEAP_MEM_POOL_SIZE=8192 CONFIG_MAIN_STACK_SIZE=4096 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
Kconfig:
#
# Copyright (c) 2020 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-BSD-5-Clause-Nordic
#
menu "Cloud Client Sample Settings"
config CLOUD_BACKEND
string "String that selects the cloud backend to be used"
default "AWS_IOT"
config AWS_IOT_BROKER_HOST_NAME
string "AWS IoT MQTT broker hostname"
default "xxxxxxxxxx.amazonaws.com"
help
Default is set to be the nRF Cloud MQTT broker.
config AWS_IOT_CLIENT_ID_STATIC
string "Client ID"
default "nrf-IMEI"
config AWS_IOT_SEC_TAG
int "Security tag for TLS credentials"
default 168xxxxx
config MQTT_BROKER_PORT
int "AWS IoT MQTT broker port"
default 8883
config CLOUD_MESSAGE
string "Custom message published periodically to cloud"
default "{\"state\":{\"reported\":{\"message\":\"Hello Internet of Things!\"}}}"
config CLOUD_MESSAGE_PUBLICATION_INTERVAL
int "How often the custom message should be published to cloud, in seconds"
default 10
choice
prompt "Cloud Publication Trigger"
default CLOUD_PUBLICATION_BUTTON_PRESS
config CLOUD_PUBLICATION_BUTTON_PRESS
bool "Trigger publication to cloud upon a button press"
config CLOUD_PUBLICATION_SEQUENTIAL
bool "Sequential publication to cloud set by the CONFIG_MESSAGE_PUBLICATION_INTERVAL option"
endchoice
config POWER_SAVING_MODE_ENABLE
bool "Request PSM from cellular network"
endmenu
module = CLOUD_CLIENT
module-str = Cloud client
source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"
menu "Zephyr Kernel"
source "Kconfig.zephyr"
endmenu
However, when I try to connect to the cloud I get the following error messages:
E: mqtt_connect, error: -116 E: Failed to connect to cloud, error: -10
Is there anything I am missing here?
An interesting thing is that a few months ago, with ncs v1.1.0 or v1.2.0 I was able to connect to the AWS IoT Cloud by using the same approach (see this thread).
Thanks in advance for your time and efforts.
Sincerely,
Bojan.