树莓派 - MQTT

树莓派mqtt连接onenet平台实现消息订阅与发布 目录一、引言二、代码三、测试效果四、说明 一、引言 由于毕设需求,需要通过MQTT上传数据与下发命令,所以小白的我学习了MQTT,虽然理论部分还是懵懵懂懂,但别人的实现代码看懂也还算凑合。对于mqtt的入门我是跟着B站一位up主物联网技术大神的教学视频学习的,他是以stm32开发板来讲解的。由于个人能力薄弱所以自己整合的代码有很大一部分是直接copy这位up主的(嘿嘿 ????),特别mqtt.c中的,不过也做了些许修改以适用于树莓派,在此多谢这位up主。由于onenet是一个免费开放平台,所以对于没钱党的 阅读详情

安装mosquitto

下载源代码包
wget http://mosquitto.org/files/source/mosquitto-1.5.tar.gz
解压
tar zxfv mosquitto-1.5.tar.gz
进入目录
cd mosquitto-1.5
编译
make
安装
sudo make install

安装问题

handle_connect.c:33:25: fatal error: uuid/uuid.h: No such file or directory
 #  include <uuid/uuid.h>

解决:

pi@raspberrypi:~/mosquitto-1.5 $ sudo apt-get install uuid-dev

找不到openssl/ssl.h
解决:sudo apt-get install libssl-dev

error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
解决:

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
sudo ldconfig

在linux 虚拟机上也安装mosquitto, sudo apt install mosquitto

测试

这里写图片描述

在raspberryPi上运行mosquitto -v

pi@raspberrypi:~ $ mosquitto -v
1533737054: mosquitto version 1.5 starting
1533737054: Using default config.
1533737054: Opening ipv4 listen socket on port 1883.
1533737054: Opening ipv6 listen socket on port 1883.
1533737096: New connection from 192.168.0.197 on port 1883.
1533737096: New client connected from 192.168.0.197 as mosqpub|9828-ubuntu (c1, k60).
1533737096: No will message specified.
1533737096: Sending CONNACK to mosqpub|9828-ubuntu (0, 0)
1533737096: Received PUBLISH from mosqpub|9828-ubuntu (d0, q0, r0, m0, 'gpio', ... (20 bytes))
1533737096: Received DISCONNECT from mosqpub|9828-ubuntu
1533737096: Client mosqpub|9828-ubuntu disconnected.
1533737126: New connection from 192.168.0.197 on port 1883.
1533737126: New client connected from 192.168.0.197 as mosqsub|9829-ubuntu (c1, k60).
1533737126: No will message specified.
1533737126: Sending CONNACK to mosqsub|9829-ubuntu (0, 0)
1533737126: Received SUBSCRIBE from mosqsub|9829-ubuntu
1533737126:     gpio (QoS 0)
1533737126: mosqsub|9829-ubuntu 0 gpio
1533737126: Sending SUBACK to mosqsub|9829-ubuntu
1533737170: New connection from 192.168.0.197 on port 1883.
1533737170: New client connected from 192.168.0.197 as mosqpub|9832-ubuntu (c1, k60).
1533737170: No will message specified.
1533737170: Sending CONNACK to mosqpub|9832-ubuntu (0, 0)
1533737170: Received PUBLISH from mosqpub|9832-ubuntu (d0, q0, r0, m0, 'gpio', ... (20 bytes))
1533737170: Sending PUBLISH to mosqsub|9829-ubuntu (d0, q0, r0, m0, 'gpio', ... (20 bytes))
1533737170: Received DISCONNECT from mosqpub|9832-ubuntu
1533737170: Client mosqpub|9832-ubuntu disconnected.
1533737186: Received PINGREQ from mosqsub|9829-ubuntu
1533737186: Sending PINGRESP to mosqsub|9829-ubuntu
1533737228: New connection from 192.168.0.197 on port 1883.
1533737228: New client connected from 192.168.0.197 as mosqpub|9835-ubuntu (c1, k60).
1533737228: No will message specified.
1533737228: Sending CONNACK to mosqpub|9835-ubuntu (0, 0)
1533737228: Received PUBLISH from mosqpub|9835-ubuntu (d0, q0, r0, m0, 'gpio', ... (20 bytes))
1533737228: Sending PUBLISH to mosqsub|9829-ubuntu (d0, q0, r0, m0, 'gpio', ... (20 bytes))
1533737228: Received DISCONNECT from mosqpub|9835-ubuntu
1533737228: Client mosqpub|9835-ubuntu disconnected.
1533737235: New connection from 192.168.0.197 on port 1883.
1533737235: New client connected from 192.168.0.197 as mosqpub|9836-ubuntu (c1, k60).
1533737235: No will message specified.
1533737235: Sending CONNACK to mosqpub|9836-ubuntu (0, 0)
1533737235: Received PUBLISH from mosqpub|9836-ubuntu (d0, q0, r0, m0, 'gpio', ... (20 bytes))
1533737235: Sending PUBLISH to mosqsub|9829-ubuntu (d0, q0, r0, m0, 'gpio', ... (20 bytes))
1533737235: Received DISCONNECT from mosqpub|9836-ubuntu
1533737235: Client mosqpub|9836-ubuntu disconnected.
1533737246: Received PINGREQ from mosqsub|9829-ubuntu
1533737246: Sending PINGRESP to mosqsub|9829-ubuntu

