树莓派 - 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

果蔬及菜品识别系统

果蔬及菜品识别系统

我的博客 2118

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万+

基于ASP.NET+SQLServer的美妆网站的设计与实现

通过本次ASP.NET MVC美妆商城项目的开发,我们实现了一个功能完善、性能稳定的在线购物平台。该项目不仅提升了用户的购物体验,也为商家提供了一个高效的商品管理和销售渠道。未来,我们将持续优化系统功能,提升用户体验,以适应不断变化的市场需求。

毕业设计大牛哥 1499

汇川伺服Modbus-RTU通讯实战:从帧结构解析到西门子PLC配置

本文详细解析了汇川伺服与西门子PLC通过Modbus-RTU协议进行通讯的实战步骤,包括帧结构解析、硬件连接、参数设置及PLC程序配置。通过具体案例和常见问题排查指南,帮助工程师快速掌握工业自动化中的通讯技术,提升设备调试效率。

weixin_33670713的博客 453

在树莓派上安装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

【2025最新版】Open3D 区域生长分割(python详细过程版)

点云区域生长分割算法的python详细过程版实现。博客长期更新,本文最新更新时间为:2025年3月23日。

点云侠的博客 9529

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

mqtt linux环境下安装

weixin_42317370的博客 925

【Unity】网络游戏实战(序章)MMORPG大型多人在线角色扮演 + 中国象棋联网对战

本系列会基于两种常见的网络游戏类型(MMORPG大型多人在线角色扮演和多人棋牌),从零开始实现网络游戏开发中的大多数环节。【杜绝代码炫技】本系列杜绝代码炫技,摈弃那些高深的设计模式,一切业务逻辑的实现代码追求浅显易懂,即便是网络编程菜鸟,也能循序渐进掌握本系列的核心要点。【授之鱼也授之渔】与一些开源库那样只授予源码不同,本系列还会基于各个技术要点展开详解,并结合切实的可直接运行的Demo,授之鱼更授之渔。

神码编程 1962

openmediavault(OMV)(30)插件介绍(3)filebrowser文件管理器

filebrowser可以对omv的文件进行图形化管理,而不需要每次都通过命令进行修改。filebrowser安装。

Monster✺◟(∗❛ัᴗ❛ั∗)◞✺的博客 2320

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

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

qq_61616201的博客 2118

r3live 使用前提 雷达-相机外参标定 livox_camera_lidar_calibration

港科大livox_camera_calib虽然操作方便,但是使用mid360雷达会有视角问题(投影三维点到相机),尝试了很多场景,标定效果都不理想(推荐场景是楼梯间),看来港大的更适合avia之类窄角度的雷达。如果标定效果不好的话,就使用 getExt2节点,getExt1节点只优化外参,而getExt2节点在计算的时候会将一开始计算的内参作为初值和外参一起优化。一般使用getExt1节点即可,如果在外参初值验证过,并且异常值已经剔除后,优化还是有较大的残差,那么可以使用getExt2试一试。

z1872385的博客 2399

树莓派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

基于STM32L4XX、HAL库的ESP32-C3-WROOM-02-N4 WIFI模块驱动程序设计

支持802.11 b/g/n Wi-Fi (2.4GHz)RISC-V 32位单核处理器,主频高达160MHz。封装尺寸:18mm × 20mm × 3mm。工作温度范围:-40°C ~ 85°C。// 设置WiFi模式为STA。支持Bluetooth 5 (LE)// 发送AT指令测试通信。// 检查响应是否包含OK。内置4MB SPI Flash。// 连接TCP服务器。// 发送HTTP请求。// 初始化UART。// 建立TCP连接。低功耗设计,适合IoT应用。

zhusl6688的博客 384

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【树莓派】树莓派使用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

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

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

在树莓派中编写mqtt客户端

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

qq_61616201的博客 2063

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

树莓派实现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、付费专栏及课程。

余额充值