建立Arduino的Socket即時通訊程式(一)

本文旨在補充《超圖解物聯網IoT實作入門》第5章「使用Socket.io建立即時連線」一節,書本的範例採用Node.js的Socket.io套件,搭配瀏覽器建立即時、雙向連線程式。本文將使用Arduino控制板加上W5100乙太網路擴展板,直接和Node.js的Socket.io即時通訊。

使用Arduino控制板加上W5100乙太網路擴展板,直接和Node.js的Socket.io即時通訊。

安裝Arduino的Socket.io程式庫

本文採用的Arduino程式庫是Socket.io-v1.x-Library,這個程式庫支援W5100或ENC28J60乙太網路晶片,以及ESP8266控制板。

W5100、ENC28J60乙太網路晶片和ESP8266控制板

下載之後將它解壓縮,筆者將它命名成SocketIOClient,存入libraries路徑:

Arduino的libraries路徑

此程式庫的examples資料夾包含適用於Arduino和ESP8266的範例程式,然而,直接在Arduino IDE主功能表的「檔案→範例」選單,找不到此程式庫的範例,因為程式作者忘了要把Arduino的.ino原始檔存放在同名的資料夾裡面,請自行在examples裡面新增資料夾,再移入範例原始檔:

SocketIOClien程式庫的範例檔

重新開啟Arduino IDE,就能在「檔案→範例」選單底下看見“SocketIOClient”的範例程式了。

修改SocketIOClient程式庫參數

SocketIOClient程式庫預設的編譯目標是ESP8266控制板,筆者要將它改成Arduino的W5100乙太網路擴展板,請使用程式編輯器(如:Notepad++, Atom, Sublime Text,…)開啟SocketIOClient資料夾裡的SocketIOClient.cpp檔,把第26行的:

#define ESP8266

改成:

#define W5100

修改ocketIOClient.cpp檔

我們的自訂程式將使用這個程式檔,第31~34行定義的變數,在此先不管它們。

接著開啟SocketIOClient.h檔,刪除第70行的註解,然後替第71行加上註解:

修改SocketIOClient.h檔

準備工作告一段落,可以開始寫程式了…下文待續。

延伸閱讀

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *