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

简介
此为系列文章,主要写什么是物联网,当然啦,这个概念过于抽象,所以我会从自己动手构建出一个完整的物联网系统这个方式来折腾。  
这个项目也会是一个连载项目,完成一部分就会发布出来,会同步更新于工坊论坛与我的公众号和迷你强的Blog,当然,更新频率和周期就不做任何保证了,毕竟我也是边做边学习的过程,掉进坑里一两周爬不出来也是比较正常的。  
从零开始构建一个完整的物联网,我们将使用完整的开源工具来完成这件事(符合教育的基本要求,所有的东西都可以触及底层),当然一个完整功能的物联网肯定会包含传感器硬件,执行硬件,服务器,或者还有数据存储服务器和用户界面等相关的东西,属于系统工程咯。。。  
目前的极简模型设计暂时分为三部分,物理层硬件,服务器,和用户交互界面(其他想到再说)   
硬件部分:
我将使用  
OCROBOT通用原型构建平台  来构建
服务器:
会搭建一个基于MQTT协议的服务器,后期因为节约时间会使用赞助商或者平台商的开放式平台
用户交互界面:
光有数据肯定不行啦,肯定要有展示数据的手段和方法,所以我们需要一个用户界面,这个部分我会给大家展示如何简单的做一个web界面来展示数据和与硬件进行互动,当然到后面的案例肯定也是用开放式平台啦(毕竟人家弄了很久,很成熟了嘛)。  
主要用到的软件:
  • python
  • flask这款基于python的web框架
  • 当然还会有web前段的各种框架html5相关的东西,不过我们就简单涉猎,否则会占用大量时间
  • 也会有例如mysql数据库相关的知识介绍,不过都是简单,详细学习可以参阅更系统的教程
其他条件:
  • 基本的互联网接入条件,好歹能上网,最好有wifi,没有也没啥关系
  • 最好环境里有路由器并且是自动分配IP的,因为我们不会讲解手工配置IP的过程(自己研究)。
如何构建一个MQTT服务器
【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第1张图片
MQTT协议,由IBM公司及合作伙伴于1999年发明了此协议,随后协议开源。MQTT非常适合用于物联网环境,客户端非常简单,几乎在所有平台均有可用的代码,并且数据通过MQTT服务器实现M2M消息传递。  
目前迷你强目测此协议应该属于实时上的物联网协议标准了,本强非常非常看好^_^
很多的开放物联网平台以及基础互联网运营商均有提供,不过这些我们以后再说,我们先讲如何自己完整的构建一个MQTT服务器。
EMQTT(服务器的搭建)
【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第2张图片 
强烈推荐 EMQTT 非常非常棒的国产开源MQTT服务器软件,并且是一款非常高性能的服务器,大家可以去他们的官网了解详细信息以及相关的文档,我们就简单介绍下如何安装及启动服务。  
构建步骤
  • 准备一个Ubuntu Linux环境,推荐使用虚拟机环境,具体的搭建过程网上的教程非常多,我们这里就直接掠过了
    • 推荐使用免费的VirtualBox虚拟机
    • 有条件的也可使用VMware ESXI的免费虚拟化服务器
    • ubuntu系统,我使用的为14.04 Server版本,其他版本可能略有不同,请直接查阅EMQTT官网说明文档
  • 系统OK的状态
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第3张图片
    当然有提示升级到16.04什么的,这些不重要,我们不去管他。
  • 首先要运行个命令更新下系统  
    sudo apt-get update
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第4张图片
    刷了好一会,挺酷的
  • 然后我们前往 EMQTT的官网,进入下载页面
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第5张图片
    我们会去复制UBUNTU的客户端链接()
    http://emqtt.com/static/brokers/emqttd-ubuntu64-1.1.3-20160819.zip
  • 用wgte工具将安装文件下载下来  
    wget http://emqtt.com/static/brokers/ ... -1.1.3-20160819.zip
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第6张图片
    开始下载,需要耐性的等待,根据速度情况等待一定的时间。。。。。。。  
    显示这样就下载OK了啦(可以使用ls命令来查看刚刚下载好的文件,我就不截图了。。。)
  • 然后我们需要解压缩这个zip压缩包,不过ubuntu系统模块没有zip工具,顺手就下载个unzip这个解包工具吧
    sudo apt-get install unzip
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第7张图片 
    这样就安装好了
    服务器的安装与部署
  • 将服务器文件包解压,使用命令  
    unzip emqttd-ubuntu64-1.1.3-20160819.zip
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第8张图片
  • 完成后使用ls查看下
     
    其中红色的为压缩包,蓝色的就是我们解压出来的文件目录了
  • 使用cd命令进入目录   cd emqttd 
    顺便用ls命令看下目录里面的东东
  • 启动服务器     
    ./bin/emqttd console
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第9张图片 
    如图所示,服务器就正常启动并工作了,我们可以按 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服务器【从零开始搭建自己的物联网系统】_第10张图片
  • 点击此新建一个mqtt链接  
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第11张图片
  • 然后填写刚才创建的服务器的IP地址(我的服务器是192.168.100.55)与客户端名称(如没有特殊要求随机生成的就不错)
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第12张图片
  • 点击右下角的 Open connection 即可建立链接(会询问你是否保存链接信息,是或者否均可),正常链接后如下图所示为绿色
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第13张图片
  • 点击绿色的选项卡即进入客户端的界面,上面框选的部分为发送消息,下面框选的为订阅消息
    【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第14张图片
  • 如何使用呢?目前要测试下服务器是否正常运行,所以我们先订阅一个主题,然后再向这个主题发送一条消息看是否能正常接受
    • 首先,点击New 然后输入任意的主题(随意指定) 点击Subscribe
      【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第15张图片
    • 点击标签,这样这个主题就被订阅了,如果服务器收到关于任何这个信息都会推送过来
      【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第16张图片
    • 然后我们来发一条消息测试下(上面填写需要推送到的主题,下面写推送的内容)然后点击 Publish就会发送出去
      【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第17张图片
    • 测试结果(如果如图所示,订阅区收到消息,说明服务器工作正常,测试成功)
      【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】_第18张图片


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

你可能感兴趣的:(【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】)