手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

这篇具有很好参考价值的文章主要介绍了手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、目的

        本文将实现:

        1、esp32与腾讯云物联网服务器通过mqtt协议通信

        2、电脑和手机客户端通过mqtt与腾讯云相通信

        3、腾讯云服务器内部消息转发,将手机、电脑发布的主题转发给esp32订阅,实现手机、电脑与esp32的远程通信。

二、准备

2.1 esp32

        本次使用的esp32是安信可的nodeMCU-32s,开发环境是vscode+espressif-IDF。使用官方例程库中mqtt下的tcp例程。

2.2 腾讯云服务器

        (看物联网通信的计费规则,好像10w条消息以下是免费的?)

        依次点击:腾讯云服务器官网——控制台——物联网通信

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

2.3 电脑端mqtt工具

        用来模拟mqtt设备,作为一个终端与esp32通过mqtt协议相互通信。软件名称是mqtt.fx,下载链接:(我点击Download没反应,最后我还是自己去百度了一个1.7.1版本的)Download (jensd.de)http://mqttfx.jensd.de/index.php/download

2.4 手机端mqtt工具

        百度找的,名字叫mqtt调试工具,app封面是贞明电子。链接就不贴了。

三、腾讯云服务器设置

3.1 创建产品和设备

        先在服务器上给各个设备申请一个产品,让服务器可以“识别”本地的mqtt设备。依次按照下图点击:

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

         这里刚开始四个项目显示应该都是0,我这里是已经创建过产品了。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        注意就按照图中所选择的,选择密匙认证,产品名称随意写,你能分清楚这是给哪个设备用的就好。我这里是给电脑端的mqtt.fx工具用的,所以名称是mqtt_fx。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        这里的三个字符串就是之后连接要使用的密匙相关信息,先记住。

        到这里就为电脑端的mqtt工具创建了一个产品,同理按照上面的步骤可以依次给esp32、手机端的mqtt工具也都创建一个产品和设备。之后的步骤在填信息的时候,esp32要填esp32的产品设备信息,电脑端的mqtt.fx和手机端的mqtt调试助手也要填它们对应的设备信息。

        以下步骤默认你已经创建了三个产品以及其下的设备。

3.2 查看主题(Topic)

        mqtt协议的通信方式是:假如一个设备向服务器的一个主题发布消息,所有与服务器相连的其他设备,如果它们订阅了该主题,就会被服务器转发这个消息。这个主题就是下图中的Topic。

        依次点击产品列表——设备列表——点击设备名称——Topic列表。按这个步骤依次点击后就出现了下图,一般初始状态会有三个主题(图中的test是我自定义的),Topic权限下面的xxxxxxx/esp32_2/data这个路径,一会儿esp32要订阅该主题,这样esp32就能接收到电脑端mqtt.fx发送的主题消息了(虽然还差一个条件:服务器内消息转发,下文会说)。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        这一部分大家也可以直接去看腾讯云官方的文档,讲得更清楚一点:

物联网通信 MQTT.fx 接入指南-快速入门-文档中心-腾讯云 (tencent.com)https://cloud.tencent.com/document/product/634/14630

四、esp32与腾讯云连接

4.1 esp32例程中mqtt的相关改动

4.1.1 在例程中修改密匙认证相关的部分

        找出esp32官方的例程,我是用的vscode安装espressif扩展。按F1弹出命令框。键入ESP-IDF,然后找到并选择“展示示例项目”。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        选择mqtt下的tcp项目,然后将他导入到工作区:

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        修改下图中这一部分,具体内容可以看这个文章。(11条消息) ESP32使用MQTT_TCP连接阿里云_荻夜的博客-CSDN博客_esp32 mqtthttps://blog.csdn.net/u012121390/article/details/115721582

       手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

       上图中的 .host是下图中的产品id后面加上.iotcloud.tencentdevices.com

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        因为我们是密匙认证,所以端口选择1883。剩下三个就是3.1中最后要记住的三个字符串,对应名字填入即可。

4.1.2 在例程中修改订阅主题命令

        图中选中的部分就是订阅主题的操作,程序中xxxxxxxxx就是上图的产品ID,这里要写的就是3.2中最后要记住的Topic,把data那一行粘贴在这儿就好。(下图的test那两行是我自己定义的,不用写)。发布和订阅的主题都只能是自己这个设备的主题,所以这个data的路径里其实就是产品ID/设备名称/data。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

