rtthread mqtt

article/2025/8/25 22:05:16

rtthread 以太网 (LAN8720A)
基于以太网的应用mqtt,在**rtthread 以太网 (LAN8720A)**中已经实现了tcp/ip通信正常,接下需要启用mqtt模块,

嵌入式mqtt设备

rtthread 启用mqtt

在rtthread中田间 pahomqtt 软件包,并右键详细配置

软件包
|---->property
|		|---->Paho MQTT:嵌入式平的的Eclipse Paho MQTT C/C++客户端   	√
|				|---->使能MQTT示例 		√

修改示例代码

路径:rtthread\packages\pahomqtt-v1.1.0\samples
#define MQTT_URI                "tcp://192.168.1.100:61613"  //设置mqtt服务器ip和端口
#define MQTT_USERNAME           "admin"						//设置mqtt连接用户名
#define MQTT_PASSWORD           "password"					//设置mqtt连接用户密码
#define MQTT_SUBTOPIC           "mqtt_test"						//设置订阅topic
#define MQTT_PUBTOPIC           "mqtt_test"						//设置发送消息topic

mqtt服务器

mqtt服务器软件 apache-apollo-1.7.1-windows-distro.zip 下载地址

mqtt服务器创建

解压apache-apollo-1.7.1-windows-distro.zip

cd  apache-apollo-1.7.1\bin
apollo.cmd create mymqtt_server		//创建服务器实例

创建成功后会在bin目录中创建一个 mybroker

|----->mymqtt_server
|	|----->bin  运行脚本
|	|----->etc 环境配置
|		|----->users.properties 用来配置可以使用服务器的用户以及相应的密码。
|		|----->groups.properties 持有群体的用户映射,可以通过组而不是单个用户简化访问控制列表。
|		|----->black-list.txt 用来存放不允许连接服务器的IP地址,相当于黑名单类似的东西。
|		|----->login.config 是一个服务器认证的配置文件,
|		|----->apollo.xml 服务器主配置文件该配置文件用于控制打开的端口,队列,安全,虚拟主机设置等。
|	|----->data 存储持久化数据
|	|-----> log  运行日志
|	|----->tmp 临时文件密码返回信息
------------------------------------------------------------
Creating apollo instance at: mymqtt_server
Generating ssl keystore...Warning:
JKS ├▄╘┐┐Γ╩╣╙├╫¿╙├╕±╩╜íú╜¿╥Θ╩╣╙├ "keytool -importkeystore -srckeystore keystore -destkeystore keystore -deststore
type pkcs12" ╟¿╥╞╡╜╨╨╥╡▒Ω╫╝╕±╩╜ PKCS12íúYou can now start the broker by executing:"D:\Program Files\MQTT_server\apache-apollo-1.7.1\bin\mymqtt_server\bin\apollo-broker" runOr you can setup the broker as Windows service and run it in the background:"D:\Program Files\MQTT_server\apache-apollo-1.7.1\bin\mymqtt_server\bin\apollo-broker-service" install"D:\Program Files\MQTT_server\apache-apollo-1.7.1\bin\mymqtt_server\bin\apollo-broker-service" start

配置mqtt

mymqtt_server/bin/etc/apollo.xml

修改服务器ip信息

  <web_admin bind="http://192.168.1.100:61680"/><web_admin bind="https://192.168.1.100:61681"/><connector id="tcp" bind="tcp://192.168.1.100:61613" connection_limit="2000"/><connector id="tls" bind="tls://192.168.1.100:61614" connection_limit="2000"/><connector id="ws"  bind="ws://192.168.1.100:61623"  connection_limit="2000"/><connector id="wss" bind="wss://192.168.1.100:61624" connection_limit="2000"/>

启动mqtt 服务

