迷你强 发表于 2016-8-24 16:39:59

【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】

本帖最后由 迷你强 于 2016-9-12 09:09 编辑

简介此为系列文章,主要写什么是物联网,当然啦,这个概念过于抽象,所以我会从自己动手构建出一个完整的物联网系统这个方式来折腾。这个项目也会是一个连载项目,完成一部分就会发布出来,会同步更新于工坊论坛与我的公众号和迷你强的Blog,当然,更新频率和周期就不做任何保证了,毕竟我也是边做边学习的过程,掉进坑里一两周爬不出来也是比较正常的。从零开始构建一个完整的物联网,我们将使用完整的开源工具来完成这件事(符合教育的基本要求,所有的东西都可以触及底层),当然一个完整功能的物联网肯定会包含传感器硬件,执行硬件,服务器,或者还有数据存储服务器和用户界面等相关的东西,属于系统工程咯。。。目前的极简模型设计暂时分为三部分,物理层硬件,服务器,和用户交互界面(其他想到再说)   硬件部分:我将使用OCROBOT通用原型构建平台来构建服务器:会搭建一个基于MQTT协议的服务器,后期因为节约时间会使用赞助商或者平台商的开放式平台用户交互界面:光有数据肯定不行啦,肯定要有展示数据的手段和方法,所以我们需要一个用户界面,这个部分我会给大家展示如何简单的做一个web界面来展示数据和与硬件进行互动,当然到后面的案例肯定也是用开放式平台啦(毕竟人家弄了很久,很成熟了嘛)。主要用到的软件:
[*]python
[*]flask这款基于python的web框架
[*]当然还会有web前段的各种框架html5相关的东西,不过我们就简单涉猎,否则会占用大量时间
[*]也会有例如mysql数据库相关的知识介绍,不过都是简单,详细学习可以参阅更系统的教程
其他条件:
[*]基本的互联网接入条件,好歹能上网,最好有wifi,没有也没啥关系
[*]最好环境里有路由器并且是自动分配IP的,因为我们不会讲解手工配置IP的过程(自己研究)。
如何构建一个MQTT服务器MQTT协议,由IBM公司及合作伙伴于1999年发明了此协议,随后协议开源。MQTT非常适合用于物联网环境,客户端非常简单,几乎在所有平台均有可用的代码,并且数据通过MQTT服务器实现M2M消息传递。目前迷你强目测此协议应该属于实时上的物联网协议标准了,本强非常非常看好^_^很多的开放物联网平台以及基础互联网运营商均有提供,不过这些我们以后再说,我们先讲如何自己完整的构建一个MQTT服务器。EMQTT(服务器的搭建)
强烈推荐EMQTT 非常非常棒的国产开源MQTT服务器软件,并且是一款非常高性能的服务器,大家可以去他们的官网了解详细信息以及相关的文档,我们就简单介绍下如何安装及启动服务。构建步骤
[*]准备一个Ubuntu Linux环境,推荐使用虚拟机环境,具体的搭建过程网上的教程非常多,我们这里就直接掠过了
[*]推荐使用免费的VirtualBox虚拟机
[*]有条件的也可使用VMware ESXI的免费虚拟化服务器
[*]ubuntu系统,我使用的为14.04 Server版本,其他版本可能略有不同,请直接查阅EMQTT官网说明文档

[*]系统OK的状态 当然有提示升级到16.04什么的,这些不重要,我们不去管他。
[*]首先要运行个命令更新下系统 sudo apt-get update 刷了好一会,挺酷的
[*]然后我们前往EMQTT的官网,进入下载页面 我们会去复制UBUNTU的客户端链接()
http://emqtt.com/static/brokers/emqttd-ubuntu64-1.1.3-20160819.zip
[*]用wgte工具将安装文件下载下来 wget http://emqtt.com/static/brokers/emqttd-ubuntu64-1.1.3-20160819.zip 开始下载,需要耐性的等待,根据速度情况等待一定的时间。。。。。。。 显示这样就下载OK了啦(可以使用ls命令来查看刚刚下载好的文件,我就不截图了。。。)
[*]然后我们需要解压缩这个zip压缩包,不过ubuntu系统模块没有zip工具,顺手就下载个unzip这个解包工具吧 sudo apt-get install unzip
这样就安装好了服务器的安装与部署
[*]将服务器文件包解压,使用命令 unzip emqttd-ubuntu64-1.1.3-20160819.zip
[*]完成后使用ls查看下

