【PT+Arduino+OneNET基础教程8】PacketTracer OneNET多设备上云教程(TCP透传)

【PT+Arduino+OneNET基础教程8】PacketTracer OneNET多设备上云教程(TCP透传)

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

在上篇文章中我们讲解了一个设备上云的方法

mcu有许多接口,可以控制多个设备,如果一个mcu只进行单一的温度控制或湿度控制等,则会造成资源的极大浪费,所以我们要学习怎样用一片mcu与onenet云平台同时控制多个装置。

与上文相比,本文将再添加一个湿度传感器与一个加湿器,建立另一个设备。

1.再新添加一个设备
【PT+Arduino+OneNET基础教程8】PacketTracer OneNET多设备上云教程(TCP透传)_第1张图片
【PT+Arduino+OneNET基础教程8】PacketTracer OneNET多设备上云教程(TCP透传)_第2张图片

2.建立如下拓扑
【PT+Arduino+OneNET基础教程8】PacketTracer OneNET多设备上云教程(TCP透传)_第3张图片
3.MCU内输入运行以下python代码 中文注释处就是与上一篇不同的地方

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


serverIP="dtu.heclouds.com"
serverPort=1811
auth='*513529#tem#jiaoben*'
auth2='*513529#hum#jiaoben*'//新建一个auth2,修改一下鉴权信息
client=RealTCPClient()
client2=RealTCPClient()//新建客户端2

def onTCPConnectionChange(type):
	if int(type)==3:
		client.send(auth)
def onTCPConnectionChange2(type)://新建函数2 注意后面 对比上面的函数加了个2
	if int(type)==3:
		client2.send(auth2)//这里两个也加了2

on=[1]
		
def onTCPReceive(data):
	if data=="Open" or data=="1":
		on[0]=1
	elif data=="Close" or data=="0":
		on[0]=0
def onTCPReceive2(data)://也加2if data=="Open" or data=="1"://当收到这俩信息
		customWrite(3,1)//直接把加湿器打开
	elif data=="Close" or data=="0"://当收到这俩信息
		customWrite(3,0)//直接把加湿器关闭

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

client2.onConnectionChange(onTCPConnectionChange2)
client2.onReceive(onTCPReceive2)
client2.connect(serverIP,serverPort)//与上面对比,三行一共添加了52,不要漏掉

sleep(1)	

while True:
	tem=analogRead(0)
	tem=round((tem-511)/5.12,2)
	hum=analogRead(2)
	hum=round(hum/10.19,2)
	print("tem:",tem)
	
	if(on[0]==1):
		analogWrite(1,1023)
	else:
		analogWrite(1,0)
	client.send(tem)
	client2.send(hum)//发送温度
	sleep(1)

4.运行后发现设备在线
在这里插入图片描述
5.则我们已经成功实现了一个MCU两个设备的上云
我们可以发现,现在就有两个接收函数了

def onTCPReceive(data):
	if data=="Open" or data=="1":
		on[0]=1
	elif data=="Close" or data=="0":
		on[0]=0
def onTCPReceive2(data)://也加2if data=="Open" or data=="1"://当收到这俩信息
		customWrite(3,1)//直接把加湿器打开
	elif data=="Close" or data=="0"://当收到这俩信息
		customWrite(3,0)//直接把加湿器关闭

我们在云平台应用里需要选择数据流,每个数据流对应一个接收函数,当绑定湿度设备数据流的文本命令框下发命令Open时,加湿器就会打开,当绑定温度设备数据流的文本命令框下发命令Open时,小灯就会打开。

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