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

      最后更新:2022-08-01 20:40:03 手机定位技术交流文章

      一、目的

      本文将实现:

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

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

      将移动电话和计算机发布主题转移到esp32的订阅,实现移动电话、计算机和esp32之间的远程通信。

      二、准备

      2.1 esp32

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

      2.2 Tencent云服务器

      (看东西网络的收费规则,看起来下面的10w消息是免费的吗?)

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

      2.3 电脑终端 mqtt工具

      它被用来模拟 mqtt设备,作为一个终端通过 mqtt协议与 esp32通信。 软件名称是 mqtt.FX,下载链接:(我点击下载并没有反应,最后我还是去 Baidu 1 myself。Download (jensd.de) http://mqttfx.jensd.de/index.php/download

      2.4移动终端 mqtt工具

      Baidu发现,这个名字是 mqtt调试工具,应用程序封面是 chainmin电子。

      3.Tencent云服务器设置

      3.1创造产品和设备

      首先,在服务器上的每个设备上应用产品,允许服务器“识别”本地 mqtt设备。

      这里的第一四个项目应该是零的,我已经在这里创造了产品。

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

      这里三个字符串是用于下一个连接的密钥相关信息,首先记住。

      这里是电脑末端的 mqtt 工具创建产品的地方,同样,按照上述步骤,您可以根据 mqtt工具创建一个产品和设备,用于 esp32和移动终端。下一步是填写资料,esp32用于填充 esp32产品设备信息,电脑终端的 mqtt。 电话末端的FX和 mqtt调试助理也填入相应的设备信息。

      默认情况下,以下步骤告诉您已经创建了三个产品和以下设备。

      3.查看主题

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

      单击产品列表-设备列表-单击设备名称-主题列表。单击这个步骤,下图就会显示出来,一般来说,初始状态有三个主题(图中的测试是我自己的),Topic权限下面的xxxxxxx/esp32_2/data这个路径,为了暂时订阅这个主题,这样, esp32可以在计算机末端接收 mqtt。 fx发送主题消息(虽然还有一个条件:服务器中的消息被发送,下文会说)。

      这个部分也可以直接访问Tencent Cloud的官方文件,更清晰地说:

      物联网通信 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 下选择 tcp 项目,然后将其导入工作空间:

      在下一个图中修改这个节,并且具体内容可以在本文中看到。ESP32使用MQTT_TCP连接阿里云的博客 - CSDN blog_esp32 mqtt https://blog.csdn.net/u012121390/article/details/115721582

      上面的图所示。 主机在下图中的产品ID之后添加。 iotcloud.Tencentdevices.com

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

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

      图中所选的部分是订阅主题操作,在程序中 xx是上面所示的产品ID,这是写这篇文章的第三件事。 最后要记住的是主题,把数据线贴在这儿。(下面的两行测试是我自己的定义,不用写)。发行和订阅的主题只能是设备本身的主题,因此这些数据的路径实际上是产品ID/设备名称/数据。

      4.2 esp32程序中的 WIFI设置

      方法1:按F1,按ESP-IDF,然后在下图中找到“SDK 配置编辑器(菜单配置)”

      单击图片,单击图片,单击图片,单击图片。

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

      找到 WIFI的配置,填上帐户密码,我不能移动选择上下方向键,另一台电脑可以,所以这个方法没有显示。

      4.3 编译烧录

      1.按f1键找到ESP-IDF:打开控制面板选项
      设置对象芯片:idf.py set-target esp32
      编译命令: idf.py build
      下载命令(到设备管理器查看该端口): idf.py -p COMx flash
      串行监视:idf.py -p COMx监视器
      清理工作: idf.py fullclean

      4.4 结果

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

      但是不能让计算机和手机发送信息到 esp32,下一步是数据传输。 首先,让我们谈谈如何将计算机和移动客户端连接到Tencent云服务器。

      连接PC和移动客户端到Tencent云服务器

      5.电脑 mqtt.FX设置

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

      下图的阻塞部分是3。在1中创建的相应的产品和设备大致是以下格式:

      Broker Address:xxxxxxxx.iotcloud.tencentdevices.com

      Client ID:xxxxxxxxlaptop

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

      这个接口是发布主题消息的接口,选择主题并发送它,这样消息可以在服务器端的在线调试中收到相同的主题。 与在 esp32中发布和订阅主题一样,您只能在设备上订阅和发布主题。

      如果您需要 mqtt.When fx接收消息,您需要在接口右边的订阅选项卡中订阅主题。 如下图所示,订阅后

      5.2移动 mqtt调试助理设置

      MQTT名称:随意

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

      端口号:1883

      用户名:3.在1中记住的用户名

      密码:3.要记住的密码1

      客户ID:产品ID+设备名称

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

      这里是计算机、移动电话和 esp32相互连接的地方。 接下来的说法是,数据传输被用来实现不同设备之间的通信。

      六、数据转发

      选择规则引擎并单击新规则。

      这两个空白是可选的,但最好是填一个可以一瞥见的,如 phone_to_esp32。

      创建后,在页面中单击添加行为操作。

      我们将把手机上发布的主题转移到 esp32,这样可以实现 esp32的电话控制。所以在这里您添加规则产品设备选择 esp32产品和设备。你会发现,这个主题实际上是在我们以前在 esp32修改程序上工作的节里,esp32订阅主题。

      在行为操作上方的屏幕数据板右侧单击编辑。

      按照下图填写,5.我们的手机发送数据的格式是{"数据":1},这里可以编辑规则的数据字段,如果电话发送的数据包含数据,将消息发送到指定的 esp32主题。然后因为 esp32订阅了这个主题,因此消息将发送给 esp32。

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

      为了使用规则引擎的更多方法,请参阅官方文件,我只是在这里尝试了,没有灵魂。

      Internet of Things 通讯数据转移到另一个主题 - 控制器使用手册 - 文档中心 - Tencent.(com)

      七、总结

      这是最初配置的原因是去年我买的exp32已经很长时间没用了,现在我在宿舍里打开一个远程计算机,然后采取团队视察器控制(我知道 Taobao有许多廉价模块可以实现,只是玩而已。当时我花了很长时间来配置开发环境,最后的配置似乎并不那么困难,处理网络问题是非常困难的。以前,平台+vscode+arduino环境已经广泛部署,但阿杜伊诺不习惯,由于单片机的发展环境,他一直使用单片机,最后,使用了vscode+espressif命令行。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/31197.html

          热门文章

          文章分类