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秒的演示顯示,大家可以去我的微頭條看看。


分享到:


相關文章: