树莓派数据远程传输学习记录TCPIP协议连接OneNet云平台传输数据的方法
树莓派数据远程传输学习记录——TCP/IP协议连接OneNet云平台传输数据的方法
关键词由CSDN通过智能技术生成
目录
项目场景:
本人在进行树莓派项目开发时进行数据远程传输(4G/WiFi通信)过程中,由于自己主研究方向是硬件开发,不善于使用 Web云端 等方式对数据进行可视化的展示。所以一般都将采集到的传感器数据传输到 网络调试助手 ,以实现对Web端的模拟。
问题描述:
若用如下图所示的网络调试助手进行模拟数据展示的话,主要问题有:
(1)是可视化的程度比较低,功能展示起来不太美观;
(2)对收集到的数据不能进行解码处理、图像化处理、以及对采集到的数据数据进一步处理等的操作。
而如下图所示的OneNet云平台不仅拥有非常美观的前端界面,而且自带有登录注册,提供TCP/IP通信,进行数据可视化展示等服务,可以为广大硬件开发人员提供非常不错的数据展示平台。
解决方案:
OneNet云平台前期项目搭建准备:
首先在OneNet云平台这边,我们登录之后,在自己头像这边点击账号信息;
在点进去的界面内,上主菜单有一个全部产品服务,点出来的框内可以看到有多协议接入这个选项;
点进去后可以看到有TCP透传这个选项,由于本人在做树莓派开发过程中基本都是TCP/IP进行通信,因此选择该选项,进行产品的添加;
在点击添加产品后,有诸多的信息填入选项(该产品是自己的项目,不算设备,设备在项目生成后会有另外添加)可以依据自己的项目进行填写,也可以随便填,但是联网方式和接入协议不能错写;
填写完成后,便能出现如下图所示的可视化界面;
我们需要在设备列表的界面,对设备进行添加;
输入相关信息的界面中,有个鉴权信息,十分重要,后期要用的,这边提一下,引起注意!!
添加设备之后,就会出现新的一个离线设备,在右边操作属性中,有一个详情的连接;
IP:183.230.40.40
端口号:1811
以网络调试助手模拟树莓派建立连接并发送数据:
为了方便直接观看建立过程,我们先以网络调试助手模拟树莓派与OneNet云平台建立连接,准备前期图片如下;
由于云平台一方是作为 服务端 先开启连接接口,因此网络调试助手这边协议类型应该为 TCP客户端(Client) ;
在建立连接之后,还需要先发送一个登录报文,以通过脚本连接对应的设备,报文格式如下;
发送报文之后,即可直接接收到recived的回复
此时云平台一放也可以显示出一个设备的在线接入:
此时我们发送一个1,云平台一方也可以将数据与具体输入时间进行展示;
到这里,以网络调试助手模拟的树莓派即可成功连接OneNet云平台,并且能够进行数据的传输。
树莓派与OneNet云平台进行对接:
树莓派与外部云端进行TCP/IP通信的方法,我们之前在 的博客中,已经有所介绍,详情可以点进去观看;
我们这边只需要通过 以socket为框架的TCP/IP协议 进行通信并发送数据即可,并且在发送数据之前先发送 接入报文 ,所需代码如下:
发送端(服务端) fa.py代码:
#coding=utf-8
import socket
import cv2
import numpy
import time
import smbus
import math
def SendVideo():
address = ('183.230.40.40', 1811) # 地址:IP+端口号
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建sock对象
sock.connect(address) # 与客户端连接
except socket.error as msg: # 判断连接是否发生错误
print(msg)
sys.exit(1)
DataBase=b'*512656#123456#sample*' #输入连接报文
sock.send(DataBase)
while 1:
time.sleep(0.1)
sock.send(b'123'); #发送数据
sock.settimeout(1) # 计时1秒,若无信息接收则关闭recv
try:
data=sock.recv(10)
#print(data)
except socket.timeout as e:
#print(f"{e}")
continue
if __name__ == '__main__':
SendVideo()
最后总结:
至此就完成了树莓派与OneNet云平台建立TCP/IP连接,实现了数据的可视化,节省了在项目开发过程中需要额外进行Web端设计的成本。
过程中可能有些地方没有说明清楚,还请大家多多交流,记得 点赞+关注 哦!!