其中红色的为压缩包,蓝色的就是我们解压出来的文件目录了
[*]使用cd命令进入目录   cd emqttd
顺便用ls命令看下目录里面的东东
[*]启动服务器    ./bin/emqttd console
如图所示,服务器就正常启动并工作了,我们可以按Ctry+C键将其切换到后台程序运行
[*]服务器工作后,会监听四个端口,1883,8883,8083,18083,对应的服务参阅下表端口号       | 服务类型
—————- | ————-
1883      | MQTT协议端口
8883      | MQTT(SSL)端口
8083      | MQTT(WebSocket), HTTP API端口
18083       | Dashboard管理控制台端口
[*]Dashboard管理控制台端口的默认登陆账号是 admin 密码为 public 请立即登陆修改默认密码
[*]来测试下服务器是否正常工作,需要一个mqtt的客户端,各个语言下均有对应的库,不过我们目前只是测试,所以使用一个java的成品客户端点击下载 mqtt-spy-0.5.2.zip运行如下图
[*]点击此新建一个mqtt链接
[*]然后填写刚才创建的服务器的IP地址(我的服务器是192.168.100.55)与客户端名称(如没有特殊要求随机生成的就不错)
[*]点击右下角的Open connection 即可建立链接(会询问你是否保存链接信息,是或者否均可),正常链接后如下图所示为绿色

[*]点击绿色的选项卡即进入客户端的界面,上面框选的部分为发送消息,下面框选的为订阅消息

[*]如何使用呢?目前要测试下服务器是否正常运行,所以我们先订阅一个主题,然后再向这个主题发送一条消息看是否能正常接受
[*]首先,点击New 然后输入任意的主题(随意指定) 点击Subscribe

[*]点击标签,这样这个主题就被订阅了,如果服务器收到关于任何这个信息都会推送过来

[*]然后我们来发一条消息测试下(上面填写需要推送到的主题,下面写推送的内容)然后点击Publish就会发送出去

[*]测试结果(如果如图所示,订阅区收到消息,说明服务器工作正常,测试成功)


本文主要讲解物联网的核心组件MQTT服务器的搭建过程,虽然我们是在本地环境下进行搭建测试,不过实际使用中,这个服务器必须在公网环境,所以实际部署时,推荐在各种云主机或者使用公开的MQTT服务器进行测试
本强后期的实际使用教程也会使用赞助商或者公有云的服务。如果你懒得自己弄,或者没有条件可以使用网上公开的服务器iot.eclipse.org同样也是很好用的,本节内容就到这里了,下节内容,我们将说如何让arduino通过以太网网来链接MQTT服务器发送数据

sailor0908 发表于 2016-8-25 11:24:31

搞个openwrt的盒子或者路由在上面建个MQTT服务器,就可以随便玩了,再买个ESP8266模块作客户端就可以玩遥控灯了,稳定又可靠.

advesl 发表于 2016-8-24 23:29:23

定!!!!!!

darkorigin 发表于 2016-8-25 00:54:22

。。。。这太复杂了。。。看着都觉得眼睛疼。。。楼主 你辛苦鸟~~~
其实如果不需要数据展示,用LNMP或者LAMP,甚至WAMP加上少量PHP代码都可以完成数据收集和数据库存储工作。(好吧其实PHP我连入门都没有。。。)

迷你强 发表于 2016-8-25 09:10:14

darkorigin 发表于 2016-8-25 00:54 static/image/common/back.gif
。。。。这太复杂了。。。看着都觉得眼睛疼。。。楼主 你辛苦鸟~~~
其实如果不需要数据展示,用LNMP或者LA ...

这个只是介绍一下构建的过程,如果使用的话,直接用公开的现成的就好了,帖子最后,不是介绍了一个免费的公开服务器么?

wing 发表于 2016-8-25 12:16:06

先顶下,
描述得很详细,
然而还未完全看明白...

Koloongsam 发表于 2016-8-25 14:50:09

顶一下,期待更新

darkorigin 发表于 2016-8-26 01:17:47

迷你强 发表于 2016-8-25 09:10 static/image/common/back.gif
这个只是介绍一下构建的过程,如果使用的话,直接用公开的现成的就好了,帖子最后,不是介绍了一个免费 ...

其实还是基本没看明白。。。原谅我的英语老师。。。
哎~~~~
没有现成的客户端么?还是就那个JAVA?
没看懂这玩意比一般的HTTP方式物联网服务器区别在哪里。。。(好吧。。。其实是我比较差)
Http的可以用公有服务器,也可以自己架
其实懂PHP应该就不难 服务器有整合好的 比如WAMP
目测单纯记录数据几十行代码就搞定了

数据展示出来,我技术差了点。。。不太会玩,估计要用到某些控件或者是SWF?不然咋出曲线?

wisology 发表于 2016-9-2 14:52:22

多谢楼主分享,学习了!

mjgzdnw 发表于 2016-9-3 23:27:15

学习了,正需要,非常好!!!!

t01051 发表于 2016-9-4 10:33:55

这个很不错啊,帖子期待更新:loveliness:

whtech 发表于 2016-9-5 13:29:37

写得很好,可以试试看

lmdf 发表于 2016-9-27 10:54:41

标记一下,回头学习

hifly 发表于 2017-1-6 11:50:49

这个不错,期待更新

张馆长 发表于 2017-2-8 09:36:04

楼主有后续吗
页: [1]
查看完整版本: 【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】