cd  apache-apollo-1.7.1\bin\mymqtt_server\bin
apollo-broker.cmd run返回信息
------------------------------------------------------------_____                .__  .__                                                                               /  _  \ ______   ____ |  | |  |   ____                                                                       /  /_\  \\____ \ /  _ \|  | |  |  /  _ \                                                                      
/    |    \  |_> >  <_> )  |_|  |_(  <_> )                                                                     
\____|__  /   __/ \____/|____/____/\____/                                                                      \/|__|  Apache Apollo (1.7.1)                                                                          oading configuration file 'D:\Program Files\MQTT_server\apache-apollo-1.7.1\bin\mymqtt_server\etc\apollo.xml'. 
NFO  | OS     : Windows 10 10.0                                                                                
NFO  | JVM    : Java HotSpot(TM) 64-Bit Server VM 1.8.0_271 (Oracle Corporation)                               
NFO  | Apollo : 1.7.1 (at: D:\Program Files\MQTT_server\apache-apollo-1.7.1)                                   
NFO  | Starting store: leveldb store at D:\Program Files\MQTT_server\apache-apollo-1.7.1\bin\mymqtt_server\data
NFO  | Accepting connections at: tcp://192.168.1.100:61613                                                           
NFO  | Accepting connections at: tls://192.168.1.100:61614                                                           
NFO  | Accepting connections at: ws://192.168.1.100:61623/                                                           
NFO  | Accepting connections at: wss://192.168.1.100:61624/                                                          
NFO  | Administration interface available at: https://192.168.1.100:61681/                                         
NFO  | Administration interface available at: http://192.168.1.100:61680/                                          

通过返回信息可以看到
MQTT服务器TCP连接端口:tcp://192.168.1.100:61613

后台登录接口:
https://192.168.1.100:61681/
http://192.168.1.100:61680/

初始默认帐号是admin,密码password

mqtt 服务器创建topc

进入后台管理

在浏览器中输入 http://192.168.1.100/

输入账户admin,密码password

即可看到mqtt管理控制页

选择 Virtual Hosts -->点击Topics创建主题 mqtt_test
在这里插入图片描述

启动mqtt demo 测试服务器

路径:apache-apollo-1.7.1/examples/mqtt/websocket/index.html

浏览器中打开index.html

在Destination中填写一下信息

host:192.168.1.100

port:默认

Destination: mqtt_test (需要订阅的主题)

在这里插入图片描述

连接pc端mqtt客户端

COMNET 下载地址

打开 COMNET.exe

选择网络,选择MQTT

服务器端IP:192.168.1.100
端口号:61613
用户名:admin
密码:password
点击启用订阅主题:mqtt_test并点击订阅主题
发布主题:mqtt_test点击启用后反馈信息
[2020/12/4 13:18:02 369]  正在连接MQTT服务器...
[2020/12/4 13:18:33 497]  MQTT连接成功

在这里插入图片描述

连接rtthread 设备到mqtt服务器

启动设备连接mqtt服务器

msh />mqtt_start
[D/mqtt.sample] inter mqtt_connect_callback!
[D/mqtt] ipv4 address port: 61613
[D/mqtt] HOST = '192.168.1.100'
msh />[I/mqtt] MQTT server connect success.
[I/mqtt] Subscribe #0 test OK!
[D/mqtt.sample] inter mqtt_online_callback!

启动设备发送mqtt

msh />mqtt_publish mqtt_test
msh />[D/mqtt.sample] mqtt sub callback: mqtt_test test

启动设备接受mqtt

msh />mqtt_subscribe mqtt_test
[D/mqtt] MQTT client topic(mqtt_test) is already subscribed.

设备提示意见连接到了mqtt服务器中

通过服务器的connectors标签页中看到连接设备
在这里插入图片描述

mqttserver发送测试

在mqtt demo页中发送信息栏中填写信息点击send

  • 在pc mqtt客户端接受信息
[2020/12/4 14:06:41 124]  MQTT[TOPIC:mqtt_test]接收9字节: 
[2020/12/4 14:06:41 132]  send_test
  • rtthread 设备接受信息
[D/mqtt.sample] mqtt sub callback: mqtt_test  send_test

mqttserver接受测试

在mqtt客户端填写信息,点击发布消息–>即可在测试网页中看到接收到的信息

rtthread 设备接受信息