在PC机上分别开两个终端运行
mosquitto_sub -v -t gpio -h 192.168.0.135

mosquitto_pub -t gpio -h 192.168.0.135 -m "{\"pin\":17,\"value\":0}"

树莓派的IP地址为192.168.0.135.

发布者发布数据:

~$ mosquitto_pub -t gpio -h 192.168.0.197 -m "{\"pin\":17,\"value\":0}"
~$ mosquitto_pub -t gpio -h 192.168.0.135 -m "{\"pin\":17,\"value\":0}"
~$ mosquitto_pub -t gpio -h 192.168.0.135 -m "{\"pin\":17,\"value\":0}"

订阅者接收到数据:

~$ mosquitto_sub -v -t gpio -h 192.168.0.135
gpio {"pin":17,"value":0}
gpio {"pin":17,"value":0}
gpio {"pin":17,"value":0}

#
Reference
https://github.com/eclipse/mosquitto
https://blog.youkuaiyun.com/xukai871105/article/details/39255089

树莓派与ESP8266-MQTT无线通信 本篇文章将一步步的将如何建立树莓派与8266的连接方法告诉您首先在参考本文之前,您需要准备一下材料准备材料1、一块树莓派+32GB以上内存卡(版本应该在3B以上,并准备好了系统并能正常进行连接)2、一块ESP8266(我们将使用Arduino的IDE进行编辑)3、在太极创客上获取或参考8266编写资料的能力,并注册一个然也物联个人服务器4、平缓心情,一步步来捏,例如第三点如果不理解,后文也会详细叙述~( ̄▽ ̄)~*... 阅读详情

相关推荐

树莓派上用QT搭建MQTT环境教程

第一步:下载源码 git clone https://code.qt.io/qt/qtmqtt.git 也可以去我的百度网盘里下载,下面的链接 下载链接 提取码:fopr 第二步:树莓派安装依赖库 sudo apt install qtbase5-private-dev 第三步:开始编译 cd qtmqtt qmake make -j4 发现编译失败,编译过程中会出现两个错误: 第一个错误...

贝勒里恩的博客 3583

在树莓派上使用 MQTT

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

weixin_41012767的博客 6272

教你读懂techpoint视频解码芯片tp2855规格书(第一部分)

所有的控制环都是可编程的,以实现最大化的灵活性。对于NTSC/PAL输入,输出时钟和采样结构是非标准的,以便在多路复用输出时与HD格式一同工作。所有通道的音频数据都可以选择性地级联,以实现最大的灵活性。TP2855是一款通用的高清/标清视频解码器芯片,其支持对HD-TVI、NTSC/PAL制式960H分辨率及普通AHD视频格式的解码。TP2855具有内部钳位,在每个通道上都有自动增益控制放大器,用于最佳的信号调节。即使在使用低质量和长线缆的条件下,它的可编程均衡放大器和自动控制环也能维持尚佳的表现。

hufan92的博客 4918

MQTT学习笔记——树莓派MQTT客户端 使用Mosquitto和paho-python

本文说明如何在树莓派上安装Mosquitto。本文通过两个简单的例子说明树莓派中如何使用MQTT协议实现消息订阅,这些例子包括Mosquitto_sub指令实现消息订阅和paho-python扩展库实现GPIO端口的远程控制。本文中使用了两个工具——Mosquitto paho-python,其中Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的消息通信简单易用;另外,paho-python是一个符合MQTT v3.1

物联网 IoT 经验分享 7万+

手把手教你用Copilot插件在Obsidian里免费接入DeepSeek-R1(附硅基流动API密钥获取)

本文详细介绍了如何通过Copilot插件在Obsidian中免费接入DeepSeek-R1模型,实现智能知识管理。从硅基流动API密钥获取到插件配置,再到高级功能调优和实战应用技巧,手把手教你打造AI驱动的个人知识库。

weixin_33686714的博客 2793

