移动互联网MQTT

树莓派上的MQTT环境搭建

2016-08-09  本文已影响4055人  酱汁叉烧

前言

最近实验室准备招新生,但现在可以拿出来演示诱拐新生的DEMO一个都没,于是老板要求我做一个房间定位的系统。

原理和设备也很简单。一个Beacon收集器,和若干个beacon。通过Beacon收集器收集到的beacon的RSSI值判断是否在房间里面,也是就设定一个阈值,大于这个阈值在房间外面,小于这个阈值就在房间里面。

Beacon收集器是用Wifi连接到路由器,使用MQTT协议传输数据,下面的MQTT的资料:

MQTT定义

MQTT是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。

MQTT特点

MQTTServer的安装

这里使用的系统是Kail Linux,Mosquitto虽然可以使用apt-get,但是我用apt-get下下来的没有mosquitto_和mosquitto_pub这两个程序,所以直接去官网找了源码包编译安装。

安装前准备

确保安装了libssl-dev,libc-ares-dev,uuid-dev,g++这些编译需要的库。

sudo apt-get install libssl-dev libc-ares-dev uuid-dev g++

安装libssl-dev的小插曲

树莓派已经安装的版本太高会导致安装libssl-dev不成功
解决方法:

sudo apt-get install aptitude
sudo aptitude install libssl-dev 

第一个解决方法选no
第二选yes
使用dpkg -l *libssl*显示当前版本
如果接下来的包也遇到这种情况使用一样方法,全部都把他降级吧少年

安装

去官方网站找到最新的源码包:http://mosquitto.org/files/source/

自此Mosquitto安装完成

测试

一个完整的MQTT示例包括一个总的MQTT代理服务器,一个发布端和一个订阅端。
示例步骤:

  1. 启动mosquitto服务。

    mosquitto -v

    • -v:打印更多的调试信息
  2. 订阅端通过mosquitto_sub订阅指定主题的消息.

    mosquitto_sub -v -t BBColle01

    • -v:打印更多的调试信息
    • -t:订阅的主题(title)
  3. 发布者通过mosquitto_pub发布指定主题的消息。

    mosquitto_pub -v -t BBColle01 -m "{\"id\":\"Nekotter\"}"

  4. 转发服务器把该主题的消息推送到订阅端。

这里发布端,代理服务器,订阅端都为localhost。

总结

服务器是搭建好了,接下来还要干的事:

  1. 使用paho-python模块接收beacon收集器发送到值,并用python处理数据。
  2. 用Flask框架搭建网页,把整个系统的UI做出来。

参考

上一篇下一篇

猜你喜欢

热点阅读