物联网通信之——Mqtt
程序员文章站
2023-12-29 23:54:22
总述Mqtt是目前物联网使用最广泛的通信之一,底层是基于TCP连接进行数据通信,采用订阅/发布的通信协议,非常适合低带宽、低开销的硬件终端场景使用。设备: 可发布,可订阅到主题代理服务器: 缓存消息数据,接收发布消息并转发给订阅的设备Linux搭建Mqtt服务器1、 安装mosquittosudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppasudo apt-get updatesudo apt-get install mosquit...
总述
Mqtt是目前物联网使用最广泛的通信之一,底层是基于TCP连接进行数据通信,采用订阅/发布的通信协议,非常适合低带宽、低开销的硬件终端场景使用。
设备: 可发布,可订阅到主题
代理服务器: 缓存消息数据,接收发布消息并转发给订阅的设备
Linux搭建Mqtt服务器
1、 安装mosquitto
- sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
- sudo apt-get update
- sudo apt-get install mosquitto
2、查看运行状态
- sudo service mosquitto status
3、停止与运行
- sudo service mosquitto start
- sudo service mosquitto stop
4、用户配置
- /etc/mosquitto/conf.d/default.conf 此文件为用户与密码保存的路径设置
- allow_anonymous false 不允许匿名登录
password_file /etc/mosquitto/passwd
复制以上至第一步路径文件 - sudo mosquitto_passwd -c /etc/mosquitto/passwd 用户名
5、本地模拟设备
- 安装客户端 sudo apt-get install mosquitto-clients
参数 | 作用 |
---|---|
-h | 代理服务器主机地址 |
-t | 指定主题 |
-u | 用户名 |
-P | 用户密码 |
-i | 客户端ID |
-m | 发布消息内容 |
-q | 消息等级 0最多发一次 1最少发一次 2仅发一次(保证设备端有且接收到一次) |
-
发布示例
-
mosquitto_sub -h localhost -t “test” -u test1 -P 1 -i “client1”
-
订阅示例
mosquitto_pub -h localhost -t “test” -u test1 -P 1 -i “client2” -m “hello, world!”
xr808、xr872连接
使用例程mqtt
1、添加联网操作
连接路由成功后,会在事件里创建mqtt线程
2、连接参数修改
#define MQTT_DEMO_HOST_NAME 你的电脑ip
#define MQTT_DEMO_USERNAME 非匿名登录填写,登录用户名
#define MQTT_DEMO_PASSWORD 非匿名登录填写,登录用户密码
3、实验结果
订阅与发布的都是同一Topic,故设备端接收的数据就是发布的
本文地址:https://blog.csdn.net/tulongyongshi/article/details/108181149