利用树莓派搭建公网下的mqtt服务器

在树莓派上搭建MQTT服务器 一、MQTT协议 实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。 MQTT传输的消息分为:主题(Topic)和负载(payload)两部分: (1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload); (2)payload,可以理解为消息 阅读详情

树莓派搭建mosquitto服务器

物联网设备有多种互相通信方式,但是mqtt更加方便后期其他设备的加入也更加稳定,随便拿台电脑也能搭建,但是考虑到mqtt需要占用一定内存还需要一直开机,手里正好有个闲置的树莓派,于是用树莓派作为寝室物联网的服务器感觉是最好的选择。
首先在网上找一下开源的mqtt服务器,主要用的是apollo和mosquitto,我这里选用的是mosquitto的服务器,树莓派是Linux系统,所以基于Linux搭建方法我们用树莓派搭建会变得很方便

首先需要一个刷了官方系统的树莓派,
然后直接apt-get就可以了,但是会提示依赖问题报错像这样

               apt-get install mosquitto 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信
				息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到
				(Incoming)目录移出。 下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖
				关系: mosquitto : 依赖: libssl1.0.0 (>= 1.0.0) 但无法安装它 依赖: libwebsockets3 (>= 1.2)
				但无法安装它 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包
				间的依赖关系。

网上有很多解决方法,可以参考https://www.jianshu.com/p/5c9342ff50b2

上面那种对像我这样的小白不是很友好,我们直接下载源码包

wget http://mosquitto.org/files/source/mosquitto-1.5.5.tar.gz
但是之后会碰到很多依赖没安装的问题
所以我们先把依赖安装好
sudo apt-get install libssl-dev libc-ares-dev uuid-dev g++
上面这一步是编译时需要用到的可能会用一段时间
下载好依赖之后就可以用weget的方法了
wget http://mosquitto.org/files/source/mosquitto-1.5.5.tar.gz
下载好后解压
tar zxfv mosquitto-1.5.5.tar.gz
之后进入目录
cd mosquitto-1.5.5
make
然后安装
sudo make install

这样就算搭建好了
Mosquitto还有很多配置,但是这里我们自己用可以不用管,当然后续我会更新有关mosquitto的用法
进入shell
输入 mosquittto -v
然后就启动啦,同时可以打印出调试信息
Opening ipv4 listen socket on port 1883.
Opening ipv6 listen socket on port 1883.
这两行可以知道mqtt打开在1883端口,要外界连接他就要连1883

在这里我们可以用树莓派自己做一下测试看连接是否成功
mosquitto_sub -v -t test
这就是打开一个接收topic为test的客户端
然后在开一个命令行输入
mosquitto_pub -t test -m “this is a test”
然后我们就会在接收端收到this is a test
同时服务器后台那个也会看到两个连接和他们发的数据
我们这个服务器就算通了,上位机程序和手机接收端的连接在后面会有

下面是几个常用的mosquitto的命令:
开启
sudo service mosquitto start
停止
sudo service mosquitto stop
查看状态
sudo service mosquitto status
mosquitto_pub和mosquitto_sub都有几个参数
【-t】指定主题
【-v】打印调试信息
【-h】指定服务的IP地址
【-p】指定服务的端口号
这里只是让大家搭建出来,另外还可以设置登录账号密码等操作可以看其他很多有关博文

树莓派安装花生壳

pppoe拨号上网再用花生壳做一个动态域名解析就可以获得一个公网上面的服务器了
花生壳有专门的树莓派客户端,我们可以在其官网上下载

首先配置pppoe输入
sudo apt-get install pppoe pppoeconf pppstatus
然后配置pppoe ,一直回车即可。只要在用户名和密码输入正确就可以
pppoeconf
然后我们检测下是否pppoe成功
ifconfig
在这里插入图片描述
这样已经连接成功
但是在每次重启后ip地址会发生改变于是我们挂一个花生壳的域名解析在上面
在这里插入图片描述

下载好后我们先root一下
su
然后输入root的密码
在这里插入图片描述
然后进入上面的页面 用户名密码就是上图显示的
在这里插入图片描述
配置好后我们域名诊断一下,通了,我们就可以直接通过域名访问到树莓派在这里插入图片描述
在这里插入图片描述