4.2 esp32例程中WIFI设置

        方法一:按F1,键入ESP-IDF,找到下图中选中的“SDK配置编辑器(menuconfig)”

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

         按下图依次点击。框中要填写的是WIFI账号和密码。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        方法二:按F1,键入ESP-IDF,打开终端,在终端输入idf.py menuconfig

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        找到WIFI配置,把账号密码填入即可,我按方向键上下没办法移动选中,另一台电脑却可以,所以这个方法就不演示了。 

4.3 编译烧录

        1、按f1,找到ESP-IDF:打开控制台选项
        2、设置对象芯片:idf.py set-target esp32
        3、编译命令:idf.py build
        4、下载命令(去设备管理器看是哪个端口):idf.py -p COMx flash
        5、串口监视:idf.py -p COMx monitor
        6、清除工程:idf.py fullclean

4.4 结果

        经过以上的步骤后,就应该能实现esp32和腾讯云服务器相连,你可以使用设备里的在线调试向esp32发送消息来测试是否成功。Topic就选择刚刚在程序里粘的xxxxxxxxx/esp32_2/data。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        但是到了这里还不能实现电脑、手机的消息发送到esp32,还差一步,就是数据转发。在这之前,先说一下电脑和手机客户端怎么连接腾讯云服务器。

五、电脑、手机客户端连接腾讯云服务器

5.1 电脑mqtt.fx设置

        打开后界面如下,laptop是我自己定义的,初始应该不是这个。先点击图中圈中的按钮。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        下图中遮住的部分要填的就是3.1中创建的电脑对应的产品和设备,大概格式是:

        Broker Address:xxxxxxxx.iotcloud.tencentdevices.com

        Client ID:xxxxxxxxlaptop

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        然后是User Credentials选项卡,因为我们选择的是密匙认证,所以要填这个。这里就是之前3.1中要记住的三条字符串里的username和password。然后选择Apply和OK。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

         这个界面就是发布主题消息的界面,选择主题然后发送,就可以在服务器端的在线调试同一个主题下接收到消息。跟esp32发布和订阅主题时是一样的,也是只能订阅和发布自己这个设备的主题。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

         如果想要mqtt.fx接收到消息,就需要该界面右边的在Subscribe选项卡中订阅该主题。订阅后如下图所示

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

 5.2 手机mqtt调试助手设置

        MQTT名称:随意

        服务器地址:产品ID.iotcloud.tencentdevices.com

        端口号:1883

        用户名:3.1中要记住的username

        密码:3.1中要记住的password

        client ID:产品ID+设备名称

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        发布和订阅的主题还是只能选自己的主题,在3.2时我们已经说了主题在哪里找。填好之后如下图所示。注意发布消息时的格式:{"data":1},之后数据转发时有用。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

         到这里就实现了电脑、手机、esp32各自与服务器的连接。接下来要说的就是数据转发,用来实现各个设备之间的通信。

六、数据转发

        选择规则引擎,点击新建规则。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        两个空都随意填,但是最好填一个可以一眼看出其用处的,比如phone_to_esp32。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

         创建好之后,点击页面中的添加行为操作。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

         我们是要将phone发布的主题转发给esp32,这样就能实现phone控制esp32了。所以这里添加规则产品设备要选择esp32的产品和设备。你会发现,这个主题其实就是我们之前在esp32修改程序的章节里,esp32订阅的主题。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

         再点击行为操作上面的筛选数据板块右边的编辑。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        按照下图填写,在5.2里我们手机发送数据的格式是{"data":1},这里编辑规则的data字段,就是如果phone发送的数据中含有data时,就将该消息转发给esp32的指定主题。然后因为esp32订阅了该主题,所以该消息会被发送给esp32。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

         注意不要忘记在这里点击启用。这样就大功告成了,你可以测试esp32是否可以接收到手机发送的消息了。同理,电脑端的mqtt.fx也可以这么设置,这里就不再赘述了。

手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

        规则引擎更多使用方法参见官方文档,我这里就是简单用了一下,没有灵魂。

 ​​​​​​物联网通信 数据转发到另一 Topic-控制台使用手册-文档中心-腾讯云 (tencent.com)

 七、总结

        最初配置这个的原因是自己去年买的esp32已经闲置很久了,现在打算给自己在宿舍的电脑整一个远程开机,然后拿teamviewer控制一下(我知道淘宝有很多便宜的模块能实现了,这只是折腾着玩一下)。当时配置开发环境就用了我好多时间,最后配置完好像也没那么难,其实就是网络问题搞得很难受。之前千辛万苦配置了platform+vscode+arduino的环境,但是arduino用不习惯,因为自己一直用的单片机的开发环境,最后还是用了vscode+espressif命令行。

       文章来源地址https://www.toymoban.com/news/detail-506476.html

