【Jetson Nano】使用python3模拟向阿里云发送数据

使用python3模拟向阿里云发送数据

参考文章

  主要目的是为了实现当Nano板部署AI模型识别出对应的结果时,可以将识别出的结果上传至云平台,目前先适应一下Nano板连云的过程

阿里云准备

1.登入阿里云物联网平台

在这里插入图片描述

2.产品创建流程

  点击进入公共实例,在产品界面选择快速入门:
在这里插入图片描述
  在弹出的界面选择“开始体验”,之后根据提示注册设备:
在这里插入图片描述
  选择开发包界面,选择Linux,MQTT,Node.js:
在这里插入图片描述
  SDK下载界面里的LInux工具包不使用,但是不下载无法点击下一步,此处点击下载,之后直接点击下一步即可:
在这里插入图片描述
  配置与测试界面无需操作直接点击完成:
在这里插入图片描述
  完成后在产品界面即可看到刚新建的“Nano测试”产品:
在这里插入图片描述
  在设备界面可以看到刚生成的“nano”设备,应该是处于未激活状态,此处因为已经跑成功了所以显示的在线:
在这里插入图片描述
  点击右侧查看即可查看设备的三元素,后面要用:
在这里插入图片描述

3.功能自定义

  在刚刚新建的产品界面,点击查看:
在这里插入图片描述
  选择“功能定义”,点击“编辑草稿”:
在这里插入图片描述
  选择“添加自定义功能”:
在这里插入图片描述
  添加温度、湿度属性如下:
在这里插入图片描述
在这里插入图片描述
  之后一定要点击“发布上线”:
在这里插入图片描述

Jetson Nano准备

1.系统准备,首先烧写系统镜像

英伟达官网下载ubantu18.0.4系统

点击下载

2.检查python3版本

  在终端命令行输入:

python3 --version

  初始装的python版本为3.6.9

3.下载pip工具

sudo apt install python3-pip

4.py文件准备

  通过cd命令进入Desktop目录,在桌面新建一个文件夹aliyun-iot-demo-python:

cd Desktop
mkdir aliyun-iot-demo-python

  之后在该文件夹中下载安装mqtt的SDK:

pip3 install paho-mqtt

  在aliyun-iot-demo-python文件夹内编写一个python脚本:

可通过vim xxx.py的方式新建,之后通过vim的方式输入代码

  此处我为了省事,通过了ssh工具FinalShell远程连接到Nano板上,再在本地新建一个文本文件,复制粘贴下列代码并修改三元素之后,修改后缀名为.py,然后通过拖拽的方式放置到aliyun-iot-demo-python文件下内:

# -*- coding: utf-8 -*-
import paho.mqtt.client as mqtt
import time
import hashlib
import hmac
import random
import json
#这个就是我们在阿里云注册产品和设备时的三元组啦
#把我们自己对应的三元组填进去即可
options = {
'productKey':'你的productKey',
'deviceName':'你的deviceName',
'deviceSecret':'你的deviceSecret',
'regionId':'cn-shanghai'
}

HOST = options['productKey'] + '.iot-as-mqtt.'+options['regionId']+'.aliyuncs.com'
PORT = 1883 
PUB_TOPIC = "/sys/" + options['productKey'] + "/" + options['deviceName'] + "/thing/event/property/post";


# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
# client.subscribe("the/topic")

# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))

def hmacsha1(key, msg):
return hmac.new(key.encode(), msg.encode(), hashlib.sha1).hexdigest()

def getAliyunIoTClient():
timestamp = str(int(time.time()))
CLIENT_ID = "paho.py|securemode=3,signmethod=hmacsha1,timestamp="+timestamp+"|"
CONTENT_STR_FORMAT = "clientIdpaho.pydeviceName"+options['deviceName']+"productKey"+options['productKey']+"timestamp"+timestamp
# set username/password.
USER_NAME = options['deviceName']+"&"+options['productKey']
PWD = hmacsha1(options['deviceSecret'],CONTENT_STR_FORMAT)
client = mqtt.Client(client_id=CLIENT_ID, clean_session=False)
client.username_pw_set(USER_NAME, PWD)
return client


if __name__ == '__main__':

client = getAliyunIoTClient()
client.on_connect = on_connect
client.on_message = on_message

client.connect(HOST, 1883, 300)

payload_json = {
	'id': int(time.time()),
	'params': {
		'temperature': random.randint(20, 30),#随机温度
        'humidity': random.randint(40, 50)#随机相对湿度
	},
    'method': "thing.event.property.post"
}
print('send data to iot server: ' + str(payload_json))

client.publish(PUB_TOPIC,payload=str(payload_json),qos=1)
client.loop_forever()

4.运行py文件并验证

  在aliyun-iot-demo-python文件夹下输入:

python xxx.py
(xxx)为之前你为py文件自己定义的名字

  打开阿里云物联网平台会发现此时设备已经在线,且打开“物模型数据”可以看到python模拟上传的数据:
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值