前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[ 物联网篇 ] aws-iot-device-sdk-embedded-C Demo 测试

[ 物联网篇 ] aws-iot-device-sdk-embedded-C Demo 测试

作者头像
程序手艺人
发布2019-02-20 17:23:06
1.8K0
发布2019-02-20 17:23:06
举报
文章被收录于专栏:程序手艺人程序手艺人

aws-iot-devices-sdk 是亚马逊针对物联网推出的一套解决方案,这里主要记录如何初步跑起来。

官方文档写的已经足够详细了,一定要看官网最新的英文版,看文档过程中,发现中文版已经落后很久了。

可以对比下AWS IoT SDK Tutorials,英文和中文描述就相差很大。 这里以英文版为主。

添加设备

这里主要登录AWS IoT添加一个设备,官方英文文档中的Connecting Your Raspberry Pi to AWS IoT写的已经很详细了,这里就不再复述,注册完成之后的界面:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注册过程中需要下载公钥和密钥

在这里插入图片描述
在这里插入图片描述

rootCA需要单独复制出来保存为rootCA.crt,选择图中高亮的CA即可

在这里插入图片描述
在这里插入图片描述
示例编译运行

下载源代码

代码语言:javascript
复制
git clone https://github.com/aws/aws-iot-device-sdk-embedded-C.git -b release

编译源代码之前,需要安装CppUTestMbedtls第三方库,只需要把官方的源码复制到aws-iot-device-sdk-embedded-C/external_libs/ 对应的额目录即可

代码语言:javascript
复制
mbedtls 解压源码复制到aws-iot-device-sdk-embedded-C/external_libs/mbedTLS
https://tls.mbed.org/download/start/mbedtls-2.11.0-apache.tgz

cpputest 解压源码复制到aws-iot-device-sdk-embedded-C/external_libs/CppUTest
https://github.com/cpputest/cpputest/releases/tag/v3.6

拷贝aws iot 后台创建设备时生成的证书到 aws-iot-device-sdk-embedded-C/certs

代码语言:javascript
复制
//证书如下
 certs git:(release) ✗ >ls 
47e9f5f0d6-certificate.pem.crt  47e9f5f0d6-private.pem.key  47e9f5f0d6-public.pem.key  README.txt  rootCA.crt

这里以samples/linux/subscribe_publish_sample为例,编译之前,需要修aws_iot_config.h的配置,主要修改如下字段

代码语言:javascript
复制
// =================================================
#define AWS_IOT_MQTT_HOST              "a317ak53zstmeq-ats.iot.us-east-1.amazonaws.com" ///< Customer specific MQTT HOST. The same will be used for Thing Shadow
#define AWS_IOT_MQTT_PORT              443 ///< default port for MQTT/S
#define AWS_IOT_MQTT_CLIENT_ID         "c-sdk-client-id" ///< MQTT client ID should be unique for every device
#define AWS_IOT_MY_THING_NAME 		   "MyRaspberryPI" ///< Thing Name of the Shadow this device is associated with
#define AWS_IOT_ROOT_CA_FILENAME       "rootCA.crt" ///< Root CA file name
#define AWS_IOT_CERTIFICATE_FILENAME   "47e9f5f0d6-certificate.pem.crt" ///< device signed certificate file name
#define AWS_IOT_PRIVATE_KEY_FILENAME   "47e9f5f0d6-private.pem.key" ///< Device private key filename

完成之后,编译成功运行如下:

代码语言:javascript
复制
➜  subscribe_publish_sample git:(release) ✗ >./subscribe_publish_sample 

AWS IoT SDK Version 3.0.1-

DEBUG:   main L#159 rootCA /home/zhaomm/Code/code/aws-iot-device-sdk-embedded-C/samples/linux/subscribe_publish_sample/../../../certs/rootCA.crt
DEBUG:   main L#160 clientCRT /home/zhaomm/Code/code/aws-iot-device-sdk-embedded-C/samples/linux/subscribe_publish_sample/../../../certs/47e9f5f0d6-certificate.pem.crt
DEBUG:   main L#161 clientKey /home/zhaomm/Code/code/aws-iot-device-sdk-embedded-C/samples/linux/subscribe_publish_sample/../../../certs/47e9f5f0d6-private.pem.key
Connecting...
DEBUG:   iot_tls_connect L#130 
  . Seeding the random number generator...
DEBUG:   iot_tls_connect L#138   . Loading the CA root certificate ...
DEBUG:   iot_tls_connect L#144  ok (0 skipped)

DEBUG:   iot_tls_connect L#146   . Loading the client cert. and key...
DEBUG:   iot_tls_connect L#159  ok

DEBUG:   iot_tls_connect L#161   . Connecting to a317ak53zstmeq-ats.iot.us-east-1.amazonaws.com/8883...
DEBUG:   iot_tls_connect L#180  ok

