MQTT(消息排队遥测运输)是一种轻巧的消息传递协议(物联网)应用程序中,用于可靠和高效的设备之间的通信。在Raspberry Pi上托管MQTT服务器可以使您可以为您的IoT项目创建本地消息传递中心。本指南将引导您通过在Raspberry Pi上设置并运行MQTT服务器。
你需要什么
- 覆盆子pi (任何具有GPIO支持的模型,例如PI 3,PI 4)
- microSD卡 (至少8GB,10级或更高)
- 电源 (PI 3; 5V,PI 4的最低5V,2.5a)
- 覆盆子Pi OS (Lite或桌面版本)
- 互联网连接
- MQTT客户 (例如,ESP8266,ESP32或MQTT软件工具)
步骤1:更新覆盆子Pi
- 确保您的Raspberry Pi是最新的:
步骤2:安装蚊子MQTT经纪人
蚊子是一家轻巧且广泛使用的MQTT经纪人。
-
安装蚊子及其客户工具:
-
启用蚊子可以从启动开始:
-
开始蚊子服务:
步骤3:测试MQTT经纪人
-
在Raspberry Pi上打开两个终端窗口或SSH会话。
-
在第一个终端中,订阅一个测试主题:
-
在第二端子中,发布一条测试消息:
-
您应该看到消息“你好,mqtt!”在第一个终端。
步骤4:为外部连接配置蚊子
-
打开蚊子配置文件:
-
添加以下行以允许外部连接:
listener 1883 allow_anonymous true
笔记: 对于生产环境,设置用户身份验证,而不是允许匿名访问。
-
重新启动蚊子服务以应用更改:
-
使用MQTT客户端工具(例如MQTT.FX或MQTT Explorer)从同一网络上的另一个设备上测试连接。
步骤5:保护MQTT经纪人(可选)
-
启用密码身份验证:
- 输入并确认用户的密码。
-
更新蚊子配置文件以使用密码文件:
allow_anonymous false password_file /etc/mosquitto/passwd
-
重新启动蚊子服务:
-
使用用户名和密码测试连接。
步骤6:将IoT设备连接到MQTT经纪人
-
对于ESP8266/ESP32: 使用Arduino IDE对您的IoT设备进行编程,以发布/订阅Raspberry Pi MQTT经纪人上的主题。
-
对于软件客户: 使用MQTT.FX,MQTT Explorer或Python
paho-mqtt
图书馆。
故障排除
-
无法连接到MQTT经纪人:
- 确保蚊子运行:
sudo systemctl status mosquitto
- 检查Raspberry Pi上的防火墙设置。
- 确保蚊子运行:
-
身份验证错误:
- 在蚊子配置和客户端设置中验证用户名和密码。
-
连接被拒绝:
- 确保设备与Raspberry Pi在同一网络上。
- 检查端口1883是打开的。
MQTT的应用
- 物联网设备通信
- 家庭自动化系统
- 实时数据流
- 远程监控和控制
结论
在Raspberry Pi上托管MQTT服务器是为您的IoT项目启用轻质和可靠的通信的绝佳方法。通过遵循本指南,您可以设置并保护Mosquitto MQTT经纪人,连接IoT设备并开始构建强大的应用程序。实验不同的配置,以探索MQTT的全部潜力!