HƯỚNG DẪN GỬI DỮ LIỆU TỪ VBOX LÊN GOOGLE SHEETS

Version 1.1 by MinhTam Chau on 2025/10/13 15:01

HƯỚNG DẪN GỬI DỮ LIỆU TỪ VBOX LÊN GOOGLE SHEETS

Tổng quan

V-BOX của Wecon hỗ trợ lập trình bằng Lua, cho phép gửi dữ liệu lên các dịch vụ web thông qua giao thức HTTP/HTTPS. Trong hướng dẫn này, chúng ta sẽ sử dụng Google Apps Script để tạo API trung gian, giúp nhận dữ liệu từ HMI/V-BOX và ghi vào Google Sheet
1760338256525-104.png

Bước 1: Tạo Google Apps Script để nhận dữ liệu

- Đăng nhập vào https://docs.google.com/

- Sau đó chọn vào “Blank spreadsheet” để tạo 1 Sheet mới chứa dữ liệu

1760338298848-510.png

(1) Chọn vào “Extention” trên thanh công cụ

(2) Sau đó chọn vào “Apps Script”

1760338327427-620.png

(1) Trong Apps Script ta vào File tạo 1 File Code.gs để chứa chương trình

(2) Điền ID Google Sheet sẽ nhận dữ liệu từ V-BOX gửi lên

Lưu ý: ID sẽ được lấy từ /d/ và /edit

1760338388582-151.png

1760338406650-812.png

(1) Chọn vào Deploy → New Deployment

(2) Sau đó chọn đến mục “Who has access”

rồi chọn vào Anyone

(3) Nhấn Deploy

(4) Copy URL lại vì đây là địa chỉ để V-BOX

gửi Request đến Google Sheet

1760338442980-985.png

1760338456582-697.png

1760338471331-231.png

Bước 2: Tạo Script để gửi dữ liệu lên Google Sheet
Trên giao diện V-NET chọn đến V-BOX cần gửi dữ liệu đi

(1) Chọn vào mục “Lua Script”

(2) Chọn vào “New” để tạo 1 Script mới

(3) Đặt tên cho script và chọn chế độ chạy Timing

1760338532321-688.png

Sau đó viết 1 chương trình để thực hiện viêc gửi dữ liệu từ VBOX lên Google Sheets

Lưu ý: thay thế URL bằng URL đã được lấy ở bước 1 (Sau khi Deployment)

1760338565593-989.png

-- ###### Khai báo thư viện và URL của Google Sheets ################--

local socket = require("socket")

local https = require("https")

local ltn12 = require("ltn12")

id = 0

-- API URL của Google Apps Script

URL = "https://script.google.com/macros/s/AKfycbxI8d5txR4Izxvjlq2-0L8fuF-AVdmYQpb_yTkqELnXEslFswaGfGD8iP6CMqrmXqY/exec"

-- ################## Chương trình kết nối và thực hiện việc gửi dữ liệu về Google Sheets với 2 giá trị Nhiệt độ và Độ Ẩm #########################

function send_data()

id = id + 1

local temp = addr_getword("@Temp") or 0

local humi = addr_getword("@Humi") or 0

local str = '{"id":' .. id .. ',"temp":' .. temp .. ',"humi":' .. humi .. '}'

local response_body = {}

local res, code, headers, status = https.request{

url = URL,

method = "POST",

headers = {

["Content-Type"] = "application/json",

["Content-Length"] = tostring(#str)

},

source = ltn12.source.string(str),

sink = ltn12.sink.table(response_body)

}

if code == 200 then

print("Gửi thành công: " .. table.concat(response_body))

else

print("Lỗi gửi dữ liệu: " .. tostring(code))

end

end

-- ##########Chương trình chính dùng 1 bit trang thái  để gửi dữ liệu đi #############--
function Google_Sheet.main()

local upload_data = addr_getbit("@Upload")

if upload_data == 1 then

send_data()

end

end

Khi bit Update được chuyển sang trạng thái ON dữ liệu sẽ được gửi lên Google Sheets

1760338851032-545.png