[D/mqtt.sample] mqtt sub callback: mqtt_test  send_test

在mqtt demo页中看到接收到的信息

send_test

rtthread 设备发送测试

  • 设备发送mqtt
msh />mqtt_publish mqtt_test
msh />[D/mqtt.sample] mqtt sub callback: mqtt_test test

在mqtt demo页中看到接收到的信息

test
  • 在pc mqtt客户端接受信息
[2020/12/4 14:06:41 124]  MQTT[TOPIC:mqtt_test]接收9字节: 
[2020/12/4 14:06:41 132]  test

http://chatgpt.dhexx.cn/article/q1Fe8YrQ.shtml

相关文章

【RTThread】修改Finsh打印串口波特率

这里需要注意得是一定要在hw_board_init初始化完成之后修改串口波特率。 /* 串口设备句柄 */static rt_device_t uart_device RT_NULL;/* 查找系统中的串口设备 */uart_device rt_device_find("uart1"); // 这里/* 串口配置结构体&#xff0c;使用serial.h的宏定义…

RT Thread之 Uart2 操作

官网连接&#xff1a;https://docs.rt-thread.org/#/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart 通过前面的学习&#xff0c;基本上RT Thread操作步骤都是&#xff0c;先配置单片机底层&#xff0c;然后再通过应用层映射到底层&#xff0c;最…

rtthread

链表 初始化双向链表 rt_inline void rt_list_init(rt_list_t *l) {l->next l->prev l; }插入 rt_inline void rt_list_insert_after(rt_list_t *l, rt_list_t *n) {l->next->prev n;n->next l->next;l->next n;n->prev l; }在NODE1后面插入节…

RT Thread根据开发板制作BSP方法

之前一直不懂怎么使用RT Thread的软件包&#xff0c;感谢网上的大神&#xff0c;看了你们的博客后大概了解一些&#xff0c;在此做下记录。用RT Thread软件包需要RT Thread的系统&#xff0c;但是RT Thread和RT Thread nano不一样&#xff0c;具体区别见 RT Thread官网&#xf…

rtthread开关中断

