ESP8266作为服务器端处理TCP通信,其核心逻辑和客户端非常相似,只是API调用顺序有所不同。为了方便调试,我们给ESP8266添加了一个softAP热点。给ESP8266设置WiFi模式并启动softAP,它会连接家里的路由器,同时开启自己的热点给调试使用。但是,当我们在实际运行TCP业务时,ESP8266只需要以station模式工作即可,softAP只是为了方便我们使用PC端网络调试助手。 如果你不想自己编写App,你可以把数据发送到物联网后台,然后使用PC端浏览器实时监控数据。当然,如果你想自己编写App,这也没有问题。但建议先把底层的TCP通信跑通,这样再进行上层应用开发会更加高效。 整个过程被简化为四步,和经典的八步流程相比,降低了记忆成本。初始化过程包括设置WiFi模式和启动softAP。定义远程客户端信息时需要注意IP地址和端口号。接着初始化espconn结构体并设定为ESPCONN_TCP类型。然后注册连接成功回调函数,并直接调用espconn_accept()进入监听状态。 服务器端有四个回调函数负责把整个流程串联起来:连接成功、数据到达、发送完成和断开连接。在连接成功后,我们可以打印一句信息并注册后续三个回调函数。收到数据时可以通过串口打印出来或者回传给客户端。发送完成后告知上层系统数据包已经发送出去了。当断开连接时,需要清除资源并打印提示信息。 给ESP8266烧录程序后别急着复位设备,先确认串口助手显示“Wifi connect success!”。然后再打开PC端网络调试助手进行连接测试。当设备成功连接时串口助手会显示“connect success!”,我们可以在电脑端输入“MCU LOVER”,ESP8266会原样回显给我们。 给ESP8266关掉softAP模式后它只作为客户端去处理MQTT通信。如果你遇到任何问题或疑问可以查阅SDK手册第216页中的相关内容解决问题。90%的常见问题都能在手册中找到答案。