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
进入到指定目录中下载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