这样我们就可以在任意地方找到你的服务器了

有关其他物联网设备接入此mqtt服务器可以参考我其他的博客

从0到1图文并茂用树莓派搭建一个MQTT服务器 前言 用树莓派搭建这个MQTT服务器真的是踩了好多好多坑(哭晕在厕所),为了让大家不再踩坑,笔者决定怒写博客。 所有工具皆在前言列出! 所需工具:SD Card Formatter、Win32DiskImager、Putty 树莓派操作系统:Raspberry Pi MQTT服务器框架:mosquito 安装树莓派操作系统并登录系统 首先,准备一张8G以上的SD卡,插入到读卡器中。 打开SD Card Formatter进行全扇区格式化。 选择好你的U盘,按照图中配置点Format即可。 格式化成功。 阅读详情

相关推荐

EMQ MQTT云服务器搭建 - 阿里云轻量应用服务器

购买服务器,与其最近主推的ECS服务器,明显轻量应用服务器更香。网速带宽提高了5倍,SSD系统盘,CPU独享,带公网IP。限时特价,90/年特价可以嫖三年。最近618又有优惠了,不过只能买一年的份,体验一下是够了。yyds 详情界面:云服务器控制台 我的购买后装了 ubuntu20。 熟悉界面及基本控制操作 运行的控制台,可以看到公网/内网IP 快速设置的话,可以按照下面方框里的步骤来。 远程登录有三种方式。 网页登录,(就是个网页的终端,不如直接用终端软件远程连接) 用SSH终端软件通过公网IP连接

Mark_md的博客 6911

在树莓派上使用 MQTT

MQTT是一种基于发布/订阅模式的轻量级物联网消息传输协议,可以用极少的代码和带宽为联网设备提供实时可靠的消息服务,它适用于硬件资源有限的设备及带宽有限的网络环境。因此,MQTT 协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等行业。 在此项目中,我们将在树莓派上使用 Python 编写简单的MQTT 客户端,并实现该客户端与MQTT 服务器的连接、订阅、取消订阅、收发消息等功能。 环境搭建 安装 Python3 本项目使用 Python3 进行开发,一般情况下,树莓派系统会...

weixin_41012767的博客 6272

基于4G LTE模块的树莓派远程SSH连接方案(内网穿透)

关键词: 树莓派 Raspberry 4G LTE 华为 Huawei ME909 移远 EC20 公网服务器 远程连接 远程SSH MobaXterm 内网穿透 概述:树莓派是一个稳定成熟性价比合理且受创客喜爱的计算平台,在实际应用中有一个比较典型的远程控制需求,只要树莓派能上网,那么可以通过各种方法来进行远程控制,比如MQTT、发送邮件、FTP、远程SSH等。今天我们...

7697

树莓派连接普通Mqtt服务器

本文介绍如何使用Python语言在树莓派上实现与普通MQTT服务器的连接,并进行双线程的消息发布和订阅。此教程将利用paho-mqtt库来完成MQTT协议下的通信任务,适用于物联网项目和爱好者。

qq_45086508的博客 1426

Python+物联网实战:MQTT协议实现树莓派传感器数据采集分析平台

作为一个喜欢鼓捣硬件的Python程序员,我发现用树莓派做物联网项目简直就像找到了真爱。这次咱们要玩点实在的——用搭建一个能实时采集温湿度数据,还能做数据分析的小平台。放心,不需要你买昂贵设备,一个50块钱的DHT11传感器加树莓派就能搞定。

zzjlhlcd的博客 1045

树莓派上使用MQTT协议实现物联网

在上述代码中,我们首先导入了paho.mqtt.client模块,然后定义了一个回调函数on_message,用于处理收到的消息。然后,通过调用client.connect()方法连接到MQTT代理服务器,其中指定了代理服务器的地址和端口号。在上述代码中,我们创建了一个MQTT客户端实例client,并通过client.connect()方法连接到MQTT代理服务器。首先,我们需要在树莓派上安装paho-mqtt库,它是一个Python实现的MQTT客户端库,提供了方便的接口用于与MQTT代理进行通信。

