找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 313|回复: 8
打印 上一主题 下一主题
收起左侧

PC机上搭建简易的MQTT服务器并且通过内网穿透实现终端通过4G模块访问此服务器

[复制链接]
跳转到指定楼层
楼主
ID:729982 发表于 2024-3-11 17:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近工作中遇到一个需要使用mqtt协议的项目,自己开发的时候可以在电脑上搭建简易的mqtt消息服务器,然后板子通过以太网口直连电脑访问
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:729982 发表于 2024-3-11 17:31 | 只看该作者
最近工作中遇到一个需要使用mqtt协议的项目,自己开发的时候可以在电脑上搭建简易的mqtt消息服务器,然后板子通过以太网口直连电脑访问,但是生产环境是要通过4G模块实现连接的,故还需要测试公网访问MQTT服务器。
但是各大平台的云服务太贵,故产生了通过内网穿透实现公网访问自家电脑上的mqtt服务器的想法,毕竟只是测试,不需要考虑并发量和响应速度

1、windows端下载nanomq,nanomq start --conf C:\Program Files\nanomq\config\nanomq.conf --auth C:\Program Files\nanomq\config\nanomq_auth_username.conf 命令启动服务
其中nanomq.conf文件配置mqtt服务器地址和端口,nanomq_auth_username.conf配置用户名密码,只有在此名单里的连接才会被允许。
nanomq_cli sub --url mqtt-tcp://192.168.1.23:1883 -t topic -u HY -p 12345 此命令订阅主题为“topic”,用户名为HY,密码为12345,如果用户名和密码在nanomq_auth_username.conf白名单中,则可以订阅成功
nanomq_cli pub --url mqtt-tcp://192.168.1.23:1883 -t topic -q 1 -m 12345 此命令发布主题为“topic”,Qos为1 ,消息内容为“12345”
如果上一步订阅正常,则命令终端会打印出接收到的消息


可以下载MQTTX,此程序图形化界面友好,可以简单测试mqtt连接,订阅发布是否正常

2、板子以太网直连,建立mqtt连接时需要填写对应的mqtt服务器地址、端口、用户名、密码,测试是否能直接接入电脑上的mqtt服务器,这一步主要测试板子上的mqtt消息实现是否正常,
3、内网穿透,下载cpolar,免费好用。网上有教程,实现内网穿透很简单,但有一点要注意的是,板子要想通过穿透来建立mqtt连接,不能用cpolar http命令,要用cpolar tcp命令,然后去cpolar官网看自己的隧道建立好没有

他会自动分配域名和端口,以后板子就直接连接访问此端口,本地地址要填你本地mqtt服务器的那个地址和端口,如此便成功实现板子通过4G模块公网访问主机的mqtt服务器

板子建立连接成功
回复

使用道具 举报

板凳
ID:262 发表于 2024-3-11 22:14 | 只看该作者
这个方法牛,其实可以用云电脑来实现穿透,这样自己的电脑都不用开,电费都省了
回复

使用道具 举报

地板
ID:729982 发表于 2024-3-12 08:56 | 只看该作者
heicad 发表于 2024-3-11 22:14
这个方法牛,其实可以用云电脑来实现穿透,这样自己的电脑都不用开,电费都省了

好主意,我康康
回复

使用道具 举报

5#
ID:899981 发表于 2024-3-12 09:47 | 只看该作者
heicad 发表于 2024-3-11 22:14
这个方法牛,其实可以用云电脑来实现穿透,这样自己的电脑都不用开,电费都省了

云电脑也要出钱吧
回复

使用道具 举报

6#
ID:899981 发表于 2024-3-12 09:48 | 只看该作者
我未曾来过 发表于 2024-3-11 17:31
最近工作中遇到一个需要使用mqtt协议的项目,自己开发的时候可以在电脑上搭建简易的mqtt消息服务器,然后板 ...

不要固定地址可以访问?穿透软件要出钱不?
回复

使用道具 举报

7#
ID:729982 发表于 2024-3-12 14:21 | 只看该作者
ZHAOBAO511 发表于 2024-3-12 09:48
不要固定地址可以访问?

我说的这个不用,还有花生壳,有1G的免费流量,测试是够了。我这个方法主要是在开发的时候你自测需要,如果老板给钱租服务器那当然不必说,怎么说也不可能自掏腰包嘛,所以一个免费的方法就重要了
回复

使用道具 举报

8#
ID:729982 发表于 2024-3-12 14:24 | 只看该作者
ZHAOBAO511 发表于 2024-3-12 09:48
不要固定地址可以访问?

你自己电脑上搭的服务器肯定是固定地址,然后穿透软件给你的地址是他随机分配的,你断联以后再上他就会换一个,所以避免来回编译,得想个办法让单片机的connect目标地址端口在片外修改,我这边是因为跑的linux,可以通过文件系统改
回复

使用道具 举报

9#
ID:277550 发表于 2024-3-13 10:43 | 只看该作者

自己玩,可以找个开源的C/C++的、编译一个arm的,在arm中运行,省电省资源,如mosquitto
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表