ESP8266(wifi芯片)与微信小程序

在物联网终端产品中,esp8266 wifi设备是怎么和小程序通信的呢? 对于这一类产品,厂家都有一个后台服务器,esp8266工作在

STA模式,连接wifi热点后,即可具备联网功能,和服务器通信,数据上报,之后小程序或者APP,从服务器中获取数据。如下图:


ESP8266(wifi芯片)与微信小程序

接着,小程序端控制设备,数据方向如下图:


ESP8266(wifi芯片)与微信小程序

那么问题来了,如果我们不需要服务器,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了。

ESP8266(wifi芯片)与微信小程序

双方都知道对方的ip、port,接下来数据互相收发,不成问题。笔者自己做了一个小demo。


ESP8266(wifi芯片)与微信小程序


ESP8266(wifi芯片)与微信小程序

刚刚打开的时候,小程序还没有和esp8266连接,所以显示设备是offline,这个时候,小程序下拉一下,开启搜索mDNS服务,便可找到esp8266,如下图: 返回的数据有esp8266的ip和port,小程序同时往这个ip,port发送打招呼信息,esp8266接收到信息,找到小程序的ip,port,最后设备不停的往小程序上报数据。

ESP8266(wifi芯片)与微信小程序


ESP8266(wifi芯片)与微信小程序


温湿度的数据是假的,不过确实是esp8266发过来的随机数据。on,off 是实时控制led灯的,小程序中灯泡是实时显示led 的状态的,我拍了15秒的演示显示,大家可以去我的微头条看看。


分享到:


相關文章: