Jetson_nano,AWS_IOT实践

Jetson_nano连接AWS_IOT

一:Jetson_nano刷机

二:Jeton_nano安装 AWS IoT Greengrass Core 软件

三:AWS_IOT控制台设置

四:代码实现

最近试了一下jetson_nano如何跟AWS_iot进行连接和设置。发现坑真的是太多了。

首先官方博客的AI-iot的连接很多链接已经用不了,也下不了文件。

jetson_nano的原装python是3.6.9版本。lambda功能是3.7才能在组的订阅中显示。-----等一个大佬求教.python3.7和3.6混装的话就很不理智,所以不推荐。

一:Jetson_nano刷机

https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit官方教程,照着来就是了。没什么好说的

二:Jeton_nano安装 AWS IoT Greengrass Core 软件

这些安装包在官方里面,文档又多,很容易把自己搞蒙,搞不懂到底用哪个sdk。在此记录一下

1.下载Greengrass

https://docs.aws.amazon.com/zh_cn/greengrass/latest/developerguide/what-is-gg.html?icmpid=docs_gg_console#gg-core-download-tab

jetson_nano是arrch64架构的,则下载AWS IoT Greengrass 下载的v1.10版本(jetson_nano上)

2.创建Greengrass user和group

terminal中运行命令:

$ sudo adduser --system ggc_user

$ sudo addgroup --system ggc_group

3.解压缩上面下载的软件和步骤3中下载好的证书

hash:是你下载证书的前缀

$ sudo tar -xzvf greengrass-linux-aarch64-1.10.0.tar.gz -C /

$ sudo tar -xzvf -setup.tar.gz -C /greengrass

进入到指定目录中下载AWS ATS 终端根证书(CA):

$ cd /greengrass/certs/

$ sudo wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem

4.启动Greengrass Core在我们的Jetson Nano上:

$ cd /greengrass/ggc/core/$ sudo ./greengrassd start

##返回

Greengrass successfully started with PID: XXXX

三:AWS_IOT控制台设置

1.打开iot的控制台,选择组,创建一个新的组

输入自己的组名,核心名,最后创建组和核心

下载所有证书和秘钥

2.由于lambda函数要用python3.7才能执行,而jetson_nano默认环境是3.6,所以,并不打算用lambada去执行代码。

3.为组添加设备。

进入组中选择所创建的组,设备中,添加第一个设备。

因为创建完组,会有一个默认的设备,所以选择现有的IOT物品(这里官方文档又去新建了一个设备,那我们弄的那个证书就没用了,记住一个设备对应一个证书。)

点击完成

4.添加订阅

进入组后,选择订阅,选择源为上面添加的设备,目标为IOT Cloud,主题为hello/word/pubsub

四:代码实现

1.下载github:

https://github.com/aws/aws-iot-device-sdk-python

git clone https://github.com/aws/aws-iot-device-sdk-python.git

cd aws-iot-device-sdk-python

python setup.py install

-e *****.iot.us-east-1.amazonaws.com 终端节点,在iot界面中的设置中能看到

-r pubcerts/root-ca.pem

解压出来的证书文件路径

-c pubcerts/3ed88f606a.cert.pem

解压出来的证书文件路径

-c pubcerts/3ed88f606a.cert.pem

解压出来的证书文件路径

k pubcerts/3ed88f606a.private.key

解压出来的证书文件路径

-n HelloWorld_Publisher

自己的设备名字

-m publish

模式(不用修改)

-t hello/world/pubsub

发送到的主题

-M “Hellow, I am Publisher”

内容

以上参数要自行修改,否则后面部署成功了,订阅也收不到信息

cd sample/greengrass

sudo python basicDiscovery.py  -e *****.iot.us-east-1.amazonaws.com -r pubcerts/root-ca.pem  -c pubcerts/3ed88f606a.cert.pem -k pubcerts/3ed88f606a.private.key  -n HelloWorld_Publisher -m publish -t hello/world/pubsub -M "Hellow, I am Publisher"

启动成功后,会不断的发送消息。

Published topic hello/world/pubsub: {"message": "Hellow, I am Publisher", "sequence"

2.进入组内部署就好了,如果不成功,请自行看部署报错原因。

部署前记得下载JAVA8,否则部署会报错。

sudo apt install openjdk-8-jdk

3.测试:

进入iot控制台,测试–>订阅主题–>填写订阅主题–>订阅主题即可.

这样就可以看到Core上面发过来的内容啦。

个人认为,Jetson_nano如果用来做为训练和做模型,可能有点太慢了,用来做推理然后将消息发送出来应该还是不错的一个方案。

————————————————

原文链接:https://blog.csdn.net/qq_33902817/article/details/106719061

你可能感兴趣的:(Jetson_nano,AWS_IOT实践)