【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)

【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程

教程1.PacketTracer中MCU芯片编程入门教程
教程2.全部智能设备连接MCU使用方法
教程3.读卡器与红外探测器连接MCU使用方法
教程4.常用传感器使用方法
教程5.几种按钮与开关的使用方法
教程6.执行器使用方法
教程7.上云教程
教程8.多设备上云教程
教程9.Arduino+OneNET TCP透传上云教程(发+收)

1.进入OneNET主页进行注册登录
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第1张图片
2.点击进入控制台
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第2张图片
3.点击左上角切换至旧版
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第3张图片
4.鼠标放在左上角→全部产品→多协议接入
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第4张图片
5.点击TCP透传→添加产品
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第5张图片
6.输入自己的产品名称、行业可以根据自己的需要选择,全部选择其他也可以
联网方式wifi,协议默认为tcp透传即可 其实只要协议正确,其他的都问题不大
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第6张图片
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第7张图片

7.点击立即添加设备
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第8张图片
8.把鼠标放在这个问号上,点击下载脚本验证工具
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第9张图片
9.得到一个压缩文件,解压缩得到三个文件,其中sample.lua是我们需要用到的
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第10张图片
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第11张图片
10.点击上传脚本→输入脚本名称,脚本名称需要记住,我们之后会经常用到,不要取的太复杂→选择文件→选择sample.lua文件→双击或打开
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第12张图片
11.点击上传
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第13张图片
12.点击添加设备
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第14张图片

13.设备名称是方便我们自己看的,但是鉴权信息是我们以后需要用到的,每个设备都有自己的鉴权信息,这个就是每个设备的标识ID,最好我们能够记住每个设备的鉴权信息,记不住也没关系,我们以后可以随时查看。设置完毕后点击下方添加
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第15张图片
14.得到如下设备,可以看到为离线状态
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第16张图片
接下来就需要进入PacketTracer软件上云的讲解了

我们分为两部分 1.向onenet云平台发送数据 2.接收云平台的消息并控制本地设备

那么我们先进行第一部分的讲解
建立如下拓扑
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第17张图片
1.点击芯片→编程→new→empty python→create
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第18张图片
2.双击main.py进入编程
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第19张图片
3.输入以下代码并运行

from gpio import *
from time import *
from realtcp import *

serverIP="dtu.heclouds.com"
serverPort=1811
auth='*513529#tem#jiaoben*'
client=RealTCPClient()


def onTCPConnectionChange(type):
	if int(type)==3:
		client.send(auth)

on=[1]
		
def onTCPReceive(data):
	if data=="Open" or data=="1":
		on[0]=1
	elif data=="Close" or data=="0":
		on[0]=0

client.onConnectionChange(onTCPConnectionChange)
client.onReceive(onTCPReceive)
client.connect(serverIP,serverPort)
sleep(1)	

while True:
	tem=analogRead(0)
	tem=round((tem-511)/5.12,2)
	print("tem:",tem)

	client.send(tem)
	sleep(1)

大家请注意,请将红框中的三项分别修改为①自己的产品ID②自己的设备鉴权信息③自己的脚本名称
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第20张图片

产品ID:
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第21张图片
设备鉴权信息:

【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第22张图片
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第23张图片
脚本名:
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第24张图片
4.修改完毕后运行,可以看到设备在线
在这里插入图片描述
如果运行错误,可以点击软件上方选项→参数选择→杂项→勾选这个
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第25张图片

5.点击右侧数据流可以看到发来的数据
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第26张图片
6.代码讲解:

from gpio import *
from time import *
from realtcp import *
//上面三行为导入必要的库 第三行为上云需要的库

serverIP="dtu.heclouds.com"//onenet服务器
serverPort=1811//服务器端口号
auth='*自己的产品ID#自己的设备鉴权信息#自己的脚本名*'
client=RealTCPClient()//建立客户端


def onTCPConnectionChange(type)://与设备建立连接的函数,不需要明白具体含义,无所谓
	if int(type)==3:
		client.send(auth)

on=[1]//一会儿用来存储云平台发来的数据的数组
		
def onTCPReceive(data)://从云平台接收信息的函数 这个函数会自动循环运行,不需要调用
	if data=="Open" or data=="1"://如果云平台发来Open或1则把数组修改为1
		on[0]=1
	elif data=="Close" or data=="0"://如果云平台发来Close或0则把数组修改为0
		on[0]=0
//以下三行为必要的
client.onConnectionChange(onTCPConnectionChange)
client.onReceive(onTCPReceive)
client.connect(serverIP,serverPort)
sleep(1)//sleep一秒可以有效防止由于同时建立连接的设备太多导致的设备不在线问题

while True:
	tem=analogRead(0)//读取温度
	tem=round((tem-511)/5.12,2)//修改温度为摄氏度
	print("tem:",tem)//输出温度

	client.send(tem)//向云平台发送温度数据
	sleep(1)

接下来详细讲解接收云平台信息的方法
我们先修改MCU内代码如下

from gpio import *
from time import *
from realtcp import *


serverIP="dtu.heclouds.com"
serverPort=1811
auth='*513529#tem#jiaoben*'
client=RealTCPClient()


def onTCPConnectionChange(type):
	if int(type)==3:
		client.send(auth)

on=[1]
		
def onTCPReceive(data):
	if data=="Open" or data=="1":
		on[0]=1
	elif data=="Close" or data=="0":
		on[0]=0

client.onConnectionChange(onTCPConnectionChange)
client.onReceive(onTCPReceive)
client.connect(serverIP,serverPort)
sleep(1)	

while True:
	tem=analogRead(0)
	tem=round((tem-511)/5.12,2)
	print("tem:",tem)
	
	if(on[0]==1):
		digitalWrite(1,1023)
	else:
		digitalWrite(1,0)
	client.send(tem)
	sleep(1)

变动就是多加了以下操作

if(on[0]==1):
		digitalWrite(1,1023)
	else:
		digitalWrite(1,0)

意思就是当发现on数组存储1时就打开灯,存储为0时就关闭灯
而在上面的代码讲解中,我们知道,当从云平台接收到Open字符串或1时,就会把on数组置为1,当接收到Close或0时就会把数组置为0

那么,如何使用云平台发送信息呢?我们先来看第一种方法:
1.点击下图此处下发命令

【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第27张图片
2.选择字符串,输入Close或0,注意大小写,点击发送
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第28张图片
3.发现LED灯熄灭
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第29张图片
4.我们再发送1或者Open 发现小灯又打开了
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第30张图片
5.我们详细讲解一下接收信息的代码的结构


on=[1]
		
def onTCPReceive(data):
	if data=="Open" or data=="1":
		on[0]=1
	elif data=="Close" or data=="0":
		on[0]=0


while True:

	if(on[0]==1):
		digitalWrite(1,1023)
	else:
		digitalWrite(1,0)

	sleep(1)

以上就是接收信息用到的代码,主要涉及onTCPReceive这个函数,参数data就是云平台发送来的信息,我们在这里选择使用全局数组on来辨别云平台发送来的信息。接收函数不需要我们去调用,程序会自动调用然后循环。然后在while循环中,会不断根据on数组控制小灯。代码结构很简单,相信大家都能够看懂。

那么接下来,我们开始讲解应用的设计,因为onenet的更新,现在的应用设计与之前有些不同,我们就在这里开始全新的讲解。
通过应用我们可以轻松美观便捷地查看信息,并能够通过命令框与按钮等发送信息,而不需要去下发命令页面。

当然在这里需要先告诉大家,想要舒服地使用应用,必须要购买企业版会员,价格不贵,大家如果又比较强烈的学习欲望或者是竞赛需求可以购买企业版,可以满足大多数人的需要,当然大家如果需要专业的页面,则需要购买专业版本,价格也更高。

1.点击左侧应用管理
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第31张图片
2.点击此处应用编辑器
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第32张图片
3.点击右侧新建
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第33张图片