到了这里,关于手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux下MQTT服务器(EMQX)搭建及paho.mqtt.c客户端开发

    前言: MQTT 是一种基于客户端服务端架构的发布 / 订阅模式的消息传输协议。它的设计思想是轻巧、开放、 简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与 机器的通信( M2M )以及物联网环境( IoT )。        ---

    2024年02月06日
    浏览(49)
  • WPF真入门教程28--项目案例--MQTT服务器和客户端

    这个案例还是布局加视图模型,样式应用,业务逻辑,该项目是一个mqtt服务器和客户端的通信工具,这里不去分析mqtt的通信原理,关注在于wpf技能的应用,能够掌握这个例子,离项目开发也差不多了,只是没有跟db打交道,本项目重点在于理解mvvm模式,开发环境依然是vs20

    2024年01月17日
    浏览(39)
  • 通过 EPOLL 解决客户端同时连接多服务器的问题

    项目需求是  程序上 同时配置了多个服务端 设备 每隔一段时间需要 比如1分钟 连一下服务器看下是否连通   并将结果上报给平台  原来是用线程池来做的   具体大概就是 定时器到了之后  遍历设备列表  找到设备之后  通过 socket连接 发送一个指令 等待服务器返回 用来

    2024年02月13日
    浏览(28)
  • 小米路由器客户端操作说明(电脑手机都可远程控制)

    作为一款高端、大气、上档次的发烧路由器,小米路由器的玩法很多。要想对小米路由器进行控制,不仅可以通过PC客户端,而且还可以通过手机进行操控。下面就让我们看看如何通过PC客户端和手机对小米路由器进行操控。 请仔细看我对小米路由器的配置和小米路由器功能

    2024年02月07日
    浏览(37)
  • 使用windows电脑SSH客户端链接Iphone手机的sshd服务(免越狱)

    最近有需求使用电脑导出手机中特定app的文件。 当然可以直接连上数据线将手机中的文件下载下来。 为了能做到代码自动化导出,将手机作为一台电脑使用,将手机中的文件导出来。 关键问题是如何将手机作为电脑使用,这里有几个步骤(我使用的是Iphone手机)。 1.在手机上

    2024年02月10日
    浏览(43)
  • 【Python】通过第三方库wxauto自动化操作微信电脑客户端

    wxauto是一个Python第三方库,用于 自动化操作微信电脑客户端 通过wxauto,我们可以使用Python编写脚本,实现以下功能 获取微信好友列表、群组列表、聊天记录等信息。 在微信中发送文本、图片、语音等信息给好友或群组。 自动回复好友或群组的消息。 自动加入或退出群组。

    2024年02月12日
    浏览(25)
  • frp内网穿透保姆级配置流程,让客户端电脑可以通过域名或者IP访问本地程序接口

    下载地址:https://github.com/fatedier/frp/releases 1、server_addr中的IP是个人云服器的IP 2、custom_domains是可以使用域名访问 3、adtech.test.link.???.com的域名解析ip是124.221.248.68,这样配置后相当于,adtech.test.link.???.com访问443端口或者8081端口时,就会被转发到客户端 4、frpc.ini是客户端配置文

    2024年02月07日
    浏览(32)
  • mqtt安卓客户端

    1.MQTT(消息队列遥测传输协议),是一种基于 发布/订阅 (publish/subscribe)模式的\\\"轻量级\\\"通讯协议, 该协议构建于TCP/IP协议上 。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使

    2024年02月10日
    浏览(31)
  • 【OPC UA】C# 通过OpcUaHelper建立OPC客户端访问KEPServerEx6 OPC服务器数据

    OpcUaHelper 一个通用的opc ua客户端类库,基于.net 4.6.1创建,基于官方opc ua基金会跨平台库创建,封装了节点读写,批量节点读写,引用读取,特性读取,历史数据读取,方法调用,节点订阅,批量订阅等操作。还提供了一个节点浏览器工具。 KEPServerEX 第三方的OPC服务器,各不

    2023年04月11日
    浏览(25)
  • 【MQTT】MQTT简介+安装+使用 python MQTT客户端

    目录 前言 MQTT 协议简介 为何选择 MQTT MQTT 通讯运作方式 MQTT 协议帧格式 MQTT服务器搭建和使用  公共MQTT 测试服务器 MQTT服务器搭建 各种MQTT代理服务程序比较 Mosquitto安装 MQTT使用方法 测试MQTT服务器 程序中使用MQTT 本文随时更新,转载请注明出处,源地址:http://t.csdn.cn/kCC0B 文

    2024年02月01日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包