LabVIEW新手必看:5分钟搞定S7-1200 OPC通信(附完整配置截图)

本文详细介绍了LabVIEW与西门子S7-1200 PLC通过OPC通信实现工业监控系统的完整配置流程。从环境准备、PLC数据块配置到OPC Server高级设置,逐步指导新手快速建立稳定通信链路,并分享工业级应用的优化技巧和异常处理方案,帮助用户提升自动化系统集成效率。

rl6adventurer的博客 641

在树莓派上安装mqtt客户端

1、下载源码安装,源码下载地址 https://github.com/eclipse/paho.mqtt.python.git 2、使用winscp或其他工具将源码上传到树莓派中 3、安装源码 cd paho.mqtt.python-master/ sudo python3 setup.py install 这里注意要使用sudo,否则会因为权限不足报错 4、安装完成 ...

xiaommxhxxl的博客 2233

Jasper Report使用JSON数据源创建报表

最近在做一个项目小功能,表单结案要生成PDF报表。 起初,想用HTML模板(art-template模板引擎)编写,利用浏览器的打印功能保存成pdf文件下载。但是HTML编写好的模板,页码、页眉、页脚设置有坑,表单内容中的表格较多,表格不能设置跨页,导致跨页的表格内容与页眉重叠,没能解决这个问题。 于是,转战研究Jasper report生成报表,用更加专业的报表生成工具来做。刚开始,也是跌跌撞撞,遇到了很多问题,因为觉得没有退路了,必须要用这个搞出来,所以就硬着头皮去找各种资料。 主要使用的json

xiaogege2012的专栏 3319

ubuntu系统在编译安装mqtt过程中,出现/usr/bin/ld: 找不到 -lssl

mqtt linux环境下安装

weixin_42317370的博客 925

5G NR 物理层 流程一:从帧结构到TB块,PDSCH/PUSCH 资源映射与TBS计算实战

本文详细解析了5G NR物理层流程,从帧结构到TB块的计算,重点介绍了PDSCH/PUSCH资源映射与TBS计算的实战方法。通过具体案例和公式推导,帮助工程师掌握5G NR资源分配、MCS选择及TBS量化过程,解决实际部署中的常见问题。

weixin_30897233的博客 94

DOSBOX 0.74模拟器安装Windows 95

DosBox本身带有5.0版的DOS系统,启动后虚拟一个Z盘存放有Dosbox特有的外部指令,如config.com、imgmount.com等,经测试,可以顺利安装各版本的windows 3.1系统,但是不能安装win95,需要用原版的dos镜像启动才能安装。1. 获取启动盘镜像文件 下载Win95启动软盘镜像文件,名为boot.img,放到DosBox 0.74的目录下。2. 制作硬盘镜像文件

xjnzhidao的博客 9310

实现树莓派与上位机进行mqtt转tcp通信

实现树莓派与上位机进行mqtt转tcp通信(上位机与下位机之间的公网通信)

qq_61616201的博客 2118

Marin说PCB之LPDDR5的布线注意事项--03

这个规则中是把每个字节中的WCK to RDQS 以及DM / DQ to WCK等长规则都加到了DM / DQ这个等长规则中去了,因为芯片手册上的设计要求中的DM / DQ这个group的等长误差是+-50MIL, WCK to RDQS的等长group的规则是62.5MIL,DM / DQ to WCK等长group的规则是相对松一些是150MIL。其实上面的等长规则还是建少了一些的,例如手册上要求的每个channel的WCK0:1,WCK2:3等长误差在+-488MIL,这个规则建议还是补上去吧。

weixin_45223454的博客 1229

树莓派MQTT服务远程测试MQTT.fx

陈拓 2021.04.07/2021.04.07 1. 概述 在《树莓派安装Mosquitto MQTT服务》 https://zhuanlan.zhihu.com/p/359395794 https://blog.youkuaiyun.com/chentuo2000?spm=1000.2115.3001.5343 一文中我们已经在树莓派上安装了mosquitto MQTT服务,并进行了本地测试。在此基础上,本文进行远程测试。 远程测试在PC上进行,需要安装工具MQTTfx。安装见《MQTTfx连接物.

晨之清风 1188

《FPGA DDR3权威实战:从基础到高速故障录波系统》专栏导览:从不知所措到心中有数

本文是一份DDR3实战指南,作者从自身学习经历出发,分享了一套循序渐进的DDR3应用路线图。专栏包含12篇文章,从基础配置(MIG IP核、AXI总线)、仿真测试到实际项目应用(功能测试、性能测试),最后深入原生MIG接口实战,通过一个高速故障录播系统案例完整展示DDR3开发流程。文章特别强调实践性,旨在帮助读者系统掌握DDR3开发技能,避免作者当年踩过的坑。每篇都配有优快云链接,适合FPGA开发者按顺序学习参考。

