完成了 ESP8266 模塊 Soft-AP TCP Server 程式, 便需要考慮用什麼程式接收傳送數據,特別要將接收數據作處理,最好是用 C 語言編寫一個收發程式,但要編寫數據處理或圖像顯示,便要化上較多的時間,筆者覺得如果能使用 Excel 作收發程式,這樣便簡化和縮短編程了,而且數據處理和圖像顯示都是 Excel 的強項,所以便決定選擇 Excel 編寫 TCP Server 收發程式。
Excel 收發 ESP8266 模塊 TCP 資料程式 |
Excel 版本:Excel 2003
Excel TCP 資料程式:ESP8266 AP_v1.01
ESP8266 TCP 收發程式:DIY - ESP8266 - 006 TCP Server UART TX+RX - 20170516
由於 Excel 編寫 TCP Server 收發程式是會使用網絡功能,所以除了使用了 Microsoft Excel VBA,還會使用到 WinSock API(wsock32.dll / mswsock.dll),要確定 WinSock API 已經安裝在 C:\WINDOWS\system32\ ,並在 Microsoft Visual Basic 的編輯器內設定引用。
進入 Excel 編輯器 → 按[工具] (T)→ 點[引用] (R)→ 勾選需要的程式庫 → 確定 |
DTPickerDate:C:\WINDOWS\sysWOW64\mscomct2.ocx
程式的設計是收發 ESP8266 TCP 資料,可以設定 IP 地位、Port 位置、收發時間開始和終結、收發的時間段落、單位和儲存檔案。
Excel 程式的 UI 設計 |
Microsoft Visual Basic 編程 |
檔案 → 開新檔案,打開新檔案 (或按 Ctrl + N) 。
工具 → 巨集 → Visual Basic 編輯器,進入 VBA 編輯器 (或按 Alt + F11) 。
選擇功能表命令 插入 → 點擊模組 (Insert → Module) 。
編寫 VBA 程式。 執行 VBA 模組 (或按 F5) 。
檔案 → 關閉並回到 Microsoft Excel (或按 Alt + Q) 。
儲存檔案。
Microsoft Visual Basic - OpenSocket:
Function OpenSocket(ByVal
Hostname As String, ByVal PortNumber As Integer) As Integer
Dim I_SocketAddress As sockaddr_in
Dim IPAddress As Long
IPAddress = inet_addr(Hostname)
'Create a new socket
socketId = socket(AF_INET, SOCK_STREAM,
0)
If socketId = SOCKET_ERROR Then
MsgBox ("ERROR: socket = "
+ Str$(socketId))
OpenSocket = COMMAND_ERROR
Exit Function
End If
'Open a connection to a server
I_SocketAddress.sin_family = AF_INET
I_SocketAddress.sin_port =
htons(PortNumber)
I_SocketAddress.sin_addr = IPAddress
I_SocketAddress.sin_zero = String$(8, 0)
x = connect(socketId, I_SocketAddress,
Len(I_SocketAddress))
If socketId = SOCKET_ERROR Then
MsgBox ("ERROR: connect = "
+ Str$(x))
OpenSocket = COMMAND_ERROR
Exit Function
End If
OpenSocket = socketId
End Function
|
Microsoft Visual Basic - CloseConnection:
Sub CloseConnection()
x = closesocket(socketId)
If x = SOCKET_ERROR Then
MsgBox ("ERROR: closesocket =
" + Str$(x))
Exit Sub
End If
End SubESPCONN_UDP = 0x20, //
ESPCONN_UDP Group
};
|
相關網址:
※ 安裝 MSCOMCT2.OCX 的 DTPicker 控制項:
※ DIY - ESP8266:Excel 收發 ESP8266 TCP 資料程式問題(三十六)
2017年 8月 28日 天氣報告
氣溫:26.0度 @ 20:00
相對濕度:百分之 97%
天氣:微雨
可否提供此excel檔參考,謝謝
回覆刪除