You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32通过本地IP地址对接私有部署ThingsBoard的方案咨询

ESP32通过本地IP地址对接私有部署ThingsBoard的方案咨询

嘿,这个场景我之前折腾过好几次,给你分享下直接可用的方案和踩过的坑:

  • 直接替换IP地址的基础操作
    你把THINGSBOARD_SERVER改成本地IP的思路完全没问题,这是最直接的做法。不过要注意两个关键细节:

    • 一定要给你的ThingsBoard服务器设置静态IP,别用路由器自动分配的动态IP,不然哪天路由器重启换了IP,ESP32就找不到服务器了
    • 确认ESP32和服务器在同一局域网,WiFi连的是同一个热点/网段
      代码里直接替换就行,比如:
    constexpr char THINGSBOARD_SERVER[] = "192.168.0.100";
    constexpr uint16_t THINGSBOARD_PORT = 1883; // 保持默认端口,要是你改了TB的端口就对应修改
    
  • 连接失败的排查步骤
    要是替换后连不上,按这个顺序查:

    • 先在电脑上用ping 192.168.0.100测试,能通再搞ESP32的代码,排除服务器本身的问题
    • 检查ESP32的WiFi连接代码,确保SSID和密码正确,成功连入局域网
    • 看ThingsBoard的防火墙设置,有没有开放MQTT(1883)或者你用的通信端口的局域网访问权限
    • 如果你用MQTT协议,确认连接逻辑里传对了IP和端口,比如:
      if (!tb.connect(THINGSBOARD_SERVER, THINGSBOARD_PORT, YOUR_DEVICE_TOKEN)) {
          Serial.println("连接ThingsBoard失败,重试中...");
          delay(2000);
      }
      
  • 进阶优化:用本地域名(可选)
    要是你嫌后期改IP麻烦,也可以在路由器里给TB服务器做个本地域名映射,比如把tb-local映射到192.168.0.100,这样ESP32代码里可以写constexpr char THINGSBOARD_SERVER[] = "tb-local";,和用demo域名的写法完全一样,以后服务器IP变了只需要改路由器的映射,不用动ESP32代码

备注:内容来源于stack exchange,提问作者Chul Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:49:35