ubuntu系统下搭建本地物联网mqtt服务器的步骤
摘要:mqtt broker(服务器)是物联网通信的核心,网上有很多种开源的服务器可供选择,本文介绍如何在ubuntu系统下安装emqx服务器,让大家可以在局域网环境下搭建“云服务器”,体验物联网的乐趣。本文还分享了安装时遇到的错误解决方法,以及使用mqtt.fx模拟一台物联网设备与服务器通信。
目录
1.emqx也是一个mqtt broker
2.实际上安装前还会遇到问题
3.真正的安装非常快
4.想不想图形化管理自己的服务器
5.使用mqtt.fx模拟一个物联网设备订阅和发布主题
1.emqx也是一个mqtt broker
要想在本地体验”云服务器“,那么mqtt borker必不可少。它就像是物联网通信的“中转站”,所有的信息“发布”在这个broker里面,订阅“主题”的客户端,也从这里获取“主题”的数据。
能实现broker功能的软件有很多,本文以emqx为例。
请参考中文版官网的详细介绍。这里不再详细介绍它的功能了。
EMQX: 大规模分布式物联网 MQTT 消息服务器
2.实际上安装前还会遇到问题
下面开始安装。好多文章上说,首先应该用apt安装,一条指令就可以搞定。但实际上,有可能apt运行不起来,这并不是说帮助文档的错误,而是ubuntu系统自身设置所需(并非问题)。
敲入命令
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
输入密码后,提示无法下载。
然后根据错误提示,输入命令查apt被哪些占用
ps -A|grep apt
然后运行命令
sudo fuser -vki /var/lib/dpkg/lock
多运行两次,就可以运行apt了
现在的问题是连curl都运行不起来,需要首先安装curl。
然后遇到新的问题了,还是无法使用命令下载
sudo apt-get install emqx
出现问题的原因是ubuntu系统默认的软件库是老美的,如果需要apt命令行install一些常用软件,网络太慢,或无法访问。
默认的情况如下图所示
解决的方法是设置为清华大学等站点。
然后就可以运行
sudo apt-get update
接着需要安装curl
sudo apt install curl
3.真正的安装非常快
接下来才刚刚开始安装,首先配置curl数据源
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
配置成功
然后安装emqx最新版
sudo apt-get install emqx
安装成功
然后运行启动的命令
sudo emqx start
4.想不想图形化管理自己的服务器
到此,emqx服务器就安装并启动成功了。可以提供主题的订阅和发布服务了。
但是现在它只是一个服务器,提供这些功能,操作起来还不是特别方便。
别着急,emqx提供了图形化的界面dashboard。用起来像是阿里云物联网平台一样方便。
输入您的ip地址,然后冒号18083端口即可访问。例如用另一台电脑浏览器输入。EMQX Dashboard 是一个 Web 应用程序,默认监听 18083 端口。
http://192.168.10.123:18083
在不启用 Dashboard 情况下仍然可以使用 EMQX,但这可能大大影响服务的可操作性:Dashboard 可以以表单方式配置很多功能,相比手动编辑配置文件更容易上手使用。
# 配置 Dashboard
Dashboard 默认监听 HTTP 端口,你可以为 Dashboard 启用 HTTPS 或更改监听器端口,更多配置可以参考配置文档。
登陆界面如下图所示。用户名是admin,初始密码是public。登陆后需要立即修改,还可以新增用户。
修改密码
可以测试本地连接。相当于将服务器同时作为一个客户端,测试一下发布和订阅功能。
界面可以通过设置功能修改为中文
使用websocket测试订阅和发布主题
5.使用mqtt.fx模拟一个物联网设备订阅和发布主题
在本机上测试不太过瘾,必须用一个真正的客户端测试才来劲。
如果用电脑测试,那么推荐mqtt.fx软件
模拟设备连接阿里云物联网平台软件MQTT.fx1.7.1.zip_MQTT.FX-硬件开发文档类资源-CSDN下载
这个软件安装后,可以在电脑上实现mqtt通信。
详细的使用方法请参考下面这篇文章。与阿里云物联网平台不同的是,连接mqtx服务器,用不着那么复杂的数字签名。----这也是局域网服务器存在的弊端,有条件,还是建议用阿里云物联网平台,本文仅用于学习使用。
使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(五)---MQTT.fx模拟设备连接阿里云_TMS320VC5257H的博客-CSDN博客_arduino如何接入云平台
请记住broker port这里填写1883,而不是18083。用户名和密码,就是您在dashboard里面创建的用户名。
连接还是非常迅速的
和服务器dahsboard内置的测试程序差不多,用客户端也可以订阅
但是请注意,mqtt.fx客户端的client id一定不要和服务器上的那个id重复,这是因为在物联网的世界中,只有服务器和客户端之分,而每一个客户端是唯一的,如果重名,那么这个登陆上,另一个必然被下线。起码名字不能一样,您说对不?
我们可以使用服务器端模拟的客户端发布一个主题
然后观察到另一台电脑上的mqtt.fx客户端成功获取了这个主题的变化
未来,我们会发现更多的客户端(例如传感器)连上互联网,通过物联网的方式通信、管理和为人类服务。在实现万物互联的路上,希望能留下您宝贵的足迹。
ubuntu系统下搭建本地物联网mqtt服务器的步骤相关推荐
- 在Ubuntu 15下搭建V/P/N服务器pptpd安装和配置
在Ubuntu 15下搭建VPN服务器pptpd安装和配置 在ubuntu下配置vpn的方式有很多种,其中比较常见的是pptpd,它配置简单,但是安全性不高,不过对于一般使用来说足够了,我按照程搭建了 ...
- 如何在Ubuntu系统下搭建Android开发环境
本文记录了如何在Ubuntu 12.04(64bit)系统下搭建Andriod(安卓)开发环境. 1.安装jdk 首先是下载和安装jdk.可以直接去http://java.sun.com下载.我当时下 ...
- Ubuntu Linux系统下搭建自己的Web服务器
经常被拿来当服务器的有CentOS.Ubuntu......考虑到自己只有Ubuntu的镜像并且只是自己做一些简单的测试使用,所以选择的版本是Ubuntu 14.04 LTS.在这个平台上搭建自己的W ...
- 详细Ubuntu系统下搭建Hadoop完全分布式
1.Hadoop的运行环境介绍 hadoop主要有三种运行模式:单机模式.伪分布模式.完全分布模式. 其中在单机模式下所有3个XML文件均为空,当配置文件为空时,Hadoop会完全运行在本地,因为不需 ...
- Ubuntu系统下搭建Redmine项目管理系统详细说明(包括配置apache服务器)(一)搭建本地Redmine
1. 下载Redmine源代码 Remine下载地址:redmine-3.3.3.tar.gz 2. 安装配置MySQL 执行下面的命令安装Mysql: sudo apt-get install my ...
- Ubuntu系统下搭建svn服务器(及设置SVN提交必须输入注释)
1.查看是否安装 安装SVN服务器之前 查看一下是否已经安装了 查看命令 svn 如下图 是已经安装了SVN 如下图是没有安装SVN 安装了的话 可以用如下命令删除 apt-get remove -- ...
- Ubuntu系统下创建本地源
1.清理apt缓存 apt-get clean 2.下载需要的apt包(这里如果环境中已经存在了,好像下载不下来,先卸载再下) sudo apt-get -d install sshpass 包默认存 ...
- linux系统我的世界开服,Ubuntu Linux下搭建Minecraft我的世界服务器
总结一下在Ubuntu Linux下搭建Minecraft我的世界服务器的方法,其实非常简单直接. (1).把当前的软件都更新到最新 sudo apt-get update Minecraft服务器需 ...
- boa服务器 系统设置,boa服务器在linux系统下搭建
boa服务器在linux系统下搭建 内容精选 换一换 制作Docker镜像,有以下两种方法.快照方式制作镜像(偶尔制作的镜像):在基础镜像上,比如Ubuntu,先登录镜像系统并安装Docker软件,然 ...
- [Ubuntu]在Ubuntu系统下连接远程Ubuntu服务器并传输文件:安装putty, filezilla
转载自:[Ubuntu]在Ubuntu系统下连接远程Ubuntu服务器并传输文件_北望花村-CSDN博客_ubuntu上传文件到服务器 本篇文章介绍,如何在Ubuntu系统下连接远程Ubuntu系统并 ...
最新文章
- 红帽子RedHat Linux 9.0安装图解(图)
- android 锁屏应用,创建一个Android锁屏应用。
- s域到c语言离散化方法,离散化方法研究.docx
- 在ashx中使用Session
- Android studio .gitignore 文件的内容
- SpringCloud工作笔记041---com.fasterxml.jackson.databind.ObjectMapper的使用
- 辨异 —— Python 的深拷贝与浅拷贝
- 新店铺怎么做?淘宝店铺如何引流做好基础销量?
- matlab 指定ccs编译器,在CCS5.5中导入CCS3.3工程——指定编译器和修改prj文件
- UVA - 10099 The Tourist Guide kruskal算法
- ubuntu20.04 bundlefusion
- gwipr70驱动天空_win7 kmplayer plus设置_gwi pr2 pluswin7驱动_kmplayerplus官方下载
- python数据分析案例简单实战项目(二)--疫情数据分析
- 虚拟摄像头之DirectShow虚拟摄像头开发
- JQuery 实现文件下载的常用方法分析
- 分布式监控系统WGCLOUD故障自愈能力说明
- win32 透明窗口无边框模版
- Win10系统打开photoshop提示错误16 如何解决?
- 【抓包教程】- 微信视频号下载教程,使用charles抓包工具,如何设置charles抓包工具,以及具体在某一个视频上如何抓包
- 有苦有乐的算法 --- 可能有环也可能无环的两个单链表,判断这两个链表是否相交,如果相交返回相交的第一个节点