• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

ESP8266关于远程控制的难点

zhczlzhang 2018-07-02 浏览量:921

最近做一个智能家居控制,用STC做控制MCU,ESP8266做网络连接,控制流程是这样的,我的控制板连上路由器WIFI,建立SEVER,8080端口,然后通过花生壳映射到公网,后台通过公网IP来控制控制板。这个测试通过了。

然后领导提出了路由器WIFI会自动变换IP地址,到时候IP地址变了,内网就无法映射公网,所有让我们用控制板做客户端来自动重连后台的服务器IP,因为后台的服务器IP地址是不变的。这样路由器IP地址变了也自动重连后台的服务器IP就好。

但是查了半天资料,都是ESP8266作为服务端映射到公网的资料,好像没有作为客户端去连接​公网IP​的资料。

请教下大家该如何做?有资料最好。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • ESP8266应用最广泛的就是作为客户端去连接公网IP地址的服务器了。具体过程如下

    1.发送指令AT+CWMODE=1设置模块Wi-Fi应用模式为Station模式;
    2.发送指令AT+RST重启模块使应用模式更改生效;
    3.发送指令AT+CWJAP=“ssid””pwd” 连接AP;
    4.发送指令AT+CIPMUX=0设置模块为单路连接模式,模块默认为单路连接模式;
    5.发送指令AT+CIPSTART="TCP""xxx.xxx.xxx.xxx"8888 与服务器建立TCP连接xxx.xxx.xxx.xxx为公网地址。
    6.发送指令AT+CIPMODE=1设置模块传输模式为透传模式;(此后模块重启后会默认进入透传模式)
    7.发送指令AT+CIPSEND开启透传模式向服务器发送数据,模块收到此指令后先换行后返回”>“,每包数据以20ms间隔区分,每包最大2048字节;
    8.结束透传模式则发送+++即可。
    PS:如果不使用透传模式则使用AT+CIPSEND=x,x表示发送字节数。

    如果还有疑问,可以访问安可信官网查看资料,里面有详细的连接实例。

    http://wiki.ai-thinker.com/esp8266​


    • 发布于 2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 现在连上公网的智能家居控制都不会采用映射到公网的方案,因为:

    1. 公网IP资源有限,很多时候客户没有公网IP,这样就缩小了用户面

    2. 设置、配置管理复杂

    现在一般通行的方式是利用公共服务的方式,大致是如下策略

    1. 有一个共(公)有服务,提供客户app与受控设备(环境)间的数据桥梁

    2. 受控设备用心跳策略(定时器)上报状态和获取指令(向公共服务)

    3. app在运行时也用心跳策略获取设备状态和发送指令(这个可以是触发方式)

    这里的公共服务其实就是你说的后台服务。


    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 他的意思应该是ESP8266作为client去连接一个server,比如ONENET这种,这样只需要使用一般的连网的方法就行了
    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先你路由器是可以获得公网ip的 然后可以用8266连接路由器 获取公网ip就可以了
    • 发布于2018-07-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 要把你的ESP8266要连接到主服务器,然后把网络的DNS共享出来,然后设备共同连到这个DNS通信交换数据
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 需要一个服务器,建立桥接,这样两个客户端才能连接
    • 发布于2018-07-22
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

ESP8266关于远程控制的难点