接着,小程序端掌握设备,数据方向如下图:
那么问题来了,如果我们不须要做事器,esp8266能不能与小程序直接通信呢? 答案是肯定的。
方案很大略,只要esp8266,手机都连接着同一个路由器wifi,或者手机发起wifi热点,esp8266连接这个热点;如此他们二者都处于同一个局域网内。当处于同一个局域网后,他们就可以通过TCP/UDP办法通信。

那么又有一个问题了,TCP/UDP通信,是须要知道对方的ip,port端口号的。esp8266芯片如何知道小程序的ip和port号呢? 小程序又如何知道esp8266芯片的ip和port号呢 ?
方案也很大略。mDNS:即组播DNS(multicast DNS),紧张实现了在没有传统DNS做事器的情形下使局域网内的主机实现相互创造和通信。(--百度百科)
让esp8266 注册mDNS做事, 微信小程序是有搜索局域网下 mDNS 的干系API。如此,小程序便知道esp8266的ip、port;这个时候小程序给esp8266发一下打呼唤的信息,esp8266便可知道小程序的ip、port了。
双方都知道对方的ip、port,接下来数据相互收发,不成问题。笔者自己做了一个小demo。
刚刚打开的时候,小程序还没有和esp8266连接,以是显示设备是offline,这个时候,小程序下拉一下,开启搜索mDNS做事,便可找到esp8266,如下图: 返回的数据有esp8266的ip和port,小程序同时往这个ip,port发送打呼唤信息,esp8266吸收到信息,找到小程序的ip,port,末了设备一直的往小程序上报数据。
温湿度的数据是假的,不过确实是esp8266发过来的随机数据。on,off 是实时掌握led灯的,小程序中灯泡是实时显示led 的状态的,我拍了15秒的演示显示,大家可以去我的微头条看看。