4.选择空白模板 输入基本信息点击确认
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第34张图片
5.点击此处进入编辑
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第35张图片
6.可以在右侧修改页面名字、手机端或电脑端(就是页面比例的区别,最终我们都是通过浏览器访问应用)、默认页面(一个项目可以有多个页面,使用应用时可以选择,下面会给大家介绍到)、背景颜色等信息

【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第36张图片

7.在常规图标一栏可以找到仪表盘,这是我们最常用的仪表,单击仪表盘可以放置一个
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第37张图片
8.点击仪表盘,点击数据,取消勾选数据过滤器
过滤器应该是当我们使用比如arduino串口通信时可能会发送错误的信息过来(比如指令信息)我们可以通过过滤器过滤掉,但软件里上云通信很稳定,不需要这个
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第38张图片
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第39张图片

9.点击管理数据源
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第40张图片
10.新增数据源
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第41张图片
11.数据类型选择onenet
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第42张图片
12.输入名称、ID、KEY后就可以选择设备与数据流了,名称不能使用中文,大家可以用拼音或者英语,总之方便自己回忆就可以了。key就是自己的accesskey,在如图所示获取。
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第43张图片
这里查看自己的产品ID
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第44张图片

在右侧通过验证码获取accesskey
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第45张图片

【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第46张图片
13.创建成功之后直接关闭这个界面
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第47张图片
14.选择刚刚建好的数据流
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第48张图片
15.发现已经显示温度数据了,但是还带着一个百分号
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第49张图片
16.在样式→表盘数值→格式中修改单位 其余的包括阈值范围字体大小颜色等等大家应该都可以自行掌握,十分简单。
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第50张图片
17.接下来我们添加一个段落
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第51张图片
18.同样在数据里取消勾选过滤器
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第52张图片
19.在样式中可以修改内容、字体等信息,下方缩进可以改为0,当字体过大,请注意字体大小不要大过行高,否则两行时会出现字体重叠的状况,可以把行高修改大一些就可以了
可以拖动框框角落边缘改变文本框大小
在这里插入图片描述
20.我们也可以使用段落显示数据流信息比如温度信息,我们再添加一个段落并取消勾选过滤器→选择数据流
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第53张图片
21.可以看到段落显示当前温度信息
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第54张图片
22.调整以下字体,和刚刚的段落调整一下位置如图,这就是两种显示数据流的方法
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第55张图片
23.接下来我们添加一个文本命令框
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第56张图片
24.同样的操作,取消过滤器,选择数据流
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第57张图片
25.在这里可以更改命令框名字,以及默认的命令
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第58张图片

26.修改完毕后点击右上方保存并预览
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第59张图片
27.输入Open点击发送 开灯
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第60张图片
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第61张图片
28.输入Close或0点击发送 关灯
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第62张图片
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第63张图片
29.点击上方小箭头
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第64张图片
30.可以进行一些基本操作
在这里插入图片描述31.点击继续编辑 添加一个按钮
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第65张图片
32.同样取消过滤器 并选择数据流
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第66张图片
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第67张图片

33.为了方便我们直接把按钮2删掉,按钮名颜色什么的根据需要来就可以了,按钮值我们修改为0,关键是命令内容,这个就是我们点一下按钮就会发送什么信息,相当于是固定的文本命令框
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第68张图片
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第69张图片

34.然后我们ctrl+c ctrl+v复制粘贴一个新的按钮 修改样式如右
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第70张图片

35.拖动这里修改大小
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第71张图片
36.点击上方保存预览→点开启按钮
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第72张图片
小灯打开
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第73张图片
点关闭灯就关闭
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第74张图片
【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)_第75张图片

至此我们已经成功完成了一个MCU控制一个设备上云的方法
但是我们一个MCU不可能只有一个设备上云,所以我们将通过一种巧妙的简单粗暴的方式避开数据流模板等复杂东西进行多设备上云,由于篇幅过长,我们在下一篇文章进行讲解。

点击此处进入下一篇

你可能感兴趣的:(mcu,思科,物联网,iot,云计算)