ESP32连接私有后台thingsboard框架服务器踩坑指南

在做物联网开发过程中,大部分人的建议是连接阿里云,腾讯云和百度云等完整云端,不仅资料多,并且稳定。但是,在实际运用过程中,更多的我们需要用到自己的服务器和平台(不承认是没钱开阿里云服务)。而开自己的云服务和平台时,thingsboard是一个很好的开源框架,设计也较为完全,SDK可以直接下载,主要还不收费。

thingsboard的使用请参考http://www.ithingsboard.com/docs/

关于thingsboard的使用小破站上有全套视频教程,我们通过学习之后可以在后台创建一个设备。(反正就是实体啥的各种添加)

搭建好thingboard环境后,我们采用ESP32进行连接,此时我们先找到自己服务器(也可能是电脑虚拟机啥的,自己怎么用就怎么理解)的ip地址和端口号。

这个地址怎么使用呢:

  1. 采用host加port的方式

host就是我们的ip地址(我使用的是192.168.1.250)

port就是我们的端口号,ESP32有默认端口号,建议参考官方文档

我采用的是tcp的方式所以端口号为1883,采用什么方式选对应的demo即可。但是采用这种方式必须填充transport,不然会连接失败保存,怎么填充根据自己的demo来确定。

  1. 采用url的方式

这是esp32为用户开辟的新道路,也就是开发者可以有不同选择(个人理解,可能也有其他通途)。当然它比上一个简单,就是不在需要填充transport(两行代码即可)。此处的url怎么生成呢

 mqtt://服务器地址:端口号/mqtt

然后对自己的ESP32的mqtt的结构体进行填充,此时结构体填充分为3种,用户可根据需要选择:

首先,采用的是令牌访问

此时,我们只需要填充令牌即可,令牌在ESP32中怎么使用呢,其实他就是username

其次,采用的是x.509访问(此时需要填写证书)

在结构体中就需要填充证书来访问

最后是mqtt基础版连接

也是填充结构体即可

此时,连接已经正常,但我们利用demo直接运行会出现下面的错误(具体原因还要继续学习thingsboard分析)

经过不断改变测试方式发现是由于发布引起的问题,屏蔽掉发布之后发现就不再报错

此时,查找发布接口出现问题的原因,利用emqx进行服务器测试发现,当发送的数据不为json数据时,后台会断开连接。

采用json时不会出现这个问题

由此得出:thingsboard限制上报数据格式,若不为json则断开连接,发现问题原因,解决就很简单了。我们将上报的数据由"I am esp32"改为json字符串再次测试

此时,发布成功,可正式通信使用

猜你喜欢

转载自blog.csdn.net/m0_45068979/article/details/132498851
今日推荐