IoT(Internet of things)物联网入门介绍


1、什么样的物可以入网?

  • 要有数据传输通路
  • 要有一点的存储功能
  • 要有CPU
  • 要有操作系统
  • 要有专门的应用程序
  • 遵循物联网的通信协议
  • 在网络世界中有可被识别的唯一编号

2、MQTT协议

不是在说物联网吗?为啥扯到协议啥的?

其实互联网的本质也是通过网络、协议将海量主机进行连接的,物联网也不例外。但是物联网不太需要电脑主机那样强大的、多元的计算能力,物联网的“物”一般功能都是比较单一的,比如传感器只需要采集指标、摄像头拍视频等。

所以最简单的物联网只需要在联网的“物”上加上一个可入网、可收发消息或者更厉害一点:能进行计算的芯片,就可以达到入网的效果了。简单理解,物联网协议就是“物”与网之间的桥梁,MQTT协议就是其中比较具有代表性的一种。

  • MQTT协议是IBM针对物联网提出的一种轻量级协议,建立于TCP/IP层协议之上。是物联网的重要组成成分,可能会成为物联网的事实标准。
  • MQTT协议具有QoS(Quality of Service,服务质量),能够缓冲消息,并通过重传机制保证终端设备收到消息。其消息格式极其简化,最短是两个字节,提供订阅式和发布模式,高效推送消息。
  • 三角色:服务器代理、订阅者、发布者
  • QoS:
    • 零级(至多交付一次信息),如传感器
    • 一级(至少交付一次信息),确保消息到达
    • 二级(准确一次交付信息),如计费系统

3、Apache Apollo服务器

  看名字可以知道,Apache Apollo是一个开源的东西,它就是早期的代理服务器,是在ActiveMQ基础上发展而来的,可以支持STOMP、AMQP、MQTT、Openwire、SSL、WebSocket等多种协议。

  不过,Apache Apollo服务器已经停止维护了。而且网上研究这个的也不多。

4、Apache Artemis服务器

  替代Apollo的就是Artemis了。操作指令与Apollo类似,网上文档也比较齐全,按照教程也可以很快就搭建一个服务器出来。Linux和Windows都可以搭建的服务器。

单机版搭建流程如下:

  1. 下载,解压
  2. 创建broker代理:artemis create xxx
  3. 启动代理:xxx/bin/artemis run
  4. 外网访问配置

修改bootstrap.xml

<web bind="xxx.xxx.xxx.xxx:61610" path="web">
    <app url="activemq-branding" war="activemq-branding.war"/>
    <app url="artemis-plugin" war="artemis-plugin.war"/>
    <app url="console" war="console.war"/>
web>

修改jolokia-access.xml

<allow-origin>*allow-origin>

  5.远程JMX访问

出于安全原因,默认情况下,禁用对Artemis的远程JMX访问。Artemis有一个JMX代理,该代理允许远程访问JMX mBean。通过配置文件中的connector元素进行  management.xml配置

 <connector connector-port="1099"  connector-host="xxx.xxx.xxx.xxx"  rmi-registry-port="(如果不设则任意生成)" />

注意:rmi注册表将选择一个要绑定的IP地址。如果系统上存在多个IP地址/ NIC,则可以通过在artemis.profile中添加以下内容来选择要使用的IP地址: -Djava.rmi.server.hostname=localhost

5、阿里云MQTT消息队列服务

  这个很好用,也不是很贵,因为开源的服务器虽然不要钱,但研究起来总是要费一番功夫的,而且还需要自己运维。如果在资金充足的情况下,直接使用现成的服务也是很好的。

相关