FPGA_小田老师的博客 331

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【树莓派】树莓派使用paho-mqtt库进行MQTT通讯

树莓派使用paho-mqtt库进行MQTT通讯 参考资料: https://www.emqx.cn/blog/use-mqtt-with-raspberry-pi https://pypi.org/project/paho-mqtt/ 1、安装paho-mqtt库 官方网站:https://pypi.org/project/paho-mqtt/ pip install paho-mqtt 2、登录MQTT服务器 3、发布消息 # test_connect.py import paho.mqtt.cl

Not Found 404 1933

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

在树莓派中编写mqtt客户端

在树莓派中配置并编写mqtt客户端,用树莓派充当下位机,其中的mqtt客户端通过阿里云服务器的公网mqtt代理服务器与上位机qt的mqtt客户端进行远程跨网段通信。

qq_61616201的博客 2063

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

树莓派实现MQTT通信

之前我在linux上有搭建过MQTT环境,我们也在树莓派上搭建这样的环境试试当然你不搭建也可以,毕竟是和linux同一个道理使用ssh登录树莓派,搭建完毕后,我们输入指令启动程序:mosquitto -c /etc/mosquitto/mosquitto.conf -d 我们打开两个窗口,在一个(订阅)窗口输入:mosquitto_sub -t hello 另一个(发布)窗口输入:mosqui...

姜亚轲的博客 1万+

树莓派通信协议——MQTT的安装及使用

MQTT是一种基于TCP/IP协议栈构建的异步通信协议,是一种轻量级的发布/订阅信息传输协议,基于topic订阅关系的发布和推送;在实践中可空间上,将消息发送者和接受者分离,可以再不可靠的网络环境中进行扩展,适用于设备硬件存储空间有限或网络带宽有限的场景。 上面是比较官方的解释,那么我们用我们听得懂的话来解释,现在的抖音很火,那我们就用抖音举个栗子: 抖音是一个短视频平台,任何人都可以发布自己拍的视频,也可以看别人的视频,那么我们假设有用户A和用户B; 用户A ------关注------> 用户.

geeknuo的博客 5390

在树莓派中使用 MicroPython 接入 MQTT

本文将介绍如何在树莓派上使用MicroPython编写简单的MQTT客户端,并实现该客户端与MQTT服务器的连接、订阅、发布等功能。

emqx_broker的博客 1198

树莓派上传系统数据到MQTT服务器

树莓派上传系统数据到MQTT服务器 前段时间购买了一个服务器,安装了MQTT服务器,实现一些智能家居的功能。同时手头上有一个树莓派,慢慢部署一些功能,第一个就是上传树莓派的系统资源到MQTT,这样手机端或者小屏幕可以实时获取和显示。 参考:https://www.jianshu.com/p/06d23de47aed https://blog.youkuaiyun.com/lhh08hasee/article/details/88025436 https://moe.best/tutorial/frp.html

Hot_Ant的博客 2454

树莓派安装mysql_如何在树莓派上安装MQTT

我们学习如何将MQTT消息从ESP8266 / NodeMCU传输到运行MQTT代理的树莓派。我们的NodeMCU将通过光敏电阻(LDR)读取光照水平,然后通过Wi-Fi上的MQTT将此信息传输到树莓派。NodeMCU,是一个开源的物联网平台。 它使用Lua脚本语言编程。该平台基于eLua开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-...

weixin_39687422的博客 206

树莓派搭建MQTT服务器(基于EMQ)

文章目录1.准备工作1.1知识储备2.安装EMQ3.测试MQTT服务器3.1 新建服务器管理员3.2 登录到服务器后台3.3 MQTT客户端测试 1.准备工作 1.1知识储备 关于MQTT协议 能点进来的基本都知道MQTT协议是啥了吧,不知道的自行百度吧,这里就默认各位都知道了。 关于EMQ EMQ X 是一款完全开源,高度可伸缩,高可用的分布式 MQTT 消息服务器,适用于 IoT、M2M和移动应用程序,可处理千万级别的并发客户端。 EMQ X 是跨平台的,支持 Linux、Unix、macOS 以

MGodmonkey的专属博客 9389

树莓派连接普通Mqtt服务器

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

qq_45086508的博客 1426
上一篇: Linux I2C驱动
下一篇: 树莓派 - RasberryPi推送数据到cloudMQTT
feiwatson
博客等级 码龄11年 49粉丝 67原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值