1 rtthread开关中断函数(cortex-m) /** rt_base_t rt_hw_interrupt_disable();*/ .global rt_hw_interrupt_disable .type rt_hw_interrupt_disable, %function rt_hw_interrupt_disable:MRS r0, PRIMASKCPSID IBX LR/** void rt_hw_interrupt_enable(rt_base_t le…

RTThread入门

RT-Thread入门 1.初识RT-Thread 嵌入式系统是一种完全嵌入在装置或设备内部&#xff0c;为满足特定需求而设计的计算机系统&#xff0c;譬如生活中常见的嵌入式系统就有&#xff1a;电视机顶盒、路由器、电冰箱、微波炉与移动电话等。 嵌入式操作系统是应用于嵌入式系统的软…

什么是RT-Thread?

一、RT-Thread的定义 RT-Thread&#xff0c;全称是 Real Time-Thread&#xff0c; 是一款主要由中国开源社区主导开发的开源实时操作系统&#xff08;许可证GPLv2&#xff09;&#xff0c;包含了实时、嵌入式系统相关的各个组件&#xff1a;TCP/IP协议栈、图形用户界面等。 相…

Redis启动失败的原因及解决方法

跑了近半年的Redis,今天早上来开启电脑运行程序的时候发现提示无法连接redis,暗想自己明明设置了开机自启的阿,以前也一直没问提,今天怎么就连不上了重启了下redis就提示如下错误 网上搜了好久都没找到解决办法,后来想起来去查看了下redis的日志文件 发现提示当前版本的redis无…

redis启动、获取密码及修改密码

一、启动redis服务的两种方式 查看密码是以redis服务已启动的前提下进行的&#xff0c;可直接在服务中右键启动redis或者安装根目录运行cmd输入《redis-server.exe》(不推荐不推荐不推荐&#xff0c;说三遍&#xff0c;命令行启动好像有bug&#xff0c;启动后redis能用&#x…

CentOS安装Redis及redis启动与关闭、配置(详细)

在项目使用redis过程中&#xff0c;在centos7上部署redis&#xff0c;查找相关资料并总结、记录&#xff0c;以备后续查看。 目录 一、Redis介绍 二、在CentOS上部署Redis 1、Redis安装包可以从官网上下载或者直接命令下载 升级到gcc 9.3&#xff1a; 3、Redis配置文件…

Redis启动和连接

一&#xff09;Redis简介 Redis不是简单的键值存储&#xff0c;它实际上是一个数据结构服务器&#xff0c;支持不同类型的值。 备注&#xff1a;由于我电脑是32位操作系统&#xff0c;所有就不提供redis软件下载地址了&#xff0c;请到官网下载使用。 软件解压之后&#xff0…

windows下Redis启动闪退问题解决经验汇总

最近使用Redis又遇到启动闪退的问题&#xff0c;之前记录的解决办法也失败了&#xff0c;一番研究后总算得到解决&#xff0c;感觉已经遇到了网上常见的各种问题&#xff0c;下面总结下。 我下载的是免安装版&#xff0c;解压便可使用。 官网下载传送门&#xff1a;Releases …

Windows下redis启动那些事儿

本文章主要描述我遇到的Windows下redis启动成功但Java项目无法连接问题 1.使用redis可视化工具可以连接&#xff0c;但是到Java项目中就报错连接失败 经过我的多方琢磨&#xff0c;还是密码没有配置正确&#xff0c;虽然是在redis.windows.conf配置文件中配置了 requirepass 密…

redis启动失败问题完美解决

1.输入启动命令redis-server.exe redis.windows.conf启动redis&#xff0c;发现启动失败报错&#xff1a;[8072] 07 May 09:28:52.241 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error D:\a\Main\redis> redis-server.exe redis.windows.conf[8072]…

windows redis启动

下载好redis后&#xff0c;只需解压。 然后打开dos窗口 进入redis解压目录 cd D:softwareRedis-x64-3.2.100运行下面命令启动 redis-server.exe redis.windows.conf成功启动 还可以把redis加入都开机自启动 redis-server --service-install redis.windows-service.conf …

redis启动和简单使用

redis启动和简单使用 1.redis启动 1.1 找到redis解压的位置,在里面输入cmd回车 1.2 输入redis-server redis.conf指令,然后回车,出现如下界面 注意&#xff1a;该界面不能关闭了 1.3 再进入一次redis解压的位置 输入cmd回车 1.4 输入redis-cli指令后的结果 1.5 补充 当出现…

Redis的启动方式三种

Redis的启动方式三种 启动一个 &#xff0c;进入到redis中的src目录下 在控制台输入指令&#xff1a;redis-server &#xff08;注意&#xff1a;这样启动默认端口是 6379 &#xff09; 进入客户端输入&#xff1a;redis-cli 查看进程&#xff0c;杀死进程 指定端口启动redi…

Redis的启动方法

一、Windows下 D: cd Redis //我的redis安装路径为D:\Redis redis-server.exe redis.windows.conf **如果报错creating server tcp listening socket 127.0.0.1:6379: bind No error D:\Redis>redis-cli.exe 127.0.0.1:6379> shutdown not connected> exit redi…

常见的配置中心:Apollo(二)-接入Apollo

1 配置 Apollo作为大型互联网系统生产级别的配置中心&#xff0c;在开发的积累当中构建了自己的配置维度体系。 1.1 配置四层维度 (1)Application(项目应用) 维度中的最顶层&#xff0c;在实际开发中我们一般以项目来作为最外层配置的区分维度。 (2)Environment(开发环境) …

apollo问题之 无法连接apollo配置中心

1.问题描述 1.1.现状场景 1.apollo的配置中心config-server 通过域名 http://demo-applo.wrok.com负载了两台机器10.10.10.02和 10.10.10.01 2.当前应用机器 可以访问并ping通 demo-applo.wrok.com域名 但是无法访问负载的机器1.2.报错信息 [demol-core-server:10.166.101.…