TeVisual_Basic的博客 991

Mqtt开发笔记:Mqtt服务器搭建

使用到mqtt服务器(中间件)。

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 6万+

EPICS Phoebus手册1

EPICS客户端phoebus 手册

yuyuyuliang00的博客 3952

基于ESP32搭建物联网十六(用树莓派建立MQTT服务器[上])

树莓派,(英语:Raspberry Pi,简写为RPi,别名为RasPi / RPI) 是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux。随着Windows 10 IoT的发布,用户可以用上运行Windows的树莓派。在选择树莓派时,最好优先选择带有无线网卡的版本,从树莓派3B型开始,所以树莓派基本都会有无线网卡功能。树莓派系统安装树莓派系统的安装我们需要准备一个microSD卡和一个读卡器。下载后安装该工具,运行我们把SD卡插入读卡器,连接到电脑上,点击选择SD卡。

Byte Madman 1242

TPC好像是这么回事儿

TPC(Transmit Power Control)发送功率控制,本觉得就是控制一下发送功率,原理很简单,但看原版协议死活每搞懂什么意思,恼羞成怒!!!! 后来又看了一些贴子和cisco的相关功能介绍,再回头看协议,好像是这么一回事: 1、所谓TPC,是AP控制STA的发送功率的一种手段。在802.11d中,已定义了使用Country Element传递区域无线通信规定的信道和最大发送功率信息: 通过获取这些信息,STA可以确定自己应该遵守什么规则,可以用什么发送功率在哪些信道上通信。 2

两只勤劳的蜜蜂 8629

Android Audio - 支持多应用同时录音_Android8.1修改方法

支持多应用同时录音_Android8.1修改方法 源码路径: sdk\frameworks\av\services\audiopolicy\managerdefault\AudioPolicyManager.cpp 需要修改两个位置: audio_io_handle_t AudioPolicyManager::getInputForDevice() 在mpClientInterface-&gt...

iFinelio Tower 的博客 5758

Mqtt服务器搭建

MQTT 是一种轻量级消息发布/订阅协议,适合物联网设备通信。MQTT Broker(代理服务器):负责消息的转发,所有客户端(发布者和订阅者)都连接到Broker。客户端:可以是树莓派,PC,手机等,通过Broker发送或接收消息。

weixin_49672862的博客 1844

自制JS某课脚本

根据实际需求自制网页讯网刷题脚本,绕过人脸,弹窗,答题,实现自动化运行

2301_81243054的博客 3459

使用MQTT远程控制树莓派继电器开关

一、MQTT服务器(emqx)搭建 连接:安装 | EMQ X 文档 根据文档进行安装,文档里面包含各种系统安装方式,可以根据服务器系统进行选择,因为我这边用的是阿里云的centos系统服务器,所以具体安装方式如下: 1.安装所需要的依赖包 $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2.使用以下命令设置稳定存储库,以 CentOS 7 为例 $ sudo yum-config-manager --a

qq_27199947的博客 5175

【数据集】CMIP6气候模式数据下载

简介CMIP6及其气候模式数据下载

WW、forever的博客 9353

【Unity小游戏】整整一个周末写一款《皇室战争 玩法》 的 即时战斗类 游戏Demo。两万多字游戏制作过程+解析

Unity游戏制作,本篇文章介绍了复刻皇室战争玩法的一个自制小游戏,共有该游戏的两万字教程加制作过程,欢迎品尝! 世界上没有绝对的公平,如果我们起点就比别人第一步,那就更需要比别人努力了。

努力前行,总会成为自己心中的那道光 12万+

MQTT协议应用:外网手机控制内网树莓派

