工具/原料
接入Internet的Centos计算机
安装Mysql
1
Centos 6.6下安装Mysql很简单,
yum list mysql-server
2
当只有一个时候就可以直接
yum install mysql-server
进行安装
3
过程中选择Y继续安装,最后安装成功
设置Mysql的服务
1
先启动Mysql服务
service mysqld start
2
连接一下试一下,直接
mysql
然后
\q
关闭连接
3
设置Mysql开机启动
chkconfig mysqld on
4
开启3306端口并保存
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
修改密码并设置远程访问
1
连接mysql数据库
设置密码
use mysql
update user set password=password('密码') where user='root'
flush privileges
2
设置Mysql远程访问
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option
解决Mysql乱码问题
1
找一个配置文件,复制到/etc/目录,命名为my.cnf
(有时候没有my.cnf)
cp /usr/share/doc/mysql-server-5.1.73/my-medium.cnf /etc/my.cnf
2
vim my.cnf
在[client]和[mysqld]下面都添加上
default-character-set=utf8
3
最后按Esc输入
:wq
保存退出
重启mysql服务
1
最后重新启动服务就可以了
service mysqld restart
注意事项
最后一定要重启服务
kettle可以接入多种数据源原因:由于kettle是纯java编辑,所以kettle连接mysql库的时候需要mysql的java连接包,百度下载一个mysql的java连接驱动。
kettle使用文件资源库不需要用户名和密码,如果没有资源库可以点击右上角的"+"新建资源库。为建立数据库的资源库,本例选择使用文件资源库,选择确定后会要求选择文件资源库的路径,并给文件资源库设置一个ID和名称。
kettle无代码拖拽式构建数据管道:
kettle可Pentaho采用拖拽组件、连线、配置的方式来构建数据管道,透过超过200个不同的组件,用户可以在不编写一句代码就能轻松完成对数据源读取。
对数据进行关联、过滤、格式转换、计算、统计、建模、挖掘、输出到不同的数据目标。极大程度地降低开发技术门槛和有效减低开发和维护成本。
onenet是中移动物联网公司面向大众免费提供的物联网平台。简单点说就是一个存放、展示数据的服务器。12
百度搜索onenet,进入之后在上方标题栏找到开发文档链接,进入之后可以看到各种说明。
onenet支持http等多种协议,甚至为用户开发了基于TCP/TP协议的EDP协议。
本文以http协议为例介绍如何上传数据并在手机查看。
首先,注册账号,注册页面是这样的
注册完成后在onenet主页右上角找到开发者中心,点击进入,然后找到创建产品。
按提示创建完后要创建设备、创建APIkey,创建APIkey时要关联前面创建的设备。
ps:(不要用我的产品信息)
然后在左侧找到数据流模板,像添加设备一样添加数据流,数据流名称要简介,不要太长。
完成之后在设备管理这里你可以找到你的设备,设备信息旁边有一个数据展示,点进去可以看到你的数据,因为还没上传,没有数据是理所当然的事。
接下来,我们应该要上传数据了,这里使用PC机的网络调试助手上传数据。
这里,我们要记住一些必要的信息:
这是一段http报文
“`
POST /devices/6523751/datapoints?type=3 HTTP/1.1
api-key:4pjuTJRDF1jFiH5y6uj5zN7UKH4=
Host:api.heclouds.com
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是两个字符,所以是25.Content-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接入要连接到183.230.40.34:80
按照我的设置,点击connect之后,可以连接上服务器了
先别急着连接到服务器,这里应该先用记事本把要上传的那段http报文替换信息,将我的报文变成你的报文。
假定我的传感器探测到我写下这句话时,ADC_1 = 15 ADC_2 = 60,替换掉相关的信息之后,点击connect
应该会看到这里
172.28.81.145是我的IP地址,东莞理工学院8B117的一台傻逼电脑。
51848是我的端口号。
这两项会跟你的不一样,不用担心。连接之后先将原来默认的发送信息删掉,再发送你的报文。如果一切没问题的话,你会看到这样的。
下面的窗口是我发送过去的信息,排版问题不要在意,只要确保你的报文在记事本里面是这样一个排版
不该换行的地方千万不要换行,数据有效长度后面一定跟着一个空行。
是不是真的上传成功了呢?进入onenet,找到数据展示,我的是这样的
仔细点找到ADC_1和ADC_2 是不是最新数据是 15和60了呢?
最后,再给大家一些建议,http报文时非常复杂的,真的要想不出错的话,你应该去看看这个协议。
json是js的一种数据交互格式,用于http服务器与客户端之间通信。当然,其他地方也可以用。如果你想真正做好一个产品,你应该去简单了解json。
仅仅上传数据是不够的,如果你想要获取数据,应该怎么办?前面提到http协议有4种数据交互方式,POST是其中一种,还有一种叫GET。等有空的时候我会写如何用GET获取一段json数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)