教程1.PacketTracer中MCU芯片编程入门教程
教程2.全部智能设备连接MCU使用方法
教程3.读卡器与红外探测器连接MCU使用方法
教程4.常用传感器使用方法
教程5.几种按钮与开关的使用方法
教程6.执行器使用方法
教程7.上云教程
教程8.多设备上云教程
教程9.Arduino+OneNET TCP透传上云教程(发+收)
1.进入OneNET主页进行注册登录
2.点击进入控制台
3.点击左上角切换至旧版
4.鼠标放在左上角→全部产品→多协议接入
5.点击TCP透传→添加产品
6.输入自己的产品名称、行业可以根据自己的需要选择,全部选择其他也可以
联网方式wifi,协议默认为tcp透传即可
其实只要协议正确,其他的都问题不大
7.点击立即添加设备
8.把鼠标放在这个问号上,点击下载脚本验证工具
9.得到一个压缩文件,解压缩得到三个文件,其中sample.lua是我们需要用到的
10.点击上传脚本→输入脚本名称,脚本名称需要记住,我们之后会经常用到,不要取的太复杂→选择文件→选择sample.lua文件→双击或打开
11.点击上传
12.点击添加设备
13.设备名称是方便我们自己看的,但是鉴权信息是我们以后需要用到的,每个设备都有自己的鉴权信息,这个就是每个设备的标识ID,最好我们能够记住每个设备的鉴权信息,记不住也没关系,我们以后可以随时查看。设置完毕后点击下方添加
14.得到如下设备,可以看到为离线状态
接下来就需要进入PacketTracer软件上云的讲解了
我们分为两部分 1.向onenet云平台发送数据 2.接收云平台的消息并控制本地设备
那么我们先进行第一部分的讲解
建立如下拓扑
1.点击芯片→编程→new→empty python→create
2.双击main.py进入编程
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②自己的设备鉴权信息③自己的脚本名称
产品ID:
设备鉴权信息:
脚本名:
4.修改完毕后运行,可以看到设备在线
如果运行错误,可以点击软件上方选项→参数选择→杂项→勾选这个
5.点击右侧数据流可以看到发来的数据
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.点击下图此处下发命令
2.选择字符串,输入Close或0,注意大小写,点击发送
3.发现LED灯熄灭
4.我们再发送1或者Open 发现小灯又打开了
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.点击左侧应用管理
2.点击此处应用编辑器
3.点击右侧新建
4.选择空白模板 输入基本信息点击确认
5.点击此处进入编辑
6.可以在右侧修改页面名字、手机端或电脑端(就是页面比例的区别,最终我们都是通过浏览器访问应用)、默认页面(一个项目可以有多个页面,使用应用时可以选择,下面会给大家介绍到)、背景颜色等信息
7.在常规图标一栏可以找到仪表盘,这是我们最常用的仪表,单击仪表盘可以放置一个
8.点击仪表盘,点击数据,取消勾选数据过滤器
过滤器应该是当我们使用比如arduino串口通信时可能会发送错误的信息过来(比如指令信息)我们可以通过过滤器过滤掉,但软件里上云通信很稳定,不需要这个
9.点击管理数据源
10.新增数据源
11.数据类型选择onenet
12.输入名称、ID、KEY后就可以选择设备与数据流了,名称不能使用中文,大家可以用拼音或者英语,总之方便自己回忆就可以了。key就是自己的accesskey,在如图所示获取。
这里查看自己的产品ID
在右侧通过验证码获取accesskey
13.创建成功之后直接关闭这个界面
14.选择刚刚建好的数据流
15.发现已经显示温度数据了,但是还带着一个百分号
16.在样式→表盘数值→格式中修改单位 其余的包括阈值范围字体大小颜色等等大家应该都可以自行掌握,十分简单。
17.接下来我们添加一个段落
18.同样在数据里取消勾选过滤器
19.在样式中可以修改内容、字体等信息,下方缩进可以改为0,当字体过大,请注意字体大小不要大过行高,否则两行时会出现字体重叠的状况,可以把行高修改大一些就可以了
可以拖动框框角落边缘改变文本框大小
20.我们也可以使用段落显示数据流信息比如温度信息,我们再添加一个段落并取消勾选过滤器→选择数据流
21.可以看到段落显示当前温度信息
22.调整以下字体,和刚刚的段落调整一下位置如图,这就是两种显示数据流的方法
23.接下来我们添加一个文本命令框
24.同样的操作,取消过滤器,选择数据流
25.在这里可以更改命令框名字,以及默认的命令
26.修改完毕后点击右上方保存并预览
27.输入Open点击发送 开灯
28.输入Close或0点击发送 关灯
29.点击上方小箭头
30.可以进行一些基本操作
31.点击继续编辑 添加一个按钮
32.同样取消过滤器 并选择数据流
33.为了方便我们直接把按钮2删掉,按钮名颜色什么的根据需要来就可以了,按钮值我们修改为0,关键是命令内容,这个就是我们点一下按钮就会发送什么信息,相当于是固定的文本命令框
34.然后我们ctrl+c ctrl+v复制粘贴一个新的按钮 修改样式如右
35.拖动这里修改大小
36.点击上方保存预览→点开启按钮
小灯打开
点关闭灯就关闭
至此我们已经成功完成了一个MCU控制一个设备上云的方法
但是我们一个MCU不可能只有一个设备上云,所以我们将通过一种巧妙的简单粗暴的方式避开数据流模板等复杂东西进行多设备上云,由于篇幅过长,我们在下一篇文章进行讲解。
点击此处进入下一篇
PacketTracer模拟器物联网教程8—Onenet云平台使用方法
如果您还未掌握教程2中MCU芯片编程的方法,还请您先学习教程2或教程7熟悉MCU的编程方法。
本章实现PacketTracer中的设备连接到MCU芯片,并通过MCU微控制器实现数据上传至云平台、通过云平台控制设备、云平台应用搭建等功能。
本实验拓扑结构与教程7相同,您可以先进行教程7的学习。
我们首先注册一个Onenet账号
1.进入Onenet官网
2.注册登录后点击控制台首页
3.点击切换至旧版(可以在熟悉旧版操作后学习新版的操
《手把手教你玩物联网》系列推文将介绍使用RT-Thread----小而美的物联网操作系统,制作一个室内温湿度数据采集,并实现终端采集数据上传物联网云平台onenet,实现云端远程数据监控功能。
上期介绍了ESP8266的使用(手把手教你玩物联网(一)---ESP8266软件包的使用),今天介绍一下onenet云平台产品创建,为后面onetnet软件包的使用做铺垫。
第一步:登录 ONENET 服务器
打开onenet云平台网站 https://open.iot.10086.cn/...
重启网卡命令 /etc/init.d/network restart。软件选择和安装位置都需要先进去,然后选择完成 才可以开始安装。发现ping www.baidu.com ping不同。Linux镜像文件下载 linux.org。ping退出 ctrl+c。把网络改成了主机 重启好了。选择分区的话不熟悉不管他。然后完成配置 重启。
实验项目时间正序目录基于校园网连接公网的网络仿真实现功能基础项:实现全网的互联互通!!!可以完成ping、tracert1.合理搭建网络设计拓扑(接入层、汇聚层、核心层)核心层:学校连接公网边缘路由、ISP服务器中心、公网中的某个家庭汇聚层:学校汇聚交换机、ISP汇聚交换机、家庭汇聚交换机接入层:学校各类型单位,ISP的服务器、主机,家庭中各设备2.应用IPv4地址合理设计全网IP地址应用:全网IP的分配3.底层网络技术多样性设计(基于有线以太网、无线网络)4.基于链路层网络(LAN)的工程应用(VLAN)
Springboot+Netty实现基于天翼物联网平台CTWing(AIOT)终端TCP协议(透传模式)-云服务端(IOT平台) 模拟AIOT的TCP协议云端
1、低协议开销
MQTT 的独特之处在于,它的每消息标题可以短至 2 个字节。MQ 和 HTTP 都拥有高得多的每消息开销。对于 HTTP,为每个新请求消息重新建立 HTTP 连接会导致重大的开销。MQ 和 MQTT 所使用的永久连接显著减少了这一开销。
对不稳定网络的容忍
MQTT 和 MQ 能够从断开等故障中恢复,而且没有进一步的代码需求。但是,HTTP 无法原生地实现此目的,需要客户端重试编码,这可能增加幂等性问题。
MQTT 是专门针对低功耗目标...