DEBUG:   iot_tls_connect L#182   . Setting up the SSL/TLS structure...
DEBUG:   iot_tls_connect L#223 

SSL state connect : 0 
DEBUG:   iot_tls_connect L#226  ok

DEBUG:   iot_tls_connect L#228 

SSL state connect : 0 
DEBUG:   iot_tls_connect L#229   . Performing the SSL/TLS handshake...
DEBUG:   _iot_tls_verify_cert L#49 
Verify requested for (Depth 2):

DEBUG:   _iot_tls_verify_cert L#51 cert. version     : 3
serial number     : 06:6C:9F:CF:99:BF:8C:0A:39:E2:F0:78:8A:43:E6:96:36:5B:CA
issuer name       : C=US, O=Amazon, CN=Amazon Root CA 1
subject name      : C=US, O=Amazon, CN=Amazon Root CA 1
issued  on        : 2015-05-26 00:00:00
expires on        : 2038-01-17 00:00:00
signed using      : RSA with SHA-256
RSA key size      : 2048 bits
basic constraints : CA=true
key usage         : Digital Signature, Key Cert Sign, CRL Sign

DEBUG:   _iot_tls_verify_cert L#54   This certificate has no flags

DEBUG:   _iot_tls_verify_cert L#49 
Verify requested for (Depth 1):

DEBUG:   _iot_tls_verify_cert L#51 cert. version     : 3
serial number     : 06:7F:94:57:85:87:E8:AC:77:DE:B2:53:32:5B:BC:99:8B:56:0D
issuer name       : C=US, O=Amazon, CN=Amazon Root CA 1
subject name      : C=US, O=Amazon, OU=Server CA 1B, CN=Amazon
issued  on        : 2015-10-22 00:00:00
expires on        : 2025-10-19 00:00:00
signed using      : RSA with SHA-256
RSA key size      : 2048 bits
basic constraints : CA=true, max_pathlen=0
key usage         : Digital Signature, Key Cert Sign, CRL Sign

DEBUG:   _iot_tls_verify_cert L#54   This certificate has no flags

DEBUG:   _iot_tls_verify_cert L#49 
Verify requested for (Depth 0):

DEBUG:   _iot_tls_verify_cert L#51 cert. version     : 3
serial number     : 06:66:B4:8C:67:DF:2F:E7:A9:A2:26:55:3E:71:EE:24
issuer name       : C=US, O=Amazon, OU=Server CA 1B, CN=Amazon
subject name      : CN=*.iot.us-east-1.amazonaws.com
issued  on        : 2018-08-02 00:00:00
expires on        : 2019-08-02 12:00:00
signed using      : RSA with SHA-256
RSA key size      : 2048 bits
basic constraints : CA=false
subject alt name  : iot.us-east-1.amazonaws.com, *.iot.us-east-1.amazonaws.com
key usage         : Digital Signature, Key Encipherment
ext key usage     : TLS Web Server Authentication, TLS Web Client Authentication

DEBUG:   _iot_tls_verify_cert L#54   This certificate has no flags

DEBUG:   iot_tls_connect L#246  ok
    [ Protocol is TLSv1.2 ]
    [ Ciphersuite is TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 ]

DEBUG:   iot_tls_connect L#248     [ Record expansion is 29 ]

DEBUG:   iot_tls_connect L#253   . Verifying peer X.509 certificate...
DEBUG:   iot_tls_connect L#262  ok

DEBUG:   iot_tls_connect L#272   . Peer certificate information    ...

DEBUG:   iot_tls_connect L#274       cert. version     : 3
      serial number     : 06:66:B4:8C:67:DF:2F:E7:A9:A2:26:55:3E:71:EE:24
      issuer name       : C=US, O=Amazon, OU=Server CA 1B, CN=Amazon
      subject name      : CN=*.iot.us-east-1.amazonaws.com
      issued  on        : 2018-08-02 00:00:00
      expires on        : 2019-08-02 12:00:00
      signed using      : RSA with SHA-256
      RSA key size      : 2048 bits
      basic constraints : CA=false
      subject alt name  : iot.us-east-1.amazonaws.com, *.iot.us-east-1.amazonaws.com
      key usage         : Digital Signature, Key Encipherment
      ext key usage     : TLS Web Server Authentication, TLS Web Client Authentication


Subscribing...
-->sleep
Subscribe callback
sdkTest/sub	hello from SDK QOS0 : 0 
Subscribe callback
sdkTest/sub	hello from SDK QOS1 : 1 
-->sleep

进入亚马逊IOT云端提供的测试页面

双方订阅一样的消息

在这里插入图片描述
在这里插入图片描述

客户端和云端实际通讯的界面

在这里插入图片描述
在这里插入图片描述
参考
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年12月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 添加设备
  • 示例编译运行
    • 参考
    相关产品与服务
    物联网
    腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档