实验目的:将外网手机发送的字符串使用树莓派的串口输出 不了解MQTT协议的请参考:MQTT协议体验 Mosquitto安装和使用 不了解使用Python操作树莓派串口的请参考:Raspberry Pi B的UART极简例程一、前期准备 服务器安装好Mosquitto(MQTT代理软件); 树莓派安装好Python(用来编写树莓派订阅代码),然后用pip安装paho-mqtt(实现了MQTT协议的

CharmingSun的博客 1万+

Valgrind 从入门到精通:内存调试和性能分析

Valgrind 提供了强大的 API,允许开发者编写自定义的检查工具。通过扩展 Valgrind,可以针对特定场景实现更精准的检测。

大模型大数据攻城狮的专栏 1217

树莓派安装mqtt broker并使用python从外部访问

树莓派安装mqtt broker并使用python从外部访问说明环境配置1.PC安装`paho-mqtt`Python脚本`mqtt.py`2.树莓派linuxpython 3.7.3mosquitto-2.0.9下载、编译修改配置内部测试外部测试 说明 记录一下树莓派linux的学习。 树莓派通过eth0有线连接到光猫LAN口,用超级用户访问光猫后台把树莓派设为DMZ主机,理论上可以实现公网访问,但是移动宽带貌似是大型局域网,甚至同一省级移动4G都不能访问,有点小伤心。 由于树莓派直连光猫LAN口,其他设

u012198579的博客 4551

【QGIS入门实战精品教程】1.2:QGIS与ArcGIS的区别和联系

以下是GISGeography官方给出的两者之间的27点比较(译): 官方网址:https://gisgeography.com/qgis-arcgis-differences/ 1.QGIS容纳更多的数据格式 ArcGIS没有支持所有的数据格式,毫无疑问,QGIS在处理各种类型的数据时非常顺手,QGIS在数据格式方面是个多面手,在使用数据方面是它的长处。 QGIS使用GDAL/OGR库来读取和写入地理信息数据格式,支持超过70种矢量格式。QGIS一开始就是为了与PostGIS协作而诞生的,而支持的名单.

智慧空间实验室 2040

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

阿里云服务器ECS搭建EMQ快速实现MQTT通信

为了实现树莓派采集传感器数据存入云服务器的需求,学习如何在阿里云ECS部署EMQ,通过其实现与树莓派和PC的数据通信

汤姆lazy的优快云博客 3459

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

利用rfcomm实现树莓派与手机通信_智能家居好伙伴 树莓派,MQTT和Python – 上篇

作为一个技术宅,不在业余时间折腾折腾,总觉得浑身不得劲,能够利用自己的知识,使自己的生活更加舒适便捷,这也会带来极大的满足感,智能家居项目就是这样一种项目,通过自己的奇思妙想,搭建符合自己和家人生活习惯的贴近生活的小设备是非常有意思的一件事情。而在搭建这样系统的过程中,我们也可以从中学到更多的技术知识,增加自己的技术储备。在这篇文章中,我们将以树莓派为载体,使用Python搭建一个最基础的智能家居...

weixin_39783771的博客 932

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

基于ESP32搭建物联网十五(公网访问自建MQTT服务器)

我们所建立的服务器只能在本地的局域网中请访问,在本文中,我们将利用内网穿透功能来使我们的服务器可以让公网中的客户端进行请访问。如果通过了实名认证,登陆后可以免费领取两个内网穿透的映射,每个月一共有1G的流量,看着并不多,但我们主要是用于MQTT协议,用来测试或个人小范围使用是足够的。最后需要注意的是,使用内网穿透功能的过程中,我们的花生壳工具需要在电脑上保持运行,如果退出,将失去内网穿透功能。在这里,我们可以看到外 网地址和端口,注意,因为我们选择的是动态端口,所以,这里要改成你生成的端口。

Byte Madman 3018

Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建

原博主博客地址:https://blog.youkuaiyun.com/qq21497936 本文章博客地址:https://blog.youkuaiyun.com/qq21497936/article/details/91463870 目录 MQTT协议简介 设计原则 特点 发布/订阅者模式 MQTT服务器 MQTT协议中的方法 Qt搭建MQTT编程环境 介绍 下载mqtt 编译mqtt(注意:使......

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 7万+

树莓派4b搭建emqx-mqtt服务器,用Ngrok实现内网穿透,实现远程访问emqx控制台

树莓派4b搭建emqx-mqtt服务器,用Ngrok实现内网穿透,实现远程访问emqx控制台

qq_64038890的博客 1713
上一篇: esp32/8266环境搭建之lua篇
下一篇: esp32/8266环境搭建之c语言篇(win和linux)
调库侠
博客等级 码龄8年 22粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值