如何将数据上传到onenet服务器
onenet是中移动物联网公司面向大众免费提供的物联网平台。简单点说就是一个存放、展示数据的服务器。12
百度搜索onenet,进入之后在上方标题栏找到开发文档链接,进入之后可以看到各种说明。
onenet支持http等多种协议,甚至为用户开发了基于TCP/TP协议的EDP协议。
本文以http协议为例介绍如何上传数据并在手机查看。
首先,注册账号,注册页面是这样的
注册完成后在onenet主页右上角找到开发者中心,点击进入,然后找到创建产品。
按提示创建完后要创建设备、创建APIkey,创建APIkey时要关联前面创建的设备。
ps:(不要用我的产品信息)
然后在左侧找到数据流模板,像添加设备一样添加数据流,数据流名称要简介,不要太长。
完成之后在设备管理这里你可以找到你的设备,设备信息旁边有一个数据展示,点进去可以看到你的数据,因为还没上传,没有数据是理所当然的事。
接下来,我们应该要上传数据了,这里使用PC机的网络调试助手上传数据。
这里,我们要记住一些必要的信息:
这是一段http报文
“`
POST /devices/6523751/datapointstype=3 HTTP/11
api-key:4pjuTJRDF1jFiH5y6uj5zN7UKH4=
Host:apihecloudscom
Content-Length:25
{“ADC_1”:10,”ADC_2”:20}
“`http协议有4种数据交互方式,post正如字面意思,英语不好,。。。
—–首先, 第一行中的/devices/6523751/ 6523751是设备ID。api-key:后面跟着的正是前面所创建设备之后创建的APIkey(不是项目key,是设备key)。
Content-Length:25
25是下面这行{“ADC_1”:10,”ADC_2”:20}的长度
实际上最后一行只看到23个字符,然而我们习惯在}后面添加回车换行符,回车换行符\r\n是两个字符,所以是25Content-Length:25与{“ADC_1”:10,”ADC_2”:20}之间有一空行,千万不要忘了。
最后,最重要的一行{“ADC_1”:10,”ADC_2”:20}
这是json数据,其中“ADC_1”中的ADC_1正是我的数据流,在这里,你要替换成你的数据流。
冒号后面的10是我的数据,这里你要替换成你的数据。
json规定两个json数据之间用逗号分隔,显然“ADC_2”是我的第二个数据流,这里同时上传两个数据是没问题的。如果你只有一个数据流的话,可以是这种形式{“ADC_1”:10} ,要记住,更改了{}里面的内容一定要重新计算数据长度,出错了就傻逼了。
废话不多说,下面演示使用PC机的网络调试助手进行调试。
我的网络调试助手是这样的
左边的是串口助手,右边的是网络调试助手。
1按照我的设置选择TCP client 要向服务器传数据 这是理所当然的 是必须的
2根据onenet公开协议接入指南,http接入要连接到1832304034:80
按照我的设置,点击connect之后,可以连接上服务器了
先别急着连接到服务器,这里应该先用记事本把要上传的那段http报文替换信息,将我的报文变成你的报文。
假定我的传感器探测到我写下这句话时,ADC_1 = 15 ADC_2 = 60,替换掉相关的信息之后,点击connect
应该会看到这里
1722881145是我的IP地址,东莞理工学院8B117的一台傻逼电脑。
51848是我的端口号。
这两项会跟你的不一样,不用担心。连接之后先将原来默认的发送信息删掉,再发送你的报文。如果一切没问题的话,你会看到这样的。
下面的窗口是我发送过去的信息,排版问题不要在意,只要确保你的报文在记事本里面是这样一个排版
不该换行的地方千万不要换行,数据有效长度后面一定跟着一个空行。
是不是真的上传成功了呢进入onenet,找到数据展示,我的是这样的
仔细点找到ADC_1和ADC_2 是不是最新数据是 15和60了呢?
最后,再给大家一些建议,http报文时非常复杂的,真的要想不出错的话,你应该去看看这个协议。
json是js的一种数据交互格式,用于http服务器与客户端之间通信。当然,其他地方也可以用。如果你想真正做好一个产品,你应该去简单了解json。
仅仅上传数据是不够的,如果你想要获取数据,应该怎么办?前面提到http协议有4种数据交互方式,POST是其中一种,还有一种叫GET。等有空的时候我会写如何用GET获取一段json数据。
win服务器有两种方法上传程序到服务器。
打开远程桌面,从本地电脑复制文件,到远程桌面服务器里面,粘贴文件,就可以了。
第二种方法是有ip地址,ftp账号密码,也可以用 ftp软件上传。
指定的阿里云服务器。
在阿里云控制台创建一个消息路由规则,将上传的设备数据从IoT Hub中转发到指定的阿里云服务器,这样就可以直接将数据传到阿里云服务器,不用经过阿里。
NB-IoT是IoT领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(LPWAN)。
首先备份本地数据文件,上传备份到服务器,在服务器数据库中使用备份文件恢复数据库。
导入方法:1、首先备份本地数据文件。2、上传备份到服务器。3、在服务器数据库中使用备份文件恢复数据库。由于各个数据库的备份和恢复都不尽相同,多少都存在差异,但步骤都是一样的。
说白了就是服务器的承受能力。 第一,确认服务器硬件是否足够支持当前的流量。
普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。
第二,优化数据库访问。
服务器的负载过大,一个重要的原因是CPU负荷过大,降低服务器CPU的负荷,才能够有效打破瓶颈。而使用静态页面可以使得CPU的负荷最小化。前台实现完全的静态化当然最好,可以完全不用访问数据库,不过对于频繁更新的网站,静态化往往不能满足某些功能。
缓存技术就是另一个解决方案,就是将动态数据存储到缓存文件中,动态网页直接调用这些文件,而不必再访问数据库,WordPress和Z-Blog都大量使用这种缓存技术。我自己也写过一个Z-Blog的计数器插件,也是基于这样的原理。
如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL避免使用Select from这样的语句,每次查询只返回自己需要的结果,避免短时间内的大量SQL查询。
第三,禁止外部的盗链。
外部网站的或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对于自身的或者文件盗链,好在目前可以简单地通过refer来控制盗链,Apache自己就可以通过配置来禁止盗链,IIS也有一些第三方的ISAPI可以实现同样的功能。当然,伪造refer也可以通过代码来实现盗链,不过目前蓄意伪造refer盗链的还不多,可以先不去考虑,或者使用非技术手段来解决,比如在上增加水印。
第四,控制大文件的下载。
大文件的下载会占用很大的流量,并且对于非SCSI硬盘来说,大量文件下载会消耗CPU,使得网站响应能力下降。因此,尽量不要提供超过2M的大文件下载,如果需要提供,建议将大文件放在另外一台服务器上。目前有不少免费的Web20网站提供分享和文件分享功能,因此可以尽量将和文件上传到这些分享网站。
网络摄像头的数据可以上传到远程服务器,实现数据存储在本地SD卡。网络摄像头的数据上传到远程服务器,需要使用云存储。云存储是指将监控摄像头的视频数据上传到互联网上的服务器中,通过网络进行访问和管理,因此,网络摄像头的数据可以上传到远程服务器,实现数据存储在本地SD卡。
0条评论